JP6627629B2 - 演算処理装置、および演算処理装置の制御方法 - Google Patents
演算処理装置、および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6627629B2 JP6627629B2 JP2016081294A JP2016081294A JP6627629B2 JP 6627629 B2 JP6627629 B2 JP 6627629B2 JP 2016081294 A JP2016081294 A JP 2016081294A JP 2016081294 A JP2016081294 A JP 2016081294A JP 6627629 B2 JP6627629 B2 JP 6627629B2
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- cache memory
- unit
- suppression
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 30
- 238000000034 method Methods 0.000 title claims description 25
- 230000015654 memory Effects 0.000 claims description 168
- 230000001629 suppression Effects 0.000 claims description 112
- 230000008569 process Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000010365 information processing Effects 0.000 description 28
- 230000000694 effects Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000009467 reduction Effects 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/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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/30043—LOAD or STORE instructions; Clear instruction
-
- 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/3802—Instruction 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
- 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
- G06F2212/1021—Hit rate 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/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
そこで、開示の実施形態の目的は、効率向上の効果が薄いプリフェッチの要求を抑止し、キャッシュメモリにおけるプロセッサの処理効率の向上を図ることにある。
計数する計数部を有する。さらに、本演算処理装置は、計数されたヒット回数が閾値に達したときにプリフェッチ部によるプリフェッチ要求の送出を抑止する抑止部を有する。
[実施形態1]
できる。以下の実施例では、演算処理装置の構成と作用、および演算処理装置の制御方法が例示される。
First OUT(FIFO)22の入力ポートにデータ読み出し要求を発行し、1次キャッシュメモリ13にデータを保持させる。
キャッシュ制御パイプライン23は、タグ検索回路231、タグ比較器232、およびバッファ233を有する。
1、LD/STユニット12、1次キャッシュメモリ13、およびプリフェッチユニット14を含むプロセッサ10を上位装置とすると、2次キャッシュメモリユニット20は下位のキャッシュメモリということができる。
ステートがACTIVEからINACTIVEに遷移したと同時にINACTIVE_CNTが例えば値3にセットされる(矢印T1)。クロックパルスが発生する毎にこのカウンタがデクリメントされ、0になった時点(矢印T2)でACTIVEステートに遷移する。プリフェッチ抑止ユニット24あるいはプリフェッチ抑止信号生成部245は、計数されたヒット回数が閾値に達したときにプリフェッチ回路(プリフェッチユニット14)によるプリフェッチ要求の送出を抑止する抑止部の一例ということができる。
<実施形態1の効果>
性能を含むプロセッサ10の性能が向上する。
ャッシュメモリユニットでヒットした回数が閾値に達すると、プリフェッチを抑止すればよい。
[その他の変形例]
11 命令制御部
12 LD/STユニット
13 1次キャッシュメモリ
14 プリフェッチユニット
20 2次キャッシュメモリ
21 キャッシュタグRAM
22 FIFO
23 2次キャッシュ制御パイプライン
24 プリフェッチ抑止ユニット
30 3次キャッシュメモリ
90 主記憶装置
241 ANDゲート
242 ヒットカウンタ
243 閾値レジスタ
244 比較器
245 プリフェッチ抑止信号生成部
246、246A タイマー
PF プリフェッチフラグ信号
CH キャッシュヒット信号
Claims (4)
- 主記憶装置のデータを1次キャッシュメモリにプリフェッチするプリフェッチ要求を下位のキャッシュメモリに送出するプリフェッチ部と、
前記プリフェッチ部からのプリフェッチ要求に対して応答する応答処理の実行時に前記プリフェッチ要求対象のデータが前記下位のキャッシュメモリに保持されていることが検出されたヒット回数を計数する計数部と、
前記計数されたヒット回数が閾値に達したときに前記プリフェッチ部によるプリフェッチ要求の送出を抑止する抑止部と、
前記抑止部がプリフェッチ要求の送出を抑止したときに起動されるタイマーと、
前記タイマーが所定時間の経過を計時したときに前記抑止部による抑止を解除するとともに、前記計数部をリセットするリセット部と、
前記計数部が所定の時間以内に計数値を更新しない場合に、前記計数部をリセットする第2のリセット部と、
を備える演算処理装置。 - 前記下位のキャッシュメモリは、前記1次キャッシュメモリと主記憶装置との間でデータを授受する2次キャッシュメモリであり、
前記計数部は前記2次キャッシュメモリでの前記ヒット回数を計数する請求項1に記載の演算処理装置。 - 前記1次キャッシュメモリおよび下位のキャッシュメモリは、3以上の整数Nに対してN階層の階層構造を有し、1次キャッシュメモリは演算制御部と2次キャッシュメモリとの間でデータを授受し、第N次キャッシュメモリは第N−1次キャッシュメモリと主記憶装置との間でデータを授受し、第2次から第N−1次までのキャッシュメモリはそれぞれ上位のキャッシュメモリと下位のキャッシュメモリとの間でデータを授受し、
前記計数部は前記N次キャッシュメモリでの前記ヒット回数を計数する請求項1に記載の演算処理装置。 - 主記憶装置のデータを1次キャッシュメモリにプリフェッチするプリフェッチ要求を下位のキャッシュメモリで受け付け、
前記受け付けたプリフェッチ要求に対して応答する応答処理の実行時に前記プリフェッチ要求対象のデータが前記下位のキャッシュメモリに保持されていることが検出されたヒット回数を計数し、
前記計数されたヒット回数が閾値に達したときにプリフェッチ要求の送出を抑止し、
前記プリフェッチ要求の送出が抑止されたときにタイマーを起動し、
前記タイマーが所定時間の経過を計時したときに前記プリフェッチ要求の送出の抑止を解除するとともに、前記計数されたヒット回数をリセットし、
所定の時間以内に前記ヒット回数が更新されない場合に、前記計数されたヒット回数をリセットする演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016081294A JP6627629B2 (ja) | 2016-04-14 | 2016-04-14 | 演算処理装置、および演算処理装置の制御方法 |
US15/465,674 US10031852B2 (en) | 2016-04-14 | 2017-03-22 | Arithmetic processing apparatus and control method of the arithmetic processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016081294A JP6627629B2 (ja) | 2016-04-14 | 2016-04-14 | 演算処理装置、および演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017191503A JP2017191503A (ja) | 2017-10-19 |
JP6627629B2 true JP6627629B2 (ja) | 2020-01-08 |
Family
ID=60040034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016081294A Expired - Fee Related JP6627629B2 (ja) | 2016-04-14 | 2016-04-14 | 演算処理装置、および演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10031852B2 (ja) |
JP (1) | JP6627629B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7131156B2 (ja) * | 2018-07-19 | 2022-09-06 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11294808B2 (en) | 2020-05-21 | 2022-04-05 | Micron Technology, Inc. | Adaptive cache |
US11409657B2 (en) | 2020-07-14 | 2022-08-09 | Micron Technology, Inc. | Adaptive address tracking |
US11422934B2 (en) | 2020-07-14 | 2022-08-23 | Micron Technology, Inc. | Adaptive address tracking |
US11947461B2 (en) * | 2022-01-10 | 2024-04-02 | International Business Machines Corporation | Prefetch unit filter for microprocessor |
CN115576872B (zh) * | 2022-11-18 | 2023-03-24 | 北京红山微电子技术有限公司 | 多级缓存的访问检测方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04344935A (ja) | 1991-05-23 | 1992-12-01 | Nec Corp | 情報処理装置 |
JP4072665B2 (ja) * | 2000-05-22 | 2008-04-09 | 富士ゼロックス株式会社 | 画像処理装置及びキャッシュメモリ |
US7130890B1 (en) * | 2002-09-04 | 2006-10-31 | Hewlett-Packard Development Company, L.P. | Method and system for adaptively prefetching objects from a network |
US20080028150A1 (en) * | 2006-07-28 | 2008-01-31 | Farnaz Toussi | Autonomic Mode Switching for L2 Cache Speculative Accesses Based on L1 Cache Hit Rate |
US7917702B2 (en) * | 2007-07-10 | 2011-03-29 | Qualcomm Incorporated | Data prefetch throttle |
JP4829191B2 (ja) | 2007-08-30 | 2011-12-07 | 株式会社東芝 | キャッシュシステム |
US20130013867A1 (en) * | 2011-07-06 | 2013-01-10 | Advanced Micro Devices, Inc. | Data prefetcher mechanism with intelligent disabling and enabling of a prefetching function |
JP2014115851A (ja) | 2012-12-10 | 2014-06-26 | Canon Inc | データ処理装置及びその制御方法 |
JP6130758B2 (ja) * | 2013-09-06 | 2017-05-17 | 株式会社東芝 | メモリ制御回路およびキャッシュメモリ |
US20160041914A1 (en) * | 2014-08-05 | 2016-02-11 | Advanced Micro Devices, Inc. | Cache Bypassing Policy Based on Prefetch Streams |
US10073785B2 (en) * | 2016-06-13 | 2018-09-11 | Advanced Micro Devices, Inc. | Up/down prefetcher |
-
2016
- 2016-04-14 JP JP2016081294A patent/JP6627629B2/ja not_active Expired - Fee Related
-
2017
- 2017-03-22 US US15/465,674 patent/US10031852B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10031852B2 (en) | 2018-07-24 |
JP2017191503A (ja) | 2017-10-19 |
US20170300416A1 (en) | 2017-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6627629B2 (ja) | 演算処理装置、および演算処理装置の制御方法 | |
US10725992B2 (en) | Indexing entries of a storage structure shared between multiple threads | |
US10831494B2 (en) | Event triggered programmable prefetcher | |
EP1421490B1 (en) | Methods and apparatus for improving throughput of cache-based embedded processors by switching tasks in response to a cache miss | |
US8683129B2 (en) | Using speculative cache requests to reduce cache miss delays | |
US9176878B2 (en) | Filtering pre-fetch requests to reduce pre-fetching overhead | |
US7930485B2 (en) | Speculative memory prefetch | |
US8156287B2 (en) | Adaptive data prefetch | |
JP5444889B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP2002297379A (ja) | ハードウェアプリフェッチシステム | |
US9690707B2 (en) | Correlation-based instruction prefetching | |
WO2009054959A1 (en) | Coherent dram prefetcher | |
US7313655B2 (en) | Method of prefetching using a incrementing/decrementing counter | |
JPWO2007099598A1 (ja) | プリフェッチ機能を有するプロセッサ | |
JP2006516168A (ja) | ストライド予測テーブルにアドレスするためにキャッシュミスパターンを使用する方法 | |
JP4519151B2 (ja) | キャッシュ制御回路 | |
JP5793061B2 (ja) | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム | |
JP7131156B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US10503648B2 (en) | Cache to cache data transfer acceleration techniques | |
KR101086457B1 (ko) | 저 전력 트레이스 캐쉬 및 명령어 세트 예측기를 구비한 프로세서 시스템 | |
US9645825B2 (en) | Instruction cache with access locking | |
JP5116275B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
EP3332329B1 (en) | Device and method for prefetching content to a cache memory | |
US20070239939A1 (en) | Apparatus for Performing Stream Prefetch within a Multiprocessor System | |
CN111198827A (zh) | 页表预取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170615 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190626 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190930 |
|
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: 20191105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6627629 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |