JP2016534476A - キャッシュ占有決定および命令スケジューリングのための方法および装置 - Google Patents
キャッシュ占有決定および命令スケジューリングのための方法および装置 Download PDFInfo
- Publication number
- JP2016534476A JP2016534476A JP2016542028A JP2016542028A JP2016534476A JP 2016534476 A JP2016534476 A JP 2016534476A JP 2016542028 A JP2016542028 A JP 2016542028A JP 2016542028 A JP2016542028 A JP 2016542028A JP 2016534476 A JP2016534476 A JP 2016534476A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- processor
- stored
- level
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000015654 memory Effects 0.000 claims description 61
- 238000004891 communication Methods 0.000 claims description 10
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 14
- 238000007667 floating Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 229910000831 Steel Inorganic materials 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 101150090341 dst1 gene Proteins 0.000 description 2
- 239000010959 steel Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
図1Aは、本発明の複数の実施形態による、例示的なインオーダパイプライン、および例示的なレジスタリネーム、アウトオブオーダ発行/実行パイプラインの双方を図示するブロック図である。図1Bは、本発明の複数の実施形態による、プロセッサに含まれるインオーダアーキテクチャコアの例示的な実施形態、および例示的なレジスタリネーム、アウトオブオーダ発行/実行アーキテクチャコアの双方を図示するブロック図である。図1A〜図1Bにおける実線で囲まれた複数のボックスは、インオーダパイプラインおよびインオーダコアを図示するが、複数の破線ボックスの任意選択の追加により、レジスタリネーム、アウトオブオーダ発行/実行パイプライン、およびコアを図示する。インオーダ態様がアウトオブオーダ態様のサブセットであると仮定して、アウトオブオーダ態様が説明される。図1Aにおいて、プロセッサパイプライン100は、フェッチステージ102、長さデコードステージ104、デコードステージ106、割り当てステージ108、リネームステージ110、スケジューリングステージ112(ディスパッチもしくは発行ステージとしても既知)、レジスタ読み取り/メモリ読み取りステージ114、実行ステージ116、ライトバック/メモリライトステージ118、例外処理ステージ122、およびコミットステージを含む。
本発明の一実施形態は、データに関連するアドレスを用いて、データの項目が現在、キャッシュに格納されているか否かを判断し、この判断に基づいて1または複数の後続のオペレーション(例えば、マクロ命令、マイクロオペレーション等)をスケジューリングする。「スケジューリング」という用語は、本明細書において広範に用いられ、作業の特定部分があるスレッドから別のスレッド(例えば、スレッドが以下の例に説明される複数の他のスレッドの作業待ち行列から作業をスティールするように見える場合の)に再割り当てすることができるか否かに関する決定を含めて、特定の命令、マイクロオペレーションが実行されるべきか否か、および/またはいつ実行されるべきかに関する任意の決定を指す。
INC ACHE SRC1. DST1
データのアドレスは、ソースレジスタSRC1内に格納され、判断の複数の結果(すなわち、データがキャッシュされているか否か、どのレベルで、予期されるアクセス「時間」、アドレスが「遠すぎる」ことの表示等)がデスティネーションレジスタDST1に書き込まれる。
Claims (21)
- 少なくとも1つのレベル1(L1)キャッシュを含むデータをキャッシュするための複数のキャッシュレベルの階層と、
1または複数の後続のオペレーションに関連するデータが前記複数のキャッシュレベルのうち1つに格納されているか否かを判断するキャッシュ占有決定ロジックと、
前記1または複数の後続のオペレーションに関連するデータが前記複数のキャッシュレベルに格納されているか否かの前記判断に基づいて、前記1または複数の後続のオペレーションの実行をスケジューリングするスケジューリングロジックとを備える、プロセッサ。 - 前記キャッシュ占有決定ロジックは、前記1または複数の後続の命令に関連するデータが前記複数のキャッシュレベルのうち1つに格納されているか否かを判断する、キャッシュ占有命令を実行する実行ロジックを含む、請求項1に記載のプロセッサ。
- 前記キャッシュ占有命令は、前記1または複数の後続の命令の前記データに関連する1または複数のアドレスを読み取り、前記データが前記複数のキャッシュレベルのうち1つに格納されているか否かを判断するべく、前記1または複数のアドレスを用いる、請求項2に記載のプロセッサ。
- 前記1または複数のアドレスを用いることは、前記1または複数のアドレスを用いたキャッシュ検索オペレーションを実行することを含む、請求項3に記載のプロセッサ。
- 前記キャッシュ占有決定ロジックは、前記1または複数の後続のオペレーションに関連する前記データが格納される特定の前記複数のキャッシュレベルを更に決定する、請求項1に記載のプロセッサ。
- 前記スケジューリングロジックは、前記1または複数の後続のオペレーションの前記データが格納される特定の前記複数のキャッシュレベルの前記決定に基づいて、前記1または複数の後続のオペレーションの実行をスケジューリングする、請求項5に記載のプロセッサ。
- 前記スケジューリングロジックは、キャッシュ階層において比較的低次のデータおよび/またはキャッシュレベルにないデータを用いた複数のオペレーションの前に、前記キャッシュ階層において比較的高次のデータを用いた複数のオペレーションをスケジューリングする、請求項6に記載のプロセッサ。
- 前記キャッシュ占有決定ロジックは、前記データにアクセスするのに予期される時間、および指定閾値に基づいた前記データが遠すぎるか否かの表示のうち少なくとも1つを更に決定する、請求項1に記載のプロセッサ。
- 前記スケジューリングロジックは、前記決定された、前記データにアクセスするのに予期される時間、および指定閾値に基づいた、前記データが遠すぎるか否かの表示のうち少なくとも1つに基づいて、前記1または複数の後続のオペレーションをスケジューリングする、請求項8に記載のプロセッサ。
- 前記複数のキャッシュレベルは、レベル2(L2)キャッシュおよび低次のレベルのキャッシュ(LLC)を更に含む、請求項1に記載のプロセッサ。
- 少なくとも1つのレベル1(L1)キャッシュを含む複数のキャッシュレベルの階層内のデータをキャッシュする段階と、
1または複数の後続のオペレーションに関連するデータが前記複数のキャッシュレベルのうち1つに格納されているか否かを判断する段階と、
前記1または複数の後続のオペレーションに関連するデータが前記複数のキャッシュレベルに格納されているか否かの前記判断に基づいて、前記1または複数の後続のオペレーションの実行をスケジューリングする段階とを備える、方法。 - 前記1または複数の後続の命令に関連するデータが前記複数のキャッシュレベルのうち1つに格納されているか否かを判断する、キャッシュ占有命令を実行する段階を更に備える、請求項11に記載の方法。
- 前記キャッシュ占有命令は、前記1または複数の後続の命令の前記データに関連する1または複数のアドレスを読み取り、前記データが前記複数のキャッシュレベルのうち1つに格納されているか否かを判断するべく、前記1または複数のアドレスを用いる、請求項12に記載の方法。
- 1または複数のアドレスを用いる段階は、前記1または複数のアドレス用いたキャッシュ検索オペレーションを実行する段階を備える、請求項13に記載の方法。
- 前記1または複数の後続のオペレーションに関連する前記データが格納される特定の前記複数のキャッシュレベルを決定する段階を更に備える、請求項11に記載の方法。
- 前記1または複数の後続のオペレーションの前記データが格納される特定の前記複数のキャッシュレベルの前記決定に基づいて、前記1または複数の後続のオペレーションの実行をスケジューリングする段階を更に備える、請求項15に記載の方法。
- キャッシュ階層において比較的低次のデータおよび/またはキャッシュレベルにないデータを用いた複数のオペレーションの前に、キャッシュ階層において比較的高次のデータを用いた複数のオペレーションをスケジューリングする段階を更に備える、請求項16に記載の方法。
- 前記データにアクセスするのに予期される時間、および指定閾値に基づいた前記データが遠すぎるか否かの表示のうち少なくとも1つを決定する段階を更に備える、請求項11に記載の方法。
- 前記決定された、前記データにアクセスするのに予期される時間、および指定閾値に基づいた、前記データが遠すぎるか否かの表示のうち少なくとも1つに基づいて、前記1または複数の後続のオペレーションをスケジューリングする段階を更に備える、請求項18に記載の方法。
- 前記複数のキャッシュレベルは、レベル2(L2)キャッシュおよび低次のレベルのキャッシュ(LLC)を更に含む、請求項11に記載の方法。
- システムであって、
プログラムコードおよびデータを格納するためのメモリと、
1または複数の周辺機器デバイスと通信するための入力/出力(IO)通信インターフェースと、
前記システムをネットワークに通信可能に結合するためのネットワーク通信インターフェースと、
プロセッサとを備え、
前記プロセッサは、
少なくとも1つのレベル1(L1)キャッシュを含む、データをキャッシュするための複数のキャッシュレベルの階層と、
1または複数の後続のオペレーションに関連するデータが前記複数のキャッシュレベルのうち1つに格納されているか否かを判断する、キャッシュ占有決定ロジックと、
前記1または複数の後続のオペレーションに関連するデータが前記複数のキャッシュレベルに格納されているか否かの前記判断に基づいて、前記1または複数の後続のオペレーションの実行をスケジューリングするスケジューリングロジックとを有する、システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/035,231 US10140210B2 (en) | 2013-09-24 | 2013-09-24 | Method and apparatus for cache occupancy determination and instruction scheduling |
US14/035,231 | 2013-09-24 | ||
PCT/US2014/054491 WO2015047700A1 (en) | 2013-09-24 | 2014-09-08 | Method and apparatus for cache occupancy determination and instruction scheduling |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016534476A true JP2016534476A (ja) | 2016-11-04 |
JP6375379B2 JP6375379B2 (ja) | 2018-08-15 |
Family
ID=52692054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016542028A Expired - Fee Related JP6375379B2 (ja) | 2013-09-24 | 2014-09-08 | キャッシュ占有決定および命令スケジューリングのための方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10140210B2 (ja) |
EP (1) | EP3049924B1 (ja) |
JP (1) | JP6375379B2 (ja) |
KR (1) | KR101804908B1 (ja) |
CN (1) | CN105453041B (ja) |
TW (1) | TWI536165B (ja) |
WO (1) | WO2015047700A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI621015B (zh) * | 2015-09-01 | 2018-04-11 | 慧榮科技股份有限公司 | 讀取及寫入命令排程方法以及使用該方法的裝置 |
TWI588652B (zh) * | 2015-09-01 | 2017-06-21 | 慧榮科技股份有限公司 | 讀取及寫入命令排程方法以及使用該方法的裝置 |
US10452395B2 (en) | 2016-07-20 | 2019-10-22 | International Business Machines Corporation | Instruction to query cache residency |
US10621095B2 (en) | 2016-07-20 | 2020-04-14 | International Business Machines Corporation | Processing data based on cache residency |
US10521350B2 (en) | 2016-07-20 | 2019-12-31 | International Business Machines Corporation | Determining the effectiveness of prefetch instructions |
US10169239B2 (en) | 2016-07-20 | 2019-01-01 | International Business Machines Corporation | Managing a prefetch queue based on priority indications of prefetch requests |
US9946646B2 (en) * | 2016-09-06 | 2018-04-17 | Advanced Micro Devices, Inc. | Systems and method for delayed cache utilization |
US10095493B2 (en) | 2016-12-14 | 2018-10-09 | International Business Machines Corporation | Call sequence generation based on type of routine |
US10241769B2 (en) | 2016-12-14 | 2019-03-26 | International Business Machines Corporation | Marking sibling caller routines |
US20180165073A1 (en) | 2016-12-14 | 2018-06-14 | International Business Machines Corporation | Context information based on type of routine being called |
US10180827B2 (en) | 2016-12-14 | 2019-01-15 | International Business Machines Corporation | Suppressing storing of context information |
US10235190B2 (en) | 2016-12-14 | 2019-03-19 | International Business Machines Corporation | Executing instructions to store context information based on routine to be executed |
US10152338B2 (en) | 2016-12-14 | 2018-12-11 | International Business Machines Corporation | Marking external sibling caller routines |
US10372452B2 (en) * | 2017-03-14 | 2019-08-06 | Samsung Electronics Co., Ltd. | Memory load to load fusing |
CN108279928B (zh) * | 2018-01-30 | 2021-03-19 | 上海兆芯集成电路有限公司 | 微指令调度方法及使用此方法的装置 |
CN111752868B (zh) * | 2019-03-27 | 2024-06-18 | 北京沃东天骏信息技术有限公司 | Lru缓存的实现方法、装置、计算机可读存储介质及设备 |
CN113138798A (zh) * | 2020-01-18 | 2021-07-20 | 佛山市云米电器科技有限公司 | 多场景下的指令执行方法、装置、设备及存储介质 |
CN116755782B (zh) * | 2023-08-18 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 一种指令调度的方法、装置、设备、存储介质及程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1091455A (ja) * | 1996-03-14 | 1998-04-10 | Internatl Business Mach Corp <Ibm> | キャッシュ・ヒット/ミスにおける分岐 |
JPH11288373A (ja) * | 1998-01-30 | 1999-10-19 | Hewlett Packard Co <Hp> | コンピュ―タ・システム |
WO2002069150A1 (fr) * | 2001-02-27 | 2002-09-06 | International Business Machines Corporation | Microprocesseur et procede de distribution d'ordres d'execution d'instructions |
JP2010026583A (ja) * | 2008-07-15 | 2010-02-04 | Hiroshima Ichi | プロセッサ |
US20100095300A1 (en) * | 2008-10-14 | 2010-04-15 | Vmware, Inc. | Online Computation of Cache Occupancy and Performance |
JP2011150691A (ja) * | 2009-12-25 | 2011-08-04 | Fujitsu Ltd | 演算処理装置、情報処理装置及び制御方法 |
US20110231857A1 (en) * | 2010-03-19 | 2011-09-22 | Vmware, Inc. | Cache performance prediction and scheduling on commodity processors with shared caches |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5943691A (en) * | 1995-12-27 | 1999-08-24 | Sun Microsystems, Inc. | Determination of array padding using collision vectors |
US5724586A (en) * | 1996-09-30 | 1998-03-03 | Nec Research Institute, Inc. | Method for improving cache locality of a computer program |
US6073230A (en) * | 1997-06-11 | 2000-06-06 | Advanced Micro Devices, Inc. | Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches |
US6237059B1 (en) | 1997-11-26 | 2001-05-22 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system interactions among contexts in a computer system |
GB2348306B (en) | 1999-03-25 | 2003-07-30 | Ibm | Data processing systems and method for processing tasks in such systems |
EP1586039A2 (en) | 2002-11-22 | 2005-10-19 | Koninklijke Philips Electronics N.V. | Using a cache miss pattern to address a stride prediction table |
US8069336B2 (en) * | 2003-12-03 | 2011-11-29 | Globalfoundries Inc. | Transitioning from instruction cache to trace cache on label boundaries |
JP4520788B2 (ja) | 2004-07-29 | 2010-08-11 | 富士通株式会社 | マルチスレッドプロセッサ |
US7392340B1 (en) * | 2005-03-21 | 2008-06-24 | Western Digital Technologies, Inc. | Disk drive employing stream detection engine to enhance cache management policy |
US7430642B2 (en) * | 2005-06-10 | 2008-09-30 | Freescale Semiconductor, Inc. | System and method for unified cache access using sequential instruction information |
JP4651671B2 (ja) | 2005-08-09 | 2011-03-16 | 富士通株式会社 | スケジュール制御プログラム及びスケジュール制御方法 |
US20070180158A1 (en) | 2006-02-01 | 2007-08-02 | International Business Machines Corporation | Method for command list ordering after multiple cache misses |
US20070186049A1 (en) | 2006-02-03 | 2007-08-09 | International Business Machines Corporation | Self prefetching L2 cache mechanism for instruction lines |
US7447879B2 (en) | 2006-02-09 | 2008-11-04 | International Business Machines Corporation | Scheduling instructions in a cascaded delayed execution pipeline to minimize pipeline stalls caused by a cache miss |
US7689773B2 (en) * | 2006-11-30 | 2010-03-30 | Sun Microsystems, Inc. | Methods and apparatus for estimating fair cache miss rates on a chip multiprocessor |
WO2009029549A2 (en) * | 2007-08-24 | 2009-03-05 | Virtualmetrix, Inc. | Method and apparatus for fine grain performance management of computer systems |
US7890702B2 (en) * | 2007-11-26 | 2011-02-15 | Advanced Micro Devices, Inc. | Prefetch instruction extensions |
US8392651B2 (en) * | 2008-08-20 | 2013-03-05 | Mips Technologies, Inc. | Data cache way prediction |
US9244732B2 (en) * | 2009-08-28 | 2016-01-26 | Vmware, Inc. | Compensating threads for microarchitectural resource contentions by prioritizing scheduling and execution |
US9639479B2 (en) | 2009-09-23 | 2017-05-02 | Nvidia Corporation | Instructions for managing a parallel cache hierarchy |
US20110072218A1 (en) * | 2009-09-24 | 2011-03-24 | Srilatha Manne | Prefetch promotion mechanism to reduce cache pollution |
US8677071B2 (en) * | 2010-03-26 | 2014-03-18 | Virtualmetrix, Inc. | Control of processor cache memory occupancy |
US9110810B2 (en) | 2011-12-06 | 2015-08-18 | Nvidia Corporation | Multi-level instruction cache prefetching |
US9311098B2 (en) * | 2013-05-07 | 2016-04-12 | Apple Inc. | Mechanism for reducing cache power consumption using cache way prediction |
-
2013
- 2013-09-24 US US14/035,231 patent/US10140210B2/en active Active
-
2014
- 2014-09-02 TW TW103130266A patent/TWI536165B/zh active
- 2014-09-08 CN CN201480046896.5A patent/CN105453041B/zh active Active
- 2014-09-08 EP EP14849028.7A patent/EP3049924B1/en active Active
- 2014-09-08 JP JP2016542028A patent/JP6375379B2/ja not_active Expired - Fee Related
- 2014-09-08 KR KR1020167004467A patent/KR101804908B1/ko active IP Right Grant
- 2014-09-08 WO PCT/US2014/054491 patent/WO2015047700A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1091455A (ja) * | 1996-03-14 | 1998-04-10 | Internatl Business Mach Corp <Ibm> | キャッシュ・ヒット/ミスにおける分岐 |
JPH11288373A (ja) * | 1998-01-30 | 1999-10-19 | Hewlett Packard Co <Hp> | コンピュ―タ・システム |
WO2002069150A1 (fr) * | 2001-02-27 | 2002-09-06 | International Business Machines Corporation | Microprocesseur et procede de distribution d'ordres d'execution d'instructions |
JP2010026583A (ja) * | 2008-07-15 | 2010-02-04 | Hiroshima Ichi | プロセッサ |
US20100095300A1 (en) * | 2008-10-14 | 2010-04-15 | Vmware, Inc. | Online Computation of Cache Occupancy and Performance |
JP2011150691A (ja) * | 2009-12-25 | 2011-08-04 | Fujitsu Ltd | 演算処理装置、情報処理装置及び制御方法 |
US20110231857A1 (en) * | 2010-03-19 | 2011-09-22 | Vmware, Inc. | Cache performance prediction and scheduling on commodity processors with shared caches |
Also Published As
Publication number | Publication date |
---|---|
CN105453041A (zh) | 2016-03-30 |
TWI536165B (zh) | 2016-06-01 |
TW201516681A (zh) | 2015-05-01 |
US10140210B2 (en) | 2018-11-27 |
JP6375379B2 (ja) | 2018-08-15 |
CN105453041B (zh) | 2019-10-01 |
KR20160033768A (ko) | 2016-03-28 |
WO2015047700A1 (en) | 2015-04-02 |
EP3049924A4 (en) | 2017-06-28 |
KR101804908B1 (ko) | 2017-12-07 |
US20150089139A1 (en) | 2015-03-26 |
EP3049924B1 (en) | 2020-12-23 |
EP3049924A1 (en) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6375379B2 (ja) | キャッシュ占有決定および命令スケジューリングのための方法および装置 | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
US9619750B2 (en) | Method and apparatus for store dependence prediction | |
US9361233B2 (en) | Method and apparatus for shared line unified cache | |
CN108885586B (zh) | 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令 | |
US9904553B2 (en) | Method and apparatus for implementing dynamic portbinding within a reservation station | |
US9158702B2 (en) | Apparatus and method for implementing a scratchpad memory using priority hint | |
JP5985526B2 (ja) | システムコールのためのロバスト且つ高性能な命令 | |
US9183161B2 (en) | Apparatus and method for page walk extension for enhanced security checks | |
US11531562B2 (en) | Systems, methods, and apparatuses for resource monitoring | |
US11182298B2 (en) | System, apparatus and method for dynamic profiling in a processor | |
US10761979B2 (en) | Bit check processors, methods, systems, and instructions to check a bit with an indicated check bit value | |
CN108027726B (zh) | 用于在远程处理器上实施原子动作的硬件机制 | |
US20180165200A1 (en) | System, apparatus and method for dynamic profiling in a processor | |
EP3716057A1 (en) | Method and apparatus for a multi-level reservation station with instruction recirculation | |
US9710389B2 (en) | Method and apparatus for memory aliasing detection in an out-of-order instruction execution platform | |
CN112148106A (zh) | 用于处理器的混合预留站的系统、装置和方法 | |
US20210200538A1 (en) | Dual write micro-op queue | |
US20160378497A1 (en) | Systems, Methods, and Apparatuses for Thread Selection and Reservation Station Binding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170314 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20170614 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20170814 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180507 |
|
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: 20180522 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180723 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6375379 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |