JP4783291B2 - ソフトウェアアプリケーションにおけるメモリ待ち時間を低減するための方法及び装置 - Google Patents
ソフトウェアアプリケーションにおけるメモリ待ち時間を低減するための方法及び装置 Download PDFInfo
- Publication number
- JP4783291B2 JP4783291B2 JP2006534105A JP2006534105A JP4783291B2 JP 4783291 B2 JP4783291 B2 JP 4783291B2 JP 2006534105 A JP2006534105 A JP 2006534105A JP 2006534105 A JP2006534105 A JP 2006534105A JP 4783291 B2 JP4783291 B2 JP 4783291B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- helper
- execution
- main
- helper thread
- 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
- 238000000034 method Methods 0.000 title claims description 48
- 230000015654 memory Effects 0.000 title claims description 35
- 230000007246 mechanism Effects 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 3
- 230000003111 delayed effect Effects 0.000 claims 3
- 230000003213 activating effect Effects 0.000 claims 1
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Description
Claims (26)
- コンピュータが実行し、メインスレッドを有するソフトウェアアプリケーションにおけるメモリ待ち時間を低減する方法であって、
前記ソフトウェアアプリケーションを解析して、キャッシュミスが生じる、複数のソフトウェア命令の第1エリアを特定する段階と、
複数のソフトウェア命令の前記特定されたエリアの実行によってフェッチされるべき変数をプリフェッチするヘルパースレッドを生成する命令と前記ヘルパースレッドをアクティベートするアクティベート命令とを有する複数のコンパイラランタイム命令の第1セットを生成して、複数のコンパイラランタイム命令の前記第1セットを前記メインスレッドに挿入する段階と、
前記ヘルパースレッドの実行を遅延させる命令と前記ヘルパースレッドを前記メインスレッドにキャッチアップさせるキャッチアップ命令とを有する複数のコンパイラランタイム命令の第2セットを生成して、複数のコンパイラランタイム命令の前記第2セットを前記ヘルパースレッドに挿入する段階と、
前記メインスレッド及び前記ヘルパースレッドにカウンティングメカニズムを挿入する段階であって、前記カウンティングメカニズムは、前記メインスレッド及び前記ヘルパースレッドの相対的な実行ポイントを調整すべく構成されている段階と
を備え、
前記カウンティングメカニズムは、前記メインスレッド及び前記ヘルパースレッドにおけるデータ処理の実行に応じてカウントされるソフトウェアカウンタと、前記メインスレッド及び前記ヘルパースレッドが実行において互いにどれだけ進んで動作してよいかを示す閾値とを含み、前記メインスレッドに挿入された前記ソフトウェアカウンタが前記閾値を超えた場合に、前記メインスレッドが前記ヘルパースレッドをアクティベートすることにより、前記相対的な実行ポイントが調整され、
前記キャッチアップ命令は、前記ヘルパースレッドに挿入された前記ソフトウェアカウンタを前記メインスレッドに挿入された前記ソフトウェアカウンタに一致させ、前記ヘルパースレッドにプリフェッチされるデータの値を前記メインスレッドで処理されているデータに一致させる
方法。 - 前記ソフトウェアアプリケーションを解析する段階は、メモリロード待ち時間が生じる、複数のソフトウェア命令の第2エリアを特定する段階を有する
請求項1に記載の方法。 - 複数のソフトウェア命令の前記第1エリアは、複数のソフトウェア命令の前記第2エリアと異なる
請求項2に記載の方法。 - 複数のソフトウェア命令の前記第1エリアは、複数のソフトウェア命令の前記第2エリアを有する
請求項2に記載の方法。 - 前記ソフトウェアアプリケーションを解析する段階は、
パフォーマンス解析ツールを実行して、前記ソフトウェアアプリケーションに関するキャッシュミス率を計測する段階と、
前記パフォーマンス解析ツールを実行して、前記ソフトウェアアプリケーションに関するメモリロード待ち時間を計測する段階と、
前記キャッシュミスが生じる、複数のソフトウェア命令の前記第1エリアを、コンパイラに送る段階と、
前記メモリロード待ち時間が生じる、複数のソフトウェア命令の前記第2エリアを、コンパイラに送る段階と
を有する請求項2から4のいずれか一項に記載の方法。 - 前記メインスレッドに挿入された、複数のコンパイラランタイム命令の前記第1セットは、前記ヘルパースレッドを終了させる命令を有する
請求項1から5のいずれか一項に記載の方法。 - 前記ヘルパースレッドは、前記メインスレッドに挿入された前記ソフトウェアカウンタと前記ヘルパースレッドに挿入された前記ソフトウェアカウンタとの比較、及び、前記ヘルパースレッドに挿入された前記ソフトウェアカウンタと前記閾値との比較に基づいて、前記ヘルパースレッドの実行が前記メインスレッドの前に進み過ぎているか否かを判断し、前記ヘルパースレッドの実行が前記メインスレッドの前に進み過ぎていると判断した場合に前記遅延させる命令を呼び出して前記ヘルパースレッドの実行を遅延させることにより、前記相対的な実行ポイントが調整される
請求項1から6のいずれか一項に記載の方法。 - 前記ヘルパースレッドは、前記メインスレッドに挿入された前記ソフトウェアカウンタと前記ヘルパースレッドに挿入された前記ソフトウェアカウンタとの比較に基づいて、前記ヘルパースレッドの実行が前記メインスレッドより遅れているか否かを判断し、前記ヘルパースレッドの実行が前記メインスレッドより遅れていると判断した場合に前記キャッチアップ命令を実行することにより、前記ヘルパースレッドが前記メインスレッドにキャッチアップするよう前記ヘルパースレッドの実行ポイントが調整される
請求項1から7のいずれか一項に記載の方法。 - 前記ヘルパースレッドは、前記キャッチアップ命令の実行によって前記ヘルパースレッドに挿入された前記ソフトウェアカウンタを前記メインスレッドに挿入された前記ソフトウェアカウンタに一致させ、前記ヘルパースレッドにプリフェッチされるデータの値を前記メインスレッドで処理されているデータに一致させることにより、前記メインスレッドによって既にフェッチされた複数の変数をフェッチすることをスキップして前記メインスレッドにキャッチアップする
請求項8に記載の方法。 - メモリ待ち時間を低減するシステムであって、
プロセッサと、
前記プロセッサに機能的に結合されたメモリとを備え、
前記メモリは、
データキャッシュミスを受けるアプリケーションプログラムにおけるコード領域を特定すべく構成されたソフトウェアツールと、
前記ソフトウェアツールに機能的に結合されたコンパイラであって、前記ソフトウェアツールから情報を受け取り、前記特定されたコード領域に含まれる複数の変数をプリフェッチするヘルパースレッドを生成すべく構成されたコンパイラと、
前記ヘルパースレッドを管理し、かつ、前記アプリケーションプログラムのメインスレッドを管理すべく、生成されて前記アプリケーションプログラムに挿入される、複数のコンパイラランタイム命令のセットと、
前記メインスレッド及び前記ヘルパースレッドに挿入され、前記ヘルパースレッド及び前記メインスレッドに関する実行ポイントの調整を促進するカウンティングメカニズムと
を記憶し、
前記カウンティングメカニズムは、前記メインスレッド及び前記ヘルパースレッドにおけるデータ処理の実行に応じてカウントされるソフトウェアカウンタと、前記メインスレッド及び前記ヘルパースレッドが実行において互いにどれだけ進んで動作してよいかを示す閾値を含み、
前記プロセッサは、前記メインスレッドに挿入された前記ソフトウェアカウンタが前記閾値を超えた場合に、前記メインスレッドに前記ヘルパースレッドをアクティベートさせることで、前記実行ポイントを調整する
システム。 - 前記コンパイラが前記ソフトウェアツールから受け取る前記情報は、前記特定されたコード領域に関する複数のデータキャッシュミス率を有する
請求項10に記載のシステム。 - 前記コンパイラが前記ソフトウェアツールから受け取る前記情報は、前記特定されたコード領域に関するメモリロード待ち時間を有する
請求項10または11に記載のシステム。 - 複数のコンパイラランタイム命令の前記セットは、前記ヘルパースレッドを生成し、前記ヘルパースレッドを終了させ、前記ヘルパースレッドの実行を遅延させ、前記ヘルパースレッドをアクティベートさせる複数の命令を有する
請求項10から12のいずれか一項に記載のシステム。 - 複数のコンパイラランタイム命令の前記セットは、前記ヘルパースレッド及び前記メインスレッドの実行を調整する複数の命令を有する
請求項10から12のいずれか一項に記載のシステム。 - 前記ヘルパースレッドは、前記メインスレッドに挿入された前記ソフトウェアカウンタと前記ヘルパースレッドに挿入された前記ソフトウェアカウンタとの比較、及び、前記ヘルパースレッドに挿入された前記ソフトウェアカウンタと前記閾値との比較に基づいて、前記ヘルパースレッドの実行が前記メインスレッドの前に進み過ぎているか否かを判断し、前記ヘルパースレッドの実行が前記メインスレッドの前に進み過ぎていると判断した場合に前記ヘルパースレッドの実行を遅延させることにより、前記実行ポイントが調整される
請求項10から14のいずれか一項に記載のシステム。 - 前記ヘルパースレッドは、前記メインスレッドに挿入された前記ソフトウェアカウンタと前記ヘルパースレッドに挿入された前記ソフトウェアカウンタとの比較に基づいて、前記ヘルパースレッドの実行が前記メインスレッドより遅れているか否かを判断し、前記ヘルパースレッドの実行が前記メインスレッドより遅れていると判断した場合に、前記ヘルパースレッドが前記メインスレッドにキャッチアップするよう前記ヘルパースレッドの実行ポイントが調整される
請求項10から15のいずれか一項に記載のシステム。 - 前記ヘルパースレッドは、前記ヘルパースレッドに挿入された前記ソフトウェアカウンタを前記メインスレッドに挿入された前記ソフトウェアカウンタに一致させ、前記ヘルパースレッドにプリフェッチされるデータの値を前記メインスレッドで処理されているデータに一致させることにより、前記メインスレッドによって既にフェッチされた複数の変数をフェッチすることをスキップして前記メインスレッドにキャッチアップする
請求項16に記載のシステム。 - メモリ待ち時間を低減するためのプログラムであって、コンピュータに、
メインスレッドを有するソフトウェアアプリケーションを解析させ、
前記ソフトウェアアプリケーションにおけるコード領域を特定する手順と、
前記特定されたコード領域に含まれる複数の変数をプリフェッチするヘルパースレッドを生成する手順と、
前記ヘルパースレッド及び前記メインスレッドを管理すべく、複数のコンパイラランタイム命令の第1セットを生成させて、前記メインスレッドに挿入する手順と、
前記ヘルパースレッド及び前記メインスレッドを管理すべく、複数のコンパイラランタイム命令の第2セットを生成させて前記ヘルパースレッドに挿入する手順と、
前記ヘルパースレッド及び前記メインスレッドの実行ポイントを管理する手順と
を実行させ、
前記実行ポイントを管理する手順は、前記メインスレッドに挿入されデータ処理の実行に応じてカウントされるソフトウェアカウンタが、前記メインスレッド及び前記ヘルパースレッドが実行において互いにどれだけ進んで動作してよいかを示す閾値を超えた場合に、前記メインスレッドに前記ヘルパースレッドをアクティベートさせる手順を有する
プログラム。 - 前記コード領域を特定する手順は、キャッシュミス率に基づいて前記コード領域を特定する手順を有する
請求項18に記載のプログラム。 - 前記コード領域を特定する手順は、メモリロード待ち時間に基づいて前記コード領域を特定する手順を有する
請求項18または19に記載のプログラム。 - 前記ヘルパースレッドは、前記特定されたコード領域内の複数の命令をプリフェッチする
請求項18から20のいずれか一項に記載のプログラム。 - 前記複数のコンパイラランタイム命令は、前記ヘルパースレッドを生成し、前記ヘルパースレッドを終了させ、前記ヘルパースレッド及び前記メインスレッドの実行を調整する命令を含む
請求項18から21のいずれか一項に記載のプログラム。 - 前記ヘルパースレッド及び前記メインスレッドの実行ポイントを管理する手順は、カウンティングメカニズムの第1部分を前記メインスレッドに挿入して、カウンティングメカニズムの第2部分を前記ヘルパースレッドに挿入することによって、前記メインスレッド及び前記ヘルパースレッドの前記実行を管理する手順を有する
請求項18から22のいずれか一項に記載のプログラム。 - 前記実行ポイントを管理する手順は、前記ヘルパースレッドが、前記メインスレッドに挿入された前記ソフトウェアカウンタと前記ヘルパースレッドに挿入されデータ処理の実行に応じてカウントされるソフトウェアカウンタとの比較、及び、前記ヘルパースレッドに挿入された前記ソフトウェアカウンタと前記閾値との比較に基づいて、前記ヘルパースレッドの実行が前記メインスレッドの前に進み過ぎているか否かを判断し、前記ヘルパースレッドの実行が前記メインスレッドの前に進み過ぎていると判断した場合に前記ヘルパースレッドの実行を遅延させる手順をさらに有する
請求項18から23のいずれか一項に記載のプログラム。 - 前記実行ポイントを管理する手順は、前記ヘルパースレッドが、前記メインスレッドに挿入された前記ソフトウェアカウンタと前記ヘルパースレッドに挿入されデータ処理の実行に応じてカウントされるソフトウェアカウンタとの比較に基づいて、前記ヘルパースレッドの実行が前記メインスレッドより遅れているか否かを判断し、前記ヘルパースレッドの実行が前記メインスレッドより遅れていると判断した場合に、前記ヘルパースレッドが前記メインスレッドにキャッチアップする手順をさらに有する
請求項18から24のいずれか一項に記載のプログラム。 - 前記ヘルパースレッドが前記メインスレッドにキャッチアップする手順は、前記ヘルパースレッドが、前記ヘルパースレッドに挿入された前記ソフトウェアカウンタを前記メインスレッドに挿入された前記ソフトウェアカウンタに一致させ、前記ヘルパースレッドにプリフェッチされるデータの値を前記メインスレッドで処理されているデータに一致させることにより、前記メインスレッドによって既にフェッチされた複数の変数をフェッチすることをスキップする手順を含む
請求項25に記載のプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/677,414 US7328433B2 (en) | 2003-10-02 | 2003-10-02 | Methods and apparatus for reducing memory latency in a software application |
US10/677,414 | 2003-10-02 | ||
PCT/US2004/032212 WO2005033926A2 (en) | 2003-10-02 | 2004-09-29 | Methods and apparatus for reducing memory latency in a software application |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010286087A Division JP5118744B2 (ja) | 2003-10-02 | 2010-12-22 | ソフトウェアアプリケーションにおけるメモリ待ち時間を低減するための方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007507807A JP2007507807A (ja) | 2007-03-29 |
JP4783291B2 true JP4783291B2 (ja) | 2011-09-28 |
Family
ID=34422137
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006534105A Expired - Fee Related JP4783291B2 (ja) | 2003-10-02 | 2004-09-29 | ソフトウェアアプリケーションにおけるメモリ待ち時間を低減するための方法及び装置 |
JP2010286087A Expired - Fee Related JP5118744B2 (ja) | 2003-10-02 | 2010-12-22 | ソフトウェアアプリケーションにおけるメモリ待ち時間を低減するための方法及び装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010286087A Expired - Fee Related JP5118744B2 (ja) | 2003-10-02 | 2010-12-22 | ソフトウェアアプリケーションにおけるメモリ待ち時間を低減するための方法及び装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7328433B2 (ja) |
EP (1) | EP1678610A2 (ja) |
JP (2) | JP4783291B2 (ja) |
CN (1) | CN1890635B (ja) |
WO (1) | WO2005033926A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12032990B2 (en) | 2019-02-19 | 2024-07-09 | Samsung Electronics Co., Ltd. | Electronic device which prefetches application and method therefor |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128489A1 (en) * | 2002-12-31 | 2004-07-01 | Hong Wang | Transformation of single-threaded code to speculative precomputation enabled code |
US20040243767A1 (en) * | 2003-06-02 | 2004-12-02 | Cierniak Michal J. | Method and apparatus for prefetching based upon type identifier tags |
US7707554B1 (en) * | 2004-04-21 | 2010-04-27 | Oracle America, Inc. | Associating data source information with runtime events |
US7506325B2 (en) * | 2004-10-07 | 2009-03-17 | International Business Machines Corporation | Partitioning processor resources based on memory usage |
US20060080661A1 (en) * | 2004-10-07 | 2006-04-13 | International Business Machines Corporation | System and method for hiding memory latency |
US7752016B2 (en) * | 2005-01-11 | 2010-07-06 | Hewlett-Packard Development Company, L.P. | System and method for data analysis |
US7809991B2 (en) * | 2005-01-11 | 2010-10-05 | Hewlett-Packard Development Company, L.P. | System and method to qualify data capture |
US7950012B2 (en) * | 2005-03-16 | 2011-05-24 | Oracle America, Inc. | Facilitating communication and synchronization between main and scout threads |
US7849453B2 (en) * | 2005-03-16 | 2010-12-07 | Oracle America, Inc. | Method and apparatus for software scouting regions of a program |
US7472256B1 (en) | 2005-04-12 | 2008-12-30 | Sun Microsystems, Inc. | Software value prediction using pendency records of predicted prefetch values |
US20070130114A1 (en) * | 2005-06-20 | 2007-06-07 | Xiao-Feng Li | Methods and apparatus to optimize processing throughput of data structures in programs |
US7784040B2 (en) * | 2005-11-15 | 2010-08-24 | International Business Machines Corporation | Profiling of performance behaviour of executed loops |
US7856622B2 (en) * | 2006-03-28 | 2010-12-21 | Inventec Corporation | Computer program runtime bottleneck diagnostic method and system |
US7383402B2 (en) * | 2006-06-05 | 2008-06-03 | Sun Microsystems, Inc. | Method and system for generating prefetch information for multi-block indirect memory access chains |
US7383401B2 (en) * | 2006-06-05 | 2008-06-03 | Sun Microsystems, Inc. | Method and system for identifying multi-block indirect memory access chains |
US7596668B2 (en) * | 2007-02-20 | 2009-09-29 | International Business Machines Corporation | Method, system and program product for associating threads within non-related processes based on memory paging behaviors |
US8447933B2 (en) | 2007-03-06 | 2013-05-21 | Nec Corporation | Memory access control system, memory access control method, and program thereof |
US8886887B2 (en) * | 2007-03-15 | 2014-11-11 | International Business Machines Corporation | Uniform external and internal interfaces for delinquent memory operations to facilitate cache optimization |
US8271963B2 (en) * | 2007-11-19 | 2012-09-18 | Microsoft Corporation | Mimicking of functionality exposed through an abstraction |
CN101482831B (zh) * | 2008-01-08 | 2013-05-15 | 国际商业机器公司 | 对工作线程与辅助线程进行相伴调度的方法和设备 |
US8359589B2 (en) * | 2008-02-01 | 2013-01-22 | International Business Machines Corporation | Helper thread for pre-fetching data |
CN101639799B (zh) * | 2008-07-31 | 2013-02-13 | 英赛特半导体有限公司 | 集成电路表征系统及方法 |
US8312442B2 (en) * | 2008-12-10 | 2012-11-13 | Oracle America, Inc. | Method and system for interprocedural prefetching |
US20100153934A1 (en) * | 2008-12-12 | 2010-06-17 | Peter Lachner | Prefetch for systems with heterogeneous architectures |
US8327325B2 (en) * | 2009-01-14 | 2012-12-04 | International Business Machines Corporation | Programmable framework for automatic tuning of software applications |
CA2680597C (en) * | 2009-10-16 | 2011-06-07 | Ibm Canada Limited - Ibm Canada Limitee | Managing speculative assist threads |
US8572337B1 (en) * | 2009-12-14 | 2013-10-29 | Symantec Corporation | Systems and methods for performing live backups |
JP5541491B2 (ja) * | 2010-01-07 | 2014-07-09 | 日本電気株式会社 | マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法 |
CN101807144B (zh) * | 2010-03-17 | 2014-05-14 | 上海大学 | 一种前瞻多线程并行执行优化方法 |
US8423750B2 (en) | 2010-05-12 | 2013-04-16 | International Business Machines Corporation | Hardware assist thread for increasing code parallelism |
US8468531B2 (en) * | 2010-05-26 | 2013-06-18 | International Business Machines Corporation | Method and apparatus for efficient inter-thread synchronization for helper threads |
US8612730B2 (en) | 2010-06-08 | 2013-12-17 | International Business Machines Corporation | Hardware assist thread for dynamic performance profiling |
US20120005457A1 (en) * | 2010-07-01 | 2012-01-05 | International Business Machines Corporation | Using software-controlled smt priority to optimize data prefetch with assist thread |
FR2962567B1 (fr) * | 2010-07-12 | 2013-04-26 | Bull Sas | Procede d'optimisation d'acces memoire, lors de la reprise d'execution d'une application, dans un microprocesseur comprenant plusieurs coeurs logiques et programme d'ordinateur mettant en oeuvre un tel procede |
US8683129B2 (en) * | 2010-10-21 | 2014-03-25 | Oracle International Corporation | Using speculative cache requests to reduce cache miss delays |
US20130086564A1 (en) * | 2011-08-26 | 2013-04-04 | Cognitive Electronics, Inc. | Methods and systems for optimizing execution of a program in an environment having simultaneously parallel and serial processing capability |
US9021152B2 (en) * | 2013-09-30 | 2015-04-28 | Google Inc. | Methods and systems for determining memory usage ratings for a process configured to run on a device |
KR102525295B1 (ko) | 2016-01-06 | 2023-04-25 | 삼성전자주식회사 | 데이터 관리 방법 및 장치 |
JP6845657B2 (ja) * | 2016-10-12 | 2021-03-24 | 株式会社日立製作所 | 管理サーバ、管理方法及びそのプログラム |
CN106776047B (zh) * | 2017-01-19 | 2019-08-02 | 郑州轻工业学院 | 面向非规则数据密集应用的群组式线程预取方法 |
US20180260255A1 (en) * | 2017-03-10 | 2018-09-13 | Futurewei Technologies, Inc. | Lock-free reference counting |
US11816500B2 (en) * | 2019-03-15 | 2023-11-14 | Intel Corporation | Systems and methods for synchronization of multi-thread lanes |
US11132268B2 (en) | 2019-10-21 | 2021-09-28 | The Boeing Company | System and method for synchronizing communications between a plurality of processors |
US11941250B2 (en) * | 2022-05-06 | 2024-03-26 | Hewlett Packard Enterprise Development Lp | Optimizing application execution based on memory-level parallelism (MLP)-based metrics |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590293A (en) * | 1988-07-20 | 1996-12-31 | Digital Equipment Corporation | Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization |
US5835947A (en) * | 1996-05-31 | 1998-11-10 | Sun Microsystems, Inc. | Central processing unit and method for improving instruction cache miss latencies using an instruction buffer which conditionally stores additional addresses |
US5809566A (en) * | 1996-08-14 | 1998-09-15 | International Business Machines Corporation | Automatic cache prefetch timing with dynamic trigger migration |
US6199154B1 (en) * | 1997-11-17 | 2001-03-06 | Advanced Micro Devices, Inc. | Selecting cache to fetch in multi-level cache system based on fetch address source and pre-fetching additional data to the cache for future access |
US6223276B1 (en) * | 1998-03-31 | 2001-04-24 | Intel Corporation | Pipelined processing of short data streams using data prefetching |
US6643766B1 (en) * | 2000-05-04 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor |
-
2003
- 2003-10-02 US US10/677,414 patent/US7328433B2/en not_active Expired - Fee Related
-
2004
- 2004-09-29 WO PCT/US2004/032212 patent/WO2005033926A2/en active Application Filing
- 2004-09-29 CN CN200480035709XA patent/CN1890635B/zh not_active Expired - Fee Related
- 2004-09-29 JP JP2006534105A patent/JP4783291B2/ja not_active Expired - Fee Related
- 2004-09-29 EP EP04789368A patent/EP1678610A2/en not_active Withdrawn
-
2010
- 2010-12-22 JP JP2010286087A patent/JP5118744B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12032990B2 (en) | 2019-02-19 | 2024-07-09 | Samsung Electronics Co., Ltd. | Electronic device which prefetches application and method therefor |
Also Published As
Publication number | Publication date |
---|---|
CN1890635B (zh) | 2011-03-09 |
JP2007507807A (ja) | 2007-03-29 |
WO2005033926A2 (en) | 2005-04-14 |
EP1678610A2 (en) | 2006-07-12 |
WO2005033926A3 (en) | 2005-12-29 |
US20050086652A1 (en) | 2005-04-21 |
JP5118744B2 (ja) | 2013-01-16 |
US7328433B2 (en) | 2008-02-05 |
JP2011090705A (ja) | 2011-05-06 |
CN1890635A (zh) | 2007-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4783291B2 (ja) | ソフトウェアアプリケーションにおけるメモリ待ち時間を低減するための方法及び装置 | |
Mittal | A survey of recent prefetching techniques for processor caches | |
US8104030B2 (en) | Mechanism to restrict parallelization of loops | |
US7424578B2 (en) | Computer system, compiler apparatus, and operating system | |
Tullsen et al. | Handling long-latency loads in a simultaneous multithreading processor | |
AU2011213795A1 (en) | Efficient cache reuse through application determined scheduling | |
US20070022422A1 (en) | Facilitating communication and synchronization between main and scout threads | |
JP6925473B2 (ja) | 後方互換性のためのアプリケーション固有動作パラメータのリアルタイム調整 | |
JP2007507048A5 (ja) | ||
US8495307B2 (en) | Target memory hierarchy specification in a multi-core computer processing system | |
EP1983439A1 (en) | Prefetching based on streaming hints | |
TW201738737A (zh) | 在執行向量操作時管理位址衝突的設備及方法 | |
KR20160065145A (ko) | 데이터 처리장치 및 추론 벡터 연산의 수행 제어방법 | |
US10318261B2 (en) | Execution of complex recursive algorithms | |
US6662273B1 (en) | Least critical used replacement with critical cache | |
Rabbah et al. | Compiler orchestrated prefetching via speculation and predication | |
US8266605B2 (en) | Method and system for optimizing performance based on cache analysis | |
US9836288B2 (en) | Eager and optimistic evaluation of promises | |
US6760816B1 (en) | Critical loads guided data prefetching | |
US20040255282A1 (en) | Optimizing performance of a program or a computer system | |
Perrot et al. | An optimized GPU‐based 2D convolution implementation | |
Kyriacou et al. | Cacheflow: A short-term optimal cache management policy for data driven multithreading | |
US6782469B1 (en) | Runtime critical load/data ordering | |
Lal et al. | A quantitative study of locality in GPU caches | |
Prisagjanec et al. | Reducing competitive cache misses in modern processor architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090714 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091013 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100824 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101222 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20101224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110525 |
|
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: 20110621 |
|
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: 20110708 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140715 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |