JP2019164491A - 情報処理装置及びキャッシュ制御装置 - Google Patents

情報処理装置及びキャッシュ制御装置 Download PDF

Info

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
Application number
JP2018051258A
Other languages
English (en)
Other versions
JP2019164491A5 (ja
Inventor
伸昭 坂本
Nobuaki Sakamoto
伸昭 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Priority to JP2018051258A priority Critical patent/JP2019164491A/ja
Priority to US16/114,500 priority patent/US20190286562A1/en
Publication of JP2019164491A publication Critical patent/JP2019164491A/ja
Publication of JP2019164491A5 publication Critical patent/JP2019164491A5/ja
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache 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)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)処理と呼ぶ。
特開2014−178804号公報
従来のキャッシュ・メンテナンス処理は、タグメモリを読み出し、指定アドレス範囲にマッチするか否かを判定し、マッチした場合にはバリッドビットをクリアする。この処理を、指定アドレス範囲の分だけ繰り返す。従って、キャッシュ・メンテナンス処理をある指定アドレス範囲に対して行う場合、指定アドレス範囲が広い場合には、繰り返しの実行によりキャッシュ・メンテナンス処理に要する実行時間や消費電力が増大する。
そこで、目的は、指定アドレス範囲のキャッシュ・メンテナンス処理の高速化及び低消費電力化を実現することにある。
本実施形態の情報処理装置は、キャッシュメモリと、キャッシュ制御装置とを備えた構成である。前記キャッシュ制御装置は、第1の制御回路と、第2の制御回路とを含む。前記第1の制御回路は、指定したアドレス範囲に含まれる前記キャッシュメモリのアクセス対象アドレスであって、当該アクセス対象アドレスのキャッシュラインに対するキャッシュ・メンテナンス処理の実行を予約する。前記第2の制御回路は、前記第1の制御回路により予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する。
実施形態に関する情報処理装置の構成を説明するためのブロック図。 実施形態に関するキャッシュメモリの構成を説明するためのブロック図。 実施形態に関するキャッシュコントローラの構成を説明するためのブロック図。 実施形態に関するデータアレイとタグアドレスとの対応関係を説明するための図。 実施形態に関するCPU及びキャッシュコントローラの処理手順を説明するためのフローチャート。 実施形態に関するキャッシュ制御の処理内容の一例を説明する図。 実施形態に関するキャッシュ制御の処理内容の一例を説明する図。 実施形態に関するキャッシュ制御の処理内容の一例を説明する図。 実施形態に関するキャッシュ制御の処理内容の一例を説明する図。 実施形態に関するキャッシュ制御の処理内容の一例を説明する図。
以下図面を参照して、実施形態を説明する。
[システム構成]
図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の処理手順を説明するためのフローチャートである。
まず、コンピュータ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)」よりも少ない場合には、同様に、実行時間の短縮化及びキャッシュ・メンテナンス処理に伴う消費電力の低減化を実現できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…コンピュータ、10…プロセッサ(CPU)、11…キャッシュメモリ、
12…メインメモリ、13…DMAコントローラ、14…インターフェース、
20…キャッシュコントローラ、31…バリッドビット(VB)データアレイ、
32…ダーティビット(DB)データアレイ、
33…予約ビット(RB)データアレイ。

Claims (15)

  1. キャッシュメモリと、
    キャッシュ制御装置と、
    を具備し、
    前記キャッシュ制御装置は、
    指定したアドレス範囲に含まれる前記キャッシュメモリのアクセス対象アドレスであって、当該アクセス対象アドレスのキャッシュラインに対するキャッシュ・メンテナンス処理の実行を予約する第1の制御回路と、
    前記第1の制御回路により予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する第2の制御回路と、
    を含む、情報処理装置。
  2. 前記第1の制御回路は、
    前記キャッシュメモリのアクセス対象アドレスが入力された場合に、当該アクセス対象アドレスが、指定したアドレス範囲に含まれるか否かを判定する判定回路を含む、
    請求項1に記載の情報処理装置。
  3. 前記第1の制御回路は、
    前記キャッシュ・メンテナンス処理を予約したアクセス対象アドレス毎に予約情報を設定する記憶回路を含む、請求項1又は2に記載の情報処理装置。
  4. 前記第1の制御回路は、
    キャッシュ・メンテナンス処理対象の指定アドレス範囲を設定するレジスタ回路と、
    前記キャッシュメモリのアクセス対象アドレスが入力された場合に、当該アクセス対象アドレスが、前記レジスタ回路に設定された指定アドレス範囲に含まれるか否かを判定する判定回路と、
    含む、請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記第2の制御回路は、
    前記キャッシュ・メンテナンス処理の実行指示に応じて、予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する、請求項1から4のいずれか1項に記載の情報処理装置。
  6. 前記第2の制御回路は、
    前記キャッシュ・メンテナンス処理の実行指示に応じて、前記記憶回路に設定された予約情報に対応するキャッシュラインに対するキャッシュ・メンテナンス処理を実行する、請求項3に記載の情報処理装置。
  7. 前記キャッシュ制御装置は、前記キャッシュメモリのキャッシュライン毎に、当該キャッシュラインの有効性を示す有効情報を設定する第3の制御回路を含み、
    前記第2の制御回路は、
    前記第1の制御回路により予約されたキャッシュラインに対応する前記有効情報をクリアする、請求項1から6のいずれか1項に記載の情報処理装置。
  8. 前記キャッシュ・メンテナンス処理は、
    前記キャッシュメモリのアクセス対象アドレスのキャッシュラインを無効化する処理と、
    前記キャッシュメモリのアクセス対象アドレスのキャッシュラインをフラッシュする処理と、
    を含む、請求項1から7のいずれか1項に記載の情報処理装置。
  9. 前記キャッシュ制御装置は、
    前記第1の制御回路により予約されたアクセス対象アドレスのキャッシュラインが前記キャッシュメモリから追い出される場合、前記第1の制御回路により設定される予約をクリアする、請求項1から8のいずれか1項に記載の情報処理装置。
  10. キャッシュメモリを有する情報処理装置に適用するキャッシュ制御装置であって、
    指定したアドレス範囲に含まれる、前記キャッシュメモリのアクセス対象アドレスのキャッシュラインに対するキャッシュ・メンテナンス処理の実行を予約する第1の制御回路と、
    前記第1の制御回路により予約されたキャッシュラインに対するキャッシュ・メンテナンス処理を実行する第2の制御回路と、
    を具備する、キャッシュ制御装置。
  11. 前記第1の制御回路は、
    前記キャッシュメモリのアクセス対象アドレスが入力された場合に、当該アクセス対象アドレスが、指定したアドレス範囲にマッチングするか否かを判定するマッチング回路を含む、請求項10に記載のキャッシュ制御装置。
  12. 前記第1の制御回路は、
    前記キャッシュ・メンテナンス処理を予約したアクセス対象アドレス毎に予約情報を設定する第1のデータアレイを含む、請求項10又は11に記載のキャッシュ制御装置。
  13. 前記キャッシュメモリのキャッシュライン毎に、当該キャッシュラインの有効性を示す有効情報を設定する第2のデータアレイを含み、
    前記第2の制御回路は、
    前記第1の制御回路により予約されたキャッシュラインに対応する前記有効情報をクリアする、請求項10から12のいずれか1項に記載のキャッシュ制御装置。
  14. 前記キャッシュ・メンテナンス処理は、
    前記キャッシュメモリのアクセス対象アドレスのキャッシュラインを無効化する処理と、
    前記キャッシュメモリのアクセス対象アドレスのキャッシュラインをフラッシュする処理と、
    を含む、請求項10から13のいずれか1項に記載のキャッシュ制御装置。
  15. 前記第1の制御回路により予約されたアクセス対象アドレスのキャッシュラインが前記キャッシュメモリから追い出される場合、前記第1の制御回路により設定される予約をクリアする手段を含む、請求項10から14のいずれか1項に記載のキャッシュ制御装置。
JP2018051258A 2018-03-19 2018-03-19 情報処理装置及びキャッシュ制御装置 Abandoned JP2019164491A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6273733B2 (ja) * 2013-09-20 2018-02-07 富士通株式会社 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
KR102362239B1 (ko) * 2015-12-30 2022-02-14 삼성전자주식회사 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법

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