JP3981070B2 - キャッシュリプレース装置及びキャッシュリプレース方法 - Google Patents
キャッシュリプレース装置及びキャッシュリプレース方法 Download PDFInfo
- Publication number
- JP3981070B2 JP3981070B2 JP2003435789A JP2003435789A JP3981070B2 JP 3981070 B2 JP3981070 B2 JP 3981070B2 JP 2003435789 A JP2003435789 A JP 2003435789A JP 2003435789 A JP2003435789 A JP 2003435789A JP 3981070 B2 JP3981070 B2 JP 3981070B2
- Authority
- JP
- Japan
- Prior art keywords
- way
- thread
- cache
- hit
- comparator
- 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
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
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)
Description
ジョン・L・ヘネシー、デイビッド・A・パターソン著、成田 光彰訳、「コンピュータの構成と設計(下)」、日経BP社出版、1998年9月25日、P412−483
本発明の第1の実施の形態に係るキャッシュリプレース装置30aは、図1に例示すように、ウェイ0とウェイ1から構成されるキャッシュタグテーブル33aと、キャッシュタグテーブル33aに接続されたスレッド比較器36aと、キャッシュタグテーブル33a及びスレッド比較器36aに接続されたウェイ決定回路37aを具備する。またキャッシュリプレース装置30aは、キャッシュタグテーブル33aに接続されたインデックスセレクタ32aと、インデックスセレクタ32aに接続された命令アクセスアドレス格納部31と、インデックスセレクタ32aと命令アクセスアドレス格納部31に接続されたキャッシュミスアドレス格納部35とを具備する。そしてキャッシュリプレース装置30aは、キャッシュタグテーブル33aと命令アクセスアドレス格納部31に接続されたページフレーム番号(PFN)比較器34と、キャッシュタグテーブル33a、キャッシュミスアドレス格納部35及びPFN比較器34に接続されたキャッシュ制御回路38とをさらに具備する。
キャッシュタグテーブル33aは、メモリを使用しているスレッドのスレッドID(ThID)、PFN及び最長未使用ウェイ番号(lruWay)を記憶し管理するためのメモリテーブルである。インデックスセレクタ32aは、スレッド実行時とキャッシュ置換時とで、キャッシュタグテーブル33aを索引するためのインデックスを選択しわけるための回路である。
(イ) 処理の実行要求に従ってスレッド生成回路10で生成されるスレッドIDは、順次生成スレッドIDキュー20にアタッチされる。実行順番がきたスレッドIDは、生成スレッドIDキュー20からデタッチされ、実行スレッドID(currThID)として命令アクセスアドレス格納部31に記憶されると同時に、スレッド比較器36aの終了ThIDメモリ403に格納される。
(ホ) まず、スレッド比較器36aによって、実行インデックス(currIndex)を用いて索引されたキャッシュタグテーブル33aのメモリに格納されているスレッドID(ThID)が各ウェイから読み出される。次に第1から第4エントリーユニット361、362、363、364で、それぞれの終了ThIDメモリ403に格納されている終了ThIDが、各ウェイから読み出されたThIDと各終了Th比較器401、402によって比較される。そして比較結果の論理和がウェイ0ヒットORゲート366とウェイ1ヒットORゲート365によってウェイ決定回路37aに出力される。
(リ) 続いて、インデックスセレクタ32aによってミスインデックス(missIndex)が選択され、ミスインデックス(missIndex)を用いてキャッシュタグテーブル33aが索引される。
S100:ウェイ0ヒットORゲート366の結果とウェイ1ヒットORゲート365の結果を受信し、さらに実行インデックス(currIndex)を用いて索引されたキャッシュタグテーブル33aのメモリに格納されている最長未使用ウェイ(lruWay)を読み出す。
・ウェイ0のThIDのみが終了ThIDに一致している場合は、置換すべきウェイ番号(RepWay)をウェイ0にする;
・ウェイ1のThIDのみが終了ThIDに一致している場合は、置換すべきウェイ番号(RepWay)をウェイ1にする;
・両方のウェイのThIDが終了ThIDに一致しているか、いずれも一致していない場合は、置換すべきウェイ番号(RepWay)を、既にキャッシュタグテーブル33aのメモリに設定されているlruWayの値とする。
本発明の第2の実施の形態に係るキャッシュリプレース装置30bは、図4に例示すように、ウェイ0とウェイ1から構成されるキャッシュタグテーブル33bと、キャッシュタグテーブル33bに接続されたスレッド比較器36bと、キャッシュタグテーブル33b及びスレッド比較器36bに接続されたウェイ決定回路37bを具備する。またキャッシュリプレース装置30bは、キャッシュタグテーブル33bに接続されたインデックスセレクタ32bと、インデックスセレクタ32bに接続された命令アクセスアドレス格納部31、カウンタ40及びサイクル取得制御回路41と、命令アクセスアドレス格納部31に接続されたキャッシュミスアドレス格納部35とを具備する。そしてキャッシュリプレース装置30bは、キャッシュタグテーブル33bと命令アクセスアドレス格納部31に接続されたPFN比較器34と、キャッシュタグテーブル33b、キャッシュミスアドレス格納部35及びウェイ決定回路37bに接続されたウェイセレクタ39と、キャッシュタグテーブル33b、キャッシュミスアドレス格納部35及びPFN比較器34に接続されたキャッシュ制御回路38とをさらに具備する。
(イ) 処理の実行要求に従ってスレッド生成回路10で生成されるスレッドIDは、順次生成スレッドIDキュー20にアタッチされる。実行順番がきたスレッドIDは、生成スレッドIDキュー20からデタッチされ、実行スレッドID(currThID)として命令アクセスアドレス格納部31に記憶されると同時に、スレッド比較器36bの終了ThIDメモリ403に格納される。
(ホ) キャッシュメモリにアクセスする命令が実行中の場合、実行インデックス(currIndex)を用いて索引されたキャッシュタグテーブル33bのメモリに格納されている置換ウェイ番号有効フラグ(V)が1(オン)であり、ページフレーム番号(PFN)比較器34が不一致を検出(キャッシュミス)したならば、ウェイセレクタ39は置換ウェイ番号(Rep)をキャッシュミスアドレス格納部35の置換すべきウェイ番号(RepWay)に設定し、(ヲ)にジャンプする。
(カ) 続いて、インデックスセレクタ32bによってミスインデックス(missIndex)が選択され、ミスインデックス(missIndex)を用いてキャッシュタグテーブル33bが索引される。
S200:ウェイ0ヒットANDゲート504の結果とウェイ1ヒットANDゲート503の結果を受信し、さらにキャッシュタグテーブル33aのメモリに格納されている最長未使用ウェイ(lruWay)を読み出す。
・ウェイ0のThIDのみが終了ThIDのみに一致している場合は、置換ウェイ番号(Rep)をウェイ0にする;
・ウェイ1のThIDのみが終了ThIDのみに一致している場合は、置換ウェイ番号(Rep)をウェイ1にする;
・両方のウェイのThIDが終了ThIDのみに一致しているか、いずれも予測ThIDに一致している場合は、置換ウェイ番号(Rep)を、既にキャッシュタグテーブル33bのメモリに設定されているlruWayの値とする。
第1の実施の形態のキャッシュリプレース装置30aのスレッド比較器36aと、第2の実施の形態のキャッシュリプレース装置30bのスレッド比較器36bとを置き換えたりすることで、別の実施の形態が可能であり、同様の効果が得られることは言うまでもない。
20…生成スレッドIDキュー
30a…キャッシュリプレース装置
30b…キャッシュリプレース装置
31…命令アクセスアドレス格納部
32a…インデックスセレクタ
32b…インデックスセレクタ
33a…キャッシュタグテーブル
33b…キャッシュタグテーブル
34…ページフレーム番号比較器
35…キャッシュミスアドレス格納部
36a…スレッド比較器
36b…スレッド比較器
37a…ウェイ決定回路
37b…ウェイ決定回路
38…キャッシュ制御回路
39…ウェイセレクタ
40…カウンタ
41…サイクル取得制御回路
361…第1エントリーユニット
362…第2エントリーユニット
363…第3エントリーユニット
364…第4エントリーユニット
365…ウェイ1ヒットORゲート
366…ウェイ0ヒットORゲート
367…ウェイ1ヒットNORゲート
368…ウェイ0ヒットNORゲート
400…FIFO制御部
401…終了Th比較器
402…終了Th比較器
403…終了ThIDメモリ
404…予測ThIDメモリ
405…スレッド予測回路
406…予測Th比較器
407…予測Th比較器
501…第1予測エントリーユニット
502…第2予測エントリーユニット
503…ウェイ1ヒットANDゲート
504…ウェイ0ヒットANDゲート
Claims (5)
- 複数のウェイまたはセットからなるキャッシュタグテーブルと、
前記キャッシュタグテーブルに接続され、前記キャッシュタグテーブルの有する前記複数のウェイにそれぞれ格納された格納スレッドIDと、実行を終了したスレッドの終了スレッドIDを比較するスレッド比較器と、
前記キャッシュタグテーブル及び前記スレッド比較器に接続され、前記スレッド比較器による比較結果に応じて置換すべきウェイを決定するウェイ決定回路
とを具備することを特徴とするキャッシュリプレース装置。 - 前記キャッシュタグテーブルに接続された命令アクセスアドレス格納部と、
前記命令アクセスアドレス格納部に接続されたページフレーム番号比較器
とをさらに具備することを特徴とする請求項1に記載のキャッシュリプレース装置。 - 前記スレッド比較器が、
前記格納スレッドIDを複数の前記終了スレッドIDとそれぞれ比較する複数の終了スレッド比較器と、
前記複数の終了スレッド比較器からの出力の論理和を、前記複数のウェイ毎にそれぞれ出力するウェイnヒットORゲート(nは自然数)
とを備え、
前記ウェイ決定回路が、前記ウェイnヒットORゲートからの出力と、前記キャッシュタグテーブルから出力される最長未使用ウェイ番号とを用いて、前記複数のウェイのいずれかを置換すべきウェイとして決定することを特徴とする請求項1に記載のキャッシュリプレース装置。 - 前記スレッド比較器が、
前記格納スレッドIDを複数の前記終了スレッドIDとそれぞれ比較する複数の終了スレッド比較器と、
前記複数の終了スレッド比較器からの出力の論理和を、前記複数のウェイ毎にそれぞれ出力するウェイnヒットORゲート(nは自然数)と、
実行が予測されるスレッドの予測スレッドIDを出力するスレッド予測回路と、
前記複数のウェイ毎に、前記格納スレッドIDを前記予測スレッドIDと比較する複数の予測スレッド比較器と、
前記複数の予測スレッド比較器からの出力の否定的論理和を、前記複数のウェイ毎にそれぞれ出力するウェイnヒットNORゲートと、
前記ウェイnヒットORゲートと前記ウェイnヒットNORゲートの出力の論理積を、前記複数のウェイ毎にそれぞれ出力するウェイnヒットANDゲート
とを備え、
前記ウェイ決定回路が、前記ウェイnヒットANDゲートからの出力と、前記キャッシュタグテーブルから出力される最長未使用ウェイ番号とを用いて、前記複数のウェイのいずれかを置換すべきウェイとして決定することを特徴とする請求項1に記載のキャッシュリプレース装置。 - 命令によるキャッシュへのアクセスが空いている周期に、カウンタの値によって索引したキャッシュタグテーブルの各ウェイに設定されたスレッドIDをスレッド比較器に、そして有効フラグ、置換ウェイ番号及び最長未使用ウェイ番号をウェイセレクタにそれぞれ出力し、
前記スレッド比較器に格納されている終了スレッドIDと前記スレッドIDが一致しているかの結果を、前記スレッド比較器からウェイ決定回路に出力し、
前記有効フラグの値に応じて前記最長未使用ウェイ番号を、前記ウェイセレクタから前記ウェイ決定回路に出力し、
前記ウェイ決定回路が、置換すべきウェイ番号を決定し、前記カウンタの値によって索引した前記キャッシュタグテーブルの各ウェイの前記置換ウェイ番号を書き換え、そして前記有効フラグをオンに設定する
ことを特徴とするキャッシュリプレース方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003435789A JP3981070B2 (ja) | 2003-12-26 | 2003-12-26 | キャッシュリプレース装置及びキャッシュリプレース方法 |
US11/011,156 US20050160228A1 (en) | 2003-12-26 | 2004-12-15 | Equipment and method for cache replacement |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003435789A JP3981070B2 (ja) | 2003-12-26 | 2003-12-26 | キャッシュリプレース装置及びキャッシュリプレース方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005196303A JP2005196303A (ja) | 2005-07-21 |
JP3981070B2 true JP3981070B2 (ja) | 2007-09-26 |
Family
ID=34746914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003435789A Expired - Fee Related JP3981070B2 (ja) | 2003-12-26 | 2003-12-26 | キャッシュリプレース装置及びキャッシュリプレース方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050160228A1 (ja) |
JP (1) | JP3981070B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4487744B2 (ja) * | 2004-11-29 | 2010-06-23 | 富士通株式会社 | マルチスレッド制御装置及び制御方法 |
US8275942B2 (en) * | 2005-12-22 | 2012-09-25 | Intel Corporation | Performance prioritization in multi-threaded processors |
US8195886B2 (en) * | 2007-03-16 | 2012-06-05 | Arm Limited | Data processing apparatus and method for implementing a replacement scheme for entries of a storage unit |
JP4768054B2 (ja) * | 2009-06-23 | 2011-09-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | キャッシュ制御方法 |
US9009401B2 (en) | 2012-07-27 | 2015-04-14 | International Business Machines Corporation | Multi-updatable least recently used mechanism |
GB2509755B (en) * | 2013-01-14 | 2015-07-08 | Imagination Tech Ltd | Partitioning a shared cache using masks associated with threads to avoiding thrashing |
JP2015176245A (ja) | 2014-03-13 | 2015-10-05 | 株式会社東芝 | 情報処理装置及びデータ構造 |
JP2016057763A (ja) | 2014-09-08 | 2016-04-21 | 株式会社東芝 | キャッシュ装置、及びプロセッサ |
US9684602B2 (en) | 2015-03-11 | 2017-06-20 | Kabushiki Kaisha Toshiba | Memory access control device, cache memory and semiconductor device |
GB2537357A (en) * | 2015-04-09 | 2016-10-19 | Imagination Tech Ltd | Cache operation in a multi-threaded processor |
CN107710172B (zh) | 2015-06-02 | 2020-07-07 | 华为技术有限公司 | 存储器的访问系统及方法 |
EP3258383A1 (en) * | 2016-06-13 | 2017-12-20 | Advanced Micro Devices, Inc. | Dynamically adjustable inclusion bias for inclusive caches |
GB2565338B (en) | 2017-08-10 | 2020-06-03 | Mips Tech Llc | Fault detecting and fault tolerant multi-threaded processors |
US11645178B2 (en) | 2018-07-27 | 2023-05-09 | MIPS Tech, LLC | Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535359A (en) * | 1988-12-02 | 1996-07-09 | Mitsubishi Denki Kabushiki Kaisha | Computer system with cache memory having address mask register |
JP3309425B2 (ja) * | 1992-05-22 | 2002-07-29 | 松下電器産業株式会社 | キャッシュ制御装置 |
US5732242A (en) * | 1995-03-24 | 1998-03-24 | Silicon Graphics, Inc. | Consistently specifying way destinations through prefetching hints |
JP3139392B2 (ja) * | 1996-10-11 | 2001-02-26 | 日本電気株式会社 | 並列処理システム |
US6205519B1 (en) * | 1998-05-27 | 2001-03-20 | Hewlett Packard Company | Cache management for a multi-threaded processor |
US6360299B1 (en) * | 1999-06-30 | 2002-03-19 | International Business Machines Corporation | Extended cache state with prefetched stream ID information |
US6990557B2 (en) * | 2002-06-04 | 2006-01-24 | Sandbridge Technologies, Inc. | Method and apparatus for multithreaded cache with cache eviction based on thread identifier |
US7055003B2 (en) * | 2003-04-25 | 2006-05-30 | International Business Machines Corporation | Data cache scrub mechanism for large L2/L3 data cache structures |
-
2003
- 2003-12-26 JP JP2003435789A patent/JP3981070B2/ja not_active Expired - Fee Related
-
2004
- 2004-12-15 US US11/011,156 patent/US20050160228A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20050160228A1 (en) | 2005-07-21 |
JP2005196303A (ja) | 2005-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7502887B2 (en) | N-way set associative cache memory and control method thereof | |
JP3981070B2 (ja) | キャッシュリプレース装置及びキャッシュリプレース方法 | |
TWI533201B (zh) | 縮減交易回復的快取控制 | |
JP2005528694A (ja) | スレッド識別子に基づくキャッシュ追い出しを用いたマルチスレッド化キャッシュのための方法および装置 | |
US7447844B2 (en) | Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule | |
JPH1196074A (ja) | 交換アルゴリズム動的選択コンピュータシステム | |
JP4803983B2 (ja) | 演算処理装置 | |
US9720847B2 (en) | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed | |
KR20210019584A (ko) | 다중 테이블 분기 타겟 버퍼 | |
JP2009059077A (ja) | キャッシュシステム | |
US11288209B2 (en) | Controlling cache entry replacement based on usefulness of cache entry | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
WO2015004422A1 (en) | Data store and method of allocating data to the data store | |
KR20160065773A (ko) | 1차 캐시와 오버플로 선입 선출 캐시를 구비하는 캐시 시스템 | |
JP2010033480A (ja) | キャッシュメモリおよびキャッシュメモリ制御装置 | |
US7761665B2 (en) | Handling of cache accesses in a data processing apparatus | |
JP2007018514A (ja) | キャッシュメモリを備えた装置、欠陥キャッシュエントリの選択禁止方法、及びキャッシュ置換管理装置 | |
US7555610B2 (en) | Cache memory and control method thereof | |
JP2007156821A (ja) | キャッシュシステム及び共用2次キャッシュ | |
JP4009304B2 (ja) | キャッシュメモリおよびキャッシュメモリ制御方法 | |
US8688952B2 (en) | Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB | |
US8108611B2 (en) | Cache memory system | |
WO2016188392A1 (zh) | 一种数据地址产生系统和方法 | |
JP3770091B2 (ja) | キャッシュ制御方法及びキャッシュ制御回路 | |
US8423719B2 (en) | Apparatus, processor and method of controlling cache memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070604 |
|
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: 20070619 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070628 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100706 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130706 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |