JP5730126B2 - データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム - Google Patents
データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム Download PDFInfo
- Publication number
- JP5730126B2 JP5730126B2 JP2011111585A JP2011111585A JP5730126B2 JP 5730126 B2 JP5730126 B2 JP 5730126B2 JP 2011111585 A JP2011111585 A JP 2011111585A JP 2011111585 A JP2011111585 A JP 2011111585A JP 5730126 B2 JP5730126 B2 JP 5730126B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- area
- reception
- fetch
- 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
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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- 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/1041—Resource optimization
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/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)
Description
一般的にコンピュータ・システムにはアプリケーションを実行するプロセッサやデータ処理回路と、プログラムや処理対象となるデータを記憶するメモリ等の記憶装置で構成される。プロセッサやデータ処理回路が使用するプログラムやデータのすべてが、各々のプロセッサやデータ処理回路から高速に読み書きできる記憶装置を具備することが理想である。例えば、記憶装置としてはSRAM等のアクセス・レイテンシの比較的短いメモリ手段を、プロセッサやデータ処理回路の各々に専用のローカルメモリとして具備できれば、処理性能の向上を実現し易い。
しかしながら、機器を低コスト化するためには、多くのプロセッサやデータ処理回路で単一の記憶装置を共有し、搭載する記憶装置の個数を削減することが望ましい。また、搭載する記憶装置としてメモリを採用する場合、その時々で普及している安価なDRAMを使用することが多い。ただし安価なDRAMを使用すると前述のSRAMよりアクセス・レイテンシは長くなる。また多くのプロセッサやデータ処理回路で互いに単一の記憶装置を共有する場合、各々のプロセッサやデータ処理回路から記憶装置への読み書きが競合し、各々のアクセスを調停するため、プロセッサやデータ処理回路からのアクセス・レイテンシは長くなる。その結果、各々のプロセッサやデータ処理回路の処理性能は低下する。
前述のプロセッサやデータ処理回路の性能低下を抑えるために、各々のプロセッサやデータ処理回路と記憶装置との間にキャッシュ装置を設けることが多い。各々のプロセッサやデータ処理回路は、組み込んだキャッシュ装置から所望のデータが読み出せる間は、記憶装置にアクセス(データ要求)することはない。これにより各々のプロセッサやデータ処理回路からのアクセス(データ要求)の頻度が減り、必要となるアクセス帯域の総量を減らすことができる。当然、キャッシュ装置を設けることで回路規模は増加するが、上記のようにローカルメモリを専用に設けるよりは、回路規模は少なくてよい。このようにコンピュータ・システムに最適なキャッシュ装置を設けることで、機器を実現する際に求められる処理性能と低コストを両立することが可能となる。
キャッシュ装置に所望のデータが存在する場合(キャッシュヒットと言う)、記憶装置までアクセス(データ要求)する必要はなく、各々のプロセッサやデータ処理回路からのアクセス・レイテンシは短くなる。一方、キャッシュ装置に所望のデータが存在しない場合(キャッシュミスと言う)、当然ながら各々のプロセッサやデータ処理回路は記憶装置に所望のデータをアクセス(データ要求)する。このとき、アクセス・レイテンシはキャッシュ装置を設けない場合と同じである。一般的には、各々のプロセッサやデータ処理回路はデータを順番に処理するため、キャッシュミス時に記憶装置から所望なデータを読み出すまでの間、各々のプロセッサやデータ処理回路は一時停止する。当然ながら、プロセッサやデータ処理回路は、この一時停止により処理性能が低下する。このような動作をブロッキング動作という。またキャッシュミスのときに、データを読み出す行為をリフィル、読み出したデータをリフィル・データ、一度に読み出す単位をリフィル長、読み出す期間をリフィル・レイテンシという。
さらに処理性能を向上するため特許文献1は、上記のリフィル・レイテンシを隠蔽できるキャッシュ機構のデータ供給装置について言及している。特許文献1のパイプライン・プロセッサは、所定のパイプライン・ステージで行う処理のために必要なデータに対し、まず所定のパイプライン・ステージの前段(前処理)でキャッシュミスを評価する。そしてキャッシュミスのときは、この前段(前処理)で必要なデータを要求してリフィルを実行する。このとき、特許文献1のパイプライン・プロセッサは、リフィル・レイテンシより長い中間待ち行列(FIFO)をパイプライン・プロセッサ内部に備える。 そして特許文献1のパイプライン・プロセッサは、リフィル中の処理を含む後続の処理を、この中間待ち行例(FIFO)に順次格納していく。このように特許文献1のパイプライン・プロセッサは、この中間待ち行例(FIFO)に格納しながら次の処理のキャッシュミス/ヒットの評価を続けられるので前述のブロッキング動作のように、キャッシュミスの度に一時停止する必要がない。
一方、特許文献1のパイプライン・プロセッサは、キャッシュミスの度に必要とするデータを記憶装置から読み出し、キャッシュメモリに更新する前に、一旦 リフィル・データをフィルFIFOに格納することが必須となる。中間待ち行列(FIFO)の中にはキャッシュミスのデータ処理に先行する、キャッシュヒットのデータ処理があり、それらの処理を所定のパイプライン・ステージで終えなければ、キャッシュメモリを更新することはできない。そのため、特許文献1のパイプライン・プロセッサには、上記のフィルFIFOを必ず備える。このように中間待ち行例(FIFO)を用いて次のデータ処理のキャッシュミス/ヒット評価を行うような動作をノンブロッキング動作という。データ処理を行うコマンドは、中間待ち行列(FIFO)の中で遅延する。この遅延の間にリフィルが完了し、キャッシュミス時のリフィル・データがフィルFIFOにあれば、データ処理に際しフィルFIFOからリフィル・データを供給し、データ処理を実行できる。つまり、特許文献1のキャッシュ機構のデータ供給装置は、上記のような仕組みでキャッシュミス時のリフィル・レイテンシを隠蔽して一時停止することなくデータ処理を続けられる。
本発明の目的は、処理性能を維持しながら、回路規模を削減することである。
1)プリフェッチ論理でキャッシュヒット/ミス評価で使用するキャッシュタグの記憶領域、
2)中間待ち行列(FIFO)の記憶領域、
3)フェッチ論理のフィルFIFOの記憶領域、
4)フェッチ論理のキャッシュデータを格納するキャッシュメモリの記憶領域、
が必要となる。前述の説明の通り、このうち回路規模に大きな影響を与えるのは、リフィル長の大きな「3)フィルFIFO」と、「4)キャッシュメモリ」であり、特許文献1のように「3)フィルFIFO」と、「4)キャッシュメモリ」が別のハードウエア構成として存在すると回路規模が増加してしまう。なお、「2)中間待ち行列」は、FIFO段数は多いものの、キャッシュヒット/ミス評価結果のフラグとキャッシュメモリの格納先のアドレスを伝搬するだけでよく、後述するようにFIFOそのもののデータ長は、リフィル長に比べ非常に小さい。
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
図1は、第1実施形態による処理装置の全体構成の一例を示すブロック図である。処理装置には、CPU160、外部の記憶装置(外部メモリ)であるDRAM165、DRAMコントローラ166とシステムバス164が含まれる。また、DRAM165に対するデータの読み書きのために、データ読み出し用のDMAC(Direct Memory Access Controller)であるRDMAC162とデータ書き込み用のWDMAC163も含まれる。また処理装置には、画像処理などのデータ処理を行うデータ処理装置101と、本発明のキャッシュ装置110が含まれる。なおデータ処理装置に含める処理装置の数は任意であり、処理装置の各々は、高速に固定処理するパイプライン回路で構成されていてもよいし、低速ではあるが、柔軟に処理内容を変更可能なプロセッサとプログラムで構成されていてもよい。
次にデータ供給装置(キャッシュ装置)の動作について詳細説明する。前述のデータ処理装置101は、データ供給装置(キャッシュ装置)を介してDRAM165からデータを読み出すときに、DRAM165上のデータの格納アドレス113を、I/F112を介してキャッシュ判定部120に入力する。そして入力された格納アドレス113をもとにキャッシュ判定部120でキャッシュヒットもしくはキャッシュミスが判定される。
さらに図2を用いて図1記載の処理装置のキャッシュ判定部120の回路構成の一例について詳細説明する。第1実施形態では、連想(ライン選択)方式がフルアソシアティブ方式のキャッシュ装置について説明する。
アクセス調停部130は入力されたキャッシュ判定結果125が有効のとき動作し、それ以外は待機する。そしてアクセス調停部130は、キャッシュ判定の結果「キャッシュミス・フラグ」が有効/無効に応じて以下の処理を行う。
・キャッシュ判定の結果「キャッシュミス・フラグ」が有効(キャッシュミス)のとき、まず接続される2つのFIFOである、送信FIFO150、中間待ち行列(FIFO)140の格納領域の空き状態を評価する。さらにデータ取得部180からのプリフェッチ許可信号181の状態を評価する。2つのFIFOすべてに空き領域があり、プリフェッチ許可信号181の状態が「許可」である場合、「ライン番号、キャッシュミス・フラグ」135を中間待ち行列(FIFO)140に書き込む。また同時に、格納アドレス132を送信FIFO150に書き込む。2つのFIFOに空き領域がない、もしくはプリフェッチ許可信号181の状態が「許可」でない場合は、キャッシュ判定部120を停止(ストール)する。そして、2つのFIFOの格納領域が空き、かつ、プリフェッチ許可信号181の状態が「許可」になるまで待機する。
・キャッシュ判定の結果「キャッシュミス・フラグ」が無効(キャッシュヒット)のとき、中間待ち行列(FIFO)140の空き状態を評価する。そして記憶領域に空きがあれば、「ライン番号、キャッシュミス・フラグ」135を中間待ち行列(FIFO)140に書き込む。記憶領域に空きがなければ、キャッシュ判定部120を停止(ストール)し、格納領域が空くまで待機する。本実施形態の一例では、中間待ち行列(FIFO)140に格納する、「キャッシュミス・フラグ」は1ビット信号であり、「ライン番号」は3ビット信号でよいため、中間待ち行列(FIFO)140のデータ長は高々4ビット長となる。たとえ中間待ち行列(FIFO)140が128段あったとしても64バイトの容量でよく、大きな記憶容量とは言えない。それ故、フルアソシアティブ方式のキャッシュタグのノード数や中間待ち行列(FIFO)の段数を増やすことは容易であり、中間待ち行列(FIFO)140が制約となることはない。
データ取得部180は中間待ち行列(FIFO)140の格納領域に処理すべきデータがあるかどうかを評価する。中間待ち行列(FIFO)140が空の場合は処理すべきキャッシュ判定結果がないため、データ取得部180は当然ながら待機する。データ取得部180は、中間待ち行列(FIFO)140から処理すべきキャッシュ判定の評価結果である「ライン番号、キャッシュミス・フラグ」を取り出す(S305)。そして評価結果であるキャッシュミス・フラグの値に応じて次のキャッシュデータの取得動作を行う。図3(a)にデータ取得部180のキャッシュデータの取得動作の一例を示す。図4(a)に示すように本発明のキャッシュメモリ190は、「データ領域(送信領域、キャッシュ領域)」と「受信領域」を含んで構成される。そして、受信領域を管理する情報(受信ポインタ)と、データ領域を管理する情報(データポインタ)とをデータ取得部に備える。
・キャッシュミス・フラグが無効(キャッシュヒット)のときは、中間待ち行列(FIFO)140から同時に取り出したライン番号とキャッシュメモリ190の受信ポインタとデータポインタからキャッシュデータの格納アドレスを算出する。そして、その格納アドレスをもとに記憶済みのデータをキャッシュメモリ190からリードデータ192として読み出す(S360)。そして、要求されたキャッシュデータ185を、I/F116を介して処理装置101に送出する(S365)。なお、格納アドレスの算出方法については後述する。
図4(b)を用いてキャッシュメモリ調停回路180とキャッシュメモリ190の具体的な動作の一例について説明する。
(データ供給装置)
次にフルアソシアティブ方式とは異なる連想(ライン選択)方式である、ダイレクトマップ方式やセットアソシアティブ方式に本発明のデータ供給方法を適用した場合の動作について詳細説明する。第1実施形態ではフルアソシアティブ方式の連想(ライン選択)方式を採用していたため、一般的な実装方法ではキャッシュタグをレジスタで構成することになる。そのため、あまり大きな数のキャッシュタグ数に対応するとキャッシュタグの回路規模が大きくなる課題がある。ダイレクトマップ方式やセットアソシアティブ方式の利点は、キャッシュタグをSRAM等の記憶装置(タグメモリ)で構成することで回路規模を抑えられる点にある。もちろんダイレクトマップ方式やセットアソシアティブ方式においてもキャッシュタグをレジスタで構成できることは言うまでもない。
図5(a)を用いて図1記載の処理装置のキャッシュ判定部120の回路構成の一例について詳細説明する。
同様に図5(b)を用いて図1記載の処理装置のキャッシュ判定部120の回路構成の一例について詳細説明する。多くの動作は前述のダイレクトマップ方式のキャッシュ判定部と同じである。図5(b)は4ウェイ・セットアソシアティブ方式の一例であり、ダイレクトマップ方式と異なる点について言及する。
まず、図6を用いて第1実施形態と異なる本実施形態のデータ供給装置(キャッシュ装置)の特徴について言及する。本実施形態では、キャッシュミスで記憶装置に所望のデータを要求する際、ライン番号用の中間待ち行列(FIFO)645にキャッシュミス時のライン番号を格納する。そして、データ取得部180は、この中間待ち行例(FIFO)645を介し、キャッシュミス時のリフィル・データのキャッシュメモリへの格納先を示すライン番号を取得する。なお、この中間待ち行列(FIFO)645に空きがない場合、当然ながらアクセス調停部130は停止(ストール)する。
上記のような手法でライン番号が取り出され、キャッシュメモリ上の記憶領域がライン番号により定まった後は、アドレス算出を始め、受信ポインタやデータポインタの関係など第1実施形態と同様の動作でよい。
以上、説明した「データ取得部」は、ダイレクトマップ方式やセットアソシアティブ方式の連想(ライン選択)方式に対応して、要求されたデータを取得する、フェッチ構成(装置/回路/論理)となっている。
これまでキャッシュ装置において本発明のデータ供給方法を適用してきたが、キャッシュ装置以外にも適用できることは明らかである。キャッシュ装置は入力された格納アドレスに対し、キャッシュ判定部120にてキャッシュヒット/キャッシュミスを評価し、対応するキャッシュデータをキャッシュメモリから読み出す。これに対しデータ処理装置101が、キャッシュ判定部120を経由せず(構成としてキャッシュ判定部120を含めず)、直接アクセス調停部130へ格納アドレスのデータを要求してもよい。このときデータ処理装置101は、例えばシーケンサ回路等により予め決められたパターンで、記憶装置への更新データの要求(キャッシュミスに相当)と、既に記憶装置からリフィル済みのデータの再要求(キャッシュヒットに相当)を繰り返す。データ取得部180は、この予め決められたパターンでリフィル・データを受け取りつつ、データバッファ(キャッシュメモリに相当)にデータを更新し、要求された記憶装置のデータを更新しながらデータ処理装置101へ供給し続ければよい。
また、上述までの説明では性能向上を目的とし、ノンブロッキング動作を前提に装置の動作を説明してきた。しかしながら本発明の装置は、例え中間待ち行列(FIFO)を備えないブロッキング動作においても適用できることは明らかである。例えば図9に中間待ち行列(FIFO)を備えない処理装置の一例を示す。アクセス調停部からデータ取得部へ直接「ライン番号、キャッシュミス・フラグ」935を送出する。またデータ取得部からアクセス調停部にフェッチ許可信号981を返すことでブロッキング動作を実現する。
Claims (18)
- 出力手段と、データを保持する記憶領域を備え前記出力手段に当該記憶領域のデータを供給するフェッチ手段と、前記出力手段がデータを要求する前に前記出力手段に送信すべきデータであって、前記記憶領域に記憶されていないと判定されたキャッシュミスのデータを外部に要求するプリフェッチ手段と、を有するデータ供給装置であって、
前記プリフェッチ手段は、前記プリフェッチ手段が外部に要求するキャッシュミスのデータを前記記憶領域の一部である受信領域に格納できるかを示す、前記フェッチ手段からの許可信号に基づいて、キャッシュミスのデータを外部に要求し、
前記フェッチ手段は、外部より受信するデータを前記受信領域に格納し、前記出力手段がデータを要求するときに既に前記プリフェッチ手段の要求に応じて当該要求に対応するデータを保持している受信領域を送信領域として割り当て、前記出力手段は前記フェッチ手段によって送信領域として割り当てられた領域のデータを出力することを特徴とするデータ供給装置。 - 前記フェッチ手段は、前記送信領域を前記受信領域として割り当て、外部より供給されるデータを当該受信領域に格納し、前記プリフェッチ手段の要求に応じて当該要求に対応するデータを保持している受信領域を送信領域として再び割り当てることを特徴とする請求項1に記載のデータ供給装置。
- 複数のステージを有するパイプライン手段を更に有し、前記フェッチ手段は前記複数のステージのうちの1つにデータを供給し、前記プリフェッチ手段は前記フェッチ手段がデータを供給するステージに先行するステージの動作に応じてデータを要求することを特徴とする請求項1又は2に記載のデータ供給装置。
- 前記プリフェッチ手段で要求されたキャッシュミスのデータが前記フェッチ手段に届いたときに前記受信領域を管理する管理情報を更新することを特徴とする請求項1乃至3のいずれか1項に記載のデータ供給装置。
- 前記記憶領域に対する前記受信領域の容量を変更することを特徴とする請求項1乃至4のいずれか1項に記載のデータ供給装置。
- 前記受信領域の管理情報に基づいて前記許可信号を出力し、前記プリフェッチ手段のデータ要求を停止することを特徴とする請求項4に記載のデータ供給装置。
- 前記受信領域の管理情報に基づいて前記フェッチ手段からのデータ供給を待機することを特徴とする請求項4又は6に記載のデータ供給装置。
- 前記プリフェッチ手段と前記フェッチ手段との間に中間待ち行列を備えることを特徴とする請求項1乃至7のいずれか1項に記載のデータ供給装置。
- 請求項1乃至8のいずれか1項に記載のデータ供給装置と、キャッシュ判定手段とを備え、前記フェッチ手段の前記記憶領域に前記キャッシュ判定手段に対応するリフィルデータを格納することを特徴とするキャッシュ装置。
- ラウンドロビン方式のリプレイス手法を用いることを特徴とする請求項9に記載のキャッシュ装置。
- 連想(ライン選択)方式がフルアソシアティブ方式であることを特徴とする請求項9に記載のキャッシュ装置。
- 連想(ライン選択)方式がセットアソシアティブ方式であることを特徴とする請求項9に記載のキャッシュ装置。
- 連想(ライン選択)方式がダイレクトマップ方式であることを特徴とする請求項9に記載のキャッシュ装置。
- 前記フェッチ手段は前記受信領域を示す受信ポインタと前記送信領域を示すデータポインタとを管理し、当該受信ポインタ又はデータポインタを更新することによって、前記受信領域又は前記送信領域の割り当てを変更することを特徴とする請求項1乃至8のいずれか1項に記載のデータ供給装置。
- 前記受信領域には、ゼロより大きい所定の容量が確保されていることを特徴とする請求項1乃至8のいずれか1項に記載のデータ供給装置。
- 外部から前記受信領域に送信されたデータであって、前記プリフェッチ手段による外部へのデータ要求の停止について前記許可信号を用いて通知される前に送信されたデータを、前記受信領域に格納することを特徴とする請求項15記載のデータ供給装置。
- 出力手段と、データを保持する記憶領域を備え前記出力手段に当該記憶領域のデータを供給するフェッチ手段と、前記出力手段がデータを要求する前に前記出力手段に送信すべきデータであって、前記記憶領域に記憶されていないと判定されたキャッシュミスのデータを要求するプリフェッチ手段と、を有するデータ供給装置によるデータ供給方法であって、
前記プリフェッチ手段は、前記プリフェッチ手段が外部に要求するキャッシュミスのデータを前記記憶領域の一部である受信領域に格納できるかを示す、前記フェッチ手段からの許可信号に基づいて、キャッシュミスのデータを外部に要求し、
前記フェッチ手段は、外部より受信するデータを前記受信領域に格納し、前記出力手段がデータを要求するときに既に前記プリフェッチ手段の要求に応じて当該要求に対応するデータを保持している受信領域を送信領域として割り当て、前記出力手段は前記フェッチ手段によって送信領域として割り当てられた領域のデータを出力することを特徴とするデータ供給方法。 - 出力手段と、データを保持する記憶領域を備え前記出力手段に当該記憶領域のデータを供給するフェッチ手段と、前記出力手段がデータを要求する前に前記出力手段に送信すべきデータであって、前記記憶領域に記憶されていないと判定されたキャッシュミスのデータを外部に要求するプリフェッチ手段と、を有するデータ供給装置に以下の手順を動作させるプログラムであって、
前記プリフェッチ手段は、前記プリフェッチ手段が外部に要求するキャッシュミスのデータを前記記憶領域の一部である受信領域に格納できるかを示す、前記フェッチ手段からの許可信号に基づいて、キャッシュミスのデータを外部に要求し、
前記フェッチ手段は、外部より受信するデータを前記受信領域に格納し、前記出力手段がデータを要求するときに既に前記プリフェッチ手段の要求に応じて当該要求に対応するデータを保持している受信領域を送信領域として割り当て、前記出力手段は前記フェッチ手段によって送信領域として割り当てられた領域のデータを出力することを特徴とするプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011111585A JP5730126B2 (ja) | 2011-05-18 | 2011-05-18 | データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム |
EP12166538.4A EP2530598B1 (en) | 2011-05-18 | 2012-05-03 | Data supply device, cache device, data supply method, and cache method |
US13/467,774 US9235522B2 (en) | 2011-05-18 | 2012-05-09 | Data supply device, cache device, data supply method, and cache method |
CN201210153321.6A CN102968386B (zh) | 2011-05-18 | 2012-05-17 | 数据供给设备、缓存设备及数据供给方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011111585A JP5730126B2 (ja) | 2011-05-18 | 2011-05-18 | データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012243026A JP2012243026A (ja) | 2012-12-10 |
JP5730126B2 true JP5730126B2 (ja) | 2015-06-03 |
Family
ID=46087491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011111585A Active JP5730126B2 (ja) | 2011-05-18 | 2011-05-18 | データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9235522B2 (ja) |
EP (1) | EP2530598B1 (ja) |
JP (1) | JP5730126B2 (ja) |
CN (1) | CN102968386B (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140129777A1 (en) * | 2012-11-02 | 2014-05-08 | Tencent Technology (Shenzhen) Company Limited | Systems and methods for dynamic data storage |
US9336142B2 (en) | 2013-11-06 | 2016-05-10 | International Business Machines Corporation | Cache configured to log addresses of high-availability data via a non-blocking channel |
US9715461B2 (en) * | 2014-03-03 | 2017-07-25 | Kabushiki Kaisha Toshiba | Cache memory control circuit and processor |
CN106710627B (zh) * | 2015-11-18 | 2019-11-26 | 凌阳科技股份有限公司 | 多晶胞芯片及其存储器装置 |
JP6902843B2 (ja) | 2016-10-07 | 2021-07-14 | キヤノン株式会社 | 画像処理装置および制御方法 |
JP6979777B2 (ja) * | 2017-03-22 | 2021-12-15 | キヤノン株式会社 | インターフェース装置およびその制御方法 |
CN107608911B (zh) * | 2017-09-12 | 2020-09-22 | 苏州浪潮智能科技有限公司 | 一种缓存数据刷写方法、装置、设备及存储介质 |
CN110727700A (zh) * | 2019-10-22 | 2020-01-24 | 中信银行股份有限公司 | 多源流式数据整合成事务型流数据的方法及系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5293609A (en) * | 1991-04-19 | 1994-03-08 | International Business Machines Corporation | Hit-density-based replacement for data cache with prefetching |
US5623608A (en) * | 1994-11-14 | 1997-04-22 | International Business Machines Corporation | Method and apparatus for adaptive circular predictive buffer management |
US5761720A (en) * | 1996-03-15 | 1998-06-02 | Rendition, Inc. | Pixel engine pipeline processor data caching mechanism |
US5983324A (en) * | 1996-03-28 | 1999-11-09 | Hitachi, Ltd. | Data prefetch control method for main storage cache for protecting prefetched data from replacement before utilization thereof |
US5724613A (en) * | 1996-05-06 | 1998-03-03 | Vlsi Technology, Inc. | System and method for automatically enabling and disabling a prefetching capability |
US6658534B1 (en) * | 1998-03-31 | 2003-12-02 | International Business Machines Corporation | Mechanism to reduce instruction cache miss penalties and methods therefor |
JP2001273137A (ja) * | 2000-03-28 | 2001-10-05 | Toshiba Corp | マイクロプロセッサ |
EP1217526A1 (en) * | 2000-12-21 | 2002-06-26 | Texas Instruments Incorporated | Multilevel cache architecture and data transfer |
US6848030B2 (en) * | 2001-07-20 | 2005-01-25 | Freescale Semiconductor, Inc. | Method and apparatus for filling lines in a cache |
US6754772B2 (en) * | 2001-11-15 | 2004-06-22 | Micron Technology, Inc. | Distributed cache |
US20030105926A1 (en) * | 2001-12-03 | 2003-06-05 | International Business Machies Corporation | Variable size prefetch cache |
US7337273B2 (en) * | 2004-03-31 | 2008-02-26 | Microsoft Corporation | Strategies for reading information from a mass storage medium using a cache memory |
JP4575065B2 (ja) * | 2004-07-29 | 2010-11-04 | 富士通株式会社 | キャッシュメモリ制御装置、キャッシュメモリ制御方法、中央処理装置、情報処理装置、中央制御方法 |
US7412620B2 (en) * | 2005-06-23 | 2008-08-12 | International Business Machines Corporation | Method for testing ability to recover from cache directory errors |
US7529891B2 (en) * | 2005-09-19 | 2009-05-05 | Microsoft Corporation | Balanced prefetching exploiting structured data |
JP2008234074A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | キャッシュ装置 |
JP2009251713A (ja) * | 2008-04-02 | 2009-10-29 | Toshiba Corp | キャッシュメモリ制御装置 |
US8086804B2 (en) * | 2008-09-24 | 2011-12-27 | Oracle America, Inc. | Method and system for optimizing processor performance by regulating issue of pre-fetches to hot cache sets |
-
2011
- 2011-05-18 JP JP2011111585A patent/JP5730126B2/ja active Active
-
2012
- 2012-05-03 EP EP12166538.4A patent/EP2530598B1/en active Active
- 2012-05-09 US US13/467,774 patent/US9235522B2/en active Active
- 2012-05-17 CN CN201210153321.6A patent/CN102968386B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US9235522B2 (en) | 2016-01-12 |
US20120297143A1 (en) | 2012-11-22 |
CN102968386A (zh) | 2013-03-13 |
EP2530598A1 (en) | 2012-12-05 |
CN102968386B (zh) | 2016-03-09 |
JP2012243026A (ja) | 2012-12-10 |
EP2530598B1 (en) | 2021-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5730126B2 (ja) | データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム | |
US10740260B2 (en) | Cache self-clean engine | |
JP5229968B2 (ja) | 複数クラスデータキャッシュポリシー | |
KR101753913B1 (ko) | 기계 비전 알고리즘을 위한 멀티프로세서 시스템온칩 | |
US10210117B2 (en) | Computing architecture with peripherals | |
US20080189487A1 (en) | Control of cache transactions | |
US7246205B2 (en) | Software controlled dynamic push cache | |
US8544008B2 (en) | Data processing system and method for cache replacement using task scheduler | |
US20120246410A1 (en) | Cache memory and cache system | |
US9086976B1 (en) | Method and apparatus for associating requests and responses with identification information | |
US10042773B2 (en) | Advance cache allocator | |
JP5650441B2 (ja) | 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム | |
US20090216952A1 (en) | Method, system, and computer program product for managing cache memory | |
JP2010146084A (ja) | キャッシュメモリ制御部を備えるデータ処理装置 | |
JP5699854B2 (ja) | 記憶制御システムおよび方法、置換方式および方法 | |
US20070101064A1 (en) | Cache controller and method | |
JP6224684B2 (ja) | ストアマージ装置、情報処理装置、およびストア制御方法、並びにコンピュータ・プログラム | |
US9367467B2 (en) | System and method for managing cache replacements | |
JP2004326175A (ja) | プロセッサ、キャッシュシステム及びキャッシュメモリ | |
CN105264498B (zh) | 用于通用串行总线系统的高速缓存管理的系统和方法 | |
US8966183B2 (en) | Opportunistic cache replacement policy | |
US11294710B2 (en) | Thread switch for accesses to slow memory | |
US10366013B2 (en) | Caching structure for nested preemption | |
CN113467947A (zh) | refill_buffer和evict_buffer的管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140516 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150113 |
|
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: 20150310 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150407 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5730126 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |