JP2019164491A - 情報処理装置及びキャッシュ制御装置 - Google Patents
情報処理装置及びキャッシュ制御装置 Download PDFInfo
- Publication number
- JP2019164491A JP2019164491A JP2018051258A JP2018051258A JP2019164491A JP 2019164491 A JP2019164491 A JP 2019164491A JP 2018051258 A JP2018051258 A JP 2018051258A JP 2018051258 A JP2018051258 A JP 2018051258A JP 2019164491 A JP2019164491 A JP 2019164491A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- control circuit
- access target
- target address
- cache line
- 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.)
- Abandoned
Links
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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
-
- 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/1024—Latency reduction
-
- 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/1028—Power efficiency
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
-
- 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/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】指定アドレス範囲のキャッシュ・メンテナンス処理の高速化及び低消費電力化を実現することにある。【解決手段】本実施形態の情報処理装置は、キャッシュメモリと、キャッシュ制御装置とを備えた構成である。前記キャッシュ制御装置は、第1の制御回路と、第2の制御回路とを含む。前記第1の制御回路は、指定したアドレス範囲に含まれる前記キャッシュメモリのアクセス対象アドレスであって、当該アクセス対象アドレスのキャッシュラインに対するキャッシュ・メンテナンス処理の実行を予約する。前記第2の制御回路は、前記第1の制御回路により予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する。【選択図】図2
Description
本発明の実施形態は、情報処理装置及びキャッシュ制御装置に関する。
コンピュータでは、アクセスの高速化のために、アクセス対象のデータを一時的に保持する(キャッシュする)キャッシュメモリ(cache memory)が使用されている。
キャッシュメモリは、例えば、プロセッサ(CPU)と他のマスタとのコヒーレンス(coherence)を維持するため、キャッシュされたデータ(キャッシュライン)を無効化(invalidate)する処理が必要となる。また、ライトバックキャッシュ(write back cache)方式では、キャッシュラインをメインメモリにフラッシュ(flush)する処理が必要となる。これらの処理を、総称してキャッシュ・メンテナンス(cache maintenance)処理と呼ぶ。
従来のキャッシュ・メンテナンス処理は、タグメモリを読み出し、指定アドレス範囲にマッチするか否かを判定し、マッチした場合にはバリッドビットをクリアする。この処理を、指定アドレス範囲の分だけ繰り返す。従って、キャッシュ・メンテナンス処理をある指定アドレス範囲に対して行う場合、指定アドレス範囲が広い場合には、繰り返しの実行によりキャッシュ・メンテナンス処理に要する実行時間や消費電力が増大する。
そこで、目的は、指定アドレス範囲のキャッシュ・メンテナンス処理の高速化及び低消費電力化を実現することにある。
本実施形態の情報処理装置は、キャッシュメモリと、キャッシュ制御装置とを備えた構成である。前記キャッシュ制御装置は、第1の制御回路と、第2の制御回路とを含む。前記第1の制御回路は、指定したアドレス範囲に含まれる前記キャッシュメモリのアクセス対象アドレスであって、当該アクセス対象アドレスのキャッシュラインに対するキャッシュ・メンテナンス処理の実行を予約する。前記第2の制御回路は、前記第1の制御回路により予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する。
以下図面を参照して、実施形態を説明する。
[システム構成]
図1は、本実施形態の情報処理装置(以下、コンピュータと表記する)1の構成の一例を示すブロック図である。図1に示すように、コンピュータ1は、プロセッサ(CPU)10、キャッシュメモリ11、メインメモリ12、DMA(Direct Memory Access)コントローラ13、及びインターフェース14を有する。
[システム構成]
図1は、本実施形態の情報処理装置(以下、コンピュータと表記する)1の構成の一例を示すブロック図である。図1に示すように、コンピュータ1は、プロセッサ(CPU)10、キャッシュメモリ11、メインメモリ12、DMA(Direct Memory Access)コントローラ13、及びインターフェース14を有する。
CPU10は、所定のソフトウェアに基づいて、キャッシュメモリ11及びメインメモリ12をアクセスし、例えば画像処理等の情報処理を実行する。キャッシュメモリ11は、後述するように、例えばSRAM(Static Random Access Memory)からなるデータ記憶領域及びタグ記憶領域を有する。また、本実施形態では、キャッシュメモリ11は、本実施形態の主要素であるキャッシュコントローラ(キャッシュ制御装置)を含む構成とする。
DMAコントローラ13は、CPU10が関与しないメモリアクセスを制御する。DMAコントローラ13は、例えば、インターフェース14を介して、メインメモリ12と周辺装置との間で直接的なデータ転送を実行する。
図2は、キャッシュメモリ11の構成の一例を示すブロック図である。図2に示すように、キャッシュメモリ11は、キャッシュコントローラ20、データ記憶領域21及びタグ記憶領域22を含む。キャッシュコントローラ20は、後述するように、本実施形態のキャッシュ・メンテナンス処理を含むキャッシュ制御を実行する。データ記憶領域21は、キャッシュライン(所定単位のキャッシュデータ)を格納する記憶領域である。タグ記憶領域22は、当該キャッシュラインのアドレス(タグアドレス)やアドレス履歴を格納する記憶領域である。
図3は、キャッシュコントローラ20の構成を示すブロック図である。図3に示すように、キャッシュコントローラ20は、複数のデータアレイ(データ配列:data array)31〜33を有する。データアレイは、バリッドビット(valid bit)データアレイ(以下、VBデータアレイ)31、ダーティビット(dirty bit)データアレイ(以下、DBデータアレイ)32、及び予約ビットデータアレイ(以下、RBデータアレイ)33を含む。
図4は、各データアレイ31〜33のそれぞれと、タグ記憶領域22のタグアドレス30との対応関係を示す図である。タグアドレス30は、キャッシュラインのアドレスであり、メインメモリ12のアドレスに対応している。各データアレイ31〜33のそれぞれは、キャッシュライン毎に1ビットのデータ(フラグ情報)を保持する。
ここで、キャッシュ・メンテナンス処理に含まれるフラッシュ処理とは、無効化処理とライトバック処理を意味する。VBデータアレイ31は、無効化処理及びフラッシュ処理により、対応するキャッシュラインのバリッドビット「1」が「0」にクリアされる。DBデータアレイ32は、フラッシュ処理により、対応するキャッシュラインのダーティビット「1」が「0」にクリアされる。また、RBデータアレイ33は、キャッシュ・メンテナンス処理(無効化処理又はフラッシュ処理)の実行を予約するためのデータアレイである。
図3に戻って、キャッシュコントローラ20は、アドレス範囲指定レジスタ34、マッチング部35、実行レジスタ36、及びシーケンサ37を含む。アドレス範囲指定レジスタ34は、CPU10により設定される、キャッシュ・メンテナンス処理の指定アドレス範囲を保持する。マッチング部35は、CPU10から入力される、キャッシュの入力アドレスが、アドレス範囲指定レジスタ34に設定された指定アドレス範囲にマッチングするか否かを判定する。
実行レジスタ36は、CPU10により設定される、無効化処理の実行を指示するフラグ情報を保持する。シーケンサ37は、実行レジスタ36に設定されたフラグ情報「1」に従って、RBデータアレイ33に予約ビットがセットされているキャッシュラインに対応するバリッドビット「0」にクリアする。また、ライトバックキャッシュの場合には、ダーティビットを「0」にクリアする。
[キャッシュ制御]
以下、図5から図10を参照して、本実施形態のキャッシュコントローラ20の動作を説明する。図5は、CPU10及びキャッシュコントローラ20の処理手順を説明するためのフローチャートである。
[キャッシュ制御]
以下、図5から図10を参照して、本実施形態のキャッシュコントローラ20の動作を説明する。図5は、CPU10及びキャッシュコントローラ20の処理手順を説明するためのフローチャートである。
まず、コンピュータ1では、例えば、CPU10は、メインメモリ12に確保されたフレームバッファに格納されている画像データ(バッファデータ)を加工し、インターフェース14を介して表示装置に当該画像データを転送する。ここで、例えばDMAコントローラ13が、次のバッファデータ(画像データ)をフレームバッファにロードする際に、キャッシュメモリ11に格納されている、前の不要なバッファデータ(画像データ)を無効化する処理が必要となる。この場合、フレームバッファのアドレス範囲に対して無効化処理が実行される。
なお、ライトバックキャッシュにおいて、先行してキャッシュメモリ11に書き込まれたバッファデータを、メインメモリ12に確保されたフレームバッファにフラッシュ(書き出し)する処理の場合も同様である。即ち、フレームバッファのアドレス範囲に対してフラッシュ処理が実行される。
前述したように、無効化処理及びフラッシュ処理を総称して、キャッシュ・メンテナンス処理と呼ぶ。ここで、以下のキャッシュコントローラ20の動作として、無効化処理について説明する。
図5に示すように、CPU10は、指定アドレス範囲に含まれるアドレスにアクセス処理を実行する前に、当該指定アドレス範囲に対する無効化処理の予約指定を実行する(S1)。具体的には、図3に示すように、CPU10は、キャッシュコントローラ20のアドレス範囲指定レジスタ34に無効化処理の予約対象である指定アドレス範囲を設定する。ここで、CPU10は、例えば、前述したように、キャッシュメモリ11に格納された前のバッファデータが格納されたアドレス範囲を、指定アドレス範囲とする場合である。
図5に戻って、CPU10は、指定アドレス範囲のアドレスに対するアクセス処理を実行する(S2)。キャッシュコントローラ20は、CPU10のアクセス対象である入力アドレスをマッチング部35に入力し、マッチング部35により当該入力アドレスがアドレス範囲指定レジスタ34に設定された指定アドレス範囲にマッチングするか否かを判定する(S10)。
キャッシュコントローラ20は、マッチング部35により入力アドレスが指定アドレス範囲にマッチした場合には(S11のYES)、RBデータアレイ33の対応するキャッシュラインの予約ビット(RB)をセットする(S12)。これにより、RBデータアレイ33は、指定アドレス範囲にマッチする入力アドレスに対応する、全てのキャッシュラインの予約ビット(RB)がセットされる。
一方、CPU10は、当該アクセス処理が終了すると、実行レジスタ36に無効化処理の実行を指示するフラグ情報「1」をセットする(S3)。これにより、キャッシュコントローラ20は、無効化処理を実行することになる。
具体的には、シーケンサ37は、実行レジスタ36にフラグ情報「1」がセットされている場合(S13のYES)、RBデータアレイ33の全エントリを検索し、セットされている予約ビットを読み出す(S14)。シーケンサ37は、VBデータアレイ31に対して、予約ビットがセットされている全キャッシュラインのバリッドビット(VB)を「0」にクリアする(S15)。
これにより、予約対象である指定アドレス範囲に含まれる全キャッシュラインは、無効化される。即ち、キャッシュメモリ11のデータ記憶領域21に格納された、例えば前述した前の不要なバッファデータ(画像データ)が無効化される。
ここで、VBデータアレイ31及びRBデータアレイ33が、フリップフロップ(flip-flop)により構成されている場合には、シーケンサ37は、一括して全キャッシュラインのバリッドビット(VB)を「0」にクリアできる。一方、VBデータアレイ31及びRBデータアレイ33が、SRAMにより構成されている場合には、シーケンサ37は、RBデータアレイ33の全エントリを逐次的に処理することになる。
図6から図10は、以上のようなキャッシュコントローラ20の無効化処理において、VBデータアレイ31及びRBデータアレイ33の各ビットの変化を示す図である。
まず、図6に示すように、CPU10からの入力アドレス(A)が指定アドレス範囲にマッチした場合、RBデータアレイ33の対応する予約ビット(RB)60は「1」がセットされる。一方、VBデータアレイ31では入力アドレス(A)のキャッシュラインがエントリされているため、対応するバリッドビット(VB)61は「1」がセットされている。
次に、図7に示すように、CPU10からの入力アドレス(B)が指定アドレス範囲にマッチした場合、RBデータアレイ33の対応する予約ビット(RB)70は「1」がセットされる。一方、VBデータアレイ31では入力アドレス(B)のキャッシュラインがエントリされているため、対応するバリッドビット(VB)71は「1」がセットされている。
次に、シーケンサ37は、実行レジスタ36にフラグ情報「1」がセットされている場合、RBデータアレイ33からセットされている予約ビット(ここでは、図7に示す70)を読み出す。図8に示すように、シーケンサ37は、VBデータアレイ31に対して、当該予約ビットに対応するキャッシュラインのバリッドビット(VB)81を「0」にクリアする。シーケンサ37は、キャッシュラインの無効化処理後に、RBデータアレイ33の該当する予約ビット(RB)80を「0」にクリアする。
同様にして、シーケンサ37は、RBデータアレイ33からセットされている予約ビット(ここでは、図8に示す60)を読み出す。図9に示すように、シーケンサ37は、VBデータアレイ31に対して、当該予約ビットに対応するキャッシュラインのバリッドビット(VB)91を「0」にクリアする。シーケンサ37は、キャッシュラインの無効化処理後に、RBデータアレイ33の該当する予約ビット(RB)90を「0」にクリアする。
ここで、図6に示す状態において、指定アドレス範囲にマッチしないアドレス(C)が入力された場合を想定する。この入力アドレスは、アドレス(A)に対応するキャッシュラインと同じエントリに格納されるアドレス(即ち、アドレス(A)、(C)はインデックス部が同じで、タグ部が異なる)とする。アドレス(C)の入力により、入力アドレス(C)に対応するキャッシュラインがキャッシュメモリ11に取り込まれる。この場合、アドレス(A)に対応するキャッシュラインは、キャッシュメモリ11から追い出されることになる。
これにより、図10に示すように、VBデータアレイ31には、入力アドレス(C)に対応するキャッシュラインに対応するバリッドビット(VB)93は「1」にセットされる。また、入力アドレス(C)は、指定アドレス範囲にマッチしないため、RBデータアレイ33の該当する予約ビット(RB)92はセットされずに、「0」である。一方、アドレス(A)に対応するキャッシュラインはキャッシュメモリ11から追い出されるため、アドレス(A)は無効化対象となる。このため、現時点では、対応する予約ビット(RB)60は「1」にセットされているが、「0」にクリアされることになる。
なお、前述したように、本実施形態は、フラッシュ処理に対しても適用できる。フラッシュ処理は、前述したように、無効化処理とライトバック処理を意味する。従って、フラッシュ処理の場合には、VBデータアレイ31に加えて、DBデータアレイ32も使用される。即ち、フラッシュ処理が実行されると、対応するキャッシュラインのダーティビット(DB)の「1」が「0」にクリアされる。
以上のように本実施形態によれば、指定アドレス範囲の全キャッシュラインに対応する予約ビットを予約ビットデータアレイ(RBデータアレイ)に設定することにより、全キャッシュラインに対するキャッシュ・メンテナンス処理を、タグアドレスを読み出すことなく、高速に実行することが可能となる。特に、指定アドレス範囲が広い場合には、有効である。
従来のキャッシュ・メンテナンス処理では、「アドレス範囲(byte)/キャッシュラインサイズ(byte)」回のデータ検索が必要であった。これに対して、本実施形態は、全キャッシュラインに対応する予約ビットの検索により、キャッシュ・メンテナンス処理に要する実行時間の短縮化を実現できる。特に、RBデータアレイをフリップフロップにより構成することで、1サイクルで指定アドレス範囲の処理を実行することができるため、キャッシュ・メンテナンス処理の高速化が可能となる。また、タグアドレスを読出し処理が不要であるため、キャッシュ・メンテナンス処理に伴う消費電力の低減化を実現できる。
また、RBデータアレイをSRAMにより構成する場合には、逐次実行となるため、SRAMのエントリ数分のサイクル数がかかるが、「アドレス範囲(byte)/キャッシュラインサイズ(byte)」よりも少ない場合には、同様に、実行時間の短縮化及びキャッシュ・メンテナンス処理に伴う消費電力の低減化を実現できる。
また、RBデータアレイをSRAMにより構成する場合には、逐次実行となるため、SRAMのエントリ数分のサイクル数がかかるが、「アドレス範囲(byte)/キャッシュラインサイズ(byte)」よりも少ない場合には、同様に、実行時間の短縮化及びキャッシュ・メンテナンス処理に伴う消費電力の低減化を実現できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…コンピュータ、10…プロセッサ(CPU)、11…キャッシュメモリ、
12…メインメモリ、13…DMAコントローラ、14…インターフェース、
20…キャッシュコントローラ、31…バリッドビット(VB)データアレイ、
32…ダーティビット(DB)データアレイ、
33…予約ビット(RB)データアレイ。
12…メインメモリ、13…DMAコントローラ、14…インターフェース、
20…キャッシュコントローラ、31…バリッドビット(VB)データアレイ、
32…ダーティビット(DB)データアレイ、
33…予約ビット(RB)データアレイ。
Claims (15)
- キャッシュメモリと、
キャッシュ制御装置と、
を具備し、
前記キャッシュ制御装置は、
指定したアドレス範囲に含まれる前記キャッシュメモリのアクセス対象アドレスであって、当該アクセス対象アドレスのキャッシュラインに対するキャッシュ・メンテナンス処理の実行を予約する第1の制御回路と、
前記第1の制御回路により予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する第2の制御回路と、
を含む、情報処理装置。 - 前記第1の制御回路は、
前記キャッシュメモリのアクセス対象アドレスが入力された場合に、当該アクセス対象アドレスが、指定したアドレス範囲に含まれるか否かを判定する判定回路を含む、
請求項1に記載の情報処理装置。 - 前記第1の制御回路は、
前記キャッシュ・メンテナンス処理を予約したアクセス対象アドレス毎に予約情報を設定する記憶回路を含む、請求項1又は2に記載の情報処理装置。 - 前記第1の制御回路は、
キャッシュ・メンテナンス処理対象の指定アドレス範囲を設定するレジスタ回路と、
前記キャッシュメモリのアクセス対象アドレスが入力された場合に、当該アクセス対象アドレスが、前記レジスタ回路に設定された指定アドレス範囲に含まれるか否かを判定する判定回路と、
含む、請求項1から3のいずれか1項に記載の情報処理装置。 - 前記第2の制御回路は、
前記キャッシュ・メンテナンス処理の実行指示に応じて、予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する、請求項1から4のいずれか1項に記載の情報処理装置。 - 前記第2の制御回路は、
前記キャッシュ・メンテナンス処理の実行指示に応じて、前記記憶回路に設定された予約情報に対応するキャッシュラインに対するキャッシュ・メンテナンス処理を実行する、請求項3に記載の情報処理装置。 - 前記キャッシュ制御装置は、前記キャッシュメモリのキャッシュライン毎に、当該キャッシュラインの有効性を示す有効情報を設定する第3の制御回路を含み、
前記第2の制御回路は、
前記第1の制御回路により予約されたキャッシュラインに対応する前記有効情報をクリアする、請求項1から6のいずれか1項に記載の情報処理装置。 - 前記キャッシュ・メンテナンス処理は、
前記キャッシュメモリのアクセス対象アドレスのキャッシュラインを無効化する処理と、
前記キャッシュメモリのアクセス対象アドレスのキャッシュラインをフラッシュする処理と、
を含む、請求項1から7のいずれか1項に記載の情報処理装置。 - 前記キャッシュ制御装置は、
前記第1の制御回路により予約されたアクセス対象アドレスのキャッシュラインが前記キャッシュメモリから追い出される場合、前記第1の制御回路により設定される予約をクリアする、請求項1から8のいずれか1項に記載の情報処理装置。 - キャッシュメモリを有する情報処理装置に適用するキャッシュ制御装置であって、
指定したアドレス範囲に含まれる、前記キャッシュメモリのアクセス対象アドレスのキャッシュラインに対するキャッシュ・メンテナンス処理の実行を予約する第1の制御回路と、
前記第1の制御回路により予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する第2の制御回路と、
を具備する、キャッシュ制御装置。 - 前記第1の制御回路は、
前記キャッシュメモリのアクセス対象アドレスが入力された場合に、当該アクセス対象アドレスが、指定したアドレス範囲にマッチングするか否かを判定するマッチング回路を含む、請求項10に記載のキャッシュ制御装置。 - 前記第1の制御回路は、
前記キャッシュ・メンテナンス処理を予約したアクセス対象アドレス毎に予約情報を設定する第1のデータアレイを含む、請求項10又は11に記載のキャッシュ制御装置。 - 前記キャッシュメモリのキャッシュライン毎に、当該キャッシュラインの有効性を示す有効情報を設定する第2のデータアレイを含み、
前記第2の制御回路は、
前記第1の制御回路により予約されたキャッシュラインに対応する前記有効情報をクリアする、請求項10から12のいずれか1項に記載のキャッシュ制御装置。 - 前記キャッシュ・メンテナンス処理は、
前記キャッシュメモリのアクセス対象アドレスのキャッシュラインを無効化する処理と、
前記キャッシュメモリのアクセス対象アドレスのキャッシュラインをフラッシュする処理と、
を含む、請求項10から13のいずれか1項に記載のキャッシュ制御装置。 - 前記第1の制御回路により予約されたアクセス対象アドレスのキャッシュラインが前記キャッシュメモリから追い出される場合、前記第1の制御回路により設定される予約をクリアする手段を含む、請求項10から14のいずれか1項に記載のキャッシュ制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018051258A JP2019164491A (ja) | 2018-03-19 | 2018-03-19 | 情報処理装置及びキャッシュ制御装置 |
US16/114,500 US20190286562A1 (en) | 2018-03-19 | 2018-08-28 | Information processing apparatus, cache control apparatus and cache control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018051258A JP2019164491A (ja) | 2018-03-19 | 2018-03-19 | 情報処理装置及びキャッシュ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019164491A true JP2019164491A (ja) | 2019-09-26 |
JP2019164491A5 JP2019164491A5 (ja) | 2020-02-20 |
Family
ID=67905624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018051258A Abandoned JP2019164491A (ja) | 2018-03-19 | 2018-03-19 | 情報処理装置及びキャッシュ制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190286562A1 (ja) |
JP (1) | JP2019164491A (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6273733B2 (ja) * | 2013-09-20 | 2018-02-07 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
KR102362239B1 (ko) * | 2015-12-30 | 2022-02-14 | 삼성전자주식회사 | 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법 |
-
2018
- 2018-03-19 JP JP2018051258A patent/JP2019164491A/ja not_active Abandoned
- 2018-08-28 US US16/114,500 patent/US20190286562A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20190286562A1 (en) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101379596B1 (ko) | Tlb 프리페칭 | |
US10719448B2 (en) | Cache devices with configurable access policies and control methods thereof | |
US9645931B2 (en) | Filtering snoop traffic in a multiprocessor computing system | |
US20120159080A1 (en) | Neighbor cache directory | |
US7472227B2 (en) | Invalidating multiple address cache entries | |
TW201528136A (zh) | 準確預測記憶體存取之以區域爲基礎的技術 | |
CN113641596B (zh) | 缓存管理方法、缓存管理装置、处理器 | |
US11921650B2 (en) | Dedicated cache-related block transfer in a memory system | |
US20230102891A1 (en) | Re-reference interval prediction (rrip) with pseudo-lru supplemental age information | |
US11526449B2 (en) | Limited propagation of unnecessary memory updates | |
JP2020003959A (ja) | 情報処理装置、演算処理装置及び情報処理装置の制御方法 | |
US10565111B2 (en) | Processor | |
US11409659B2 (en) | Tags and data for caches | |
JP2016057763A (ja) | キャッシュ装置、及びプロセッサ | |
US9842050B2 (en) | Add-on memory coherence directory | |
JP2019164491A (ja) | 情報処理装置及びキャッシュ制御装置 | |
GB2502858A (en) | A method of copying data from a first memory location and storing it in a cache line associated with a different memory location | |
EP3724774B1 (en) | Rinsing cache lines from a common memory page to memory | |
JP2005346582A (ja) | システムlsi及び画像処理装置 | |
JP6565729B2 (ja) | 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 | |
JP2017068806A (ja) | 情報処理装置および情報処理方法 | |
JP2016206796A (ja) | 演算処理装置、情報処理装置および演算処理装置の制御方法 | |
KR20240067941A (ko) | 예비 디렉토리 항목에 특정 데이터 패턴의 표시 저장 | |
US7840757B2 (en) | Method and apparatus for providing high speed memory for a processing unit | |
WO2023055508A1 (en) | Storing an indication of a specific data pattern in spare directory entries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200109 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200109 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20200529 |