JP2016057763A - キャッシュ装置、及びプロセッサ - Google Patents
キャッシュ装置、及びプロセッサ Download PDFInfo
- Publication number
- JP2016057763A JP2016057763A JP2014182426A JP2014182426A JP2016057763A JP 2016057763 A JP2016057763 A JP 2016057763A JP 2014182426 A JP2014182426 A JP 2014182426A JP 2014182426 A JP2014182426 A JP 2014182426A JP 2016057763 A JP2016057763 A JP 2016057763A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- memory
- specific data
- 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.)
- Pending
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/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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/6022—Using a prefetch buffer or dedicated prefetch cache
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
【課題】キャッシュメモリの使用量を抑制することができる、キャッシュ装置、及びプロセッサを提供する。
【解決手段】データとアドレスとを一時的に保持するキャッシュ29と、予め設定された特定データのアドレスを一時的に保持する特定データタグ28と、任意のデータが特定データであるか否かを判定するデータ比較部273と、任意のアドレスの格納先を検索するアドレス比較部274とを有する比較制御部271を備え、指定されたアドレスについてデータのロードが指示された場合に、比較制御部271は指定されたアドレスの格納先を検索し、格納先がキャッシュ29である場合には指定されたアドレスのデータを出力し、格納先が特定データタグ28である場合には特定データを出力する。
【選択図】図2
【解決手段】データとアドレスとを一時的に保持するキャッシュ29と、予め設定された特定データのアドレスを一時的に保持する特定データタグ28と、任意のデータが特定データであるか否かを判定するデータ比較部273と、任意のアドレスの格納先を検索するアドレス比較部274とを有する比較制御部271を備え、指定されたアドレスについてデータのロードが指示された場合に、比較制御部271は指定されたアドレスの格納先を検索し、格納先がキャッシュ29である場合には指定されたアドレスのデータを出力し、格納先が特定データタグ28である場合には特定データを出力する。
【選択図】図2
Description
本実施形態は、キャッシュ装置、及びプロセッサに関する。
一般的に、プロセッサやハードウェアエンジンの演算処理速度は、DRAM等から成るメインメモリのデータ供給速度よりも速い。この速度差を埋めるために、キャッシュメモリが用いられている。キャッシュメモリは、メインメモリよりも高速に動作するSRAM等から成るメモリであり、メインメモリのデータを一時的に記憶するものである。プロセッサなどは、メインメモリでなくキャッシュメモリに格納されているデータにアクセスすることで、高速な処理を行うことができる。キャッシュメモリは、メインメモリに比べて小容量であり、メインメモリの一部のデータのみを、所定のブロック単位で記憶する。
メインメモリに格納されているデータには例えば行列があり、プロセッサなどが行列にアクセスする際には、行列の一部がキャッシュメモリにコピーされる。行列には、その要素の大部分が同一値(たとえばゼロ)である疎行列と、異なる多様な要素で構成されている密行列とがある。一般的に、科学技術計算に用いられる行列などは、疎行列である場合が多い。
メインメモリに格納されているデータが疎行列である場合、従来は、大部分が同一のデータであるにもかかわらず、指定された行列の一部に含まれるすべてのデータをキャッシュにコピーしていた。すなわち、データが疎行列である場合においても、キャッシュメモリにはプロセッサなどで使用されるデータ量に応じた記憶容量が必要となる。
しかし、キャッシュメモリは高価であり、また、装置の小型化に対する要望が高まっていることから、記憶容量をなるべく小さくしたいという要望がある。
Computer Organization and Design, John L. Hennessy and DavidA. Patterson, pp.545-579
本実施形態は、キャッシュメモリの使用量を抑制することができる、キャッシュ装置、及びプロセッサを提供することを目的とする。
本実施形態のキャッシュ装置は、データと前記データのアドレスとを一時的に保持する第一のメモリと、予め設定された特定データの前記アドレスを一時的に保持する第二のメモリと、任意のデータが前記特定データであるか否かを判定するデータ比較部と、任意のアドレスの格納先を検索するアドレス比較部とを有する第一の比較制御部を備え、指定されたアドレスについて前記データのロードが指示された場合に、第一の比較制御部は前記指定されたアドレスの格納先を検索し、前記格納先が前記第一のメモリである場合には前記指定されたアドレスのデータを出力し、前記格納先が前記第二のメモリである場合には前記特定データを出力する。
以下、図面を参照して実施形態を説明する。
(構成)
図1は、本発明の実施形態に係わる本発明の実施形態に係わるキャッシュ装置12を含むシステムの構成を説明する概略ブロック図である。本実施形態のキャッシュ装置12を含むシステムは、中央処理装置(以下、CPUと記す)11とキャッシュ装置12とを含むプロセッサ1と、メインメモリである主記憶装置3と、入出力装置4と、相互接続網2とから主に構成されている。CPU11と、キャッシュ装置12と、主記憶装置3と、入出力装置4とは、相互接続網2を介して互いに接続される。また、相互接続網2には、別のプロセッサ5を接続することもできる。プロセッサ5はキャッシュを備えていてもよいし、プロセッサ1のキャッシュ装置12を共有して用いる構成にしてもよい。
(構成)
図1は、本発明の実施形態に係わる本発明の実施形態に係わるキャッシュ装置12を含むシステムの構成を説明する概略ブロック図である。本実施形態のキャッシュ装置12を含むシステムは、中央処理装置(以下、CPUと記す)11とキャッシュ装置12とを含むプロセッサ1と、メインメモリである主記憶装置3と、入出力装置4と、相互接続網2とから主に構成されている。CPU11と、キャッシュ装置12と、主記憶装置3と、入出力装置4とは、相互接続網2を介して互いに接続される。また、相互接続網2には、別のプロセッサ5を接続することもできる。プロセッサ5はキャッシュを備えていてもよいし、プロセッサ1のキャッシュ装置12を共有して用いる構成にしてもよい。
CPU11は、各種データの演算を行う。CPU11は、キャッシュ装置12と、相互接続網2とに接続されており、演算に必要なデータ(プログラムを含む)を、キャッシュ装置12あるいは相互接続網2経由で主記憶装置3から取得する。キャッシュ装置12は、各種データを一時的に保存する。具体的には、キャッシュ装置12は、CPU11よりストアされたデータや、主記憶装置3から取得したデータを保持する。
主記憶装置3は、入出力装置4から取得したデータや、CPU11及びキャッシュ装置12から出力されたデータを記録する。入出力装置4は、図1に示すシステムの外部から主記憶装置3にデータを入力したり、主記憶装置3からシステム外部にデータを出力したりする。プログラムを含め、本システムの動作に必要なデータは、入出力装置4から入力される。
キャッシュ装置12は、ロードストアフラグ(L/S)、アドレス、ストアデータ(S_Data)の各データをCPU11から取得する。ロードストアフラグは、CPU11からキャッシュ装置12に対してデータを出力する(ストア)か、キャッシュ装置12からCPU11にデータを入力する(ロード)かを識別するためのフラグである。例えば、ロードストアフラグは、ロードの場合には“0”が、ストアの場合には“1”がセットされる。アドレスは、特定のビット幅でタグとインデックスとに分類される。また、キャッシュ装置12は、ロードデータ(L_Data)をCPU11に対して出力する。
さらに、キャッシュ装置12は主記憶装置3に対し、ライトインタフェース(W I/F)25を介し相互接続網2を経由してデータを出力する。また、キャッシュ装置12は主記憶装置3から、相互接続網2を経由しリードインタフェース(R I/F)26を介してデータを取得する。キャッシュ装置12のすべての動作の制御は、制御部27で行われる。
次に、キャッシュ装置12の詳細な構成について説明する。図2は、キャッシュ装置12の構成の一例を説明する概略ブロック図である。図2のキャッシュ装置12は、第二のメモリとしての特定データタグ28、第一のメモリとしての一般データキャッシュ(以下、キャッシュと示す)29、リフィルバッファ30、ライトキュー31、ライトインタフェース25、リードキュー32、リードインタフェース26、特定データレジスタ33、第一の比較制御部である比較制御部271、及び、第二の比較制御部である比較制御部272で構成される。比較制御部271、272は、図1の制御部27に含まれる。
特定データタグ28は、特定データの一時保存状態を管理するための機構である。ここで特定データとは、データ中に含まれる一定のデータであり、多く含まれるデータや連続して含まれるデータ等である。例えば、疎行列には“0”が多く含まれるので、“0”を特定データとしてのよい。また、画像データには背景値が連続して含まれるので、背景値を特定データとしてもよい。特定データタグ28は、複数の特定データタグエントリで構成され、各特定データタグエントリは、当該エントリが有効であるか否かを識別するための有効ビット(V)、特定データのアドレスを示すアドレスタグ(Tag)、当該エントリが書き換えられている否かを識別するためのダーティビット(D)で構成される。
キャッシュ29は、特定データ以外のデータを一時保存するための機構であり、キャッシュタグと、キャッシュラインアレイとから構成される。キャッシュタグは、複数のキャッシュタグエントリで構成される。各キャッシュタグエントリは、有効ビット(V)、アドレスタグ(Tag)、ダーティビット(D)で構成される。キャッシュラインアレイは、複数のラインデータ(Line Data)で構成される。キャッシュタグエントリとキャッシュラインは、1対1で対応づけられている。
リフィルバッファ30は、主記憶装置3から取得したデータやCPU11から取得したデータを、特定データタグ28またはキャッシュ29のどちらか一方に提供する。リフィルバッファ30は、リフィルタグと、リフィルラインアレイとから構成される。リフィルタグは、複数のリフィルタグエントリで構成され、各リフィルタグエントリは、有効ビット(V)、アドレス(Address)、ダーティビット(D)で構成される。リフィルラインアレイは、複数のラインデータ(Line Data)で構成される。リフィルタグエントリとリフィルラインは、1対1で対応づけられている。
ライトキュー31は、ライトインタフェース25を介して主記憶装置3にデータを出力する。ライトキュー31は、複数のライトキューエントリで構成される。各ライトキューエントリは、アドレス(Address)とラインデータ(Line Data)で構成される。
リードキュー32は、リードインタフェース26を介して主記憶装置3からデータを取得する。リードキュー32は、複数のリードキューエントリで構成される。各リードキューエントリは、アドレス(Address)で構成される。
特定データレジスタ33は、特定データタグ28で管理する特定データを格納するためのレジスタである。特定データは、CPU11によって指定される。特定データを一定の値(例えば、“0”)に固定する場合には、レジスタ33の値を固定してもよいし、あるいはレジスタ33の各出力先で該固定値を入力してもよい。
すなわち、本実施形態では、特定データレジスタ33と特定データタグ28を設けることで、特定データについてはアドレスタグのみを特定データタグ28に格納し、データ自体は格納しない。これにより、すべてのデータをキャッシュに格納する場合に比べて、キャッシュメモリの使用量を削減することができる。
比較制御部271は、CPU11とキャッシュ装置12との間でのデータフローを制御する。比較制御部271は、ロードの場合、キャッシュ29、特定データレジスタ33、リフィルバッファ30のいずれからデータをCPU11にロードするかを決定する。また、比較制御部271は、ストアの場合、CPU11から取得したストアデータ及びアドレスを、特定データタグ28、キャッシュ29、リフィルバッファ30のいずれに格納するかを決定する。比較制御部271は、データ比較部273とアドレス比較部274とから構成される。データ比較部273は、ストアデータと特定データとを比較する。アドレス比較部274は、CPU11から取得したアドレスと、キャッシュ29の当該キャッシュタグエントリ、特定データレジスタ33、リフィルバッファ30に格納されているアドレスとを比較する。
比較制御部272は、リフィルバッファ30のリフィルラインアレイに格納されているデータのリフィル先を制御する。具体的には、比較制御部272は、リフィルラインアレイのデータと特定データとを比較するデータ比較部275で構成される。
(作用)
次に、本実施形態におけるキャッシュ装置12の動作について説明する。まず、キャッシュ装置12からCPU11にデータをロードする場合について説明する。
(作用)
次に、本実施形態におけるキャッシュ装置12の動作について説明する。まず、キャッシュ装置12からCPU11にデータをロードする場合について説明する。
CPU11からキャッシュ装置12に対し、ロードストアフラグとしてロードを示すフラグと、ロードするデータが格納されているアドレスとが入力される。ロードストアフラグとアドレスは、比較制御部271に入力される。アドレス比較部274は、特定データタグ28と、キャッシュ29と、リフィルバッファ30に、入力されたアドレスのエントリが存在するか否かを判定する(アドレスヒット判定)。
特定データタグ28のアドレスヒット判定は、次のように行う。まず、入力されたアドレスのインデックスに基づき、該当する特定データタグエントリを抽出する。あるいは、入力されたアドレスのタグに基づいて特定データタグエントリを抽出しても良い。抽出した特定データタグエントリの有効ビットが“無効”を示す場合、入力されたアドレスのエントリは存在しないと判定する。一方、有効ビットが“有効”を示す場合、抽出した特定データタグエントリのアドレスタグと、入力されたアドレスのタグとを比較する。両者が異なる場合、入力されたアドレスのエントリは存在しないと判定する。両者が同一である場合、入力されたアドレスのエントリは特定データタグ28に存在すると判定する。
キャッシュ29のアドレスヒット判定は、次のように行う。まず、入力されたアドレスのインデックスに基づき、該当するキャッシュタグエントリを抽出する。あるいは、入力されたアドレスのタグに基づいてキャッシュタグエントリを抽出しても良い。抽出したキャッシュタグエントリの有効ビットが“無効”を示す場合、入力されたアドレスのエントリは存在しないと判定する。一方、有効ビットが“有効”を示す場合、抽出したキャッシュタグエントリのアドレスタグと、入力されたアドレスのタグとを比較する。両者が異なる場合、入力されたアドレスのエントリは存在しないと判定する。両者が同一である場合、入力されたアドレスのエントリはキャッシュ29に存在すると判定する。
リフィルバッファ30のアドレスヒット判定は、次のように行う。すなわち、リフィルタグエントリのアドレスと入力されたアドレスが同一であるエントリを抽出する。エントリが抽出できなかった場合、入力されたアドレスのエントリは存在しないと判定する。また、抽出したリフィルタグエントリの有効ビットが“無効”を示す場合、入力されたアドレスのエントリは存在しないと判定する。一方、有効ビットが“有効”を示す場合、入力されたアドレスのエントリはリフィルバッファ30に存在すると判定する。
以上のアドレスヒット判定において、特定データタグ28に入力されたアドレスのエントリが存在すると判定された場合、特定データを、ロードデータとしてCPU11に出力する。また、キャッシュ29に入力されたアドレスのエントリが存在すると判定された場合、当該エントリと対応づけられているラインデータを、ロードデータとしてCPU11に出力する。また、リフィルバッファ30に入力されたアドレスのエントリが存在すると判定された場合、当該エントリと対応づけられているラインデータを、ロードデータとしてCPU11に出力する。
一方、特定データタグ28、キャッシュ29、リフィルバッファ30のいずれにおいても入力されたアドレスのエントリが存在しないと判定された場合、制御部27は、リードキュー32に入力されたアドレスを指定し、主記憶装置3から当該アドレスのデータを読み出すよう指示する。リードキュー32は、指定されたアドレスを用い、リードインタフェース26を介して主記憶装置3から当該アドレスのデータを取得する。リードインタフェース26は、取得したデータをロードデータとしてCPU11に出力し、また、指定されたアドレスと取得したデータとをラインデータとしてリフィルバッファ30へ出力する。
リフィルバッファ30は、有効ビットが“無効”であるリフィルタグエントリを1つ抽出し、アドレスにリードインタフェース26から入力されたアドレスを保存し、有効ビットを“有効”に設定する。また、ダーティビットを、書き換えられていないことを示す“無効”に設定する。更に、リフィルバッファ30は、ラインデータに、主記憶装置3からの読み出しデータを保存する。リフィルバッファ30に、有効ビットが“無効”であるリフィルタグエントリがない場合、有効ビットが“無効”であるリフィルタグエントリが得られるまで待機する。以上の一連の動作により、キャッシュ装置12からCPU11へのデータのロードを完了する。
なお、リフィルバッファ30に、有効ビットが“無効”であるリフィルタグエントリがない場合、有効ビットが“有効”であるエントリを1つ選択し、ラインデータとともに、特定データタグ28またはキャッシュ29に対してリフィル要求を行う。
次に、CPU11からキャッシュ装置12にデータをストアする場合について説明する。CPU11からキャッシュ装置12に対し、ロードストアフラグとしてストアを示すフラグと、ストアするデータが格納されているアドレスと、ストアデータとが入力される。ロードストアフラグ、アドレス及びストアデータは、比較制御部271に入力される。アドレス比較部274は、特定データタグ28と、キャッシュ29と、リフィルバッファ30に対し、CPU11から入力されたアドレスのエントリが存在するか否かを判定する(アドレスヒット判定)。アドレスヒット判定の詳細な方法は、上述したCPU11へデータをロードする場合と同様である。
アドレスヒット判定において、特定データタグ28に入力されたアドレスのエントリが存在すると判定された場合、データ比較部273において、ストアデータと特定データとを比較する。両者が一致する場合、CPU11からキャッシュ装置12へのデータのストアを完了する。一方、両者が一致しない場合、当該エントリの有効ビットを“無効”に設定する。すなわち、特定データタグ28に入力されたアドレスのエントリが存在しない、とする。
アドレスヒット判定において、キャッシュ29に入力されたアドレスのエントリが存在すると判定された場合、対応するラインデータにストアデータを保存する。そして、当該エントリのダーティビットを、書き換えられたことを示す“有効”に設定する。
また、リフィルバッファ30に入力されたアドレスのエントリが存在すると判定された場合、対応するラインデータにストアデータを保存する。そして、当該エントリのダーティビットを、“有効”に設定する。
特定データタグ28、キャッシュ29、リフィルバッファ30のいずれにおいても入力されたアドレスのエントリが存在しないと判定された場合、制御部27は、入力されたアドレスとストアデータをリフィルバッファ30へ出力する。
リフィルバッファ30は、有効ビットが“無効”であるリフィルタグエントリを1つ抽出し、当該エントリのアドレスに入力されたアドレスを保存する。また、当該エントリの有効ビットを“有効”に設定する。また、当該エントリのダーティビットを、“有効”に設定する。更に、当該エントリと対応づけられているラインデータに、ストアデータを保存する。リフィルバッファ30に、有効ビットが“無効”であるリフィルタグエントリがない場合、有効ビットが“無効”であるリフィルタグエントリが得られるまで待機する。以上の一連の動作により、CPU11からキャッシュ装置12へのデータのストアを完了する。
次に、リフィルバッファ30から特定データタグ28やキャッシュ29に対するラインデータのリフィル動作について説明する。
まず、比較制御部272は、特定データタグ28とキャッシュ29のどちらにリフィル要求を行うかを決定する。具体的には、データ比較部275において、リフィル要求されたラインデータと、特定データレジスタ33に格納されている特定データとが比較される。ラインデータと特定データとが一致する場合、特定データタグ28に対してリフィル要求を行う。ラインデータと特定データとが一致しない場合、比較制御部272はキャッシュ29に対してリフィル要求を行う。
特定データタグ28に対してリフィル要求を行う場合、比較制御部272は、リフィル要求されたエントリにおけるアドレスのインデックスを用い、対応する特定データタグエントリを抽出する。抽出した特定データタグエントリの有効ビットが“無効”である場合、比較制御部272は以下のリフィル処理を行う。すなわち、特定データタグ28は、抽出したエントリの有効ビットを“有効”に設定し、タグに当該エントリにおけるアドレスのタグを保存し、ダーティビットにリフィル要求されたエントリのダーティビットの値を保存する。
一方、抽出した特定データタグエントリの有効ビットが“有効”である場合、比較制御部272は、抽出したエントリのタグとリフィル要求されたアドレスのインデックスとから、主記憶装置3への書き込みアドレスを構成する。そして、比較制御部272はライトキュー31に対し、構成したアドレスと特定データとを出力する。ライトキュー31へのデータ書き込みが終了した後に、特定データタグ28の当該エントリに対して上述のリフィル処理を行う。
キャッシュ29に対してリフィル要求を行う場合、比較制御部272は、リフィル要求されたエントリにおけるアドレスのインデックスを用い、対応するキャッシュタグエントリを抽出する。抽出したキャッシュタグエントリの有効ビットが“無効”である場合、以下のリフィル処理を行う。すなわち、キャッシュ29は、抽出したエントリの有効ビットを“有効”に設定し、タグに当該エントリにおけるアドレスのタグを、ダーティビットにリフィル要求されたエントリのダーティビットの値を、ラインデータにリフィル要求されたデータを保存する。
一方、抽出したキャッシュタグエントリの有効ビットが“有効”である場合、比較制御部272は、抽出したエントリのタグとリフィル要求されたアドレスのインデックスとから、主記憶装置3への書き込みアドレスを構成する。そして、比較制御部272はライトキュー31に対し、構成したアドレスと抽出したエントリと対応づけられているラインデータとを出力する。ライトキュー31へのデータ書き込みが終了した後に、キャッシュ29の当該エントリに対して上述のリフィル処理を行う。
なお、ライトキュー31に書き込まれたアドレスとラインデータは、所定のタイミングで、ライトインタフェース25を介して主記憶装置3に出力される。主記憶装置3の当該アドレスに、出力されたラインデータが保存される。
リフィル要求されたリフィルタグエントリが、特定データタグ28またはキャッシュ29のいずれか選択された一方にリフィルされた後、当該エントリの有効ビットを“無効”に設定し、一連のリフィル動作を完了する。
なお、リフィル動作は、CPU11からキャッシュ装置12に対してロード/ストア指示が入力されたタイミングに限らず、CPU11の空き時間などにも随時行ってもよい。
このように、本実施形態によれば、通常のデータキャッシュに加え、キャッシュデータが特定データであるか否かを判定する制御部と、アドレスなどデータ以外の管理情報のみを保存する特定データタグとを設けている。従って、キャッシュデータが特定データである場合、特定データタグに管理情報のみを保存すればデータを一時保持でき、データを保存する必要がないため、キャッシュメモリの使用量を抑制することができる。
また、本実施形態のキャッシュ装置は、キャッシュメモリのデータ構造とキャッシュメモリへのアクセス方法とは従来となんら変わらない。従って、任意のCPUと接続して使用することができる。また、複数のCPUに接続し、共用することも可能である。
(変形例)
上述の実施の形態では、リフィルバッファ30のリフィルタグは、複数のリフィルタグエントリとリフィルラインアレイとから構成されているが、1つのリフィルタグエントリとラインデータのみで構成するようにしてもよい。図3は、キャッシュ装置12の構成の変形例を説明する概略ブロック図である。図3に示すように、1つのリフィルタグとラインデータのみでリフィルバッファ30´を構成し、リフィルバッファ30´に新しくデータが格納される都度、特定データタグ28又はキャッシュ29へリフィル要求を行い、いずれか一方にデータをリフィルするようにしてもよい。
(変形例)
上述の実施の形態では、リフィルバッファ30のリフィルタグは、複数のリフィルタグエントリとリフィルラインアレイとから構成されているが、1つのリフィルタグエントリとラインデータのみで構成するようにしてもよい。図3は、キャッシュ装置12の構成の変形例を説明する概略ブロック図である。図3に示すように、1つのリフィルタグとラインデータのみでリフィルバッファ30´を構成し、リフィルバッファ30´に新しくデータが格納される都度、特定データタグ28又はキャッシュ29へリフィル要求を行い、いずれか一方にデータをリフィルするようにしてもよい。
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明した。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
25…ライトインタフェース、26…リードインタフェース、28…特定データタグ、29…キャッシュ、30…リフィルバッファ、31…ライトキュー、32…リードキュー、33…特定データレジスタ、271、272…比較制御部、
Claims (6)
- データと前記データのアドレスとを一時的に保持する第一のメモリと、
予め設定された特定データの前記アドレスを一時的に保持する第二のメモリと、
任意のデータが前記特定データであるか否かを判定するデータ比較部と、任意のアドレスの格納先を検索するアドレス比較部とを有する第一の比較制御部を備え、
指定されたアドレスについて前記データのロードが指示された場合に、第一の比較制御部は前記指定されたアドレスの格納先を検索し、前記格納先が前記第一のメモリである場合には前記指定されたアドレスのデータを出力し、前記格納先が前記第二のメモリである場合には前記特定データを出力する、キャッシュ装置。 - 前記指定されたデータをストアする指示がなされた場合に、第一の比較制御部は前記指定されたデータが前記特定データであるか否かを判定し、
前記指定されたデータが前記特定データでない場合には、前記指定されたデータのアドレスとデータとを前記第一のメモリに格納し、
前記指定されたデータが前記特定データの場合には、前記指定されたデータのアドレスを前記第二のメモリに格納する、請求項1に記載のキャッシュ装置。 - 一時的に保持するデータが前記特定データであるか否かを判定するデータ比較部を有する第二の比較制御部を更に備え、
前記一時的に保持するデータが前記特定データでない場合には、前記一時的に保持するデータとそのアドレスとを前記前記第一のメモリに格納し、
前記一時的に保持するデータが前記特定データである場合には、前記一時的に保持するデータを前記第二のメモリに格納する、請求項1に記載のキャッシュ装置。 - 前記指定されたデータをストアする指示がなされた場合に、第一の比較制御部は前記指定されたデータが前記特定データであるか否かの判定と前記指定されたアドレスの格納先を検索し、
前記指定されたデータが前記特定データでない場合で前記格納先が前記第一のメモリである場合には、前記指定されたデータを前記第一のメモリに格納し処理を完了し、
前記指定されたデータが前記特定データでない場合で前記格納先が前記第二のメモリである場合には、前記第二のメモリの前記指定されたアドレスを無効化し、
前記指定されたデータが前記特定データの場合で前記格納先が前記第一のメモリである場合には、前記第―のメモリの前記指定されたアドレスを無効化し、
前記指定されたデータが前記特定データの場合で前記格納先が前記第二のメモリである場合には、処理を完了する、請求項3に記載のキャッシュ装置。 - キャッシュ装置と、
前記キャッシュ装置から取得したデータの演算を行うCPUを備え、
前記キャッシュ装置は、前記データと前記データのアドレスとを一時的に保持する第一のメモリと、予め設定された特定データの前記アドレスを一時的に保持する第二のメモリと、任意のデータが前記特定データであるか否かを判定するデータ比較部と、任意のアドレスの格納先を検索するアドレス比較部とを有する第一の比較制御部を備え、前記CPUからアドレスが指定されデータのロードが指示された場合に、第一の比較制御部は前記指定されたアドレスの格納先を検索し、前記格納先が前記第一のメモリである場合には前記指定されたアドレスのデータを出力し、前記格納先が前記第二のメモリである場合には前記特定データを前記CPUに出力する、プロセッサ。 - 前記キャッシュ装置は、一時的に保持するデータが前記特定データであるか否かを判定するデータ比較部を有する第二の比較制御部を更に備え、前記一時的に保持するデータが前記特定データでない場合には、前記一時的に保持するデータとそのアドレスとを前記前記第一のメモリに格納し、前記一時的に保持するデータが前記特定データである場合には、前記一時的に保持するデータを前記第二のメモリに格納する、請求項5に記載のプロセッサ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014182426A JP2016057763A (ja) | 2014-09-08 | 2014-09-08 | キャッシュ装置、及びプロセッサ |
US14/641,827 US9792214B2 (en) | 2014-09-08 | 2015-03-09 | Cache memory for particular data |
US15/707,871 US10191846B2 (en) | 2014-09-08 | 2017-09-18 | Cache memory for particular data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014182426A JP2016057763A (ja) | 2014-09-08 | 2014-09-08 | キャッシュ装置、及びプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016057763A true JP2016057763A (ja) | 2016-04-21 |
Family
ID=55437636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014182426A Pending JP2016057763A (ja) | 2014-09-08 | 2014-09-08 | キャッシュ装置、及びプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (2) | US9792214B2 (ja) |
JP (1) | JP2016057763A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016057763A (ja) | 2014-09-08 | 2016-04-21 | 株式会社東芝 | キャッシュ装置、及びプロセッサ |
US10255208B2 (en) | 2016-03-04 | 2019-04-09 | Toshiba Memory Corporation | Data transfer apparatus and data transfer system |
CN110166564B (zh) * | 2019-05-28 | 2023-09-05 | 北京小米移动软件有限公司 | 信息通信方法、终端及存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5364439A (en) | 1976-11-20 | 1978-06-08 | Agency Of Ind Science & Technol | Linear coversion system |
JPH0795307B2 (ja) | 1989-12-04 | 1995-10-11 | 日本電気株式会社 | キャッシュメモリ制御回路 |
US5991847A (en) * | 1997-06-06 | 1999-11-23 | Acceleration Software International Corporation | Data pattern caching for speeding up write operations |
US6490654B2 (en) | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
US6754776B2 (en) | 2001-05-17 | 2004-06-22 | Fujitsu Limited | Method and system for logical partitioning of cache memory structures in a partitoned computer system |
US6775751B2 (en) | 2002-08-06 | 2004-08-10 | International Business Machines Corporation | System and method for using a compressed main memory based on degree of compressibility |
US6931494B2 (en) * | 2002-09-09 | 2005-08-16 | Broadcom Corporation | System and method for directional prefetching |
JP3981070B2 (ja) | 2003-12-26 | 2007-09-26 | 株式会社東芝 | キャッシュリプレース装置及びキャッシュリプレース方法 |
US7130982B2 (en) | 2004-03-31 | 2006-10-31 | International Business Machines Corporation | Logical memory tags for redirected DMA operations |
US20060143396A1 (en) | 2004-12-29 | 2006-06-29 | Mason Cabot | Method for programmer-controlled cache line eviction policy |
US7853775B2 (en) | 2006-08-23 | 2010-12-14 | Nec Corporation | Processing elements grouped in MIMD sets each operating in SIMD mode by controlling memory portion as instruction cache and GPR portion as tag |
JP4942095B2 (ja) | 2007-01-25 | 2012-05-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチコア・プロセッサにより演算を行う技術 |
CA2675046C (en) | 2007-01-31 | 2013-07-30 | Qualcomm Incorporated | Apparatus and methods to reduce castouts in a multi-level cache hierarchy |
US8291194B2 (en) * | 2009-11-16 | 2012-10-16 | Mediatek Inc. | Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof |
US9934108B2 (en) | 2010-10-27 | 2018-04-03 | Veritas Technologies Llc | System and method for optimizing mirror creation |
US8762655B2 (en) | 2010-12-06 | 2014-06-24 | International Business Machines Corporation | Optimizing output vector data generation using a formatted matrix data structure |
JP5629392B2 (ja) * | 2011-12-22 | 2014-11-19 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 記憶装置アクセス・システム |
JP2016057763A (ja) | 2014-09-08 | 2016-04-21 | 株式会社東芝 | キャッシュ装置、及びプロセッサ |
-
2014
- 2014-09-08 JP JP2014182426A patent/JP2016057763A/ja active Pending
-
2015
- 2015-03-09 US US14/641,827 patent/US9792214B2/en active Active
-
2017
- 2017-09-18 US US15/707,871 patent/US10191846B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9792214B2 (en) | 2017-10-17 |
US20160070649A1 (en) | 2016-03-10 |
US10191846B2 (en) | 2019-01-29 |
US20180004672A1 (en) | 2018-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6916751B2 (ja) | ハイブリッドメモリーモジュール及びその動作方法 | |
TWI673608B (zh) | 使用反向快取表的基於硬體之映射加速 | |
US8402248B2 (en) | Explicitly regioned memory organization in a network element | |
US11880305B2 (en) | Method and apparatus for using a storage system as main memory | |
US11354244B2 (en) | Memory management device containing memory copy device with direct memory access (DMA) port | |
US10503655B2 (en) | Data block sizing for channels in a multi-channel high-bandwidth memory | |
BR112013003850B1 (pt) | aparelho e método de buffer de escrita de combinação com medidas de esvaziamento dinamicamente ajustáveis. | |
US10642740B2 (en) | Methods for performing a memory resource retry | |
CN113641596B (zh) | 缓存管理方法、缓存管理装置、处理器 | |
US7243194B2 (en) | Method to preserve ordering of read and write operations in a DMA system by delaying read access | |
US10191846B2 (en) | Cache memory for particular data | |
US10565126B2 (en) | Method and apparatus for two-layer copy-on-write | |
US9747228B2 (en) | Caching systems and methods for execution within an NVDRAM environment | |
US10169235B2 (en) | Methods of overriding a resource retry | |
US20180329756A1 (en) | Distributed processing system, distributed processing method, and storage medium | |
US9684602B2 (en) | Memory access control device, cache memory and semiconductor device | |
US9305036B2 (en) | Data set management using transient data structures | |
JP7013360B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US20160140034A1 (en) | Devices and methods for linked list array hardware implementation | |
US12164433B2 (en) | Cache data provided based on data availability | |
JP6565729B2 (ja) | 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 | |
JP2022143762A (ja) | メモリシステム、制御方法およびメモリコントローラ | |
US20190286562A1 (en) | Information processing apparatus, cache control apparatus and cache control method | |
US7840757B2 (en) | Method and apparatus for providing high speed memory for a processing unit |