JP2016509320A - データをプリフェッチするためのコンピュータ・システム、コンピュータ・プログラム、コンピュータ実施方法 - Google Patents
データをプリフェッチするためのコンピュータ・システム、コンピュータ・プログラム、コンピュータ実施方法 Download PDFInfo
- Publication number
- JP2016509320A JP2016509320A JP2015560810A JP2015560810A JP2016509320A JP 2016509320 A JP2016509320 A JP 2016509320A JP 2015560810 A JP2015560810 A JP 2015560810A JP 2015560810 A JP2015560810 A JP 2015560810A JP 2016509320 A JP2016509320 A JP 2016509320A
- Authority
- JP
- Japan
- Prior art keywords
- core
- parent
- scout
- parent core
- shared cache
- 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
- 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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
-
- 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/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/622—State-only directory, i.e. not recording identity of sharing or owning nodes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
Description
Claims (20)
- データをプリフェッチするためのコンピュータ・システムであって、
チップを含み、前記チップは、
前記チップ上に位置する少なくとも1つのスカウト・コアと、
前記チップ上に位置する少なくとも1つの親コアと、
前記チップ上に位置し、前記スカウト・コアと前記親コアに共通する共有キャッシュを含み、
前記システムは方法を行うように構成され、前記方法は、
前記親コアを監視するために、前記親コアから独立して実行するプリフェッチ・コードを前記スカウト・コアによって実行するステップと、
前記親コアの監視に基づいて、少なくとも1つの指定されたデータ・パターンが前記親コアにおいて発生したことを前記スカウト・コアによって判定するステップと、
前記判定に基づき、前記スカウト・コアから前記共有キャッシュへプリフェッチ要求を送るステップと、
前記プリフェッチ要求によって示されるデータ・セットを前記共有キャッシュによって前記親コアへ送るステップを含む、
コンピュータ・システム。 - 前記プリフェッチ要求が前記親コアに代わって行われたことを、前記親コアに通知するステップをさらに含む、請求項1に記載のコンピュータ・システム。
- 前記スカウト・コアは、前記プリフェッチ要求によって要求された前記データを前記親コアに位置するキャッシュにおいてどのようにルーティングおよび記憶するかを前記共有キャッシュに通知する、請求項1または2に記載のコンピュータ・システム。
- 前記チップは、前記共有キャッシュとそれぞれ通信している少なくとも2つの親コアを含む、請求項1ないし3のいずれかに記載のコンピュータ・システム。
- 前記チップは、前記共有キャッシュと通信している少なくとも2つのスカウト・コアを含み、前記スカウト・コアは、異なる指定されたデータ・パターンについて前記親コアを監視する、請求項1ないし4のいずれかに記載のコンピュータ・システム。
- 前記スカウト・コアは、フェッチ監視バスを通して前記親コアを監視し、前記フェッチ監視バスは、前記スカウト・コアを前記共有キャッシュに接続する、請求項1ないし5のいずれかに記載のコンピュータ・システム。
- 前記指定されたデータ・パターンは、前記親コアに位置するキャッシュにおいてキャッシュ・ミスが発生することである、請求項1ないし6のいずれかに記載のコンピュータ・システム。
- 前記指定されたデータ・パターンは、前記親コアのチェックポイント・アドレスである、請求項1ないし6のいずれかに記載のコンピュータ・システム。
- 少なくとも1つのスカウト・コアと、少なくとも1つの親コアと、前記スカウト・コアと前記親コアに共通する共有キャッシュとを有するチップ上で、データをプリフェッチするためのコンピュータ・プログラムであって、
前記親コアを監視するために、前記親コアから独立して実行するプリフェッチ・コードを前記スカウト・コアによって実行するステップと、
前記親コアの監視に基づいて、少なくとも1つの指定されたデータ・パターンが前記親コアにおいて発生したことを前記スカウト・コアによって判定するステップと、
前記判定に基づき、前記スカウト・コアから前記共有キャッシュへプリフェッチ要求を送るステップと、
前記プリフェッチ要求によって示されるデータ・セットを前記共有キャッシュによって前記親コアへ送るステップと、
を処理回路に実行させる、コンピュータ・プログラム。 - 前記プリフェッチ要求が前記親コアに代わって行われたことを、前記親コアに通知するステップをさらに含む、請求項9に記載のコンピュータ・プログラム。
- 前記スカウト・コアは、前記プリフェッチ要求によって要求された前記データを前記親コアに位置するキャッシュにおいてどのようにルーティングおよび記憶するかを前記共有キャッシュに通知する、請求項9または10に記載のコンピュータ・プログラム。
- 前記チップは、前記共有キャッシュとそれぞれ通信している少なくとも2つの親コアを含む、請求項9ないし11のいずれかに記載のコンピュータ・プログラム。
- 前記チップは、前記共有キャッシュと通信している少なくとも2つのスカウト・コアを含み、前記スカウト・コアは、異なる指定されたデータ・パターンについて前記親コアを監視する、請求項9ないし12のいずれかに記載のコンピュータ・プログラム。
- 前記スカウト・コアは、フェッチ監視バスを通して前記親コアを監視し、前記フェッチ監視バスは、前記スカウト・コアを前記共有キャッシュに接続する、請求項9ないし13のいずれかに記載のコンピュータ・プログラム。
- 前記指定されたデータ・パターンは、前記親コアに位置するキャッシュにおいてキャッシュ・ミスが発生することである、請求項9ないし14のいずれかに記載のコンピュータ・プログラム。
- 少なくとも1つのスカウト・コアと、少なくとも1つの親コアと、前記スカウト・コアと前記親コアに共通する共有キャッシュとを有するチップ上で、データをプリフェッチするためのコンピュータ実施方法であって、
前記親コアを監視するために、前記親コアから独立して実行するプリフェッチ・コードを前記スカウト・コアによって実行するステップと、
前記親コアの監視に基づいて、少なくとも1つの指定されたデータ・パターンが前記親コアにおいて発生したことを前記スカウト・コアによって判定するステップと、
前記判定に基づき、前記スカウト・コアから前記共有キャッシュへプリフェッチ要求を送るステップと、
前記プリフェッチ要求によって示されるデータ・セットを前記共有キャッシュによって前記親コアへ送るステップと、
を含む方法。 - 前記プリフェッチ要求が前記親コアに代わって行われたことを、前記親コアに通知するステップをさらに含む、請求項16に記載の方法。
- 前記スカウト・コアは、前記プリフェッチ要求によって要求された前記データを前記親コアに位置するキャッシュにおいてどのようにルーティングおよび記憶するかを前記共有キャッシュに通知する、請求項16または17に記載の方法。
- 前記チップは、前記共有キャッシュとそれぞれ通信している少なくとも2つの親コアを含む、請求項16ないし18のいずれかに記載の方法。
- 前記チップは、前記共有キャッシュと通信している少なくとも2つのスカウト・コアを含み、前記スカウト・コアは、異なる指定されたデータ・パターンについて前記親コアを監視する、請求項16ないし19のいずれかに記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/785,377 | 2013-03-05 | ||
US13/785,377 US9116816B2 (en) | 2013-03-05 | 2013-03-05 | Prefetching for a parent core in a multi-core chip |
PCT/IB2014/058955 WO2014136003A1 (en) | 2013-03-05 | 2014-02-13 | Prefetching for parent core in multi-core chip |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016509320A true JP2016509320A (ja) | 2016-03-24 |
JP6320431B2 JP6320431B2 (ja) | 2018-05-09 |
Family
ID=51489358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015560810A Active JP6320431B2 (ja) | 2013-03-05 | 2014-02-13 | データをプリフェッチするためのコンピュータ・システム、コンピュータ・プログラム、コンピュータ実施方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9116816B2 (ja) |
JP (1) | JP6320431B2 (ja) |
CN (1) | CN104981786B (ja) |
DE (1) | DE112014000336T5 (ja) |
GB (1) | GB2525831B (ja) |
WO (1) | WO2014136003A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116816B2 (en) * | 2013-03-05 | 2015-08-25 | International Business Machines Corporation | Prefetching for a parent core in a multi-core chip |
US10013344B2 (en) * | 2014-01-14 | 2018-07-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Enhanced SSD caching |
DE112015006944B4 (de) * | 2015-09-25 | 2023-03-23 | Intel Corporation | Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe |
GB2544474B (en) * | 2015-11-16 | 2020-02-26 | Advanced Risc Mach Ltd | Event triggered programmable prefetcher |
CN107783911B (zh) * | 2016-08-31 | 2021-06-08 | 华为技术有限公司 | 一种数据过滤方法及终端设备 |
CN108763011B (zh) * | 2018-03-27 | 2021-09-07 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | SoC芯片核数检测方法、装置、系统及存储介质 |
CN113342709B (zh) * | 2021-06-04 | 2023-02-21 | 海光信息技术股份有限公司 | 在多处理器系统中访问数据的方法和多处理器系统 |
CN114217861A (zh) * | 2021-12-06 | 2022-03-22 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子装置和存储介质 |
CN114297098A (zh) * | 2021-12-31 | 2022-04-08 | 上海阵量智能科技有限公司 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6470427B1 (en) * | 1999-11-09 | 2002-10-22 | International Business Machines Corporation | Programmable agent and method for managing prefetch queues |
US20040148491A1 (en) * | 2003-01-28 | 2004-07-29 | Sun Microsystems, Inc. | Sideband scout thread processor |
US20070156971A1 (en) * | 2005-12-29 | 2007-07-05 | Sistla Krishnakanth V | Monitor implementation in a multicore processor with inclusive LLC |
JP2008015668A (ja) * | 2006-07-04 | 2008-01-24 | Toyota Infotechnology Center Co Ltd | タスク管理装置 |
JP2008059057A (ja) * | 2006-08-29 | 2008-03-13 | Hitachi Ltd | 計算機システム及びプロセッサの制御方法 |
JP2009258984A (ja) * | 2008-04-16 | 2009-11-05 | Toshiba Corp | 情報処理装置およびロード制御方法 |
US20100241811A1 (en) * | 2009-03-20 | 2010-09-23 | Yan Solihin | Multiprocessor Cache Prefetch With Off-Chip Bandwidth Allocation |
JP2010217992A (ja) * | 2009-03-13 | 2010-09-30 | Mitsubishi Electric Corp | キャッシュ制御装置及びキャッシュ制御方法及びキャッシュ制御プログラム |
US20110113199A1 (en) * | 2009-11-09 | 2011-05-12 | Tang Puqi P | Prefetch optimization in shared resource multi-core systems |
US20110296431A1 (en) * | 2010-05-25 | 2011-12-01 | International Business Machines Corporation | Method and apparatus for efficient helper thread state initialization using inter-thread register copy |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8230422B2 (en) | 2005-01-13 | 2012-07-24 | International Business Machines Corporation | Assist thread for injecting cache memory in a microprocessor |
US7950012B2 (en) | 2005-03-16 | 2011-05-24 | Oracle America, Inc. | Facilitating communication and synchronization between main and scout threads |
US7730263B2 (en) | 2006-01-20 | 2010-06-01 | Cornell Research Foundation, Inc. | Future execution prefetching technique and architecture |
US7509481B2 (en) | 2006-03-03 | 2009-03-24 | Sun Microsystems, Inc. | Patchable and/or programmable pre-decode |
US20080141268A1 (en) | 2006-12-12 | 2008-06-12 | Tirumalai Partha P | Utility function execution using scout threads |
US7975107B2 (en) | 2007-06-22 | 2011-07-05 | Microsoft Corporation | Processor cache management with software input via an intermediary |
US7962314B2 (en) | 2007-12-18 | 2011-06-14 | Global Foundries Inc. | Mechanism for profiling program software running on a processor |
US8707016B2 (en) | 2008-02-01 | 2014-04-22 | International Business Machines Corporation | Thread partitioning in a multi-core environment |
US8775778B2 (en) | 2008-02-01 | 2014-07-08 | International Business Machines Corporation | Use of a helper thread to asynchronously compute incoming data |
US9672019B2 (en) | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US8407707B2 (en) | 2009-05-18 | 2013-03-26 | Lsi Corporation | Task queuing in a network communications processor architecture |
US8176349B2 (en) | 2009-04-30 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | Look-ahead processor for signaling suitable non-idle performance state for main processor |
US8752008B2 (en) | 2009-09-02 | 2014-06-10 | Advanced Micro Devices, Inc. | Lightweight service based dynamic binary rewriter framework |
US8904114B2 (en) | 2009-11-24 | 2014-12-02 | Empire Technology Development Llc | Shared upper level cache architecture |
US8341357B2 (en) | 2010-03-16 | 2012-12-25 | Oracle America, Inc. | Pre-fetching for a sibling cache |
US9116816B2 (en) * | 2013-03-05 | 2015-08-25 | International Business Machines Corporation | Prefetching for a parent core in a multi-core chip |
-
2013
- 2013-03-05 US US13/785,377 patent/US9116816B2/en active Active
-
2014
- 2014-02-13 DE DE112014000336.0T patent/DE112014000336T5/de active Pending
- 2014-02-13 CN CN201480008240.4A patent/CN104981786B/zh active Active
- 2014-02-13 GB GB1516351.2A patent/GB2525831B/en active Active
- 2014-02-13 JP JP2015560810A patent/JP6320431B2/ja active Active
- 2014-02-13 WO PCT/IB2014/058955 patent/WO2014136003A1/en active Application Filing
- 2014-09-30 US US14/501,697 patent/US9128852B2/en not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6470427B1 (en) * | 1999-11-09 | 2002-10-22 | International Business Machines Corporation | Programmable agent and method for managing prefetch queues |
US20040148491A1 (en) * | 2003-01-28 | 2004-07-29 | Sun Microsystems, Inc. | Sideband scout thread processor |
US20070156971A1 (en) * | 2005-12-29 | 2007-07-05 | Sistla Krishnakanth V | Monitor implementation in a multicore processor with inclusive LLC |
JP2008015668A (ja) * | 2006-07-04 | 2008-01-24 | Toyota Infotechnology Center Co Ltd | タスク管理装置 |
JP2008059057A (ja) * | 2006-08-29 | 2008-03-13 | Hitachi Ltd | 計算機システム及びプロセッサの制御方法 |
JP2009258984A (ja) * | 2008-04-16 | 2009-11-05 | Toshiba Corp | 情報処理装置およびロード制御方法 |
JP2010217992A (ja) * | 2009-03-13 | 2010-09-30 | Mitsubishi Electric Corp | キャッシュ制御装置及びキャッシュ制御方法及びキャッシュ制御プログラム |
US20100241811A1 (en) * | 2009-03-20 | 2010-09-23 | Yan Solihin | Multiprocessor Cache Prefetch With Off-Chip Bandwidth Allocation |
US20110113199A1 (en) * | 2009-11-09 | 2011-05-12 | Tang Puqi P | Prefetch optimization in shared resource multi-core systems |
US20110296431A1 (en) * | 2010-05-25 | 2011-12-01 | International Business Machines Corporation | Method and apparatus for efficient helper thread state initialization using inter-thread register copy |
Also Published As
Publication number | Publication date |
---|---|
US20140258640A1 (en) | 2014-09-11 |
WO2014136003A1 (en) | 2014-09-12 |
GB2525831A (en) | 2015-11-04 |
US9128852B2 (en) | 2015-09-08 |
JP6320431B2 (ja) | 2018-05-09 |
CN104981786A (zh) | 2015-10-14 |
US20150019820A1 (en) | 2015-01-15 |
GB201516351D0 (en) | 2015-10-28 |
US9116816B2 (en) | 2015-08-25 |
DE112014000336T5 (de) | 2015-09-17 |
GB2525831B (en) | 2016-03-23 |
CN104981786B (zh) | 2018-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6320431B2 (ja) | データをプリフェッチするためのコンピュータ・システム、コンピュータ・プログラム、コンピュータ実施方法 | |
US9792120B2 (en) | Anticipated prefetching for a parent core in a multi-core chip | |
JP6234484B2 (ja) | チップ上のデータをプリフェッチするためのコンピュータ・システム、コンピュータ・プログラム、およびコンピュータ実装方法 | |
US9298619B2 (en) | Cache line history tracking using an instruction address register file storing memory location identifier | |
US8954678B2 (en) | Automatic pattern-based operand prefetching | |
US9430240B1 (en) | Pre-computation slice merging for prefetching in a computer processor | |
US8954680B2 (en) | Modifying data prefetching operation based on a past prefetching attempt | |
US20120216184A1 (en) | Runtime code replacement | |
TW201435727A (zh) | 微處理器及其操作方法 | |
US20170091111A1 (en) | Configurable cache architecture | |
US8495307B2 (en) | Target memory hierarchy specification in a multi-core computer processing system | |
US9250913B2 (en) | Collision-based alternate hashing | |
CN102981903B (zh) | 一种多核浏览器中进程复用的方法及其多核浏览器 | |
US20240232196A1 (en) | Intelligent query plan cache size management | |
US9128851B2 (en) | Prefetching for multiple parent cores in a multi-core chip | |
US11157281B2 (en) | Prefetching data based on register-activity patterns | |
US10528565B2 (en) | Logical level predictive caching in relational databases | |
Akram | Phase Based Instruction Prefetcher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171003 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20171115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180301 |
|
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: 20180313 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180403 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6320431 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |