[go: up one dir, main page]

JP4673584B2 - キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 - Google Patents

キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 Download PDF

Info

Publication number
JP4673584B2
JP4673584B2 JP2004222401A JP2004222401A JP4673584B2 JP 4673584 B2 JP4673584 B2 JP 4673584B2 JP 2004222401 A JP2004222401 A JP 2004222401A JP 2004222401 A JP2004222401 A JP 2004222401A JP 4673584 B2 JP4673584 B2 JP 4673584B2
Authority
JP
Japan
Prior art keywords
data
cache
primary cache
tag
primary
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.)
Expired - Fee Related
Application number
JP2004222401A
Other languages
English (en)
Other versions
JP2006040175A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004222401A priority Critical patent/JP4673584B2/ja
Priority to US10/998,561 priority patent/US7428617B2/en
Priority to EP04257443A priority patent/EP1622028B1/en
Publication of JP2006040175A publication Critical patent/JP2006040175A/ja
Application granted granted Critical
Publication of JP4673584B2 publication Critical patent/JP4673584B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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

この発明は、キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法に関するものである。
近年、CPU(Central Processing Unit)およびメインメモリ間に発生するデータ遅延の問題を解消すべくキャッシュメモリが利用されている。このキャッシュメモリは、それ自体階層構造になっており、現在では複数のキャッシュメモリを用いている。そして、CPUに近い高速なキャッシュメモリから順に、第1レベルキャッシュおよび第2レベルキャッシュとして分類される。
また、従来に係るキャッシュメモリは、第1レベルキャッシュに対するタグの写しを、第2レベルキャッシュに保持させ、第2レベルキャッシュが該タグの写しを利用し、第1レベルキャッシュの情報を得ることによって、第1レベルキャッシュおよび第2レベルキャッシュ間の相互矛盾を無くしている。
例えば、図11に示すように、物理インデックスで第2レベルキャッシュのタグにアクセスした場合に、第2レベルキャッシュに含まれる仮想インデックスを利用して第1レベルキャッシュのタグの写しにアクセスし、第1レベルキャッシュの登録状態を把握することによって、両者のコヒーレンシを維持している。
なお、特許文献1では、キャッシュに含まれる各キャッシュラインに状態ビットフィールドなどを関連付けて、キャッシュライン状態のデコード効率を向上させる技術が公開されており、特許文献2では、共用の第2レベルキャッシュに包含ビット、命令ビットおよびデータビットを有するディレクトリを含ませることでデータキャッシュの包含を正確に追跡可能とする技術が公開されている。
特開平10−301850号公報 特開平8−235061号公報
しかしながら、従来に係る技術では、キャッシュメモリのマシンサイクルを高速化することができないという問題があった。
具体的には、第2レベルキャッシュと第1レベルキャッシュとの間で相互矛盾を無くすために、第2レベルキャッシュが第1レベルキャッシュの登録情報を得る際、タグを2段階でアクセスするため、ディレイが発生してしまうからである。
また、年々CPUの処理速度が飛躍的に向上しているが、CPUにデータを渡すキャッシュメモリの処理速度が遅いことは、CPUの足かせとなってしまうため、キャッシュメモリに発生するディレイの問題は更に深刻なものとなる。
すなわち、第1レベルキャッシュの登録情報を得る際に発生するディレイをなくし、マシンサイクルを高速化させることが極めて重要な課題となっている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、キャッシュメモリに発生するディレイをなくし、マシンサイクルを高速化することができるキャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、データを保持する1次キャッシュメモリと前記データを保持する2次キャッシュメモリを有し、演算処理部からのメモリアクセス要求に対応するデータを前記演算処理部に出力するキャッシュメモリ装置において、前記1次キャッシュメモリは、データを登録する1次キャッシュデータ部と、前記1次キャッシュデータ部が登録するデータについてのタグであって、第1の物理アドレスを含む1次キャッシュタグを保持する1次キャッシュタグ部と、前記演算処理部が出力したメモリアクセス要求に含まれ、1次キャッシュインデックスを含む仮想アドレスを、タグ比較アドレスと2次キャッシュインデックスとを含む物理アドレスに変換するアドレス変換処理部と、1次キャッシュインデックスを用いて前記1次キャッシュタグ部を検索し、前記検索された1次キャッシュタグが含む第1の物理アドレスとタグ比較アドレスを比較し、一致の場合には、前記第1の物理アドレスに対応する前記1次キャッシュデータ部が登録するデータを前記演算処理部に出力し、不一致の場合には、前記1次キャッシュインデックスと前記物理アドレスを出力する第1の検索処理部を有し、前記2次キャッシュメモリは、前記1次キャッシュデータ部が登録するデータを記憶する2次キャッシュデータ部と、前記2次キャッシュデータ部が保持するデータについてのタグであって、第2の物理アドレスと、仮想インデックスと、前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータについての登録情報である1次キャッシュ登録情報とを含む2次キャッシュタグを保持する2次キャッシュタグ部と、前記第1の検索処理部が出力した物理アドレスに含まれる2次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索し、前記検索された2次キャッシュタグが含む第2の物理アドレスと前記第1の検索処理部が出力した物理アドレスに含まれるタグ比較アドレスを比較し、一致の場合には、前記第1の検索処理部が出力した前記1次キャッシュインデックスと検索された2次キャッシュタグが含む仮想インデックスをさらに比較し、前記1次キャッシュインデックスと前記仮想インデックスが一致する場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録するとともに前記演算処理部に出力し、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータを前記演算処理部が書き換え得る更新型であると判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータデータ部から出力させたデータを前記2次キャッシュデータ部に保持させるコヒーレンシ維持部を有することを特徴とする。
また、本発明は、前記キャッシュメモリ装置において、前記コヒーレンシ維持部はさらに、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合であって、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記更新型でないと判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部が登録するデータを無効化することを特徴とする。
また、本発明は、前記キャッシュメモリ装置において、前記コヒーレンシ維持部はさらに、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合であって、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録されていないと判断した場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録することを特徴とする。
また、本発明は、前記キャッシュメモリ装置において、前記2次キャッシュメモリ部は複数のウェイを有し、前記1次キャッシュタグはさらに、前記1次キャッシュメモリ部が登録するデータが前記2次キャッシュメモリ部のどのウェイに登録されているかを示すウェイ特定情報を含み、前記1次キャッシュメモリはさらに、検出した前記1次キャッシュデータ部又は前記1次キャッシュタグ部にエラーが発生した旨と、前記エラーが発生したデータに対応する1次キャッシュタグに含まれる1次キャッシュインデックスと前記エラーが発生したウェイを特定するエラーウェイ特定情報を前記2次キャッシュメモリに通知するエラー検出部を有し、前記2次キャッシュメモリはさらに、前記エラー検出部が通知した1次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索し、前記1次キャッシュインデックスと等しい仮想インデックスを含む2次キャッシュタグが検索された場合、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報が含むウェイ特定情報と前記エラー検出部が通知したエラーウェイ特定情報を比較し、一致の場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ更新型であると判断した場合には、前記1次キャッシュデータ部から出力させた前記仮想インデックスに対応するデータを前記2次キャッシュデータ部に保持させるエラー処理部を有することを特徴とする。
また、本発明は、前記キャッシュメモリ装置において、前記エラー処理部は、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記更新型でないと判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部が登録するデータを無効化することを特徴とする。
また、本発明は、前記キャッシュメモリ装置において、前記エラー処理部は、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報が含むウェイ特定情報と前記エラー検出部が通知したエラーウェイ特定情報を比較し、全てのタグが不一致の場合には、前記1次キャッシュインデックスに対応する前記1次キャッシュデータ部が登録するデータと前記エラー検出部が通知したエラーウェイ特定情報に対応する前記2次キャッシュデータ部のウェイに保持されるデータを無効化することを特徴とする。
また、本発明は、メモリアクセス要求を出力する演算処理部と、データを保持する1次キャッシュメモリと前記データを保持する2次キャッシュメモリを有し、前記メモリアクセス要求に対応するデータを前記演算処理部に出力するキャッシュメモリ部とを有する演算処理装置において、前記1次キャッシュメモリは、データを登録する1次キャッシュデータ部と、前記1次キャッシュデータ部が登録するデータについてのタグであって、第1の物理アドレスを含む1次キャッシュタグを保持する1次キャッシュタグ部と、前記演算処理部が出力したメモリアクセス要求に含まれ、1次キャッシュインデックスを含む仮想アドレスを、タグ比較アドレスと2次キャッシュインデックスとを含む物理アドレスに変換するアドレス変換処理部と、1次キャッシュインデックスを用いて前記1次キャッシュタグ部を検索し、前記検索された1次キャッシュタグが含む第1の物理アドレスとタグ比較アドレスを比較し、一致の場合には、前記第1の物理アドレスに対応する前記1次キャッシュデータ部が登録するデータを前記演算処理部に出力し、不一致の場合には、前記1次キャッシュインデックスと前記物理アドレスを出力する第1の検索処理部を有し、前記2次キャッシュメモリは、前記1次キャッシュデータ部が登録するデータを記憶する2次キャッシュデータ部と、前記2次キャッシュデータ部が保持するデータについてのタグであって、第2の物理アドレスと、仮想インデックスと、前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータについての登録情報である1次キャッシュ登録情報とを含む2次キャッシュタグを保持する2次キャッシュタグ部と、前記第1の検索処理部が出力した物理アドレスに含まれる2次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索し、前記検索された2次キャッシュタグが含む第2の物理アドレスと前記第1の検索処理部が出力した物理アドレスに含まれるタグ比較アドレスを比較し、一致の場合には、前記第1の検索処理部が出力した前記1次キャッシュインデックスと検索された2次キャッシュタグが含む仮想インデックスをさらに比較し、前記1次キャッシュインデックスと前記仮想インデックスが一致する場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録するとともに前記演算処理部に出力し、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータを前記演算処理部が書き換え得る更新型であると判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータデータ部から出力させたデータを前記2次キャッシュデータ部に保持させるコヒーレンシ維持部を有することを特徴とする。
また、本発明は、前記演算処理装置において、前記コヒーレンシ維持部はさらに、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合であって、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記更新型でないと判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部が登録するデータを無効化することを特徴とする。
また、本発明は、前記演算処理装置において、前記コヒーレンシ維持部はさらに、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合であって、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録されていないと判断した場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録することを特徴とする。
また、本発明は、前記演算処理装置において、前記2次キャッシュメモリ部は複数のウェイを有し、前記1次キャッシュタグはさらに、前記1次キャッシュメモリ部が登録するデータが前記2次キャッシュメモリ部のどのウェイに登録されているかを示すウェイ特定情報を含み、前記1次キャッシュメモリはさらに、検出した前記1次キャッシュデータ部又は前記1次キャッシュタグ部にエラーが発生した旨と、前記エラーが発生したデータに対応する1次キャッシュタグに含まれる1次キャッシュインデックスと前記エラーが発生したウェイを特定するエラーウェイ特定情報を前記2次キャッシュメモリに通知するエラー検出部を有し、前記2次キャッシュメモリはさらに、前記エラー検出部が通知した1次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索し、前記1次キャッシュインデックスと等しい仮想インデックスを含む2次キャッシュタグが検索された場合、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報が含むウェイ特定情報と前記エラー検出部が通知したエラーウェイ特定情報を比較し、一致の場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ更新型であると判断した場合には、前記1次キャッシュデータ部から出力させた前記仮想インデックスに対応するデータを前記2次キャッシュデータ部に保持させるエラー処理部を有することを特徴とする。
また、本発明は、前記演算処理装置において、前記エラー処理部は、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記更新型でないと判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部が登録するデータを無効化することを特徴とする。
また、本発明は、前記演算処理装置において、前記エラー処理部は、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報が含むウェイ特定情報と前記エラー検出部が通知したエラーウェイ特定情報を比較し、全てのタグが不一致の場合には、前記1次キャッシュインデックスに対応する前記1次キャッシュデータ部が登録するデータと前記エラー検出部が通知したエラーウェイ特定情報に対応する前記2次キャッシュデータ部のウェイに保持されるデータを無効化することを特徴とする。
また、本発明は、データを登録する1次キャッシュデータ部と、前記1次キャッシュデータ部が登録するデータについてのタグであって、第1の物理アドレスを含む1次キャッシュタグを保持する1次キャッシュタグ部を備えた1次キャッシュメモリと、前記1次キャッシュデータ部が登録するデータを記憶する2次キャッシュデータ部と、前記2次キャッシュデータ部が保持するデータについてのタグであって、第2の物理アドレスと、仮想インデックスと、前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータについての登録情報である1次キャッシュ登録部とを含む2次キャッシュタグを保持する2次キャッシュタグ部を備えた2次キャッシュメモリを有し、演算処理部からのメモリアクセス要求に対応するデータを前記演算処理部に出力するキャッシュメモリ装置の制御方法において、前記1次キャッシュメモリが有するアドレス変換処理部が、前記演算処理部が出力したメモリアクセス要求に含まれ、1次キャッシュインデックスを含む仮想アドレスを、タグ比較アドレスと2次キャッシュインデックスとを含む物理アドレスに変換するステップと、前記1次キャッシュメモリが有する第1の検索処理部が、1次キャッシュインデックスを用いて前記1次キャッシュタグ部を検索し、前記検索された1次キャッシュタグが含む第1の物理アドレスとタグ比較アドレスを比較し、一致の場合には、前記第1の物理アドレスに対応する前記1次キャッシュデータ部が登録するデータを前記演算処理部に出力し、不一致の場合には、前記1次キャッシュインデックスと前記物理アドレスを出力するステップと、前記2次キャッシュメモリが有するコヒーレンシ維持部が、前記第1の検索処理部が出力した物理アドレスに含まれる2次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索するステップと、前記コヒーレンシ維持部が、前記検索された2次キャッシュタグが含む第2の物理アドレスと前記第1の検索処理部が出力した物理アドレスに含まれるタグ比較アドレスを比較するステップと、前記比較の結果、一致の場合には、前記コヒーレンシ維持部が、前記第1の検索処理部が出力した前記1次キャッシュインデックスと検索された2次キャッシュタグが含む仮想インデックスが一致する場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録するとともに前記演算処理部に出力し、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータを前記演算処理部が書き換え得る更新型であると判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部から出力させたデータを前記2次キャッシュデータ部に保持させるステップを有することを特徴とする。
本発明によれば、第1レベルキャッシュメモリ部に係る情報の一部を記憶させ、該第1レベルキャッシュメモリ部に係る情報の一部を基にして、第1レベルキャッシュメモリ部と第2レベルキャッシュメモリ部との間で、コヒーレンシを維持するので、迅速に第1レベルキャッシュメモリ部の登録状態を把握でき、マシンサイクルを高速化することができるという効果を奏する。
また、発明によれば、第1レベルキャッシュメモリ部にタグの物理アドレス、ステータスおよび第2レベルキャッシュメモリ部に登録されたウェイの情報を関連付けて記録するので、第1レベルキャッシュメモリ部に発生したエラーを効率よく修復することができるという効果を奏する。
以下に添付図面を参照して、この発明に係るキャッシュメモリ装置およびキャッシュメモリ制御方法の好適な実施の形態を詳細に説明する。
本実施例に係るキャッシュメモリ装置は、従来利用していた第1レベルキャッシュの情報を含んだタグの写しを第2レベルキャッシュから取り除く。また、第2レベルキャッシュのタグ部に第1レベルキャッシュの情報の一部を保持させ、該保持した情報を基にして第1レベルキャッシュの状態を把握することによって、タグの2段階アクセスを回避すると共に、第1レベルキャッシュと第2レベルキャッシュのコヒーレンシを維持する。
すなわち、図1に示すように、物理インデックスで、第2レベルキャッシュのタグ部をアクセスした場合に、該第2レベルキャッシュのタグ部に第1レベルキャッシュの情報が含まれているため、迅速に第1レベルキャッシュの状態を把握できる。
また、本実施例に係るキャッシュメモリ装置は、プロセッサに内蔵することやプロセッサに付加させることが可能であるが、以降の説明では、図2に示すように、キャッシュメモリ装置200が、プロセッサ100に直接接続されていると共に、メインメモリ300へのアクセスは、キャッシュ200を介して行われるシステムを例に挙げて説明する。
なお、本実施例のキャッシュメモリ装置で利用する連想方式は、一例として、2種類のウェイ(ウェイ0およびウェイ1)を持つ2ウェイセットアソシエイティブ方式を採用する。
図3は、本実施例に係るキャッシュメモリ装置200の構成を示す機能ブロック図である。同図に示すように、このキャッシュメモリ装置200は、命令実行制御部210と、第1レベルキャッシュ制御部220と、第2レベルキャッシュ制御部250と、メインメモリ制御部280とを有する。
命令実行制御部210は、プロセッサ100から仮想アドレスAを受付け、受付けた仮想アドレスAを第1レベルキャッシュ制御部220に渡す。図4に仮想アドレスAのデータ構造の一例を示す。
図4に示すように、仮想アドレスAは、仮想アドレス上位ビットA1と、第1レベルキャッシュインデックスA2と、仮想アドレス下位ビットA3とを含む。ここで、仮想アドレス上位ビットA1は、物理アドレスに変換された後、プロセッサ100の要求するデータにヒットしたか否かを判定するために利用される。
第1レベルキャッシュインデックスA2は、後述する第1レベルキャッシュ制御部220の記憶部240に記憶されたタグの位置を特定するための情報が格納される。なお、仮想アドレス下位ビットA3には、その他の情報が格納される。
第1レベルキャッシュ制御部220は、第1レベルキャッシュブロック部230および記憶部220を有する。また、第1レベルキャッシュブロック部230は、アドレス変換処理部230aと、検索処理部230bと、エラー検出部230cとを有する。
アドレス変換処理部230aは、命令実行処理部210から仮想アドレスAを受取り、受取った仮想アドレスAを物理アドレスA´に変換する処理部である。図5に物理アドレスA´のデータ構造の一例を示す。
図5に示すように、物理アドレスA´は、物理アドレス上位ビットA1´と、第2レベルキャッシュインデックスA2´と、物理アドレス下位ビットA3´とを含む。ここで、物理アドレス上位ビットA1´には、タグ比較アドレスが格納される。
この、タグ比較アドレスは、データがヒットしたか否かを判定するために利用されるアドレスである。具体的には、第1レベルキャッシュインデックスA2によって特定されるタグの物理アドレスと、タグ比較アドレスが等しければ、データがヒットしたことになり、等しくなければ、ヒットしなかったこととなる。
第2レベルキャッシュインデックスA2´は、後述する第2レベルキャッシュ制御部250の記憶部270に記録されたタグの位置を特定するための情報が格納される。なお、物理アドレス下位ビットA3´は、その他の情報が格納される。
検索処理部230bは、プロセッサ100から要求されたデータが、記憶部240に存在するか否かを判定し、要求されたデータが記憶部220に存在する場合には、該当データを、命令実行処理部210を介してプロセッサ100に渡す。一方、プロセッサ100から要求されたデータが、記憶部220に存在しない場合は、その旨を第2レベルキャッシュ制御部250に通知する。また、検索処理部230bは、第1レベルキャッシュ制御部220の記憶部240に対するライトバック処理も行う。
具体的に、検索処理部230bは、仮想アドレスAに含まれる第1レベルキャッシュインデックスA2を基にして、対応するタグを、命令キャッシュタグ部240aまたはオペランドキャッシュタグ部240cから検索する。以下、命令キャッシュタグ部240aまたはオペランドキャッシュタグ部240cに格納されるタグを第1レベルキャッシュタグと表記する。
ここに、命令キャッシュタグ部240aは、命令が格納された命令キャッシュデータ部240bに対応するタグを格納しており、オペランドキャッシュタグ部240cは、データが格納されたオペランドキャッシュデータ部240dに対応するタグを格納している。
図6に第1レベルキャッシュタグのデータ構造の一例を示す。同図に示すように、第1レベルキャッシュタグは、第1物理アドレス241と、ステータス242と、第2レベルキャッシュ登録ウェイ情報243とを含む。
第1物理アドレス241は、検索処理部230bによって物理アドレス上位ビットA1´と比較され、両者が一致した場合には、プロセッサ100が要求するデータにヒットしたことになる。一方、両者が一致しない場合には、プロセッサ100が要求するデータにヒットしなかったこととなる。ステータス242は、第1レベルキャッシュタグが有効か否かの情報などを格納する。
第2レベルキャッシュ登録ウェイ情報243は、第1レベルキャッシュタグに対応するデータが第2レベルキャッシュのどのウェイに登録されているかを特定するための情報(以下、ウェイ特定情報と表記する)が格納されている。
このウェイ特定情報を、第1レベルキャッシュタグに格納することによって、第1レベルキャッシュ制御部220から第2レベルキャッシュ制御部250へのライトバックを高速に行うことができる。
なぜなら、第1レベルキャッシュ制御部220から第2レベルキャッシュ制御部250へライトバックのリクエストが発生した場合にウェイ特定情報を利用することによって、第2レベルキャッシュのタグの再検索を行う必要がなくなり、即時、ウェイ特定情報によって特定されるウェイで第2レベルキャッシュ制御部250に、該当するデータを書き込むことができるからである。
ところで、検索処理部230bは、第1レベルキャッシュタグに含まれる第1物理アドレス241と、物理アドレス上位ビットA1´とを比較し、両者が一致する場合には、対応する命令またはデータを命令キャッシュデータ240bまたはオペランドキャッシュデータ240dから検出し、検出した命令またはデータを、命令実行制御部210を介してプロセッサ100に渡す。
一方、第1レベルキャッシュタグの第1物理アドレス241と、物理アドレス上位ビットA1´とが一致しない場合には、対応するデータが第1レベルキャッシュ制御部220に存在しないこととなるので、検索処理部230bは、対応するデータを取得すべく、物理アドレスA´と、第1レベルキャッシュインデックスA2とを第2レベルキャッシュ制御部250に渡す。
エラー検出部230cは、命令キャッシュタグ240a、命令キャッシュデータ240b、オペランドキャッシュタグ240cおよびオペランドキャッシュデータ240dに発生するエラーを検出する処理部である。
また、エラー検出部230cがエラーを検出した場合には、第2レベルキャッシュ制御部250にエラーが発生した旨を通知すると共に、エラーの発生したデータに係る第1レベルキャッシュインデックスA2およびエラーの発生した第1レベルキャッシュの命令側またはオペランド側のウェイを特定する情報(以下、エラーウェイ特定情報)を第2レベルキャッシュ制御部250に渡す。
次に、第2レベルキャッシュ制御部250の説明を行う。第2レベルキャッシュ制御部250は、第2レベルキャッシュブロック260と、記憶部270とを有する。また、第2レベルキャッシュブロック260は、コヒーレンシ維持処理部260aと、エラー処理部260bとを有する。
コヒーレンシ維持処理部260aは、第1レベルキャッシュ制御部220からの要求に応じて、該当するデータを記憶部270から検索し、検索したデータを第1レベルキャッシュ制御部220に渡す。また、コヒーレンシ維持処理部260aは、第1レベルキャッシュ制御部220および第2レベルキャッシュ制御部250のコヒーレンシを維持する。また、コヒーレンシ維持処理部260aは、第2レベルキャッシュ制御部250の記憶部270に対するライトバック処理も行う。
具体的に、コヒーレンシ維持処理部260は、第1レベルキャッシュ制御部220から、物理アドレスA´と、第1レベルキャッシュインデックスA2とを受取り、物理アドレスA´に含まれる第2レベルキャッシュインデックスA2´をもとにして、対応するタグを第2レベルキャッシュタグ部270aから検索する。なお、本実施例では、第2レベルキャッシュタグ部270aに含まれるタグを第2レベルキャッシュタグと表記する。
図7に、第2レベルキャッシュタグのデータ構造の一例を示す。同図に示すように、第2レベルキャッシュタグは、第2物理アドレス271と、ステータス272と、仮想インデックス273と、第1レベルキャッシュ登録情報274とを含む。
第2物理アドレス271は、コヒーレンシ維持処理部260aによって物理アドレス上位ビットA1´と比較され、両者が一致した場合には、プロセッサ100の要求するデータが第2レベルキャッシュデータ部270bに格納されていることになる。一方、両者が一致しない場合には、プロセッサ100が要求するデータが第2レベルキャッシュデータ部270bに格納されていないこととなる。
ステータス272は、第2レベルキャッシュタグが有効か否かの情報などを格納している。また、仮想インデックス273は、コヒーレンシ維持処理部260aによって、第1レベルキャッシュインデックスA2と比較され、シノニムか否かを判定される。
第1レベルキャッシュインデックスA2と仮想インデックス273が等しい場合には、シノニムではなく、第1レベルキャッシュインデックスA2と仮想インデックス273が等しくない場合にはシノニムとなる。なお、シノニムと判定された場合の処理は、後述するフローチャートで説明する。
第1レベルキャッシュ登録情報274は、第1レベルキャッシュ制御部220に係る登録情報を格納する。この登録情報を参照することによって、第2レベルキャッシュ制御部250は、第1レベルキャッシュ制御部220の登録状態を把握することができる。
また、登録情報は、4ビットで構成されており、図8に示すような意味付けとなる。なお、本実施例では一例として、登録情報が4ビットで構成される例を示すが、これに限定されるものではなく、登録情報をどのようなビット数で構成してもよい。
図8に示すように、登録情報が「0000」の場合には、「命令、オペランドとも無効」であることを示し、登録情報が「0110」の場合には、「オペランドのウェイ0のみ更新型」であることを示し、登録情報が「0111」の場合には、「オペランドのウェイ1のみ更新型」であることを示し、登録情報が「1000」の場合には、「命令のウェイ0が有効、オペランドが無効」であることを示し、登録情報が「1001」の場合には、「命令のウェイ1有効、オペランド無効」であることを示す。
また、登録情報が「1010」の場合には、「命令が無効、オペランドのウェイ0が共有型」であることを示し、登録情報が「1011」の場合には、「命令が無効、オペランドのウェイ1が共有型」であることを示し、登録情報が「1100」の場合には、「命令のウェイ0が有効、オペランドのウェイ0が共有型」あることを示す。
また、登録情報が「1101」の場合には、「命令のウェイ0が有効、オペランドのウェイ1が共有型」であることを示し、登録情報が「1110」の場合には、「命令のウェイ1が有効、オペランドのウェイ0が供給型」であることを示し、登録情報が「1111」の場合には、「命令のウェイ1が有効、オペランドのウェイ1が共有型」であることを示す。
なお、「更新型」とは、第1レベルキャッシュ制御部220に係るデータが書き換えられている可能性があることを示し、「共有型」とは、第1レベルキャッシュ制御部220に係るデータが書き換えられている可能性がないことを示す。
すなわち、コヒーレンシ維持処理部260は、第2レベルキャッシュタグに含まれる登録情報を参照することによって、高速に第1レベルキャッシュ制御部220の状態を把握できる。また、コヒーレンシ維持処理部260は、図8に示した情報を保持する。
エラー処理部260bは、第1レベルキャッシュ制御部220および第2レベルキャッシュ制御部250に発生したエラーを修正する処理部である。第1レベルキャッシュ制御部220に記録されるデータは、応答速度を速めるため、パリティ保護しか行っておらず、第1レベルキャッシュ制御部220のみでは、エラーを訂正することができない。したがって、エラー処理部260bが、第2レベルキャッシュ制御部のECC(Error Correcting Code)によって保護されたデータを利用して、第1レベルキャッシュ制御部220に発生したエラーを訂正する。
メインメモリ制御部280は、第2レベルキャッシュ制御部250にプロセッサ100の要求するデータが存在しない場合に、メインメモリ300にデータを要求する。また、メインメモリ制御部280は、メインメモリからデータを受付け、受付けたデータを第2レベルキャッシュ制御部250に渡す。
次に、本実施例に係るキャッシュメモリ装置が行うデータ処理について説明する。図9は、本実施例に係るキャッシュメモリ装置のデータ処理を示すフローチャートである。同図に示すように、命令実行制御部210が、メモリアクセス要求を受付け(ステップS101)、アドレス変換処理部230aが、アドレス変換を行い(ステップS102)、検索処理部230bが、第1レベルキャッシュインデックスA2で第1レベルキャッシュタグを検索する(ステップS103)。
そして、検索処理部230bが、タグに記録された第1物理アドレス241と、物理アドレス上位ビットA´とを比較し(ステップS104)、ヒットしたか否かを判定し(ステップS105)、ヒットした場合には(ステップS105,Yes)、そのままステップS115に移行する。
一方、ヒットしなかった場合には(ステップS105,No)、第2レベルキャッシュ制御部250に物理アドレスA´と、第1レベルキャッシュインデックスA2を渡し(ステップS106)、コヒーレンシ維持処理部260aは、第2レベルキャッシュインデックスA2´で、第2レベルキャッシュタグを検索する(ステップS107)。
そして、コヒーレンシ維持処理部260aは、第2レベルキャッシュタグに記憶された第2物理アドレス271と、物理アドレス上位ビットA1´とを比較し(ステップS108)、ヒットしたか否かを判定する(ステップS109)。
ヒットしなかった場合には(ステップS109,No)、メインメモリ制御部280にメモリアクセス要求を行い(ステップS110)、メインメモリ制御部280は、メインメモリからのデータを第2レベルキャッシュ制御部250に渡す(ステップS111)。
そして、コヒーレンシ維持処理部260aは、ライトバック処理をおこない(ステップS112)、データを第1レベルキャッシュ制御部220に転送し(ステップS113)、検索処理部230bがライトバック処理を行い(ステップS114)、データをプロセッサ100に転送する(ステップS115)。
一方、ヒットした場合には(ステップS109,Yes)、第2レベルキャッシュタグの仮想インデックス273と、第1レベルキャッシュインデックスA2とを比較し(ステップS116)、両者が一致したが否かを判定し(ステップS117)、一致した場合には(ステップS117,Yes)、ステップS113に移行する。
一方、一致しない場合(シノニムの場合)には(ステップS117,No)、第1レベルキャッシュの登録情報274を基にして、対応するデータが存在するか否かを判定し(ステップS118)、存在しない場合には(ステップS119,No)、第1レベルキャッシュ制御部220の仮想インデックスに係るデータの再登録を行い(ステップS120)、ステップS113に移行する。
一方、対応するデータが存在する場合には(ステップS119,Yes)、第1レベルキャッシュ制御部220のデータは更新型か否かを判定し(ステップS121)、更新型の場合には(ステップS122,Yes)、対応する第1レベルキャッシュのデータを吐き出し(ステップS123)、ステップS120に移行する。
なお、更新型でない場合には(ステップS122,No)、対応する第1レベルキャッシュのデータを無効化し(ステップS124)、ステップS118に移行する。
次に、キャッシュメモリ装置200が行うエラー処理について説明する。図10は、本実施例に係るエラー処理を示すフローチャートである。同図に示すように、第1レベルキャッシュ制御部220にエラーが発生し(ステップS201)、エラー検出部230cが、第2レベルキャッシュ制御部250にエラーが発生した旨を通知すると共に、第1レベルキャッシュインデックスA2およびエラーウェイ特定情報を通知する(ステップS202)。
そして、エラー処理部260bは、順次、第2レベルキャッシュタグを検索し(ステップS203)、第1レベルキャッシュインデックスA2と等しい仮想インデックスを含んだ第2レベルキャッシュタグを検出したか否かを判断する(ステップS204)。
第1レベルキャッシュインデックスA2と等しい仮想インデックスを含んだ第2レベルキャッシュタグを検出しなかった場合には(ステップS204,No)、全て検索が終了したか否かを判断し(ステップS205)、全て検索が終了していない場合には(ステップS205,No)、ステップS203に移行する。
一方、全て検索が終了した場合には(ステップS205,Yes)、エラー処理部260bは、エラー報告を受付けた第1レベルインデックスA2とウェイに対応するデータの無効化指示を行い(ステップS206)、エラー処理が完了した旨を第1レベルキャッシュ制御部220に通知する(ステップS207)。
ところで、第1レベルキャッシュインデックスA2と等しい仮想インデックスを含んだ第2レベルキャッシュタグを検出した場合には(ステップS204,Yes)、ウェイが一致するか否かを判定し(ステップS208)、ウェイが一致しない場合には(ステップS208,No)、ステップS205に移行する。
一方、ウェイが一致する場合には(ステップS208,Yes)、対応する第1レベルキャッシュ制御部220のデータが更新型か否かを判定し(ステップS209)、更新型である場合には(ステップS209,Yes)、対応する第1レベルキャッシュ制御部220のデータを吐き出し(ステップS211)、ステップS207に移行する。
一方、更新型でない場合には(ステップS209,No)、対応する第1レベルキャッシュ制御部220のデータを無効化し(ステップS210)、ステップS207に移行する。
上述してきたように、本実施例に係るキャッシュメモリ装置200は、第2レベルキャッシュタグに第1レベルキャッシュ制御部220の登録情報を記憶させる。そして、コヒーレンシ維持処理部260aは、第1レベルキャッシュ制御部220からメモリアクセス要求を受けた場合に、該当する第2レベルキャッシュタグを検索し、プロセッサの要求するデータを第1レベルキャッシュに転送すると共に、第2レベルキャッシュに記録された登録情報を基にして、第1レベルキャッシュ制御部220および第2レベルキャッシュ制御部間のコヒーレンシを維持するので、タグの2段階アクセスを回避し、キャッシュメモリ装置200のマシンサイクルを高速化することができる。
また、従来のように、第1キャッシュメモリタグの写しを、第2レベルキャッシュ制御部250の記憶部270に記録される必要がないため、物量を削減することが可能となる。
(付記1)データ部およびタグ部からなる第1レベルキャッシュメモリ部と、該第1レベルキャッシュメモリ部を包含する第2レベルキャッシュメモリ部とを有し、プロセッサの要求に応答して該当するデータを前記プロセッサに渡すキャッシュメモリ装置であって、
前記第1レベルキャッシュメモリ部に係る情報の一部を記憶する記憶手段と、
前記記憶手段に記憶された情報を基にして、前記第1レベルキャッシュメモリ部と、前記第2レベルキャッシュメモリ部との間で、キャッシュコヒーレンシを維持するコヒーレンシ維持手段と、
を備えたことを特徴とするキャッシュメモリ装置。
(付記2)前記記憶手段は、前記第2レベルキャッシュメモリ部に対するタグの物理アドレス、ステータス、仮想インデックスおよび前記第1レベルキャッシュメモリ部に係る情報の一部を関連付けて記憶することを特徴とする付記1に記載のキャッシュメモリ装置。
(付記3)前記第1レベルキャッシュメモリ部に係る情報の一部は、複数のビットによって構成され、前記コヒーレンシ維持手段は、前記複数のビットから前記第1レベルキャッシュメモリ部の登録状態を把握し、前記第1レベルキャッシュメモリ部と、前記第2レベルキャッシュメモリ部との間で、キャッシュコヒーレンシを維持することを特徴とする付記1または2に記載のキャッシュメモリ装置。
(付記4)前記第1レベルキャッシュメモリ部に対するタグの物理アドレス、ステータスおよび第2レベルキャッシュメモリ部に登録されたウェイの情報を関連付けて記憶する第1キャッシュ記憶手段を更に備えたことを特徴とする付記1に記載のキャッシュメモリ装置。
(付記5)前記第1レベルキャッシュメモリ部にエラーが発生した場合に、前記記憶手段に記憶された情報と、前記第1キャッシュ記憶手段に記憶された情報とを基にして、前記第1レベルキャッシュメモリ部に発生したエラーを修正する修正手段をさらに備えたことを特徴とする付記4に記載のキャッシュメモリ装置。
(付記6)前記修正手段は、前記第1レベルキャッシュメモリ部にエラーが発生した場合に、エラーの発生したデータを示すエラーデータが更新されている可能性があるか否かを判定し、更新されている可能性がある場合には、前記エラーデータを第2レベルキャッシュメモリ部に吐き出し、更新されている可能性がない場合には、前記エラーデータを無効化することを特徴とする付記5に記載のキャッシュメモリ装置。
(付記7)データ部およびタグ部からなる第1レベルキャッシュメモリ部と、該第1レベルキャッシュメモリ部を包含する第2レベルキャッシュメモリ部とを有し、プロセッサの要求に応答して該当するデータを前記プロセッサに渡すキャッシュメモリ装置を制御するキャッシュメモリ制御方法であって、
前記第1レベルキャッシュメモリ部に係る情報の一部を記憶装置に記憶する記憶工程と、
前記記憶装置に記憶された情報を基にして、前記第1レベルキャッシュメモリ部と、前記第2レベルキャッシュメモリ部との間で、キャッシュコヒーレンシを維持するコヒーレンシ維持工程と、
を含んだことを特徴とするキャッシュメモリ制御方法。
(付記8)前記記憶装置は、前記第2レベルキャッシュメモリ部に対するタグの物理アドレス、ステータス、仮想インデックスおよび前記第1レベルキャッシュメモリ部に係る情報の一部を関連付けて記憶することを特徴とする付記7に記載のキャッシュメモリ制御方法。
(付記9)データ部およびタグ部からなる第1レベルキャッシュメモリ部と、該第1レベルキャッシュメモリ部を包含する第2レベルキャッシュメモリ部とを有し、プロセッサの要求に応答して該当するデータを前記プロセッサに渡すキャッシュメモリ装置を制御するキャッシュメモリ制御方法であって、
前記第1レベルキャッシュメモリ部に係る情報の一部を記憶装置に記憶する記憶工程と、
前記第1レベルのキャッシュメモリ部にエラーが発生した場合に、前記記憶装置に記憶された情報を基にして、前記第1キャッシュメモリ部に発生したエラーを修正する修正工程と、
を含んだことを特徴とするキャッシュメモリ制御方法。
(付記10)前記修正工程は、前記第1レベルキャッシュメモリ部にエラーが発生した場合に、エラーの発生したデータを示すエラーデータが更新されている可能性があるか否かを判定し、更新されている可能性がある場合には、前記エラーデータを第2レベルキャッシュメモリ部に吐き出し、更新されている可能性がない場合には、前記エラーデータを無効化することを特徴とする付記9に記載のキャッシュメモリ制御方法。
以上のように、本発明にかかるキャッシュメモリ装置およびキャッシュメモリ制御方法は、キャッシュメモリなどに対して有用であり、特に、マシンサイクルを高速化させる場合に適している。
本発明に対する第1レベルキャッシュの状態を得るまでのステージを示す図である。 本実施例に係るキャッシュメモリ装置を説明するための図である。 本実施例に係るキャッシュメモリ装置の構成を示す機能ブロック図である。 仮想アドレスのデータ構造の一例を示す図である。 物理アドレスのデータ構造の一例を示す図である。 第1レベルキャッシュタグのデータ構造の一例を示す図である。 第2レベルキャッシュタグのデータ構造の一例を示す図である。 第1レベルキャッシュ情報の意味づけの一例を示す図である。 本実施例に係るキャッシュメモリ装置のデータ処理を示すフローチャートである。 本実施例に係るエラー処理を示すフローチャートである。 従来技術に対する第1レベルキャッシュの状態を得るまでのステージを示す図である。
符号の説明
100 プロセッサ
200 キャッシュメモリ装置
210 命令実行制御部
220 第1レベルキャッシュ制御部
230 第1レベルキャッシュブロック部
230a アドレス変換処理部
230b 検索処理部
230c エラー検出部
240,270 記憶部
240a 命令キャッシュタグ部
240b 命令キャッシュデータ部
240c オペランドキャッシュタグ部
240d オペランドキャッシュデータ部
250 第2レベルキャッシュ制御部
260 第2レベルキャッシュブロック部
260a コヒーレンシ維持処理部
260b エラー処理部
270a 第2レベルキャッシュタグ部
270b 第2レベルキャッシュデータ部
300 メインメモリ

Claims (13)

  1. データを保持する1次キャッシュメモリと前記データを保持する2次キャッシュメモリを有し、演算処理部からのメモリアクセス要求に対応するデータを前記演算処理部に出力するキャッシュメモリ装置において、
    前記1次キャッシュメモリは、
    データを登録する1次キャッシュデータ部と、
    前記1次キャッシュデータ部が登録するデータについてのタグであって、第1の物理アドレスを含む1次キャッシュタグを保持する1次キャッシュタグ部と、
    前記演算処理部が出力したメモリアクセス要求に含まれ、1次キャッシュインデックスを含む仮想アドレスを、タグ比較アドレスと2次キャッシュインデックスとを含む物理アドレスに変換するアドレス変換処理部と、
    1次キャッシュインデックスを用いて前記1次キャッシュタグ部を検索し、前記検索された1次キャッシュタグが含む第1の物理アドレスとタグ比較アドレスを比較し、一致の場合には、前記第1の物理アドレスに対応する前記1次キャッシュデータ部が登録するデータを前記演算処理部に出力し、不一致の場合には、前記1次キャッシュインデックスと前記物理アドレスを出力する第1の検索処理部を有し、
    前記2次キャッシュメモリは、
    前記1次キャッシュデータ部が登録するデータを記憶する2次キャッシュデータ部と、
    前記2次キャッシュデータ部が保持するデータについてのタグであって、第2の物理アドレスと、仮想インデックスと、前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータについての登録情報である1次キャッシュ登録情報とを含む2次キャッシュタグを保持する2次キャッシュタグ部と、
    前記第1の検索処理部が出力した物理アドレスに含まれる2次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索し、前記検索された2次キャッシュタグが含む第2の物理アドレスと前記第1の検索処理部が出力した物理アドレスに含まれるタグ比較アドレスを比較し、一致の場合には、前記第1の検索処理部が出力した前記1次キャッシュインデックスと検索された2次キャッシュタグが含む仮想インデックスをさらに比較し、前記1次キャッシュインデックスと前記仮想インデックスが一致する場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録するとともに前記演算処理部に出力し、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータを前記演算処理部が書き換え得る更新型であると判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータデータ部から出力させたデータを前記2次キャッシュデータ部に保持させるコヒーレンシ維持部を有することを特徴とするキャッシュメモリ装置。
  2. 前記キャッシュメモリ装置において、
    前記コヒーレンシ維持部はさらに、
    前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合であって、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記更新型でないと判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部が登録するデータを無効化することを特徴とする請求項1記載のキャッシュメモリ装置。
  3. 前記キャッシュメモリ装置において、
    前記コヒーレンシ維持部はさらに、
    前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合であって、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録されていないと判断した場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録することを特徴とする請求項2記載のキャッシュメモリ装置。
  4. 前記キャッシュメモリ装置において、
    前記2次キャッシュメモリ部は複数のウェイを有し、
    前記1次キャッシュタグはさらに、前記1次キャッシュメモリ部が登録するデータが前記2次キャッシュメモリ部のどのウェイに登録されているかを示すウェイ特定情報を含み、
    前記1次キャッシュメモリはさらに、
    検出した前記1次キャッシュデータ部又は前記1次キャッシュタグ部にエラーが発生した旨と、前記エラーが発生したデータに対応する1次キャッシュタグに含まれる1次キャッシュインデックスと前記エラーが発生したウェイを特定するエラーウェイ特定情報を前記2次キャッシュメモリに通知するエラー検出部を有し、
    前記2次キャッシュメモリはさらに、
    前記エラー検出部が通知した1次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索し、前記1次キャッシュインデックスと等しい仮想インデックスを含む2次キャッシュタグが検索された場合、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報が含むウェイ特定情報と前記エラー検出部が通知したエラーウェイ特定情報を比較し、一致の場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ更新型であると判断した場合には、前記1次キャッシュデータ部から出力させた前記仮想インデックスに対応するデータを前記2次キャッシュデータ部に保持させるエラー処理部を有することを特徴とする請求項1記載のキャッシュメモリ装置。
  5. 前記キャッシュメモリ装置において、
    前記エラー処理部は、
    前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記更新型でないと判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部が登録するデータを無効化することを特徴とする請求項4記載のキャッシュメモリ装置。
  6. 前記キャッシュメモリ装置において、
    前記エラー処理部は、
    前記検索された2次キャッシュタグが含む1次キャッシュ登録情報が含むウェイ特定情報と前記エラー検出部が通知したエラーウェイ特定情報を比較し、全てのタグが不一致の場合には、前記1次キャッシュインデックスに対応する前記1次キャッシュデータ部が登録するデータと前記エラー検出部が通知したエラーウェイ特定情報に対応する前記2次キャッシュデータ部のウェイに保持されるデータを無効化することを特徴とする請求項4記載のキャッシュメモリ装置。
  7. メモリアクセス要求を出力する演算処理部と、データを保持する1次キャッシュメモリと前記データを保持する2次キャッシュメモリを有し、前記メモリアクセス要求に対応するデータを前記演算処理部に出力するキャッシュメモリ部とを有する演算処理装置において、
    前記1次キャッシュメモリは、
    データを登録する1次キャッシュデータ部と、
    前記1次キャッシュデータ部が登録するデータについてのタグであって、第1の物理アドレスを含む1次キャッシュタグを保持する1次キャッシュタグ部と、
    前記演算処理部が出力したメモリアクセス要求に含まれ、1次キャッシュインデックスを含む仮想アドレスを、タグ比較アドレスと2次キャッシュインデックスとを含む物理アドレスに変換するアドレス変換処理部と、
    1次キャッシュインデックスを用いて前記1次キャッシュタグ部を検索し、前記検索された1次キャッシュタグが含む第1の物理アドレスとタグ比較アドレスを比較し、一致の場合には、前記第1の物理アドレスに対応する前記1次キャッシュデータ部が登録するデータを前記演算処理部に出力し、不一致の場合には、前記1次キャッシュインデックスと前記物理アドレスを出力する第1の検索処理部を有し、
    前記2次キャッシュメモリは、
    前記1次キャッシュデータ部が登録するデータを記憶する2次キャッシュデータ部と、
    前記2次キャッシュデータ部が保持するデータについてのタグであって、第2の物理アドレスと、仮想インデックスと、前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータについての登録情報である1次キャッシュ登録情報とを含む2次キャッシュタグを保持する2次キャッシュタグ部と、
    前記第1の検索処理部が出力した物理アドレスに含まれる2次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索し、前記検索された2次キャッシュタグが含む第2の物理アドレスと前記第1の検索処理部が出力した物理アドレスに含まれるタグ比較アドレスを比較し、一致の場合には、前記第1の検索処理部が出力した前記1次キャッシュインデックスと検索された2次キャッシュタグが含む仮想インデックスをさらに比較し、前記1次キャッシュインデックスと前記仮想インデックスが一致する場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録するとともに前記演算処理部に出力し、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータを前記演算処理部が書き換え得る更新型であると判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータデータ部から出力させたデータを前記2次キャッシュデータ部に保持させるコヒーレンシ維持部を有することを特徴とする演算処理装置。
  8. 前記演算処理装置において、
    前記コヒーレンシ維持部はさらに、
    前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合であって、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記更新型でないと判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部が登録するデータを無効化することを特徴とする請求項7記載の演算処理装置。
  9. 前記演算処理装置において、
    前記コヒーレンシ維持部はさらに、
    前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合であって、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録されていないと判断した場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録することを特徴とする請求項7記載の演算処理装置。
  10. 前記演算処理装置において、
    前記2次キャッシュメモリ部は複数のウェイを有し、
    前記1次キャッシュタグはさらに、前記1次キャッシュメモリ部が登録するデータが前記2次キャッシュメモリ部のどのウェイに登録されているかを示すウェイ特定情報を含み、
    前記1次キャッシュメモリはさらに、
    検出した前記1次キャッシュデータ部又は前記1次キャッシュタグ部にエラーが発生した旨と、前記エラーが発生したデータに対応する1次キャッシュタグに含まれる1次キャッシュインデックスと前記エラーが発生したウェイを特定するエラーウェイ特定情報を前記2次キャッシュメモリに通知するエラー検出部を有し、
    前記2次キャッシュメモリはさらに、
    前記エラー検出部が通知した1次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索し、前記1次キャッシュインデックスと等しい仮想インデックスを含む2次キャッシュタグが検索された場合、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報が含むウェイ特定情報と前記エラー検出部が通知したエラーウェイ特定情報を比較し、一致の場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ更新型であると判断した場合には、前記1次キャッシュデータ部から出力させた前記仮想インデックスに対応するデータを前記2次キャッシュデータ部に保持させるエラー処理部を有することを特徴とする請求項7記載の演算処理装置。
  11. 前記演算処理装置において、
    前記エラー処理部は、
    前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記更新型でないと判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部が登録するデータを無効化することを特徴とする請求項10記載の演算処理装置。
  12. 前記演算処理装置において、
    前記エラー処理部は、
    前記検索された2次キャッシュタグが含む1次キャッシュ登録情報が含むウェイ特定情報と前記エラー検出部が通知したエラーウェイ特定情報を比較し、全てのタグが不一致の場合には、前記1次キャッシュインデックスに対応する前記1次キャッシュデータ部が登録するデータと前記エラー検出部が通知したエラーウェイ特定情報に対応する前記2次キャッシュデータ部のウェイに保持されるデータを無効化することを特徴とする請求項10記載の演算処理装置。
  13. データを登録する1次キャッシュデータ部と、前記1次キャッシュデータ部が登録するデータについてのタグであって、第1の物理アドレスを含む1次キャッシュタグを保持する1次キャッシュタグ部を備えた1次キャッシュメモリと、前記1次キャッシュデータ部が登録するデータを記憶する2次キャッシュデータ部と、前記2次キャッシュデータ部が保持するデータについてのタグであって、第2の物理アドレスと、仮想インデックスと、前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータについての登録情報である1次キャッシュ登録部とを含む2次キャッシュタグを保持する2次キャッシュタグ部を備えた2次キャッシュメモリを有し、演算処理部からのメモリアクセス要求に対応するデータを前記演算処理部に出力するキャッシュメモリ装置の制御方法において、
    前記1次キャッシュメモリが有するアドレス変換処理部が、前記演算処理部が出力したメモリアクセス要求に含まれ、1次キャッシュインデックスを含む仮想アドレスを、タグ比較アドレスと2次キャッシュインデックスとを含む物理アドレスに変換するステップと、
    前記1次キャッシュメモリが有する第1の検索処理部が、1次キャッシュインデックスを用いて前記1次キャッシュタグ部を検索し、前記検索された1次キャッシュタグが含む第1の物理アドレスとタグ比較アドレスを比較し、一致の場合には、前記第1の物理アドレスに対応する前記1次キャッシュデータ部が登録するデータを前記演算処理部に出力し、不一致の場合には、前記1次キャッシュインデックスと前記物理アドレスを出力するステップと、
    前記2次キャッシュメモリが有するコヒーレンシ維持部が、前記第1の検索処理部が出力した物理アドレスに含まれる2次キャッシュインデックスを用いて前記2次キャッシュタグ部を検索するステップと、
    前記コヒーレンシ維持部が、前記検索された2次キャッシュタグが含む第2の物理アドレスと前記第1の検索処理部が出力した物理アドレスに含まれるタグ比較アドレスを比較するステップと、
    前記比較の結果、一致の場合には、前記コヒーレンシ維持部が、前記第1の検索処理部が出力した前記1次キャッシュインデックスと検索された2次キャッシュタグが含む仮想インデックスを更に比較し、前記1次キャッシュインデックスと前記仮想インデックスが一致する場合には、前記第2の物理アドレスに対応する前記2次キャッシュデータ部が保持するデータを前記1次キャッシュデータ部に登録するとともに前記演算処理部に出力し、前記1次キャッシュインデックスと前記仮想インデックスが一致しない場合には、前記検索された2次キャッシュタグが含む1次キャッシュ登録情報に基づき、前記仮想インデックスに対応するデータが前記1次キャッシュデータ部に登録され且つ前記2次キャッシュデータ部が保持する前記1次キャッシュデータ部に登録されたデータを前記演算処理部が書き換え得る更新型であると判断した場合には、前記仮想インデックスに対応する前記1次キャッシュデータ部から出力させたデータを前記2次キャッシュデータ部に保持させるステップを有することを特徴とするキャッシュメモリ装置の制御方法。
JP2004222401A 2004-07-29 2004-07-29 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 Expired - Fee Related JP4673584B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004222401A JP4673584B2 (ja) 2004-07-29 2004-07-29 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
US10/998,561 US7428617B2 (en) 2004-07-29 2004-11-30 Cache memory and method to maintain cache-coherence between cache memory units
EP04257443A EP1622028B1 (en) 2004-07-29 2004-11-30 Cache memory and method for controlling cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004222401A JP4673584B2 (ja) 2004-07-29 2004-07-29 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法

Publications (2)

Publication Number Publication Date
JP2006040175A JP2006040175A (ja) 2006-02-09
JP4673584B2 true JP4673584B2 (ja) 2011-04-20

Family

ID=35170058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004222401A Expired - Fee Related JP4673584B2 (ja) 2004-07-29 2004-07-29 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法

Country Status (3)

Country Link
US (1) US7428617B2 (ja)
EP (1) EP1622028B1 (ja)
JP (1) JP4673584B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007094048A1 (ja) * 2006-02-14 2007-08-23 Fujitsu Limited 無効化処理装置および無効化処理方法
EP1986101B1 (en) * 2006-02-14 2012-06-20 Fujitsu Ltd. Coherency maintaining device and coherency maintaining method
EP1988466A4 (en) * 2006-02-24 2009-12-23 Fujitsu Ltd CACHE MEMORY ARRANGEMENT AND CACHE MEMORY CONTROL METHOD
JP2008046685A (ja) * 2006-08-10 2008-02-28 Fujitsu Ltd 二重化システム及び系切り換え方法
US20080104333A1 (en) * 2006-10-31 2008-05-01 Veazey Judson E Tracking of higher-level cache contents in a lower-level cache
US8683139B2 (en) 2006-10-31 2014-03-25 Hewlett-Packard Development Company, L.P. Cache and method for cache bypass functionality
US7657710B2 (en) * 2006-11-17 2010-02-02 Sun Microsystems, Inc. Cache coherence protocol with write-only permission
KR101312995B1 (ko) * 2007-03-29 2013-10-01 우베 고산 가부시키가이샤 방향족 폴리이미드 및 그 제조방법
CN104123239B (zh) * 2008-01-31 2017-07-21 甲骨文国际公司 用于事务缓存的系统和方法
JP5440067B2 (ja) * 2009-09-18 2014-03-12 富士通株式会社 キャッシュメモリ制御装置およびキャッシュメモリ制御方法
WO2012015766A2 (en) 2010-07-28 2012-02-02 Rambus Inc. Cache memory that supports tagless addressing
WO2013084315A1 (ja) 2011-12-07 2013-06-13 富士通株式会社 演算処理装置、及び、演算処理装置の制御方法
KR102614631B1 (ko) 2013-10-21 2023-12-19 에프엘씨 글로벌 리미티드 최종 레벨 캐시 시스템 및 이에 대응하는 방법
US10097204B1 (en) 2014-04-21 2018-10-09 Marvell International Ltd. Low-density parity-check codes for WiFi networks
US11822474B2 (en) 2013-10-21 2023-11-21 Flc Global, Ltd Storage system and method for accessing same
US9454991B2 (en) 2013-10-21 2016-09-27 Marvell World Trade Ltd. Caching systems and methods for hard disk drives and hybrid drives
US9559722B1 (en) 2013-10-21 2017-01-31 Marvell International Ltd. Network devices and methods of generating low-density parity-check codes and performing corresponding encoding of data
KR102147993B1 (ko) 2013-11-14 2020-08-25 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
JP6337570B2 (ja) * 2014-03-28 2018-06-06 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN106463145B (zh) 2014-05-02 2019-08-30 马维尔国际贸易有限公司 用于硬盘驱动器和混合驱动器的高速缓存系统和方法
CN106933750B (zh) * 2015-12-31 2020-08-21 北京国睿中数科技股份有限公司 用于多级缓存中数据及状态的验证方法及装置
US11016894B2 (en) * 2017-08-07 2021-05-25 Intel Corporation Techniques to provide cache coherency based on cache type
EP4345635A3 (en) * 2018-06-18 2024-05-29 FLC Technology Group Inc. Method and apparatus for using a storage system as main memory
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US12105629B2 (en) 2022-07-25 2024-10-01 Samsung Electronics Co., Ltd. Adaptive cache indexing for a storage device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system
JPH0380030A (ja) * 1989-08-22 1991-04-04 Kazunari Mikami 搾乳パイプライン装置
JPH03193684A (ja) * 1989-12-20 1991-08-23 Kobe Steel Ltd 炭素又は炭素複合材料の製造方法
JP2822518B2 (ja) * 1989-12-20 1998-11-11 住友電気工業株式会社 窒化アルミニウム焼結体への金属化層形成方法
EP0461926B1 (en) * 1990-06-15 1998-09-02 Compaq Computer Corporation Multilevel inclusion in multilevel cache hierarchies
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
JP3132749B2 (ja) * 1994-12-05 2001-02-05 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチプロセッサ・データ処理システム
US6115794A (en) * 1997-04-14 2000-09-05 International Business Machines Corporation Method and system of providing a pseudo-precise inclusivity scheme in a sectored cache memory for maintaining cache coherency within a data-processing system
US5867511A (en) * 1997-04-14 1999-02-02 International Business Machines Corporation Method for high-speed recoverable directory access
JP2002055881A (ja) 2000-08-08 2002-02-20 Hitachi Ltd キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置
US6804799B2 (en) * 2001-06-26 2004-10-12 Advanced Micro Devices, Inc. Using type bits to track storage of ECC and predecode bits in a level two cache

Also Published As

Publication number Publication date
EP1622028A3 (en) 2008-05-21
EP1622028B1 (en) 2012-02-15
EP1622028A2 (en) 2006-02-01
JP2006040175A (ja) 2006-02-09
US7428617B2 (en) 2008-09-23
US20060026355A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
JP4673584B2 (ja) キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
TWI381275B (zh) 位址轉譯方法及裝置
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
JP3587591B2 (ja) キャッシュ・ミスを制御する方法およびその計算機システム
TWI519955B (zh) 預取單元、資料預取方法以及電腦程式產品
JP3936378B2 (ja) アドレス変換装置
US7958318B2 (en) Coherency maintaining device and coherency maintaining method
US9465748B2 (en) Instruction fetch translation lookaside buffer management to support host and guest O/S translations
US8190973B2 (en) Apparatus and method for error correction of data values in a storage device
JP2018504694A (ja) 仮想アドレスを使用してアクセスされるキャッシュ
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
TW201810046A (zh) 用於存取快取記憶體的方法與裝置
US8601240B2 (en) Selectively defering load instructions after encountering a store instruction with an unknown destination address during speculative execution
KR20220100939A (ko) 스토어-투-로드 포워딩을 수행하기 위한 기술
US20060149981A1 (en) Translation lookaside buffer (TLB) suppression for intra-page program counter relative or absolute address branch instructions
US20090019306A1 (en) Protecting tag information in a multi-level cache hierarchy
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
JP4574712B2 (ja) 演算処理装置、情報処理装置及び制御方法
JP5635311B2 (ja) リンクされているデータストアにおいて、アイテムの保存およびアイテムの上書きを決定するデータ保存プロトコル
CN120492372A (zh) 指令高速缓存中的预取终止和恢复
US20070186046A1 (en) Pseudo LRU algorithm for hint-locking during software and hardware address translation cache miss handling modes
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
WO2007096998A1 (ja) キャッシュメモリ装置およびキャッシュメモリ制御方法
WO2007088597A1 (ja) エラー訂正コード生成方法及びメモリ管理装置
JP6337570B2 (ja) 演算処理装置及び演算処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100428

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: 20110118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110121

R150 Certificate of patent or registration of utility model

Ref document number: 4673584

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees