JP5445701B1 - フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置 - Google Patents

フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置 Download PDF

Info

Publication number
JP5445701B1
JP5445701B1 JP2013019992A JP2013019992A JP5445701B1 JP 5445701 B1 JP5445701 B1 JP 5445701B1 JP 2013019992 A JP2013019992 A JP 2013019992A JP 2013019992 A JP2013019992 A JP 2013019992A JP 5445701 B1 JP5445701 B1 JP 5445701B1
Authority
JP
Japan
Prior art keywords
tag
line
address
cache
specific
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
Application number
JP2013019992A
Other languages
English (en)
Other versions
JP2014153732A (ja
Inventor
洋平 山田
康雄 石井
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2013019992A priority Critical patent/JP5445701B1/ja
Priority to US14/167,485 priority patent/US9304917B2/en
Application granted granted Critical
Publication of JP5445701B1 publication Critical patent/JP5445701B1/ja
Publication of JP2014153732A publication Critical patent/JP2014153732A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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/0864Addressing 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
    • 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/301In special purpose processing node, e.g. vector processor

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

【課題】セットアソシアティブ方式キャッシュメモリ装置を効率よく制御することできるフラッシュ制御装置等を提供する。
【解決手段】フラッシュ制御装置11は、複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部14と、ライン記憶部15と、ウェイ特定部12と、フラッシュするキャッシュラインを記憶可能なウェイのうち、ウェイ特定部12が選んだウェイをフラッシュする指示をする指示部13とを備える。
【選択図】 図1

Description

本発明は、高速な処理を可能にするフラッシュ制御装置及びキャッシュメモリ装置等に関する。
キャッシュメモリ装置を実現する方式としては、ダイレクトマップ方式(Direct Mapped)、フルアソシアティブ方式(Fully Associative)、あるいは、セットアソシアティブ方式(Set Associative)等がある。
複数のプロセッサがメインメモリ(主記憶装置)を共有しつつ、全部または一部のプロセッサがキャッシュメモリ装置をそれぞれ持つコンピュータシステムにおいては、キャッシュメモリ装置とメインメモリとの間におけるデータの一貫性(整合性、キャッシュコヒーレンシ、Cache Coherency)について留意する必要がある。
データの一貫性を保つためには、ハードウェアがキャッシュメモリ装置及びメインメモリにおけるデータ一貫性を維持する制御を行う手法、ソフトウェアが明示的にアクセス先アドレスやキャッシュメモリ装置の動作を制御する手法、または、ハードウェアとソフトウェアとが協調しながらキャッシュメモリ装置の動作を制御する手法等がある。上述した手法において、特に、ハードウェアが一貫性を制御する手法により、ユーザは、ハードウェアを意識することなくプログラミングすることができる。
例えば、図11に示すような構成を有するベクトルプロセッサが、ベクトルストア命令を処理する場合に、スカラプロセッサにおけるキャッシュメモリ装置105が有するデータと、メインメモリ104におけるデータとは、一貫性を有する必要がある。図11は、一般的なベクトルプロセッサが有する構成を表すブロック図である。
ベクトルプロセッサは、ベクトルプロセッシング部100と、スカラプロセッシング部102と、メモリネットワーク103と、メインメモリ104とを有する。
スカラプロセッシング部102は、命令をメインメモリ104から読み出す命令フェッチ、該命令を解釈するデコード、デコードした命令を実行する順序を決めるスケジューリング、及び、該順序に応じて命令を実行する命令実行等の処理を行う。さらに、スカラプロセッシング部102は、ベクトルプロセッシング部100に対して、メインメモリ104からデータを読み出すロード命令、メインメモリ104へデータを書き込むストア命令、及び、ベクトル演算命令等を指示する。
ベクトルプロセッシング部100は、ベクトルデータを保持するベクトルレジスタと、ストア命令及びロード命令等をそれぞれ処理する演算器等とを有する。ベクトルプロセッシング部100は、スカラプロセッシング部102が指示する命令に応じて、メモリネットワーク103を介して、メインメモリ104が記憶するデータを送受信する。
メモリネットワーク103は、スカラプロセッシング部102及びベクトルプロセッシング部100と、メインメモリ104との間においてデータを転送する。
スカラプロセッシング部102は、メインメモリ104からデータを読み出すオーバヘッドを低減するキャッシュメモリ装置105を有する。
図12を参照しながら、該キャッシュメモリ装置105について説明する。図12は、ベクトルプロセッサにおいて一般的なキャッシュメモリ装置が有する構成を表すブロック図である。キャッシュメモリ装置105は、リクエスト発行制御部200と、フラッシュ制御部202と、キャッシュ部201とを有する。
リクエスト発行制御部200は、例えば、1つのデータをメインメモリ104からスカラプロセッシング部102に読み出すスカラロード命令または複数のデータをベクトルプロセッシング部100からメインメモリ104に書き込むベクトルストア命令等、命令を実行する順序を決め、該順序に応じて命令を発行する。
キャッシュ部201は、アドレスアレイ210と、データアレイ211と、キャッシュヒット判定213と、データアライン214とを有する。以下の説明においては、キャッシュ部201は、4ウェイ(way)セットアソシアティブ方式により実現されるライトスルーキャッシュメモリ装置であるとする。
データアレイ211は、キャッシュライン単位にて、メインメモリ104が記憶するデータの複製を記憶可能である。アドレスアレイ210は、該データアレイ211が記憶するデータの複製元が存在するアドレスを記憶可能である。アドレスアレイ210が記憶するアドレスは、該データアレイ211が記憶するデータに関連付けされている。アドレスアレイ210は、該データアレイ211が記憶するデータのアドレスと、該アドレスが有効であるか否かを表すバリッド情報とを関連付けて記憶する。該アドレスが「有効」である場合に、該アドレスに関連付けされたデータアレイ211は、メインメモリ104上の該アドレスにおけるデータを記憶していることを表す。
キャッシュ部201は、リクエスト発行制御部200が発行する命令に対して、該アドレスアレイ210を参照することにより、データアレイ211が、該命令がアクセスするアドレスにおけるデータを、記憶しているか否かを判定する。
スカラロード命令を実行する状況において、データアレイ211が、該命令がアクセスするアドレスにおけるデータを、記憶している場合に、キャッシュ部201は、データアレイ211より該データを読み出し、読み出したデータをリードデータとして出力する。データアレイ211が、該命令がアクセスするアドレスにおけるデータを、記憶していない場合には、キャッシュ部201は、メインメモリ104からデータアレイ211へデータを読み出すリード処理を行う。
スカラストア命令を実行する状況において、データアレイ211が、該命令がアクセスするアドレスにおけるデータを記憶している場合に、キャッシュ部201は、データアレイ211に該データを書き込む。
フラッシュ制御部202は、アドレス計算部220と、フラッシュアドレスアレイ222を有するアドレス一致比較部221と、フラッシュ指示信号生成部223とを有する。
フラッシュアドレスアレイ222は、アドレスアレイ210が記憶するアドレスデータの複製を記憶する。
アドレス計算部220は、リクエスト発行制御部200が送信するベクトルストア命令に応じて、データをストアするアドレスを算出し、該算出したアドレスをアドレス一致比較部221に送信する。
次に、アドレス一致比較部221は、該アドレスを受信し、受信したアドレスと、フラッシュアドレスアレイ222が記憶するアドレスとを比較する。
アドレス一致比較部221が該受信したアドレスと、フラッシュアドレスアレイ222が記憶するアドレスとが一致する場合に、フラッシュ指示信号生成部223は、該受信したアドレスに関連付けされたキャッシュラインを無効にする(フラッシュする)信号(以降、「フラッシュ指示信号203」と表す)を、キャッシュ部201に送る。キャッシュ部201は、該フラッシュ指示信号203を受信する処理に応じて、状態212に「無効」を表すバリッド情報を書き込むことにより、該キャッシュラインを無効にする。
一方、キャッシュ部201は、データアレイ211に新たなキャッシュラインを記憶させる場合、及び、あるキャッシュラインをフラッシュする場合に、変更するキャッシュラインに関する情報をフラッシュ制御部202に送信する。
フラッシュ指示信号生成部223が、メインメモリへデータを書き込むベクトルストア命令に応じて、キャッシュ部201にフラッシュ指示信号203を送ることにより、データの一貫性は保たれる。
特許文献1乃至特許文献3は、キャッシュメモリ装置105におけるデータと、メインメモリ104におけるデータとの一貫性を制御する技術を開示する。
特許文献1は、スカラプロセッサとベクトルプロセッサとを備えるコンピュータシステムにおいて、データの一貫性を維持する処理に起因する性能低下を低減するキャッシュメモリ装置等を開示する。
特許文献1に開示されたキャッシュメモリ装置は、フラッシュ処理を実施するため、アドレスアレイの複製であるフラッシュアドレスアレイを有し、該フラッシュアドレスアレイが記憶するアドレスとベクトルストア命令において参照されるアドレスとが一致するか否かを比較し、これらのアドレスが一致する場合に、フラッシュを指示する信号を送信する。
特許文献2は、フラッシュアドレスアレイが有効であるか否かを表すバリッド情報を、高速に処理するキャッシュメモリ装置を開示する。
高速に処理するために、特許文献2に開示されたキャッシュメモリ装置は、上記バリッド情報を記憶するとともに、1マシンサイクルにおいて読み出し及び書き込みを実施可能な記憶手段を有する。
特許文献3は、アドレスアレイを構成するために必要なハードウェア量を削減できるキャッシュメモリ制御方式を開示する。
特許文献3に開示されたキャッシュメモリ制御方式では、複数のキャッシュラインをまとめたブロック単位で、フラッシュ処理が行なわれる。すなわち、メインメモリが記憶するデータの更新処理に応答して、該更新処理により更新されたメインメモリのデータの複製を有するキャッシュラインを含むブロックにおける全てのキャッシュラインがフラッシュされる。
特許第3757768号公報 特開平04−181343号公報 特開平05−066996号公報
しかしながら、特許文献1および特許文献2に開示されたキャッシュメモリ装置において、高速な処理を実現するためには、アドレスアレイを比較する処理の並列度を上げる必要があり、そのため、フラッシュアドレスアレイ、または、リードポートを増やす必要がある。その結果、並列度を増やすにつれて、キャッシュメモリ装置の回路規模は増大するという問題が特許文献1および2記載の技術にはある。
また、特許文献3が開示するキャッシュメモリ装置は、複数のアドレスアレイをまとめたブロック単位で処理を行うため、複数のキャッシュラインを一度にフラッシュすることができる。しかしながら、該キャッシュメモリ装置は、セットアソシアティブ方式において必須のウェイを制御することができないため、セットアソシアティブ方式に適用できないという問題点がある。
本発明の目的は、セットアソシアティブ方式キャッシュメモリ装置を効率よく制御するフラッシュ制御装置等を提供することである。
前述の目的を達成するために、本発明に係るフラッシュ制御装置は、以下の構成を備えることを特徴とする。
即ち、本発明に係るフラッシュ制御装置は、
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第1キャッシュラインが有効であるか否かを表すライン情報と、前記第1キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と、
1つ以上のフラッシュするアドレスから、所定の算出方法に従い、第1タグ識別子及び前記キャッシュラインを識別する第1アドレスを、それぞれ算出し、前記タグ記憶部において、前記第1タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第2キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第2キャッシュラインのうち、前記第1アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信するウェイ特定部と、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする指示部と
を備えることを特徴とする。
また、本発明の他の見地として、本発明に係るフラッシュ制御方法は、
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第1キャッシュラインが有効であるか否かを表すライン情報と、前記第1キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と有するキャッシュ制御装置において、
1つ以上のフラッシュするアドレスから、所定の算出方法に従い、第1タグ識別子及び前記キャッシュラインを識別する第1アドレスをそれぞれ算出し、前記タグ記憶部において、前記第1タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第2キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第2キャッシュラインのうち、前記第1アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信し、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする
ことを特徴とする。
本発明に係るフラッシュ制御装置等によれば、セットアソシアティブ方式キャッシュメモリ装置を効率よく制御することできる。
本発明の第1の実施形態に係るフラッシュ制御装置が有する構成を示すブロック図である。 本発明の第1の実施形態に係るフラッシュ制御装置における処理の流れを示すフローチャートである。 タグ及びキャッシュラインの一例を概念的に表す図である。 第1の実施形態に係るタグ記憶部及びライン記憶部が記憶可能なデータの一例を概念的に表す図である。 本発明の第2の実施形態に係るフラッシュ制御装置が有する構成を示すブロック図である。 本発明の第2の実施形態に係るフラッシュ制御装置における処理の流れを示すフローチャートである。 本発明の第3の実施形態に係るフラッシュ制御装置が有する構成を示すブロック図である。 本発明の第3の実施形態に係るフラッシュ制御装置における処理の流れを示すフローチャートである。 本発明の第4の実施形態に係るフラッシュ制御装置が有する構成を示すブロック図である。 本発明の第4の実施形態に係るフラッシュ制御装置における処理の流れを示すフローチャートである。 一般的なベクトルプロセッサが有する構成を表すブロック図である。 ベクトルプロセッサにおいて一般的なキャッシュメモリ装置が有する構成を表すブロック図である。
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
<第1の実施形態>
本発明の第1の実施形態に係るフラッシュ制御装置11が有する構成と、フラッシュ制御装置11が行う処理とについて、図1と図2とを参照しながら詳細に説明する。図1は、本発明の第1の実施形態に係るフラッシュ制御装置11が有する構成を示すブロック図である。図2は、本発明の第1の実施形態に係るフラッシュ制御装置11における処理の流れを示すフローチャートである。
第1の実施形態に係るフラッシュ制御装置11は、指示部13と、タグ記憶部14と、ライン記憶部15とを有する。
タグ記憶部14は、複数のキャッシュラインに関連付けされたタグを識別するタグ識別子と、該タグ識別子が有効であるか否かを表すタグ情報とを関連付けて記憶することができる。
ライン記憶部15は、データアレイ(不図示、例えば、図12)内にキャッシュラインが有効であるか否かを表すライン情報と、該ライン情報が有効である場合に、データアレイ内の領域を指し示すウェイに関する情報とを関連付けて記憶することができる。ライン記憶部15は、タグに関連付けされた複数のキャッシュラインに関する情報を、該タグを表すタグ識別子を記憶するタグ記憶部14における領域に関連付けて記憶する。
ライン記憶部15は、タグに関連付けされたキャッシュラインの状態を表す情報を、所定のフォーマットに従い記憶する。例えば、所定のフォーマットは、キャッシュラインを識別するアドレスが小さい順に並べるフォーマット、アドレスが大きい順に並べるフォーマット、あるいはライン情報とウェイを合わせて符号化する形態で保持するフォーマット等である。
また、符号化する形態の一例として、3ウェイのセットアソシアティブ方式を採用するキャッシュメモリ装置に対して、2ビットを用いてライン情報とウェイとを1つの数として表現する形態がある。
2ビットを用いてウェイを指定することにより、4つのウェイを指定することが可能である。一方、上述した例におけるキャッシュメモリ装置は、3つのウェイしか有していない。2ビットにて表現された値が、該キャッシュメモリ装置に存在しないウェイを指し示す場合に、該値が、「ライン情報が無効である状態」を表すとする。
例えば、符号化後の値が2b11(「2b」は、ビットにて表現する場合に2ビットであり、かつ、2進表記に従い表記されていることを表す)である場合に、ライン情報が「無効」であることを表現し、それ以外の値の場合に、ライン情報が「有効」かつ符号化後の2ビットの値がウェイを表現することとする形態である。
3ウェイを有するキャッシュメモリ装置及び2ビットを有するライン情報という例を用いて説明したが、所定のフォーマットは、上述した例に限定されない。
ここで、エントリは、タグ記憶部14における領域と、ライン記憶部15における領域とが関連付けされた領域を表すとする。すなわち、「ライン記憶部15における特定タグのエントリ」は、タグ記憶部14においてタグ識別子が該特定タグである領域に関連付けされたライン記憶部15における領域を表す。
例えば、図1の例において、タグ記憶部14は、タグ識別子が1である第1タグと、第1タグが有効であることを表すタグ情報とを関連付けて記憶することができる(タグ記憶部14における2行目)。さらに、ライン記憶部15は、該第1タグに関連付けされた複数のキャッシュラインについて、それぞれのキャッシュラインに関するライン情報とウェイとを関連付けて記憶することができる(ライン情報における2行目)。この場合、エントリは、タグ記憶部14における2行目と、ライン記憶部15における2行目を表す。
すなわち、図1の例において、例えば、タグ記憶部14におけるN行目(Nは、正整数)の記憶領域は、ライン記憶部15におけるN行目の記憶領域に関連付けされている。この場合、N番目のエントリは、タグ記憶部14におけるN行目と、ライン記憶部15におけるN行目とを表す。簡易的に説明するため、本実施形態の説明においては、上述したように関連付けされていることを仮定する。しかしながら、本実施形態は、上述した例に限定されない。
また、簡潔に説明をするため、以降の説明においては、以下の例を用いて本実施形態を説明する。
メインメモリにおけるアドレスは、1バイト(byte)単位であり、48ビット(bit)にて表記される。
各キャッシュラインの大きさは、256バイトである。すなわち、各キャッシュラインは、メインメモリにおいてアドレスが連続する256個のデータを記憶可能である。
キャッシュラインのアドレスは、メインメモリにおけるアドレスを表す48ビットのうち、上位40ビットによって識別され(40=48ビット−8ビット(キャッシュラインにおける256個のデータに相当))、アドレスの下位8ビットを0とした48ビットにて表記される。
タグ識別子は、キャッシュラインのアドレスを表す48ビットのうち、上位32ビットである。すなわち、各タグは、共通のタグ識別子を有する256個のキャッシュラインに関連付けされる。
キャッシュメモリ装置は、4ウェイセットアソシアティブ方式を採用する。
以上のような例を用いて本実施形態を説明するが、本実施形態は、上述した例に限定されない。本発明の各実施形態においても同様である。
図3が表す例を参照しながら、タグ及びキャッシュラインについて説明を行う。図3は、タグ及びキャッシュラインの一例を概念的に表す図である。例えば、「アドレス48h000100000000」(「48h」は、ビットにて表現する場合に48ビットであり、かつ、16進表記に従い表記されていることを表す)のキャッシュラインは、メインメモリにおけるアドレスが「48h000100000000」乃至「48h0001000000FF」におけるデータに関連付けされている。
さらに、「タグ32h00010000」(「32h」は、ビットにて表現する場合に32ビットであり、かつ、16進表記に従い表記されていることを表す)は、「アドレス48h000100000000」乃至「アドレス48h00010000FF00」のキャッシュラインに関連付けされている。例えば、ライン記憶部15は、「タグ32h00010000」のエントリに、「アドレス48h000100000000」乃至「アドレス48h00010000FF00」における、それぞれのキャッシュラインに関するライン情報とウェイとを、所定のフォーマットに従い、関連付けて記憶する。
さらに、図4を参照しながら、ライン情報、ウェイ、及び、タグ情報等について詳述する。図4は、第1の実施形態に係るタグ記憶部14及びライン記憶部15が記憶可能なデータの一例を概念的に表す図である。
例えば、図4の例において、タグ記憶部14は、「タグ32h00010000」と、該タグが有効であることを表す「タグ情報1」とを関連付けて記憶する。ライン記憶部15は、「タグ32h00010000」のエントリに、「アドレス48h000100000000」乃至「アドレス48h00010000FF00」のキャッシュラインに関するライン情報とウェイとを、所定のフォーマットに従い、関連付けて記憶する。例えば、所定のフォーマットがキャッシュラインのアドレスが小さい順に並べるフォーマットである場合、ライン記憶部15は、「アドレス48h000100000N00」(Nは、1桁の16進数)のキャッシュラインに関連付けされたウェイとライン情報とを、左からN番目に相当する領域に記憶する。
図4の例において、「アドレス48h000100000000」のキャッシュラインは「ライン情報0」に関連付けされているため、キャッシュメモリ装置は、該キャッシュラインを記憶していない。「アドレス48h000100000100」のキャッシュラインは「ライン情報1」及び「ウェイ2」に関連付けされているため、キャッシュメモリ装置は、「ウェイ2」において該キャッシュラインにおけるデータを記憶している。同様に、「アドレス48h000100000200」のキャッシュラインが「ライン情報1」及び「ウェイ0」に関連付けされているため、キャッシュメモリ装置は、「ウェイ0」において該キャッシュラインにおけるデータを記憶している。
次に、図1に示すキャッシュフラッシュ装置における処理の流れについて、図2を参照しながら説明を行う。まず、ウェイ特定部12は、アドレス16を複数受信し、受信したアドレス16から、所定の算出方法に従い、該アドレス16を含むキャッシュラインのアドレス、及び、該キャッシュラインに関連付けされたタグ識別子をそれぞれ算出する(ステップS21)。例えば、所定の算出方法として、該アドレス16の上位ビットからキャッシュラインのアドレス、及び、該キャッシュラインに関連付けされたタグ識別子を算出する方法等がある。
例えば、ウェイ特定部12は、「アドレス48h000100000008」、「アドレス48h000100000108」及び「アドレス48h000100000208」を受信したとする。その場合、ウェイ特定部12は、「アドレス48h000100000008」からキャッシュラインのアドレスである「アドレス48h000100000000」と、「タグ32h00010000」とを算出する。
同様に、ウェイ特定部12は、「アドレス48h000100000108」からキャッシュラインのアドレスである「アドレス48h000100000100」と、「タグ32h00010000」とを算出する。さらに、ウェイ特定部12は、「アドレス48h000100000208」からキャッシュラインのアドレスである「アドレス48h000100000200」と、「タグ32h00010000」とを算出する。
上述した例において、受信したアドレスを含むキャッシュラインは、お互いに異なる。しかしながら、該キャッシュラインを含むタグは、上述したいずれのアドレスにも共通する。
次に、ウェイ特定部12は、タグ記憶部14において、算出したタグ識別子と一致するタグ識別子を探す(ステップS22)。一致するタグ識別子が存在する場合(ステップS22にてYESと判定)、ウェイ特定部12は、タグ記憶部14から該タグ識別子に関連付けされたタグ情報を読み取り、該タグ情報が有効であるか否かを判定する(ステップS23)。一致するタグ識別子が存在しない場合(ステップS22にてNOと判定)及び、該タグ情報が有効でない場合(ステップS23にてNOと判定)、指示部13は、「該当なし」を表す信号を送信する(ステップS27)。
該タグ情報が有効である場合(ステップS23にてYESと判定)、ウェイ特定部12は、ライン記憶部15における該タグのエントリから、複数のキャッシュラインに関するライン情報及びウェイを一度に読み取る(ステップS24)。
次に、ウェイ特定部12は、読み取ったライン情報が有効であり、かつ、読み取ったウェイが特定のウェイを表すと判定する場合に、該ウェイを指示部13に送信する(ステップS25)。
指示部13は、受信したウェイにおいて、前記受信したアドレスより算出したアドレスに対応するデータアレイの領域をフラッシュするフラッシュ命令17をキャッシュメモリ装置に指示する(ステップS26)。
例えば、図4が示す例において、ウェイ特定部12は、タグ記憶部14から「タグ32h00010000」を探し、該タグ識別子に関連付けされた「タグ情報1」を読み取る。すなわち、ウェイ特定部12は、「タグ32h00010000」が有効であると判断する。
次に、ウェイ特定部12は、ライン記憶部15から、「タグ32h00010000」に関連付けされた「アドレス48h000100000000」乃至「アドレス48h00010000FF00」のキャッシュラインに関連付けされたライン情報とウェイとを、それぞれ、読み取る。
例えば、ウェイ特定部12は、「アドレス48h000100000100」のキャッシュラインが「ウェイ2」において有効であること、及び、「アドレス48h000100000200」のキャッシュラインが「ウェイ0」において有効であること等を読み取り、読み取ったウェイを指示部13に送信する。
次に、指示部13は、該ウェイを受信する処理に応じて、「アドレス48h000100000100」のキャッシュラインを記憶可能なデータアレイの領域のうち「ウェイ2」をフラッシュする命令をキャッシュメモリ装置に指示する。それとともに、指示部13は、「アドレス48h000100000200」のキャッシュラインを記憶可能なデータアレイの領域のうち「ウェイ0」をフラッシュする命令をキャッシュメモリ装置に指示する。
特許文献1乃至3に記載の装置は、セットアソシアティブ方式を採用するキャッシュメモリ装置を高速に制御することができない。その理由は、セットアソシアティブ方式を採用するキャッシュメモリ装置において、キャッシュラインを記憶可能なウェイが複数存在することにより、フラッシュするウェイを指定できないためである。
一方、本実施形態によれば、ライン記憶部15がキャッシュラインを記憶するウェイを関連付けて記憶するため、フラッシュするキャッシュラインを記憶するウェイを特定することができる。
即ち、本発明における第1の実施形態に係るフラッシュ制御装置によれば、セットアソシアティブ方式のキャッシュメモリを効率よく制御することができる。
<第2の実施形態>
次に、上述した第1の実施形態を基本とする第2の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図5と図6とを参照しながら、本発明の第2の実施形態に係るフラッシュ制御装置51が有する構成と、フラッシュ制御装置51が行う処理とについて説明する。図5は、本発明の第2の実施形態に係るフラッシュ制御装置51が有する構成を示すブロック図である。図6は、本発明の第2の実施形態に係るフラッシュ制御装置51における処理の流れを示すフローチャートである。
本実施形態に係るフラッシュ制御装置51は、第1の実施形態に加え、更に、タグ記憶部14及びライン記憶部15におけるデータを更新する更新部52を有する。
キャッシュ部(不図示、例えば、図12)は、アドレスアレイ及びデータアレイにキャッシュラインを記憶させる処理に応じて、該キャッシュラインを記憶させるアドレス16及びウェイを、本実施形態に係るフラッシュ制御装置51に通知する。
更新部52は、該アドレス16及び該ウェイを受信し、受信したアドレス16から、所定の算出方法に従い、タグ識別子を算出する(ステップS61)。次に、更新部52は、タグ記憶部14において算出したタグ識別子に一致し、かつタグ情報が「有効」であるタグ識別子が存在するか否かを判定する(ステップS62)。
タグ記憶部14が有効なタグ識別子を記憶する場合に(ステップS62にてYESと判定)、更新部52は、ライン記憶部15内の該タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させるとともに、該キャッシュラインに関連付けされたライン情報を「有効」にする(ステップS66)。
タグ記憶部14が有効なタグ識別子を記憶しない場合に(ステップS62にてNOと判定)、更新部52は、タグ記憶部14において、タグ情報が無効であることと関連付けされたタグ識別子を探す(ステップS63)。
タグ記憶部14において、タグ情報が無効であることと関連付けされたタグ識別子が存在しない場合に(ステップS63にてNOと判定)、更新部52は、所定の選択方法に従い、タグ識別子を選び、選んだタグ識別子を有するタグに関連付けされた複数のキャッシュラインを全てフラッシュさせるフラッシュ命令17を指示するとともに、フラッシュさせる各キャッシュラインに関連付けられたライン情報を全て「無効」にする(ステップS64)。
例えば、所定の選択方法は、ランダムに選ぶ方法、あるいは、最も参照されていないタグ識別子を選ぶ方法等である。本実施形態は、例示した所定の選択方法に限定されない。
その後、更新部52は、タグ記憶部14において、フラッシュしたキャッシュラインに関連付けされたタグ識別子を記憶する領域に、算出したタグのタグ識別子を記憶させるとともに、該タグ識別子に関連付けされたタグ情報を「有効」にする(ステップS65)。それとともに、更新部52は、所定のフォーマットに従って、該キャッシュラインに関連付けされたウェイに受信したウェイを記憶させるとともに、該キャッシュラインに関連付けされたライン情報を「有効」にする(ステップS66)。
タグ記憶部14において、タグ情報が無効であることと関連付けされたタグ識別子が存在する場合(ステップS63にてYESと判定)、更新部52は、該無効なタグ情報を記憶する領域に、上述したフラッシュ処理後と同様の処理を行う(ステップS65及びステップS66)。
本発明の第2の実施形態は、本発明の第1の実施形態と同様の構成を有するため、セットアソシアティブ方式のキャッシュメモリを効率よく制御することができる。
さらに、第2の実施形態によれば、キャッシュ部が、アドレスアレイ及びデータアレイにキャッシュラインを記憶させる処理に応じて更新を行うため、更に処理時間を短縮することができる。
<第3の実施形態>
次に、上述した第1の実施形態を基本とする第3の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図7と図8とを参照しながら、本発明の第3の実施形態に係るフラッシュ制御装置71が有する構成と、フラッシュ制御装置71が行う処理とについて説明する。図7は、本発明の第3の実施形態に係るフラッシュ制御装置71が有する構成を示すブロック図である。図8は、本発明の第3の実施形態に係るフラッシュ制御装置71における処理の流れを示すフローチャートである。
本実施形態に係るフラッシュ制御装置71は、第1の実施形態に加え、更に、タグ記憶部14においてタグ情報を無効にする無効部72を有する。
キャッシュ部(不図示、例えば、図12)は、アドレスアレイ及びデータアレイからキャッシュラインをフラッシュする処理に応じて、フラッシュしたアドレス16及びウェイを、本実施形態に係るフラッシュ制御装置71に通知する。
無効部72は、該アドレス16及び該ウェイを受信し、受信したアドレス16から、所定の算出方法に従い、タグ識別子を算出する(ステップS81)。次に、無効部72は、ライン記憶部15内の該タグ識別子のエントリにおいて、該受信したアドレス16を含むキャッシュラインに関連付けされたライン情報を「無効」にする(ステップS82)。
本発明の第3の実施形態は、本発明の第1の実施形態と同様の構成を有するため、セットアソシアティブ方式のキャッシュメモリを効率よく制御することができる。
さらに、第3の実施形態によれば、キャッシュ部が、アドレスアレイ及びデータアレイにキャッシュラインをフラッシュする処理に応じて更新を行うため、更に処理時間を短縮することができる。
<第4の実施形態>
次に、上述した第1の実施形態を基本とする第4の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図9と図10とを参照しながら、本発明の第4の実施形態に係るフラッシュ制御装置91が有する構成と、フラッシュ制御装置91が行う処理とについて説明する。図9は、本発明の第4の実施形態に係るフラッシュ制御装置91が有する構成を示すブロック図である。図10は、本発明の第4の実施形態に係るフラッシュ制御装置91における処理の流れを示すフローチャートである。
本実施形態に係るフラッシュ制御装置91は、第1の実施形態に加え、更に、ベクトルストア命令に応じてデータを記憶させるアドレスを算出するアドレス算出部92を有する。
一般的に、ベクトルストア命令は、データを記憶させるアドレスの基点となるベースアドレス、アドレスの間隔を表すディスタンス、及び、ベクトル長に関する値を参照する。
ここで、ベクトルストア命令は、「Base」、「Base+Dist」、「Base+Dist×2」、・・・、「Base+Dist×(VL−1)」(ただし、Baseはベースアドレス、Distはディスタンス、VLはベクトル長を表す)が指し示す各アドレスに、8バイト長を有するデータをストアすると仮定する。さらに、ベースアドレスが「48h000100000008」であり、ディスタンスが「48h000000000100」であり、VLが「3」であるベクトルストア命令を実行するとする。
アドレス算出部92は、ベクトルストア命令を受信し、その後、データを記憶させるアドレスを算出する(ステップS101)。すなわち、アドレス算出部92は、ベースアドレス、ディスタンス、及び、ベクトル長に基づいて、上述したアドレスを算出する。
例えば、アドレス算出部92は、データをストアするアドレスとして、「48h000100000008」、「48h000100000108」及び「48h000100000208」を算出する。次に、アドレス算出部92は、算出したアドレスをウェイ特定部12に送信する。
ウェイ特定部12は、該アドレスを受信し、受信したアドレスに応じて、上述したような処理を行う(ステップS102)。
第4の実施形態は、第1の実施形態と同様の構成を有するため、セットアソシアティブ方式のキャッシュメモリを効率よく制御することができる。
さらに、第4の実施形態によれば、アドレス算出部92がベクトルストア命令に応じてデータを記憶させるアドレスを算出するため、フラッシュ制御装置91は、必ずしも、フラッシュする全てのアドレスを受信する必要がなくなる。その結果、データをやり取りする時間を、さらに、短縮することができる。
尚、上述した例において本実施形態について説明したが、本実施形態は上述した例に限定されない。
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。即ち、
(付記1)
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第1キャッシュラインが有効であるか否かを表すライン情報と、前記第1キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と、
1つ以上のフラッシュするアドレスから、所定の算出方法に従い、第1タグ識別子及び前記キャッシュラインを識別する第1アドレスを、それぞれ算出し、前記タグ記憶部において、前記第1タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第2キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第2キャッシュラインのうち、前記第1アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信するウェイ特定部と、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする指示部と
を備えるフラッシュ制御装置。
(付記2)
キャッシュラインを記憶させる処理に応じて、受信したアドレスから、前記所定の算出方法に従い、タグ識別子を算出し、前記タグ記憶部において、算出したタグ識別子と一致し、かつ、該タグ識別子に関連付けされたタグ情報が有効である第2タグ識別子が存在するか否かを判定し、
前記タグ情報が有効である第2タグ識別子が存在しない場合に、前記タグ記憶部が記憶するタグ識別子の中から、所定の選択方法に従い、特定のタグ識別子を選び、該特定のタグ識別子に関連付けされたタグ情報が有効である場合には、該特定のタグ識別子を有するタグに関連付けされたキャッシュラインをフラッシュさせる指示を行うとともに、フラッシュさせるキャッシュラインに関連付けられたライン情報を無効とし、前記タグ記憶部内の、該特定のタグ識別子を記憶するエントリに、前記算出したタグ識別子と有効を表すタグ情報とを関連付けて記憶させるとともに、前記ライン記憶部内の該特定のタグ識別子のエントリに、前記所定のフォーマットに従って、受信したウェイとライン情報が有効である値とを関連付けて記憶させ、
前記タグ情報が有効である第2タグ識別子が存在する場合に、前記ライン記憶部内の該前記第2タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させる処理、及び、該キャッシュラインに関連付けされたライン情報を有効とする処理を実施する更新部を
更に備える付記1に記載のフラッシュ制御装置。
(付記3)
前記キャッシュラインをフラッシュする処理に応じて、受信したアドレスから、前記所定の算出方法に従い第3タグ識別子を算出し、前記ライン記憶部内の該前記第3タグ識別子のエントリにおいて、該キャッシュラインに関連付けされた前記ライン情報を無効にする無効部を
更に備える付記1または付記2に記載のフラッシュ制御装置。
(付記4)
ベクトルストア命令に応じてデータを記憶させるアドレスを算出するアドレス算出部を更に備え、
前記ウェイ特定部は、前記アドレス算出部が算出する前記アドレスに基づいて、前記特定のウェイを送信する
付記1乃至付記3のいずれかに記載のフラッシュ制御装置。
(付記5)
前記所定の算出方法は、前記アドレスにおける値を、前記タグと、前記キャッシュラインと、前記キャッシュラインにおけるアドレスとに分割する処理である
付記1乃至付記4に記載のフラッシュ制御装置。
(付記6)
前記所定のフォーマットは、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
付記1乃至付記5のいずれかに記載のフラッシュ制御装置。
(付記7)
前記所定のフォーマットは、前記ライン情報と前記ウェイとを1つの値として表し、前記値を、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
付記1乃至付記6のいずれかに記載のフラッシュ制御装置。
(付記8)
付記1乃至付記7のいずれかに記載のフラッシュ制御装置を有するキャッシュメモリ装置。
(付記9)
複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
前記タグに関連付けされた前記複数のキャッシュラインにおける第1キャッシュラインが有効であるか否かを表すライン情報と、前記第1キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と有するキャッシュ制御装置において、
1つ以上のフラッシュするアドレスから、所定の算出方法に従い、第1タグ識別子及び前記キャッシュラインを識別する第1アドレスをそれぞれ算出し、前記タグ記憶部において、前記第1タグ識別子と一致する特定タグ識別子を探し、
前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第2キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第2キャッシュラインのうち、前記第1アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信し、
前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする
フラッシュ制御方法。
(付記10)
キャッシュラインを記憶させる処理に応じて、受信したアドレスから、前記所定の算出方法に従い、タグ識別子を算出し、前記タグ記憶部において、算出したタグ識別子と一致し、かつ、該タグ識別子に関連付けされたタグ情報が有効である第2タグ識別子が存在するか否かを判定し、
前記タグ情報が有効である第2タグ識別子が存在しない場合に、前記タグ記憶部が記憶するタグ識別子の中から、所定の選択方法に従い、特定のタグ識別子を選び、該特定のタグ識別子に関連付けされたタグ情報が有効である場合には、該特定のタグ識別子を有するタグに関連付けされたキャッシュラインをフラッシュさせる指示を行うとともに、フラッシュさせるキャッシュラインに関連付けられたライン情報を無効とし、前記タグ記憶部内の、該特定のタグ識別子を記憶するエントリに、前記算出したタグ識別子と有効を表すタグ情報とを関連付けて記憶させるとともに、前記ライン記憶部内の該特定のタグ識別子のエントリに、前記所定のフォーマットに従って、受信したウェイとライン情報が有効である値とを関連付けて記憶させ、
前記タグ情報が有効である第2タグ識別子が存在する場合に、前記ライン記憶部内の該前記第2タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させる処理、及び、該キャッシュラインに関連付けされたライン情報を有効とする処理を実施するステップを
更に含む付記9に記載のフラッシュ制御方法。
(付記11)
前記キャッシュラインをフラッシュする処理に応じて、受信したアドレスから、前記所定の算出方法に従い第3タグ識別子を算出し、前記ライン記憶部内の該前記第3タグ識別子のエントリにおいて、該キャッシュラインに関連付けされた前記ライン情報を無効にするステップを
更に含む付記9または付記10に記載のフラッシュ制御方法。
(付記12)
ベクトルストア命令に応じてデータを記憶させるアドレスを算出するステップを更に含み、
前記アドレスに基づいて、前記特定のウェイを送信する
付記9乃至付記12のいずれかに記載のフラッシュ制御方法。
(付記13)
前記所定の算出方法は、前記アドレスにおける値を、前記タグと、前記キャッシュラインと、前記キャッシュラインにおけるアドレスとに分割する処理である
付記9乃至付記12に記載のフラッシュ制御方法。
(付記14)
前記所定のフォーマットは、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
付記9乃至付記13のいずれかに記載のフラッシュ制御方法。
(付記15)
前記所定のフォーマットは、前記ライン情報と前記ウェイとを1つの値として表し、前記値を、前記キャッシュライン識別するアドレスの値が小さい順に並べるフォーマットである
付記9乃至付記14のいずれかに記載のフラッシュ制御方法。
11 フラッシュ制御装置
12 ウェイ特定部
13 指示部
14 タグ記憶部
15 ライン記憶部
16 アドレス
17 フラッシュ命令
51 フラッシュ制御装置
52 更新部
71 フラッシュ制御装置
72 無効部
91 フラッシュ制御装置
92 アドレス算出部
100 ベクトルプロセッシング部
102 スカラプロセッシング部
103 メモリネットワーク
104 メインメモリ
105 キャッシュメモリ装置
200 リクエスト発行制御部
201 キャッシュ部
202 フラッシュ制御部
203 フラッシュ指示信号
210 アドレスアレイ
211 データアレイ
212 状態
213 キャッシュヒット判定
214 データアライン
220 アドレス計算部
221 アドレス一致比較部
222 フラッシュアドレスアレイ
223 フラッシュ指示信号生成部

Claims (10)

  1. 複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
    前記タグに関連付けされた前記複数のキャッシュラインにおける第1キャッシュラインが有効であるか否かを表すライン情報と、前記第1キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と、
    1つ以上のフラッシュするアドレスから、所定の算出方法に従い、第1タグ識別子及び前記キャッシュラインを識別する第1アドレスを、それぞれ算出し、前記タグ記憶部において、前記第1タグ識別子と一致する特定タグ識別子を探し、
    前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
    前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第2キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第2キャッシュラインのうち、前記第1アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信するウェイ特定部と、
    前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする指示部と
    を備えるフラッシュ制御装置。
  2. キャッシュラインを記憶させる処理に応じて、受信したアドレスから、前記所定の算出方法に従い、タグ識別子を算出し、前記タグ記憶部において、算出したタグ識別子と一致し、かつ、該タグ識別子に関連付けされたタグ情報が有効である第2タグ識別子が存在するか否かを判定し、
    前記タグ情報が有効である第2タグ識別子が存在しない場合に、前記タグ記憶部が記憶するタグ識別子の中から、所定の選択方法に従い、特定のタグ識別子を選び、該特定のタグ識別子に関連付けされたタグ情報が有効である場合には、該特定のタグ識別子を有するタグに関連付けされたキャッシュラインをフラッシュさせる指示を行うとともに、フラッシュさせる各キャッシュラインに関連付けられたライン情報を無効とし、前記タグ記憶部内の、該特定のタグ識別子を記憶するエントリに、前記算出したタグ識別子と有効を表すタグ情報とを関連付けて記憶させるとともに、前記ライン記憶部内の該特定のタグ識別子のエントリに、前記所定のフォーマットに従って、受信したウェイとライン情報が有効である値とを関連付けて記憶させ、
    前記タグ情報が有効である第2タグ識別子が存在する場合に、前記ライン記憶部内の該前記第2タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させる処理、及び、該キャッシュラインに関連付けされたライン情報を有効とする処理を実施する更新部を
    更に備える請求項1に記載のフラッシュ制御装置。
  3. 前記キャッシュラインをフラッシュする処理に応じて、受信したアドレスから、前記所定の算出方法に従い第3タグ識別子を算出し、前記ライン記憶部内の該前記第3タグ識別子のエントリにおいて、該キャッシュラインに関連付けされた前記ライン情報を無効にする無効部を
    更に備える請求項1または請求項2に記載のフラッシュ制御装置。
  4. ベクトルストア命令に応じてデータを記憶させるアドレスを算出するアドレス算出部を更に備え、
    前記ウェイ特定部は、前記アドレス算出部が算出する前記アドレスに基づいて、前記特定のウェイを送信する
    請求項1乃至請求項3のいずれかに記載のフラッシュ制御装置。
  5. 前記所定の算出方法は、前記アドレスにおける値を、前記タグと、前記キャッシュラインと、前記キャッシュラインにおけるアドレスとに分割する処理である
    請求項1乃至請求項4に記載のフラッシュ制御装置。
  6. 前記所定のフォーマットは、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
    請求項1乃至請求項5のいずれかに記載のフラッシュ制御装置。
  7. 前記所定のフォーマットは、前記ライン情報と前記ウェイとを1つの値として表し、前記値を、前記キャッシュラインを識別するアドレスの値が小さい順に並べるフォーマットである
    請求項1乃至請求項6のいずれかに記載のフラッシュ制御装置。
  8. 請求項1乃至請求項7のいずれかに記載のフラッシュ制御装置を有するキャッシュメモリ装置。
  9. 複数のキャッシュラインを関連付けするタグを識別するタグ識別子と、前記タグが有効であるか否かを表すタグ情報とを関連付けて記憶可能なタグ記憶部と、
    前記タグに関連付けされた前記複数のキャッシュラインにおける第1キャッシュラインが有効であるか否かを表すライン情報と、前記第1キャッシュラインを記憶する場所を識別するウェイとを、所定のフォーマットに従い、関連付けて記憶可能なライン記憶部と有するキャッシュ制御装置において、
    1つ以上のフラッシュするアドレスから、所定の算出方法に従い、第1タグ識別子及び前記キャッシュラインを識別する第1アドレスをそれぞれ算出し、前記タグ記憶部において、前記第1タグ識別子と一致する特定タグ識別子を探し、
    前記特定タグ識別子が存在する場合に、前記特定タグ識別子に関連付けされた前記タグ情報が有効であるか否かを読み取り、
    前記タグ情報が有効である場合に、前記タグ記憶部において、前記特定タグ識別子のエントリにおける複数の第2キャッシュラインに関連付けされた前記ライン情報と前記ウェイとをそれぞれ読み取り、前記複数の第2キャッシュラインのうち、前記第1アドレスに含まれ、かつ、前記ライン情報が有効である特定のキャッシュラインを探し、該特定のキャッシュラインを記憶する前記特定のウェイを送信し、
    前記特定のウェイを受信し、前記特定のキャッシュラインを記憶可能なウェイのうち、受信した前記特定のウェイをフラッシュする指示をする
    フラッシュ制御方法。
  10. キャッシュラインを記憶させる処理に応じて、受信したアドレスから、前記所定の算出方法に従い、タグ識別子を算出し、前記タグ記憶部において、算出したタグ識別子と一致し、かつ、該タグ識別子に関連付けされたタグ情報が有効である第2タグ識別子が存在するか否かを判定し、
    前記タグ情報が有効である第2タグ識別子が存在しない場合に、前記タグ記憶部が記憶するタグ識別子の中から、所定の選択方法に従い、特定のタグ識別子を選び、該特定のタグ識別子に関連付けされたタグ情報が有効である場合には、該特定のタグ識別子を有するタグに関連付けされたキャッシュラインをフラッシュさせる指示を行うとともにフラッシュさせるキャッシュラインに関連付けられたライン情報を無効とし、前記タグ記憶部内の、該特定のタグ識別子を記憶するエントリに、前記算出したタグ識別子と有効を表すタグ情報とを関連付けて記憶させるとともに、前記ライン記憶部内の該特定のタグ識別子のエントリに、前記所定のフォーマットに従って、受信したウェイとライン情報が有効である値とを関連付けて記憶させ、
    前記タグ情報が有効である第2タグ識別子が存在する場合に、前記ライン記憶部内の該前記第2タグ識別子のエントリにおいて、該受信したアドレスを含むキャッシュラインに関連付けされたウェイに受信したウェイを記憶させる処理、及び、該キャッシュラインに関連付けされたライン情報を有効とする処理を実施するステップを
    更に含む請求項9に記載のフラッシュ制御方法。
JP2013019992A 2013-02-05 2013-02-05 フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置 Active JP5445701B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013019992A JP5445701B1 (ja) 2013-02-05 2013-02-05 フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置
US14/167,485 US9304917B2 (en) 2013-02-05 2014-01-29 Flush control apparatus, flush control method and cache memory apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013019992A JP5445701B1 (ja) 2013-02-05 2013-02-05 フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置

Publications (2)

Publication Number Publication Date
JP5445701B1 true JP5445701B1 (ja) 2014-03-19
JP2014153732A JP2014153732A (ja) 2014-08-25

Family

ID=50614402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013019992A Active JP5445701B1 (ja) 2013-02-05 2013-02-05 フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置

Country Status (2)

Country Link
US (1) US9304917B2 (ja)
JP (1) JP5445701B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629411B1 (ko) 2015-02-03 2016-06-10 한국전자통신연구원 레벨0 캐시 제어 장치 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04181343A (ja) 1990-11-15 1992-06-29 Koufu Nippon Denki Kk キャッシュメモリシステム
JPH0566996A (ja) 1991-09-06 1993-03-19 Shikoku Nippon Denki Software Kk キヤツシユ制御方式
US5426754A (en) 1992-05-26 1995-06-20 International Business Machines Corporation Cross-interrogate method and means for combined scaler and vector processing system
JP2001202286A (ja) 2000-01-24 2001-07-27 Nec Corp キャッシュメモリのフラッシュ制御回路及びその制御方法
JP3757768B2 (ja) 2000-08-23 2006-03-22 日本電気株式会社 ベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式
JP3876771B2 (ja) 2002-06-12 2007-02-07 日本電気株式会社 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法
JP5206385B2 (ja) 2008-12-12 2013-06-12 日本電気株式会社 バウンダリ実行制御システム、バウンダリ実行制御方法、及びバウンダリ実行制御プログラム
JP2012203560A (ja) * 2011-03-24 2012-10-22 Toshiba Corp キャッシュメモリおよびキャッシュシステム
US20130036270A1 (en) * 2011-08-04 2013-02-07 The Regents Of The University Of Michigan Data processing apparatus and method for powering down a cache

Also Published As

Publication number Publication date
US20140223102A1 (en) 2014-08-07
US9304917B2 (en) 2016-04-05
JP2014153732A (ja) 2014-08-25

Similar Documents

Publication Publication Date Title
JP4045296B2 (ja) キャッシュメモリ及びその制御方法
JP4920378B2 (ja) 情報処理装置およびデータ検索方法
CN117421259A (zh) 用飞行中预取服务于cpu需求请求
CN114238167B (zh) 信息预取方法、处理器、电子设备
JP2014115851A (ja) データ処理装置及びその制御方法
JP4009306B2 (ja) キャッシュメモリおよびその制御方法
US7219197B2 (en) Cache memory, processor and cache control method
JP5319049B2 (ja) キャッシュシステム
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
JP2015049844A (ja) ストアマージ処理装置、ストアマージ処理システム、ストアマージ処理方法、及び、ストアマージ処理プログラム
CN110659220A (zh) 基于非统一存储器访问(numa)特性的增强数据预取的装置、方法和系统
KR101100143B1 (ko) 캐시 메모리 제어 장치, 및 파이프 라인 제어 방법
JP5445701B1 (ja) フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置
US11003581B2 (en) Arithmetic processing device and arithmetic processing method of controlling prefetch of cache memory
JP2008009857A (ja) キャッシュ制御回路およびプロセッサシステム
US9053030B2 (en) Cache memory and control method thereof with cache hit rate
JP7144670B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP2014048829A (ja) 演算処理装置及び演算処理装置の制御方法
JP6260456B2 (ja) 演算処理装置及び演算処理装置の制御方法
CN114218132B (zh) 信息预取方法、处理器、电子设备
Bhat et al. Directory Organizations in Cache Coherency Systems for High Performance Computation.
JP2009151457A (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法
WO2010098152A1 (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法
JP2017146787A (ja) 演算処理装置、情報処理装置、及び情報処理装置の制御方法
US20130346702A1 (en) Processor and control method thereof

Legal Events

Date Code Title Description
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: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5445701

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150