JP5255049B2 - データをキャッシュ・メモリにプリフェッチする方法、コンピュータ・プログラム、及びシステム - Google Patents
データをキャッシュ・メモリにプリフェッチする方法、コンピュータ・プログラム、及びシステム Download PDFInfo
- Publication number
- JP5255049B2 JP5255049B2 JP2010502506A JP2010502506A JP5255049B2 JP 5255049 B2 JP5255049 B2 JP 5255049B2 JP 2010502506 A JP2010502506 A JP 2010502506A JP 2010502506 A JP2010502506 A JP 2010502506A JP 5255049 B2 JP5255049 B2 JP 5255049B2
- Authority
- JP
- Japan
- Prior art keywords
- data structure
- program
- data
- objects
- memory
- 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
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
-
- 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
- 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
-
- 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
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)
Description
●順次読み出し(sequential read)
●タッチ命令(touch instruction)
Claims (11)
- データ処理システムにおいてデータをキャッシュ・メモリにプリフェッチする方法であって、
プログラムを実行するステップと、
前記プログラムが実行されたときに、複数のオブジェクトを含む前記プログラムの第1のオブジェクトのオブジェクトIDを取得するステップと、
他の一意識別オブジェクトを参照する一意識別オブジェクトのIDを保持するためのオブジェクト・テーブルであることを特徴とするデータ構造に関して第1のルックアップ処理を実行して前記オブジェクトIDが前記データ構造内に存在するかどうかを判定するステップと、
前記オブジェクトIDが前記データ構造内に存在することに応答して、第1のオブジェクトの前記オブジェクトIDによって参照される参照対象オブジェクトの参照対象オブジェクトIDを検索するステップと、
前記参照対象オブジェクトのデータをメイン・メモリから前記キャッシュ・メモリにプリフェッチするステップと、
を含む方法。 - 前記オブジェクトIDが前記データ構造内で発見されなかったことに応答して、前記第1のオブジェクトが第2のオブジェクトを参照しているかどうかを判定するステップと、
前記第1のオブジェクトが前記第2のオブジェクトを参照していることに応答して、前記データ構造に第1のオブジェクト情報が含まれるように入力するステップと、
を更に含む、請求項1に記載の方法。 - 前記第2のオブジェクトが第3のオブジェクトを参照しているかどうかを判定するステップと、
前記第2のオブジェクトが前記第3のオブジェクトを参照していることに応答して、前記データ構造に第2のオブジェクト情報が含まれるように入力するステップと、
を更に含む、請求項2に記載の方法。 - 前記オブジェクト情報は、前記オブジェクトID、オフセット、又は前記参照対象オブジェクトIDのうちの少なくとも1つを含み、前記オフセットは、前記第2のオブジェクトのアドレスが参照される前記第1のオブジェクト内の位置を識別する、請求項2に記載の方法。
- 前記第1のオブジェクトは、複数のオブジェクトのうちの1つであり、前記複数のオブジェクトはそれぞれ一意に識別される、請求項1乃至4のいずれかに記載の方法。
- リンカ/ローダ・プログラムに基づいて、前記複数の各オブジェクトを一意に識別し、任意選択で前記複数の各オブジェクトに追加的なIDを付加することによって前記複数の各オブジェクトを一意に識別する、請求項5に記載の方法。
- データ処理システム内で実行されたときに前記データ処理システムに、
プログラムが実行されたときに、前記プログラムの第1のオブジェクトのオブジェクトIDを取得させ、
他の一意識別オブジェクトを参照する一意識別オブジェクトのIDを保持するためのオブジェクト・テーブルであることを特徴とするデータ構造のルックアップ処理を実行させて前記オブジェクトIDが前記データ構造内に存在するかどうかを判定させ、
前記オブジェクトIDが前記データ構造内に存在することに応答して、前記オブジェクトIDによって参照される参照対象オブジェクトIDを検索させ、
前記参照対象オブジェクトIDに関連するデータをメイン・メモリからキャッシュ・メモリにプリフェッチさせるための、
コンピュータ・プログラム。 - プロセッサと、
前記プロセッサと結合されたメモリと、
を備えるシステムであって、前記メモリは、それらが前記プロセッサによって実行されたときに前記プロセッサに
プログラムを実行させ、
前記プログラムが実行されたときに、複数のオブジェクトを含む前記プログラムの第1のオブジェクトのオブジェクトIDを取得させ、
他の一意識別オブジェクトを参照する一意識別オブジェクトのIDを保持するためのオブジェクト・テーブルであることを特徴とするデータ構造に関して第1のルックアップ処理を実行させて前記オブジェクトIDが前記データ構造内に存在するかどうかを判定させ、
前記オブジェクトIDが前記データ構造内に存在することに応答して、第1のオブジェクトの前記オブジェクトIDによって参照される参照対象オブジェクトの参照対象オブジェクトIDを検索させ、
前記参照対象オブジェクトのデータをメイン・メモリからキャッシュ・メモリにプリフェッチさせるためのものである、
命令を備えるシステム。 - 前記命令は更に、前記プロセッサに
前記オブジェクトIDが前記データ構造内で発見されなかったことに応答して、前記第1のオブジェクトが第2のオブジェクトを参照しているかどうかを判定させ、
前記第1のオブジェクトが前記第2のオブジェクトを参照していることに応答して、前記データ構造に第1のオブジェクト情報が含まれるように入力させるためのものである、
請求項8に記載のシステム。 - 前記命令は更に、前記プロセッサに
前記第2のオブジェクトが第3のオブジェクトを参照しているかどうかを判定させ、
前記第2のオブジェクトが前記第3のオブジェクトを参照していることに応答して、前記データ構造に第2のオブジェクト情報が含まれるように入力させるためのものである、
請求項9に記載のシステム。 - 前記オブジェクト情報は、前記オブジェクトID、オフセット、又は前記参照対象オブジェクトIDのうちの少なくとも1つを含み、前記オフセットは、前記第2のオブジェクトのアドレスが参照される前記第1のオブジェクト内の位置を識別する、請求項9に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/733,352 | 2007-04-10 | ||
US11/733,352 US7640400B2 (en) | 2007-04-10 | 2007-04-10 | Programmable data prefetching |
PCT/EP2008/054327 WO2008122660A1 (en) | 2007-04-10 | 2008-04-10 | Programmable data prefetching |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010524106A JP2010524106A (ja) | 2010-07-15 |
JP5255049B2 true JP5255049B2 (ja) | 2013-08-07 |
Family
ID=39422701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010502506A Expired - Fee Related JP5255049B2 (ja) | 2007-04-10 | 2008-04-10 | データをキャッシュ・メモリにプリフェッチする方法、コンピュータ・プログラム、及びシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US7640400B2 (ja) |
JP (1) | JP5255049B2 (ja) |
KR (1) | KR101159412B1 (ja) |
CN (1) | CN101652759B (ja) |
WO (1) | WO2008122660A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008225915A (ja) * | 2007-03-13 | 2008-09-25 | Fujitsu Ltd | プリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法 |
US8032714B2 (en) * | 2007-09-28 | 2011-10-04 | Aggregate Knowledge Inc. | Methods and systems for caching data using behavioral event correlations |
JP2014035431A (ja) * | 2012-08-08 | 2014-02-24 | Renesas Mobile Corp | ボコーダ処理方法、半導体装置、及び電子装置 |
US10268586B2 (en) * | 2015-12-08 | 2019-04-23 | Via Alliance Semiconductor Co., Ltd. | Processor with programmable prefetcher operable to generate at least one prefetch address based on load requests |
CN108073525B (zh) * | 2016-11-08 | 2021-10-19 | 华为技术有限公司 | 预取数据的方法、装置和系统 |
US10860491B2 (en) * | 2019-05-03 | 2020-12-08 | Mediate Inc. | Cache management method using object-oriented manner and associated microcontroller |
US11687611B2 (en) * | 2021-10-15 | 2023-06-27 | Servicenow, Inc. | Intermediate widget cache |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537573A (en) * | 1993-05-28 | 1996-07-16 | Rambus, Inc. | Cache system and method for prefetching of data |
US5822576A (en) * | 1997-03-26 | 1998-10-13 | International Business Machines Corporation | Branch history table with branch pattern field |
US6728726B1 (en) * | 1999-03-05 | 2004-04-27 | Microsoft Corporation | Prefetching and caching persistent objects |
US6560693B1 (en) * | 1999-12-10 | 2003-05-06 | International Business Machines Corporation | Branch history guided instruction/data prefetching |
US6643743B1 (en) | 2000-03-31 | 2003-11-04 | Intel Corporation | Stream-down prefetching cache |
US6662274B2 (en) * | 2001-06-20 | 2003-12-09 | Intel Corporation | Method for using cache prefetch feature to improve garbage collection algorithm |
US6751709B2 (en) * | 2002-05-15 | 2004-06-15 | Sun Microsystems, Inc. | Method and apparatus for prefetching objects into an object cache |
US7266676B2 (en) * | 2003-03-21 | 2007-09-04 | Analog Devices, Inc. | Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays |
US7124253B1 (en) * | 2004-02-18 | 2006-10-17 | Sun Microsystems, Inc. | Supporting directory-based cache coherence in an object-addressed memory hierarchy |
CN100445944C (zh) * | 2004-12-21 | 2008-12-24 | 三菱电机株式会社 | 控制电路以及控制方法 |
-
2007
- 2007-04-10 US US11/733,352 patent/US7640400B2/en not_active Expired - Fee Related
-
2008
- 2008-04-10 KR KR1020097014497A patent/KR101159412B1/ko active IP Right Grant
- 2008-04-10 JP JP2010502506A patent/JP5255049B2/ja not_active Expired - Fee Related
- 2008-04-10 WO PCT/EP2008/054327 patent/WO2008122660A1/en active Application Filing
- 2008-04-10 CN CN2008800115597A patent/CN101652759B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
WO2008122660A1 (en) | 2008-10-16 |
CN101652759A (zh) | 2010-02-17 |
US20080256302A1 (en) | 2008-10-16 |
KR20090129395A (ko) | 2009-12-16 |
US7640400B2 (en) | 2009-12-29 |
KR101159412B1 (ko) | 2012-07-10 |
CN101652759B (zh) | 2012-11-28 |
JP2010524106A (ja) | 2010-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896128B2 (en) | Partitioning shared caches | |
JP4301520B2 (ja) | 不連続なデータ構造を事前取出しする方法 | |
US8490065B2 (en) | Method and apparatus for software-assisted data cache and prefetch control | |
JP5255049B2 (ja) | データをキャッシュ・メモリにプリフェッチする方法、コンピュータ・プログラム、及びシステム | |
US7213126B1 (en) | Method and processor including logic for storing traces within a trace cache | |
JP5090047B2 (ja) | ロックされたキャッシュ内のセットの置換を管理するための方法、コンピュータ・プログラム、キャッシング・システムおよびプロセッサ | |
US7516279B2 (en) | Method using stream prefetching history to improve data prefetching performance. | |
US8521964B2 (en) | Reducing interprocessor communications pursuant to updating of a storage key | |
US11176055B1 (en) | Managing potential faults for speculative page table access | |
JP7443344B2 (ja) | 外部メモリベースのトランスレーションルックアサイドバッファ | |
CN114667508B (zh) | 为加速器取回数据的方法和系统 | |
JP2017516228A (ja) | 自己書き換えコードのハードウェアサポートを提供する方法及び装置 | |
US20160224261A1 (en) | Hardware-supported per-process metadata tags | |
KR20200017364A (ko) | PCIe 메모리 요청들의 라우팅을 촉진하기 위해 NVMe 물리적 영역 페이지 목록 포인터들 및 데이터 포인터들을 수정 | |
KR20210070935A (ko) | 보안 멀티쓰레딩 실행을 위한 파이프라인들 | |
KR20160035545A (ko) | 디스크립터 링 관리 | |
US11157415B2 (en) | Operation of a multi-slice processor implementing a unified page walk cache | |
KR100582340B1 (ko) | 캐시 시스템, 캐시 관리 방법 및 컴퓨터 판독가능한 기록매체 | |
TW202139014A (zh) | 具混和回寫及完全寫入資料快取 | |
US8166252B2 (en) | Processor and prefetch support program | |
JP2020536310A (ja) | アドレス変換なしで動作する読み込み/格納ユニットでの実効アドレスのシノニムの処理 | |
Bae et al. | Ssdstreamer: Specializing i/o stack for large-scale machine learning | |
US7555633B1 (en) | Instruction cache prefetch based on trace cache eviction | |
US11822652B1 (en) | Prime and probe attack mitigation | |
US11693780B2 (en) | System, method, and apparatus for enhanced pointer identification and prefetching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120904 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130307 |
|
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: 20130326 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130418 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5255049 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160426 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |