JP7468218B2 - 半導体装置およびキャッシュの制御方法 - Google Patents
半導体装置およびキャッシュの制御方法 Download PDFInfo
- Publication number
- JP7468218B2 JP7468218B2 JP2020125524A JP2020125524A JP7468218B2 JP 7468218 B2 JP7468218 B2 JP 7468218B2 JP 2020125524 A JP2020125524 A JP 2020125524A JP 2020125524 A JP2020125524 A JP 2020125524A JP 7468218 B2 JP7468218 B2 JP 7468218B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- instruction
- cache line
- unit
- line size
- 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.)
- Active
Links
- 239000004065 semiconductor Substances 0.000 title claims description 17
- 238000000034 method Methods 0.000 title claims description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 101100041125 Arabidopsis thaliana RST1 gene Proteins 0.000 description 4
- 101000685663 Homo sapiens Sodium/nucleoside cotransporter 1 Proteins 0.000 description 4
- 101000821827 Homo sapiens Sodium/nucleoside cotransporter 2 Proteins 0.000 description 4
- 101100443250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) DIG1 gene Proteins 0.000 description 4
- 102100023116 Sodium/nucleoside cotransporter 1 Human genes 0.000 description 4
- 102100021541 Sodium/nucleoside cotransporter 2 Human genes 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 101100443251 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) DIG2 gene Proteins 0.000 description 3
- 101100041128 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rst2 gene Proteins 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect 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/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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- 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
- 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/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
-
- 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
-
- 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/601—Reconfiguration of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
210 コア
220 LLキャッシュ
230 キャッシュ
240 命令実行部
241 命令フェッチ部
242 命令デコード部
243 演算実行部
244 命令完了部
245 資源更新部
250 命令収集部
251 命令完了数加算部
252 SIMD命令完了数加算部
253 離散アクセス命令完了数加算部
254 SIMD命令率算出部
255 離散アクセス命令率算出部
260 コアCLS選択部
270 キャッシュ制御部
280 CLSエントリ
281 Vフラグチェック部
282 有効コアカウンタ
283 CLSカウンタ
284 CLS選択部
285 履歴保持部
286 CLS決定部
287 レジスタ
290 グループCLS選択部
310 メモリアクセスコントローラ
320 通信インタフェース
400 メモリ
500 入出力装置
AON 全オン信号
CNT1、CNT2 カウント値
E0、E1、E2 エントリ
ENT エントリ
RST1、RST2 リセット信号
V バリッドフラグ
VT1、VT2、VT3 閾値
Claims (8)
- 命令を実行する命令実行部と、前記命令実行部で使用する命令およびデータの少なくともいずれかを保持する第1キャッシュとをそれぞれ含む複数のコアと、
前記複数のコアに共有される第2キャッシュと、
前記第1キャッシュおよび前記第2キャッシュのキャッシュラインサイズの切り替えを制御するキャッシュ制御部と、を有し、
前記複数のコアの各々は、
前記命令実行部が実行する命令の種別毎の完了数を、収集期間内に時間間隔を置いて収集し、前記収集期間の終了時に命令の種別毎の実行頻度を算出する命令収集部と、
前記収集期間に前記命令収集部が算出した前記実行頻度に基づいて、前記第1キャッシュでの使用が好ましいキャッシュラインサイズを選択する第1選択部と、を有し、
前記キャッシュ制御部は、前記複数のコアの前記第1選択部が選択したキャッシュラインサイズに基づいて、前記第1キャッシュおよび前記第2キャッシュで使用するキャッシュラインサイズを決定する
半導体装置。 - 前記第1選択部は、命令の種別のうち第1種別の命令の実行頻度が第1閾値を超える場合、前記第1種別の命令のうち第2種別の命令の実行頻度が第2閾値を超えるか否かに応じて、前記第1キャッシュでの使用が好ましいキャッシュラインサイズを選択する
請求項1に記載の半導体装置。 - 前記複数のコアの各々は、命令をシングルスレッドまたはマルチスレッドで実行し、
前記第1選択部は、命令の種別のうち前記第1種別の命令の実行頻度が第1閾値以下の場合、命令の実行がシングルスレッドかマルチスレッドかに応じて、前記第1キャッシュでの使用が好ましいキャッシュラインサイズを選択する
請求項2に記載の半導体装置。 - 前記第1選択部は、前記収集期間内に前記命令実行部が実行した命令の数が第3閾値以下の場合、キャッシュラインサイズを選択せず、
前記キャッシュ制御部は、キャッシュラインサイズを選択しない第1選択部を除く第1選択部が選択したキャッシュラインサイズに基づいて、前記第1キャッシュおよび前記第2キャッシュで使用するキャッシュラインサイズを決定する
請求項1ないし請求項3のいずれか1項に記載の半導体装置。 - 前記キャッシュ制御部は、
前記収集期間の完了毎に、前記複数のコアの前記第1選択部が最も多く選択したキャッシュラインサイズを、前記第1キャッシュおよび前記第2キャッシュでの使用が好ましいキャッシュラインサイズとして選択する第2選択部と、
過去の所定数の収集期間の完了毎に前記第2選択部が選択したキャッシュラインサイズを保持する履歴保持部と、
最新の収集期間の完了時に前記第2選択部が選択したキャッシュラインサイズが、前記履歴保持部に保持された複数のキャッシュラインサイズと全て一致する場合、前記第2選択部が選択したキャッシュラインサイズを前記第1キャッシュおよび前記第2キャッシュで使用するキャッシュラインサイズに決定するキャッシュラインサイズ決定部と
を有する請求項1ないし請求項4のいずれか1項に記載の半導体装置。 - 前記キャッシュ制御部は、前記コアからのキャッシュラインサイズの選択または非選択の通知に基づいてセットされるバリッドフラグと、キャッシュラインサイズの選択または非選択を識別する有効コアフラグと、前記コアが選択したキャッシュラインサイズが格納される格納領域とを含むエントリを前記複数のコアにそれぞれ対応して有するキャッシュラインサイズ保持部を有し、
前記第2選択部は、前記キャッシュラインサイズ保持部の全てのエントリのバリッドフラグがセットされた場合、前記有効コアフラグがキャッシュラインサイズの選択を示す前記エントリの前記格納領域に格納されたキャッシュラインサイズに基づいて、キャッシュラインサイズを選択する
請求項5に記載の半導体装置。 - 前記命令収集部は、
前記命令実行部により実行が完了した命令の数を計数する命令計数部と、
前記命令実行部により実行が完了した命令の種別毎の数をそれぞれ計数する複数の種別計数部と、
前記命令計数部が計数した命令の数と前記複数の種別計数部の各々が計数した命令の種別毎の数とに基づいて、実行頻度を算出する頻度算出部と、
を有する請求項1ないし請求項6のいずれか1項に記載の半導体装置。 - 命令を実行する命令実行部と、前記命令実行部で使用する命令およびデータの少なくともいずれかを保持する第1キャッシュとをそれぞれ含む複数のコアと、前記複数のコアに共有される第2キャッシュと、前記第1キャッシュおよび前記第2キャッシュのキャッシュラインサイズの切り替えを制御するキャッシュ制御部と、を有する半導体装置のキャッシュの制御方法であって、
前記複数のコアの各々が有する命令収集部が、前記命令実行部が実行する命令の種別毎の完了数を、収集期間内に時間間隔を置いて収集し、前記収集期間の終了時に命令の種別毎の実行頻度を算出し、
前記複数のコアの各々が有する第1選択部が、前記収集期間に算出した前記実行頻度に基づいて、前記第1キャッシュでの使用が好ましいキャッシュラインサイズを選択し、
前記キャッシュ制御部が、前記複数のコアの各々において選択したキャッシュラインサイズに基づいて、前記第1キャッシュおよび前記第2キャッシュで使用するキャッシュラインサイズを決定する
キャッシュの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020125524A JP7468218B2 (ja) | 2020-07-22 | 2020-07-22 | 半導体装置およびキャッシュの制御方法 |
US17/337,048 US11442861B2 (en) | 2020-07-22 | 2021-06-02 | Semiconductor device and cache control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020125524A JP7468218B2 (ja) | 2020-07-22 | 2020-07-22 | 半導体装置およびキャッシュの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022021745A JP2022021745A (ja) | 2022-02-03 |
JP7468218B2 true JP7468218B2 (ja) | 2024-04-16 |
Family
ID=80220619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020125524A Active JP7468218B2 (ja) | 2020-07-22 | 2020-07-22 | 半導体装置およびキャッシュの制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11442861B2 (ja) |
JP (1) | JP7468218B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687935A (zh) * | 2022-09-02 | 2024-03-12 | 中科寒武纪科技股份有限公司 | 指令控制方法、数据缓存方法及相关产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216193A (ja) | 2000-01-31 | 2001-08-10 | Nec Corp | キャッシュ機構およびキャッシュ機構の動作制御方法 |
JP2002163150A (ja) | 2000-11-28 | 2002-06-07 | Toshiba Corp | プロセッサ |
JP2006510992A (ja) | 2002-12-17 | 2006-03-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ライン幅を選択的に変更することが可能なメモリ |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4315312A (en) * | 1979-12-19 | 1982-02-09 | Ncr Corporation | Cache memory having a variable data block size |
US7822926B2 (en) * | 2007-04-16 | 2010-10-26 | Arm Limited | Cache memory |
-
2020
- 2020-07-22 JP JP2020125524A patent/JP7468218B2/ja active Active
-
2021
- 2021-06-02 US US17/337,048 patent/US11442861B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216193A (ja) | 2000-01-31 | 2001-08-10 | Nec Corp | キャッシュ機構およびキャッシュ機構の動作制御方法 |
JP2002163150A (ja) | 2000-11-28 | 2002-06-07 | Toshiba Corp | プロセッサ |
JP2006510992A (ja) | 2002-12-17 | 2006-03-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ライン幅を選択的に変更することが可能なメモリ |
Also Published As
Publication number | Publication date |
---|---|
JP2022021745A (ja) | 2022-02-03 |
US20220027274A1 (en) | 2022-01-27 |
US11442861B2 (en) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8117618B2 (en) | Forward progress mechanism for a multithreaded processor | |
US7366878B1 (en) | Scheduling instructions from multi-thread instruction buffer based on phase boundary qualifying rule for phases of math and data access operations with better caching | |
US8190820B2 (en) | Optimizing concurrent accesses in a directory-based coherency protocol | |
US11126555B2 (en) | Multi-line data prefetching using dynamic prefetch depth | |
JP5279701B2 (ja) | 命令プリフェッチバッファ深さの動的制御を有するデータプロセッサとその方法 | |
US9501320B2 (en) | Scheduling threads according to real time bit in predetermined time period or in variable time period of requested time ratio | |
US8898434B2 (en) | Optimizing system throughput by automatically altering thread co-execution based on operating system directives | |
EP3676713B1 (en) | Utilization-based throttling of hardware prefetchers | |
CN109308220B (zh) | 共享资源分配方法及装置 | |
JP2007334564A (ja) | ユニファイドメモリシステム | |
US20110004731A1 (en) | Cache memory device, cache memory system and processor system | |
EP3047380A1 (en) | Pattern detector for detecting hangs | |
JP7468218B2 (ja) | 半導体装置およびキャッシュの制御方法 | |
US12032965B2 (en) | Throttling while managing upstream resources | |
JP5793061B2 (ja) | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム | |
US20220220644A1 (en) | Warp scheduling method and stream multiprocessor using the same | |
WO2016092347A1 (en) | Distributed hang recovery logic | |
US8332568B2 (en) | Memory access determination circuit, memory access determination method and electronic device | |
US20050289551A1 (en) | Mechanism for prioritizing context swapping | |
US20110161982A1 (en) | Task Controlling A Multitask System | |
WO2016092346A1 (en) | Conditional pattern detector for detecting hangs | |
CN110647358A (zh) | 同步多线程处理器 | |
CN111459872B (zh) | 一种多核并行计算的快速核间数据同步方法 | |
US8422830B2 (en) | Image processing system with an address snooping apparatus | |
CN118193153A (zh) | 资源分配方法、处理器和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230407 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240226 |
|
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: 20240305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240318 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7468218 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |