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

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

Info

Publication number
JPWO2008155805A1
JPWO2008155805A1 JP2009520146A JP2009520146A JPWO2008155805A1 JP WO2008155805 A1 JPWO2008155805 A1 JP WO2008155805A1 JP 2009520146 A JP2009520146 A JP 2009520146A JP 2009520146 A JP2009520146 A JP 2009520146A JP WO2008155805 A1 JPWO2008155805 A1 JP WO2008155805A1
Authority
JP
Japan
Prior art keywords
cache
data
register
way
replacement
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.)
Granted
Application number
JP2009520146A
Other languages
English (en)
Other versions
JP4595029B2 (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
Publication of JPWO2008155805A1 publication Critical patent/JPWO2008155805A1/ja
Application granted granted Critical
Publication of JP4595029B2 publication Critical patent/JP4595029B2/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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

複数のキャッシュラインを有するウェイを複数備えるデータ保持部と、データ保持部が有するキャッシュラインの1ライン分又はキャッシュラインの一部のデータを保持する交替データレジスタと、データ保持部において故障が発生した故障キャッシュライン及び故障キャッシュライン内の故障発生部を指し示すインデックスアドレスを保持する交替アドレスレジスタと、故障発生部を含むウェイの情報を保持する交替ウェイレジスタと、データ保持部にアクセスを行う場合に、アクセスに用いられるインデックスアドレスと交替アドレスレジスタが保持するインデックスアドレスを比較するアドレスマッチ回路と、データ保持部にアクセスを行う場合に、アクセスに用いられるウェイ情報と交替ウェイレジスタの保持するウェイ情報を比較するウェイマッチ回路と、を備えるようにキャッシュメモリ装置を構成した。

Description

本発明は、キャッシュラインに発生した故障を救済するキャッシュライン交替レジスタを備えたキャッシュメモリ装置、演算処理装置及びその制御方法に関する。
従来のキャッシュメモリの固定故障に対する救済処置としてブロック縮退およびWAY(ウェイ)縮退という手法が用いられていた。ブロック縮退およびWAY縮退では、キャッシュメモリのWAY単位にキャッシュメモリ故障回数を観測し、単位時間内に発生する故障回数が規定の閾値を超えたら、ブロックまたはWAYの切り離しを行う。初めに閾値を超えたときに故障していたキャッシュラインとそのWAYを切り離す機能をブロック縮退と呼ぶ。ブロック縮退では1ライン分のデータが切り離される。ブロック縮退したキャッシュライン以外のデータにも故障が発生するとブロック縮退対象を最後に故障が発生したキャッシュラインとWAYに切り替える。すなわち、ブロック縮退による故障救済は、キャッシュメモリ1ライン分のデータの保護を目的としており、複数キャッシュラインが故障しているときは、ブロック縮退発生後もキャッシュメモリの故障回数が増加し、これが規定値に達したときに故障していたWAYを切り離す。WAY縮退を起こしたとき、プロセッサは動作を継続できるとは言うものの、大幅な性能低下を起こす。そこで、WAY縮退の前に1キャッシュラインだけを切り離すブロック縮退を起こすことで、性能の低下度合いを低減している。
しかしながら、キャッシュメモリの記憶容量が小さい場合は、1キャッシュラインの損失による性能劣化も無視できなくなるため、ブロック縮退を起こした場合も故障チップは交換対象とする必要がある。複数のコアを有したCPUの場合、1ビット固定故障でブロック縮退したコアだけを交換することはできないため、正常動作している他のコアをすべて含んだチップ単位で交換することになる。昨今のCPU開発においてはチップに搭載するコア数を増加しつつ、一次キャッシュメモリの容量を縮小する傾向にあるため、従来のブロック縮退によるキャッシュメモリの故障保護機構では、故障していないコアを無駄に交換対象とする可能性が高まってしまう。その結果、従来のブロック縮退による救済処置では、CPUチップ単位での故障耐性が不十分であった。
そこで、1ビット固定故障が起きた際に、故障ラインのキャッシュデータを登録するためのキャッシュライン交替レジスタを設けることで1ビット固定故障ラインのデータを交替し、キャッシュラインを損失せずに、1ビット固定故障を救済する手法が考案された(特許文献1)。
キャッシュライン交替レジスタの実装にあたって、従来採用されてきた方式においては、交替対象アドレスの比較に物理アドレスを使用し、これが一致した際にキャッシュライン交替レジスタのデータを読み出していた。物理アドレスはビット数が多いためアドレス処理に時間がかかる。また、比較対象となる物理アドレスを得るためには、TLB(Translation Look−aside Buffer)やキャッシュタグを参照する必要がある。そのため、キャッシュメモリの読み出しにおいてはキャッシュライン交替レジスタが使用できたが、キャッシュメモリの書き込みにおいては、TLB、キャッシュタグの参照比較と書き込みのフローが通常のキャッシュ制御フローから大きく外れたものとなるため、キャッシュライン交替レジスタの使用を放棄していた。すなわち、キャッシュ交替レジスタがストア対象となるたびに、キャッシュライン交替レジスタを無効化して主記憶参照からやり直すなど、ストア動作時に性能低下が発生していた。
また、従来のキャッシュライン交替レジスタは、キャッシュライン1ライン分の全ビットを交替できるように構成されていた。しかし、実際には1キャッシュライン中に、複数個所で1ビットエラーが生じる確率は低く、回路資源の使用効率があまりよくなかった。
そこで本発明では、従来のキャッシュライン交替レジスタの問題を解決する新しい構成のキャッシュライン交替レジスタを提案する。
そこでまず、以下に、本発明のキャッシュライン交替レジスタの搭載されていない、従来のキャッシュの構成について説明する。本発明の構成は、キャッシュライン交替レジスタの搭載されていない、従来のキャッシュの動作を、部分的に差し替える機能を追加することで実現するため、従来のキャッシュの構成について明らかにしておくためである。
図1に、従来のCPUの構成を示す。
図1に示した、CPU101は4つのコアCORE−0(102−0)、CORE−1(102−1)、CORE−2(102−2)、CORE−3(102−3)を備える(以下、COREを102とする)。
各コアCORE102は、IU(Instruction Unit:命令処理装置)(104−0、104−1、104−2、104−3:以下、IUを104とする)と、EU(Execution Unit:演算装置)(105−0、105−1、105−2、105−3:以下、EUを105とする)と、SU(Storage Unit:ストレージ制御装置)(103−0、103−1、103−2、103−3:以下、SUを103とする)とを備える。
更に、SU(103)は、命令キャッシュであるIF−LBS(Instruction Fetch Local Buffer Storage)(106−0、106−1、106−2、106−3:以下、IF−LBSを106とする)と、オペランドキャッシュであるOP−LBS(Operand Local Buffer Storage)(107−0、107−1、107−2、107−3:以下、OP−LBSを107とする)をそれぞれ備える。
また、CPU101には、2次キャッシュであるSX(Second Cache)108を備え、それぞれのコアCORE102とのデータのやり取りを行い、更にSX108はSYSTEM BUS109を介して主記憶であるMemory110とデータのやり取りを行う。
次に、図2に、CPU101に搭載されている1次キャッシュであるIF−LBS106と、OP−LBS107の構成を示す。
キャッシュは、WAY0(201)とWAY1(202)の二つのWAYからなる。アドレス信号がそれぞれのWAYに与えられると、それぞれのアドレスのデータを読み出し、データ信号線に出力する。データ線205にはWAY0のキャッシュRAM出力データが、データ線206にはWAY1のキャッシュRAM出力データが出力される。また、WAY選択回路203にWAY情報が与えられると、データ線205とデータ線206のいずれかを選択して、IU104(またはEU105)にデータを出力する(207)。
尚、本発明は、命令キャッシュIF−LBS106、オペランドキャッシュOP−LBS107を構成する1次キャッシュを対象とするものである。
上述のような構成において、キャッシュの動作についてフロー図を用いて以下に詳細に説明する。
まず、図3にキャッシュの読み出し動作のフローを示す。
キャッシュメモリの読み出しにおいては、キャッシュデータ部とキャッシュタグ部およびTLB部にアクセスする。
キャッシュデータ部には仮想アドレスからビット14〜5を取り出して送出し(S301)、参照した次のサイクルにRAM内部でデータの取り出しを行い(S302)、その次のサイクルに全キャッシュRAMから合わせて64バイトのデータが取り出される(S303)。取り出されたデータは32バイトの2WAY分のデータから構成される。
キャッシュタグ部には仮想アドレスからビット14〜6を取り出して送出し(S304)、参照した次のサイクルにRAM内部でタグアドレスの取り出しを行い(S305),その次のサイクルに2WAY分の物理アドレスが取り出される(S306)。
TLB部には仮想アドレスからビット63〜13を取り出して送出するとともに、キャッシュメモリの参照を行うアクセス空間を示す情報としてアクセス空間番号ないしアクセス空間のコンテキストID、セグメントテーブル起点などアクセス空間を示す情報を送出し(S307)、参照した次のサイクルにTLBに登録されている仮想アドレスとアクセス空間を示す情報を比較し一致した登録情報に対応した物理アドレスの取り出しを行い(S308),その次のサイクルに1つの物理アドレスが読み出されて、仮想アドレスから物理アドレスへの変換を完了する(S309)。
S310で、タグ部から読み出された2WAY分の物理アドレスとTLB部から読み出された物理アドレスを比較し、これが一致していればキャッシュメモリにフェッチ対象データが存在すると判断し、一致したキャッシュWAYのデータを使用する。S311で、キャッシュタグにおいて一致したWAYを示す情報をキャッシュデータ部に送り、S312で、キャッシュデータ部から読み出された2WAYのデータの一方を選択し、キャッシュメモリの読み出しを完了する。
このあと、命令キャッシュIF−LBS106においては、読み出された32バイトのデータがそのまま命令処理装置へと送られ、命令処理装置側では4バイト長の命令8個分の命令として受け取る。オペランドキャッシュOP−LBS107においては、読み出されたデータは、読み出し対象のデータ幅1バイト、2バイト、4バイト、8バイトに応じて読み出しデータのアライメントを行うと同時に、必要に応じてサイン拡張を行い1バイト、2バイト、4バイトのデータの正負の符号部分を拡張したデータ形式に変換し、アライメントとサイン拡張まで完了したデータを演算器に対して送出する。演算器側では受け取ったデータを受け取り対象となるレジスタに書き込むとともに、受け取ったデータを使用して演算を開始する。
キャッシュメモリの読み出し制御において、アクセス開始2サイクル後にキャッシュデータ、キャッシュタグ、TLBが読み出された時点で、それぞれに備え付けられた故障検出回路により、故障の有無を確認する。故障がなければ、そのまま図3に示した処理手順に従って処理が完了する。故障が検出された場合、それがTLBの故障であった場合は、TLBを全消去してTLBの登録処理からやり直すが、その詳細についてはここでは説明を省略する。故障がキャッシュデータまたはキャッシュタグにあった場合の従来の処理方式については、特許文献2に開示されている。この従来の処理方式について、以下に説明する。
図4、図5に、故障がキャッシュデータまたはキャッシュタグにあった場合の処理動作のフローを示す。図4は、オペランドキャッシュOP−LBS107におけるデータまたはタグに故障があった場合の故障処理を示しており、図5は、命令キャッシュIF−LBS106におけるデータまたはタグに故障があった場合の故障処理を示している。
まず、図4において、キャッシュデータまたはキャッシュタグに故障が検出されると、SU103内のオペランドキャッシュOP−LBS107は、データ処理を一時中断し、キャッシュ制御部のERROR−STATEフラグをオンにする(S401)。エラーしたキャッシュラインアドレスとキャッシュWAYをERAR(Error Address Register)に登録する(S402)。ERARには二種類あり、オペランドキャッシュ用のOP−ERARと命令キャッシュ用のIF−ERARがある。いずれもキャッシュラインアドレスビット14〜5とWAY情報を保持する。ERROR−STATE中は、後続の処理をすべて中断するとともに、それまでに実行中であった処理、例えば主記憶または他のキャッシュメモリへとキャッシュラインを持ってくることを要求する処理が該当するが、この場合キャッシュラインが届いてキャッシュメモリへの登録が完了するのを待つ。
この後、下位階層のキャッシュ(SX108)に対して、故障救済処理を実施してもらうことを要求すると共に、オペランドキャッシュOP−LBS107に故障が発生したことを通知し、OP−ERARの情報から故障したキャッシュメモリのキャッシュラインアドレスとキャッシュWAYを通知する(S403)。
故障救済処理要求を受けた下位階層のキャッシュには、通知元キャッシュタグのコピーを備えており、故障救済処理のためにこれを参照する(S404)。キャッシュタグのコピーには、そのキャッシュラインが有効であるか無効であるかを示すValidビットとそのキャッシュラインに対応する物理アドレスが情報として格納されている。故障処理を要求されたキャッシュラインが有効かどうか判断し(S405)、故障処理を要求されたキャッシュラインが無効な状態であった場合は(No)、通知されたキャッシュラインに対し故障を原因とした無効化を指示するとともに、それがオペランドキャッシュか命令キャッシュかいずれのキャッシュメモリに対する処理であるかを明示し、故障キャッシュラインおよび故障WAY情報をそのまま故障通知元に送り返す(S406)。故障元のキャッシュでは故障を原因とした無効化の指示を受け取ったら、オペランドキャッシュラインの無効化通知を受けたキャッシュラインとキャッシュWAYに対して、オペランドキャッシュタグの有効ビットを無効な状態へと書き換える処理フローをオペランドキャッシュパイプラインで実行する(S407)。書き換え処理を行うオペランドキャッシュパイプラインのBサイクル(Buffer Read Cycle)と呼ぶフローで、ERROR−STATEフラグをオフにセットすることで、エラー処理を完了すると共に後続命令の実行を再開し、同時に、キャッシュタグの無効化が完了したことを下位階層のキャッシュに通知するとともに、無効化したキャッシュラインとキャッシュWAYを通知する(S408)。この通知を受けて、下位階層のキャッシュにおいてはキャッシュタグコピーの該当ラインは無効な状態へと書き換えられる(S409)。
キャッシュタグコピーを検索した結果、故障処理対象キャッシュラインが有効な状態であれば(S405でYesの場合)、故障元キャッシュに対し、故障を原因としたキャッシュラインの吐き出しを指示すると共に、それがオペランドキャッシュに対する処理であることを明示し、故障キャッシュラインおよび故障WAY情報をそのまま故障通知元に送り返す(S410)。故障元のキャッシュでは、故障を原因としたキャッシュライン吐き出しの指示を受け取ったら、オペランドキャッシュラインの無効化通知を受けたキャッシュラインとキャッシュWAYに対して、オペランドキャッシュタグの参照しつつオペランドキャッシュデータの読み出しを行う処理フロー、およびオペランドキャッシュタグの有効ビットを無効な状態へと書き換えつつオペランドキャッシュデータの読み出しを行う処理フローを実行する(S411)。キャッシュタグを書き換える処理を行うオペランドパイプラインのBサイクルと呼ぶフローでERROR−STATEフラグをオフにセットすることで、エラー処理を完了すると共に後続命令の実行を再開し、同時にキャッシュタグを無効化したことを下位階層のキャッシュに通知するとともに、無効化したキャッシュラインとキャッシュWAYを通知する(S414)。オペランドキャッシュOP−LBS107については、このときデータ転送を伴う場合がある。オペランドキャッシュデータの読み出しは2回実施しており、1回の読み出しで32バイト読み出すため上記フローでキャッシュメモリ1ライン分に相当する64バイトのキャッシュデータが読み出され、MOB(Move−out Buffer)と呼ばれる下位階層から指示された要求を処理するに当たって、データ転送を伴う処理の場合に使用されるデータバッファへと格納される。キャッシュタグの参照は、読み出し参照と書き込み参照が行われる。S412、S413で、読み出し参照でキャッシュタグを検索したとき、キャッシュラインが変更型かそれ以外かを確認する。変更型であればキャッシュラインを下位階層に転送し(S415、S416)、無効型または共有型であればキャッシュラインを下位階層に転送しない(S408,S409)。キャッシュラインを転送しないときの処理手順(S408,S409)は、命令キャッシュ側の故障救済処理と同じ処理を行って、キャッシュラインの無効化を完了する。キャッシュラインを転送するとき(S415、S416)は、キャッシュの故障処理がデータ転送を伴って完了することを通知すると共に、処理対象となったキャッシュラインとキャッシュWAYを通知する(S415)。この通知を受けて、下位階層のキャッシュにおいてはキャッシュタグコピーの該当ラインを無効な状態へと書き換えるとともに、受け取ったキャッシュデータを自身のキャッシュ階層のキャッシュメモリのデータ部へと書き込む(S416)。
また、図5は命令キャッシュIF−LBS106におけるデータまたはタグに故障があった場合の故障処理を示しているが、図5において、IF−LBS106のキャッシュデータまたはキャッシュタグに故障が検出されるとS501〜S503の処理を行う。これらの処理は図4の処理S401〜S403と同様である。その後、キャッシュタグコピーの参照結果に関わらず、通知されたキャッシュラインに対し故障を原因とした無効化を指示するとともに、それが命令キャッシュメモリに対する処理であることを明示し、故障キャッシュラインおよび故障WAY情報をそのまま故障通知元に送り返す(S504)。故障元のキャッシュでは故障を原因とした無効化の指示を受け取ったら、命令キャッシュラインの無効化通知を受けたキャッシュラインとキャッシュWAYに対して、命令キャッシュタグの有効ビットを無効な状態へと書き換える処理フローを命令キャッシュパイプラインで実行する(S505)。書き換え処理を行う命令キャッシュパイプラインのBサイクルと呼ぶフローでERROR−STATEフラグをオフにセットすることで、エラー処理を完了すると共に後続命令の実行を再開する。同時に、キャッシュタグの無効化が完了したことを下位階層のキャッシュに通知するとともに、無効化したキャッシュラインとキャッシュWAYを通知する(S506)。この通知を受けて、下位階層のキャッシュにおいてはキャッシュタグコピーの該当ラインは無効な状態へと書き換えられる(S507)。
また、図6は、従来のキャッシュにおけるストア動作のフローを示す図である。
ストア命令に対するキャッシュメモリへの書き込みにおいては、キャッシュタグ部とTLB部に1回の参照を行い、キャッシュデータ部に対しては2回の参照を行い、オペランドキャッシュパイプラインとしては2回の処理フローが実行される。
ストア命令の1回目の処理フローでは、キャッシュデータ部とキャッシュタグ部およびTLB部にアクセスする。キャッシュデータ部には仮想アドレスからビット14〜5を取り出して送出し、参照した次のサイクルにRAM内部でデータの取り出しを行い、その次のサイクルに全キャッシュRAMから合わせて64バイトのデータが取り出される。取り出されたデータは32バイトの2WAY分のデータから構成される。キャッシュタグ部には仮想アドレスからビット14〜6を取り出して送出し、参照した次のサイクルにRAM内部でタグアドレスの取り出しを行い、その次のサイクルに2WAY分の物理アドレスが取り出される。TLB部には仮想アドレスからビット63〜13を取り出して送出すると共に、キャッシュメモリの参照を行うアクセス空間を示す情報としてアクセス空間番号ないしアクセス空間のコンテキストID、セグメントテーブル起点などアクセス空間を示す情報を送出し、参照する。(S601)
参照した次のサイクルにTLBに登録されている仮想アドレスとアクセス空間を示す情報を比較し一致した登録情報に対応した物理アドレスの取り出しを行い、その次のサイクルに1つの物理アドレスが読み出されて、仮想アドレスから物理アドレスへの変換を完了する。タグ部から読み出された2WAY分の物理アドレスとTLB部から読み出された物理アドレスを比較し、これが一致していればキャッシュメモリにストア対象のデータが存在すると判断する。(S602)
また、キャッシュタグから変更型ビットが読み出され、これが変更型であることを示していれば、キャッシュメモリが共有されておらず、ストアを実行できると判断する。また、一致したキャッシュ情報は、後のキャッシュメモリへの書き込みにおいて使用するためにストア命令処理部に記録する。それと共に、キャッシュタグにおいて一致したWAYを示す情報をキャッシュデータ部に送り、キャッシュデータ部から読み出された2WAYのデータの一方を選択する。選択されたデータは、キャッシュメモリに対してストアを実行するとき、ECC(Error Correction Code)情報を更新後のデータに対応したECCへと書き換えるために、8バイトデータ境界内におけるストア対象外のデータ保持部または部分ECC保持部へと格納される。(S603)尚、ストア対象外のECCの処理については、特許文献3および特許文献4にその詳細が述べられている。
そして、S603の処理の後、キャッシュ側での処理フローとは独立して、ストア命令がストア対象とするストアデータを演算器からオペランドキャッシュが受け取り、これをストアデータレジスタへと格納する(S604)。
そして、キャッシュ側の処理フローを完了するとともに、ストアデータのキャッシュへの転送が完了していれば、命令処理装置は、ストア命令を実行できるか否かを判断する(S605、S606)。すなわち、ストア命令に先行する命令で命令処理列の分岐が発生せず、トラップ処理など他の処理に移行する必要がなくなったか否かを確認する。これは、命令処理装置におけるコミット・スタック・エントリにおいて、ストア命令に先行する命令の処理がすべて完了していることを確認することで実行される。すると、命令処理装置は、実行可能となったストア命令に対して、コミット信号をオンにして、ストアを実行することを指示する(S607)。
キャッシュ側では、コミット信号を受け取ったストア命令のデータをキャッシュメモリに書き込むために、ストア処理の2回目のフローを実行する(S608)。ストア命令の2回目のフローでは、キャッシュデータ部のみにアクセスする。まず、Pサイクル(Priority サイクル:各リクエストを決められた優先順位に従って処理するリクエストを決定する)においてキャッシュデータ部には仮想アドレスからビット14〜5を取り出して送出するとともにストア対象WAYとストア対象バイト位置を通知する(S609)。この情報によりキャッシュデータ部では、ストア対象となるキャッシュRAMとそのRAM上のストア対象バイト位置を確認し、対象RAMの対象バイト位置に対してWE(Write Enable)信号をオンにする。それと平行して、ストアデータレジスタに格納されたストアデータを取り出して、キャッシュデータ部へ送出する(S610)。
その次のTサイクル(TLB/TAG サイクル:TAG/LBS/TLBをアクセスするサイクル)にストア対象キャッシュRAMのストア対象バイト位置へとストアデータが格納される(S611)。
そして、Tサイクルの3サイクル後のRサイクル(Result サイクル:パイプライン処理を完了するサイクル)においてストアデータとストア対象外データ情報からECCが生成され、ECC−ARRAY−RAMへとストア後のデータに対応したECC情報を書き込むことで、ストア命令の処理を完了する(S612)。
以上のように、ストア命令に対するキャッシュへの書き込み動作について説明したが、ストア処理に伴う1回目の処理フローにおいて、故障が検出された場合は、図3に示したキャッシュの読み出し動作において故障が検出された場合と同じ処理を実行して故障を解消する。
次に、図7を参照して、従来のキャッシュにおける故障を含むキャッシュラインを無効化した後の、故障キャッシュラインを使用した命令の処理を再開する動作について説明する。
故障キャッシュラインの無効化が完了し、命令の実行が再開されると、再開された命令が使用するキャッシュラインが無効化されているため、キャッシュミスから命令処理が再開されることになる(S701)。再開された命令はキャッシュタグを検索した結果キャッシュミスを検出し(S702)、下位階層のキャッシュへキャッシュミスしたキャッシュラインを自キャッシュへと取り込むためのムーブイン要求を送出するとともに、ムーブイン要求中の物理アドレスおよびムーブイン(MI:Move−In)したキャッシュラインを登録するキャッシュメモリ上のキャッシュラインアドレスとキャッシュWAY情報をMIB(Move In Buffer)に保持する(S703)。ムーブイン対象となるキャッシュWAYは、無効なWAYがなければLRU(Least Recently Used)に従い、無効なWAYがあればそれが選択される。エラー処理後の命令実行再開時は、キャッシュラインが無効化されているため、無効なキャッシュWAYが選択される。このとき、先のエラー処理で無効化したWAYが選択される。
ムーブイン要求を受け取った下位階層のキャッシュでは、そのキャッシュ階層のキャッシュタグを検索する(S704)。キャッシュヒットすれば、そのキャッシュ階層のキャッシュデータ部から取り出したキャッシュデータを要求元キャッシュに転送する(S705)。それと平行して、要求元のキャッシュタグコピーをムーブイン要求アドレスに書き換えるとともに、要求元のキャッシュに対してリプレースブロックに対する指示を送出する(S706)。エラー処理後の命令再開の場合は、リプレースブロック、すなわちムーブイン要求対象のキャッシュラインにムーブイン要求前に登録されていたキャッシュWAYは無効化されているので、リプレース処理が不要であることを要求元のキャッシュに対して指示する。
ムーブイン要求元のキャッシュでは、キャッシュラインを受け取ると、受け取ったキャッシュラインを使用して再開した動作を継続すると共に、受け取ったキャッシュラインをキャッシュメモリに書き込む。1回の書き込みで32バイト書き込まれるため、64バイトの1キャッシュラインの登録処理には2回の処理フローを実行する。
まず、1回目の処理フローで、MIBに格納されていたキャッシュラインとキャッシュWAY情報、および受け取ったキャッシュラインの32バイトをキャッシュデータ部に送り、キャッシュデータ部のRAMに書き込む(S707)。次に2回目のフローで残り32バイトをキャッシュデータ部のRAMに書き込むと同時に、MIBに保持していた物理アドレスをキャッシュタグ部に書き込む(S708)と共にキャッシュタグのValidビットをオンにする(S709)。キャッシュミスを起こしてムーブインを要求した命令以外の命令は、キャッシュメモリへの登録まではMIBからデータを取り出し、登録後はキャッシュタグ部、キャッシュデータ部にアクセスして、キャッシュメモリの内容を取り出す。このとき再び故障が検出されれば、故障処理の一連の処理フローを再度実行し、故障を解消する。
故障解消処理フローを規定回数繰り返しても故障が解消されなければ、故障キャッシュラインをブロックデリートと呼ぶ手段で切り離す。ブロックデリート処理については、特許文献5に詳細が記述されている。しかしながら、ブロックデリート処理が実行されると、キャッシュラインを1ライン切り離してしまうことによる性能低下が免れない。そこで、キャッシュラインを喪失せずにキャッシュメモリの1ビット固定故障を救済する方法が求められていた。
以上のように、図1〜図7を参照して、キャッシュライン交替レジスタの搭載されていない従来のキャッシュについて説明した。
上述したことをまとめると、従来のキャッシュライン交替レジスタの実装方式では、交替対象アドレスの比較に物理アドレスを使用し、これが一致した際に交替レジスタのデータを読み出していたが、物理アドレスは比較対象ビット数が多いためアドレス処理に時間がかかるという問題があった。また、比較対象となる物理アドレスを得るためには、TLBやキャッシュタグを参照する必要があるため、キャッシュの読み出しにおいてはキャッシュライン交替レジスタが使用できたが、キャッシュの書き込みにおいては、TLB、キャッシュタグの参照比較と書き込みのフローが通常のキャッシュ制御フローから大きく外れたものとなるため、キャッシュライン交替レジスタの使用を放棄せざるを得ず、キャッシュライン交替レジスタがストア対象となるたびに、キャッシュライン交替レジスタを無効化して主記憶参照からやりなおすなど、ストア動作時に性能低下が発生した。
また従来は、交替レジスタを1ライン分、全ビット交替できるようにレジスタを構成していた。実際には、1キャッシュライン中複数個所で1ビットエラーが生じる確率は低く、より少ないレジスタ数で交替レジスタの機能を実現し、回路資源を節約することが求められていた。
そこで、従来のキャッシュに新しいキャッシュライン交替レジスタを搭載し、問題を解決する。
特開昭52−15236号公報 特許第3483296号公報 特願2006−999902号 特願2006−353505号 特願2006−999821号
本発明は、従来のキャッシュ交替レジスタの問題を解決することにある。詳しくは、キャッシュラインに故障等が発生し交替を行う場合の処理時間を改善すること、および、キャッシュライン交替レジスタがストア対象となるたびに、キャッシュライン交替レジスタを無効化して主記憶参照からやり直すなど、ストア動作時に性能低下が発生していたことを解決すること、および、従来のキャッシュライン交替レジスタのように1ライン分、全ビット交替できるようにレジスタを構成するのではなく、より少ないレジスタ数で構成し、必要とする回路資源を節約すること、を目的とする。
上述の課題を解決するために、本発明では、キャッシュメモリ装置を、複数のキャッシュラインを有するウェイを複数備え、前記キャッシュラインにデータを保持するデータ保持部と、前記データ保持部が有するキャッシュラインの1ライン分又は前記キャッシュラインの一部のデータを保持する交替データレジスタと、キャッシュアクセスに用いられ、前記データ保持部において故障が発生した故障キャッシュライン及び前記故障キャッシュライン内の故障発生部を指し示すインデックスアドレスを保持する交替アドレスレジスタと、前記データ保持部の故障ビットを含む前記データ保持部におけるウェイの情報を保持する交替ウェイレジスタと、前記データ保持部にアクセスを行う場合に、アクセスに用いられるインデックスアドレスと前記交替アドレスレジスタが保持する前記インデックスアドレスを比較するアドレスマッチ回路と、前記データ保持部にアクセスを行う場合に、アクセスに用いられるウェイ情報と前記交替ウェイレジスタの保持するウェイ情報を比較するウェイマッチ回路と、を備えるように構成した。
本発明によれば、交替対象アドレスの比較に、キャッシュメモリ上の故障キャッシュラインおよび前記キャッシュライン内の故障ビットを含むデータブロックを指し示すインデックスアドレスを使用するため、物理アドレスを用いた場合よりも比較対象のビット幅が小さくなるため、アドレス比較に費やす時間を短縮することが可能であるとともに、TLBおよびキャッシュタグの参照結果が判明する前に交替アドレスの比較を完了することが可能となる。また、インデックスアドレスの使用により、交替データを保持する交替データレジスタは、故障が発生した故障キャッシュラインの1ライン分の長さよりも短いデータを保持できればよい。このように、交替データレジスタはデータブロックの長さ分だけのデータを保持すればよいため、キャッシュライン交替レジスタに使用される回路サイズを抑えることが可能となり、回路実装面積の削減と電力消費量低減の効果が期待できる。
また、従来のキャッシュ制御フローにおいてはTLBおよびキャッシュタグの参照とデータの書き込みが同時に実施されていたが、本発明のキャッシュライン交替レジスタによれば、ストア命令の処理フローが従来のキャッシュ制御フローと同じままで、キャッシュライン交替レジスタの内容をストアデータに対応して、常に最新の状態に更新することが可能となり、ストア命令においても交替レジスタを使用できるため、ストア対象が交替レジスタにあった場合に発生した性能低下を回避することが可能となる。
従来のCPUの全体構成を示す図である。 従来のキャッシュの構成を示す図である。 従来のキャッシュの読み出し動作を説明するフロー図である。 従来のOP−LBSに故障があった場合の故障処理を説明するフロー図である。 従来のIF−LBSに故障があった場合の故障処理を説明するフロー図である。 従来のキャッシュのストア動作を説明するフロー図である。 従来のキャッシュにおいて、キャッシュラインを無効化した後、故障キャッシュラインを使用した命令の処理を再開する動作を説明するフロー図である。 本実施形態のCPUの全体構成を示す図である。 本実施形態のキャッシュの構成を示す図である。 本実施形態の交替アドレスレジスタの構成について説明する図である。 本実施形態におけるキャッシュの読み出し動作を説明するフロー図である。 本実施形態におけるOP−LBSに故障があった場合の故障処理を説明するフロー図である。 本実施形態におけるIF−LBSに故障があった場合の故障処理を説明するフロー図である。 本実施形態におけるキャッシュにおいて、キャッシュラインを無効化した後、故障キャッシュラインを使用した命令の処理を再開する動作を説明するフロー図である。 本実施形態におけるストア動作を説明するフロー図である。 本実施形態において交替アドレスレジスタのビット数を1ビット増やした場合の説明をする図である。 本実施形態における交替アドレスレジスタと交替データレジスタの物量関係を示す図である。 本実施形態における交替アドレスレジスタ更新モードがオンの場合の処理について説明する図である。 本実施形態における交替アドレスレジスタ更新モードがオフの場合の処理について説明する図である。
以下、図面を参照して、キャッシュライン交替レジスタの実施形態の一例について説明する。
本実施形態である、CPUの全体構成を図8に示す。
図8のCPU1の構成は、図1に示したCPU101の構成とほぼ同一である。CORE2は図1のCORE102に対応し、SU3は図1のSU103に対応し、IU4は図1のIU104に対応し、EU5は図1のEU105に対応し、IF−LBS6は図1のIF−LBS106に対応し、OP−LBS7は図1のOP−LBS107に対応し、SX10は図1のSX108に対応し、SYSTEM BUS11,Memory12はそれぞれ図1のSYSTEM BUS109,Memory110に対応する。
本実施の形態では、新たにIF−CLAR(Cache Line Alternation Register:キャッシュライン交替レジスタ)8,OP−CLAR9が追加される。
図9に、本実施形態のキャッシュライン交替レジスタCLARの構成を示し、 図2と比較すると本実施の形態で追加された部分が明らかである。
キャッシュRAM21、22における、キャッシュラインは64バイト単位で管理され、キャッシュRAMは64キロバイトの容量を2WAYで構成している。1WAYあたりのキャッシュライン数は512ラインとなり、キャッシュラインへのアクセスアドレスは9ビットで構成される。キャッシュデータRAMには読み出しデータ幅8バイトでライン数1024のRAM8個を採用している。
本実施の形態のキャッシュライン交替レジスタは、3種類のレジスタと2種類のマッチ回路から構成される。第1のレジスタは、1ビット固定故障キャッシュラインとそのエラービット箇所がキャッシュメモリ上の何処にあるかを指し示すインデックスアドレスを登録し、保持する交替アドレスレジスタ26(CLAAR:Cache Line Alternation Address Register)である。第2のレジスタは、1ビット固定故障キャッシュラインのWAY情報を登録し、保持する交替WAYレジスタ27である。第3のレジスタは、RAM固定故障キャッシュラインの半ライン分のデータを登録し、保持する交替データレジスタ25(CLADR:Cache Line Alternation Data Register)である。また、第1のマッチ回路は、インデックスアドレスを比較するアドレスマッチ回路28である。第2のマッチ回路は、WAYを比較するWAYマッチ回路29である。
データ信号線30にはWAY0(21)の出力データが出力され、データ信号線31にはWAY1(22)の出力データが出力され、信号線32には、アドレスマッチ回路28で比較された結果であるCLAAR−MCH信号が出力され、信号線33には、WAYマッチ回路29で比較された結果であるWAY−MCH信号が出力され、データ線34には、交替データレジスタ25の出力データが出力され、信号線35には、WAY0CLAAR−MCH信号が出力され、信号線36にはWAY1CLAAR−MCH信号が出力される。37は、WAY0側のキャッシュRAM(21)と交替データレジスタ25の選択回路で、38はWAY1側のキャッシュRAM(22)と交替データレジスタ25の選択回路である。データ線39には、命令処理装置または演算装置に送るデータが出力される。
図10に交替アドレスレジスタ26についての説明を示す。本実施の形態では、故障の発生したエラービット箇所がキャッシュメモリ上のどこにあるかを指し示すためにキャッシュメモリをブロック0およびブロック1からなる二つのブロックに分割している。つまり、インデックスアドレスは、キャッシュラインアドレス(アクセスアドレス)用の9ビットと、故障ブロックを示すための1ビットを合わせた、計10ビットから成る。そのため、交替アドレスレジスタ26は故障の発生したキャッシュラインを示すアクセスアドレスのための9ビット(仮想アドレスからビット14〜6を取り出したもの)と、いずれのブロックに故障が発生したのかを示す1ビット(仮想アドレスからビット5を取り出したもの)とを保持する。そして、交替データレジスタ25は、各ブロックのサイズである32バイトのデータを保持できればよい。
図9、図10に示した構成のキャッシュの動作について、フロー図を用いて以下に詳細に説明する。
まず、図11に本実施形態におけるキャッシュの読み出し動作を説明するフロー図を示す。キャッシュの読み出しにおいては、従来通りキャッシュデータ部およびキャッシュタグ部およびTLB部を参照すると同時に、交替アドレスレジスタに対してアクセスする。図11におけるS1101〜S1112の処理は、従来のキャッシュ読み出し動作を示した図3のS301〜S312と同一の処理を行うものである。
本実施の形態では、S1120〜S1125に示した処理がキャッシュライン交替レジスタにおいて行われる。
まず、キャッシュデータ部を参照するサイクルに交替アドレスレジスタ26に格納されているインデックスアドレスとキャッシュデータ部の参照に使用したキャッシュのインデックスアドレス及びキャッシュWAYを交替アドレスレジスタ26の保持する内容と交替WAYレジスタ27の保持する内容とそれぞれ比較する(S1120)。そしてCLAAR−WAY信号とCLADRデータを取り出す(S1121)。比較結果を示すCLAAR−MCH信号と、交替WAYレジスタ27に格納された交替対象WAYを示すCLAAR−WAY信号、および交替データレジスタ25の内容を全キャッシュデータRAMへと送出する(S1122)。その次のサイクルにS1123で、CLAAR−MCH信号およびWAY−MCH信号がオンであれば、全キャッシュRAMから読み出された64バイトのデータに対して、CLARR−WAY信号が示すWAYの32バイトデータを交替データレジスタ25の内容と差し替えてキャッシュ読み出しデータとする(S1124)。S1123で、CLAAR−MCH信号がオフであれば、全キャッシュRAMから読み出された64バイトデータには操作を施さず(S1125)、キャッシュメモリから読み出されたデータをそのまま使用する。
この後は、従来のキャッシュ装置と同じ動作を行い、すなわち、タグマッチ結果からキャッシュWAYのデータの一方を選択し、キャッシュメモリの読み出しを完了する。このようにキャッシュライン交替レジスタの機能は、故障が発生していないときにも有効になるように機能させている。
次に、図12、図13に本実施形態におけるOP−LBSおよびIF−LBSに故障があった場合の故障処理を説明するフロー図をそれぞれ示す。故障があった場合の故障処理においても、従来の処理と同様の処理を行うが、図12では、S1217、S1218、S1219、S1220の処理が追加され、図13ではS1308,S1309の処理が追加され、それ以外の処理は同様である。図12のS1201〜S1216までの処理は図4のS401〜S416までの処理に対応し、図13のS1301〜S1307までの処理は図5のS501〜S507までの処理に対応する。
さて、キャッシュデータのRAMに故障が検出されたとき、すなわち、CLAAR−MCH信号がオンにならずにキャッシュデータ部の故障が検出されたときは、キャッシュデータRAMから読み出されたデータに故障が検出されたことを示す。このとき、従来の故障処理フローにおける故障キャッシュラインを無効化するために、キャッシュタグの有効ビットを無効な状態に書き換えるパイプライン処理のRサイクルの2サイクル後のタイミングで、無効化対象キャッシュインデックスとキャッシュWAYを交替アドレスレジスタ26と交替WAYレジスタ27に書き込む(S1218、S1220,S1309)。
以上の動作により、故障キャッシュラインとそのWAYがキャッシュライン交替レジスタに登録されるため、故障したキャッシュラインを参照したときは、キャッシュライン交替データレジスタの内容が参照されることとなり、故障したキャッシュRAMの内容は使用されなくなるため、キャッシュRAMの故障を隠蔽し、故障からの回復を図ることが可能である。
尚、S1217、S1219、S1308のモードについての説明は後述することとする。
次に図14に、キャッシュラインを無効化した後、故障キャッシュラインを使用した命令の処理を再開する動作を示す。キャッシュラインの無効化後の故障キャッシュラインを再開する動作についても、従来の処理と同様の処理を行う。すなわち図14のS1401〜S1409の処理は図7のS701〜S709に対応する。そして、図14のS1410〜S1419に示すキャッシュライン交替レジスタで行われる処理が追加されたものとなる。
故障キャッシュラインの無効化を完了し故障キャッシュインデックスを交替アドレスレジスタ26に登録した後、命令の実行が再開されると再開された命令が使用するキャッシュラインは交替アドレスレジスタ26に登録されている。このキャッシュラインは、まだキャッシュミスを起こした状態であるため、従来通りキャッシュラインのムーブインが要求される。その後、キャッシュラインが届くと、キャッシュインデックスとキャッシュWAYをキャッシュデータ部に指示しつつ、ムーブインしたキャッシュラインをキャッシュデータ部に送出し、キャッシュラインの登録を指示する。
キャッシュデータ部では、キャッシュラインの登録指示を受け取った次のサイクルに、受け取ったキャッシュインデックスとキャッシュWAYに対応するキャッシュデータRAMにムーブインデータを書き込むと共に、書き込み対象のキャッシュインデックスとキャッシュWAYを交替アドレスレジスタ26の保持する内容と交替WAYレジスタ27の保持する内容とそれぞれ比較する(S1410、S1411)。S1412で、キャッシュインデックスアドレスとキャッシュWAYが両方一致していればムーブインデータを交替データレジスタ25にも書き込む(S1413)。S1412で一致しない場合には、なにも書きこまない(S1414)。こうすることで、キャッシュに書き込んだデータが故障していても、そのデータは交替データレジスタ25に用意しておくことが可能となる。そのため、故障キャッシュラインを読み出す等の参照がある場合に、キャッシュライン交替レジスタに格納されたデータを参照するため、同データの故障していない状態のデータを取り出すことが可能となる。
尚、S1415〜S1419の処理はS1410〜S1414の処理と同一である。
次に、本実施の形態におけるストア命令に対するキャッシュへの書き込みについて図15を参照して説明する。ストア命令に対するキャッシュへの書き込み処理においても従来
通りキャッシュタグ部とTLB部に1回の参照を行い、キャッシュデータ部に対しては2回の参照を行う。また、図15のS1501〜S1512の処理は、図6に示した従来のストア命令に対するキャッシュへの書き込み処理のS601〜S612と同一の処理を行う。
図15において、まずストア命令の1回目の処理フローでは、交替アドレスレジスタ26と交替データレジスタ25によりキャッシュデータの故障が救済される(S1501〜S1507)。
ストア命令の2回目の処理フローでは、Pサイクルにおいてキャッシュインデックスアドレスとストア対象WAYおよびストア対象バイト位置をキャッシュデータ部に指示しつつ(S1509)、ストア対象RAMのストア対象バイト位置に対してWE(Write Enable)信号をオンにする(S1513)。それと平行して、ストアデータレジスタに格納されたストアデータを取り出して、キャッシュデータ部へ送出する(S1510)。その次のサイクルのTサイクルにおいて、ストア対象キャッシュRAMのストア対象バイト位置へとストアデータを格納すると共に、インデックスアドレスとストア対象WAYを交替アドレスレジスタ26と交替WAYレジスタ27の内容と比較する(S1514)。S1515で比較した結果、交替アドレスレジスタ26および交替WAYレジスタ27の内容と一致した場合、ストア対象バイト位置を示す情報に基づいて、交替データレジスタ25のストア対象位置にストアデータを書き込む(S1516)。S1515で比較した結果が一致しなければ、交替データレジスタ25には何も書き込まず(S1517)、処理を終了する。その後のRサイクルにおいてECC処理を従来通り実行する(S1518)。こうすることで、ストア命令の実行においても、交替データレジスタ25の内容をキャッシュの最新の状態に更新することが可能となるため、後続の命令がキャッシュライン交替レジスタの交替対象となるキャッシュラインを参照したときにも、最新の状態のキャッシュデータに対応したデータをキャッシュライン交替データレジスタから取り出すことが可能となるため、キャッシュの故障からは開放されることになる。
そのため、ロード命令だけでなくストア命令においてもキャッシュライン交替レジスタを使用できるため、ストア対象がキャッシュライン交替レジスタにあった場合に発生した性能低下を回避することが可能となる。
以上のように本実施の形態について説明したが、上述の説明では交替アドレスレジスタ26の保持するビット数を図10に示すように構成した。
すなわち、インデックスアドレスを保持する交替アドレスレジスタ26を、故障キャッシュラインのアクセスアドレスを示す9ビットと、故障ブロックを示す1ビットの合計10ビットから成るように構成した。
ここで、インデックスアドレスを1ビット増やし、キャッシュの故障ブロックを示すために用いる。これにより、キャッシュを分割するブロック数を2倍に増やすことができ、更に、キャッシュデータのリプレースを行うデータサイズが2分の1になるため、交替データレジスタ25のサイズも2分の1にすることが可能である。
同様にしてインデックスアドレスを1ビットずつ増やしていくと、交替データレジスタ25のサイズを半減させていくことが可能である。このことを図16に図示した。
まず図16(a)では、交替アドレスレジスタ26の保持するビット数を11ビットとしたものを示している。故障キャッシュラインのラインアドレスであるアクセスアドレスを示すために9ビット、故障ブロックを示すために2ビットの合計11ビットを保持する。これにより、キャッシュブロック数は4ブロックとなり、キャッシュデータのリプレースを行うデータサイズが図10で示した32バイトの半分の16バイトとなる。
同様に、図16(b)では、交替アドレスレジスタ26の保持するビット数を12ビット、すなわち、アクセスアドレスを示すために9ビット、故障ブロックを示すために3ビットの合計12ビットとしたものを示している。これにより、キャッシュブロック数は8ブロックとなり、キャッシュデータのリプレースを行うデータサイズを図16(a)の半分の8バイトとすることができる。
図16(c)についても同様に交替アドレスレジスタ26の保持するビット数を1ビット増やすと、キャッシュデータのリプレースを行うデータサイズを図16(b)に示したものから半減することが可能である。
図17には、このことをまとめて、交替アドレスレジスタ26のビット数と交替データレジスタの物量関係を示した。交替アドレスレジスタ26のビット数が1ビット増加すると交替データのサイズが半減していることがわかる。
また、本実施の形態において、交替アドレスレジスタ26の更新は、キャッシュラインが無効化されるときに行うことが出来る。そこでキャッシュリプレース(交替)発生時の交替アドレスレジスタ26更新を行うモードを設ける。このモードがオンのときは、交替対象ブロックを無効化するリプレース処理の2回目のフローで交替対象のキャッシュインデックスで交替アドレスレジスタ26を更新する。こうすることで、通常動作中も交替アドレスレジスタ26が頻繁に更新することが可能となる。交替アドレスレジスタ26の更新は固定故障発生時のみとする方式と比べて交替アドレスレジスタ26の更新頻度および更新タイミングの発生パターンが増加するため、交替アドレスレジスタ26制御に関する設計ミスの検出を容易にすることが可能となる。尚、上述の図12のS1217、S1219、図13のS1308では、交替アドレスレジスタ26更新モードであるか否かが判断されている。
また、キャッシュデータ部は、CPUチップの出荷に当たって全キャッシュメモリセルの試験を行う必要がある。キャッシュメモリセルの試験を行うときに交替アドレスレジスタ26の更新をリプレースでも行うことで、交替アドレスレジスタ機能により保護されたまま試験による故障チェックから漏れるキャッシュメモリセルが発生することを回避することも可能となる。
例えば、試験の開始状態において、交替アドレスレジスタ26がアドレス「0WAY0」となっていると、アドレス0、WAY0はキャッシュライン交替レジスタにより故障が起こらない限り交替対象とされてしまう。よって、アドレス0、ブロック0、WAY0のキャッシュRAMのデータはキャッシュライン交替レジスタの内容で置き換えて読み出されてしまう(図18の交替アドレスレジスタ更新モードがオフの場合、を参照)。ここで、交替アドレスレジスタ更新モードをオンとすると、リプレース(交替)が行われる度に、交替対象のキャッシュインデックスおよびキャッシュWAYで交替アドレスレジスタ26が更新されるためアドレス0、WAY0のキャッシュラインが故障チェックから漏れることを回避できる(図19の交替アドレスレジスタ更新モードがオンの場合、を参照)。
以上のように、本実施形態について詳細に説明をしたが、本発明は上述した実施の形態に限定されるものではなく、上述した各構成と同等の機能を実現するものであればいずれのものであってもよいことはいうまでもない。
本発明によれば、交替対象アドレスの比較に、キャッシュメモリ上の故障キャッシュラインおよび前記キャッシュライン内の故障ビットを含むデータブロックを指し示すインデックスアドレスを使用するため、物理アドレスを用いた場合よりも比較対象のビット幅が小さくなるため、アドレス比較に費やす時間を短縮することが可能であるとともに、TLBおよびキャッシュタグの参照結果が判明する前に交替アドレスの比較を完了することが可能となる。また、インデックスアドレスの使用により、交替データを保持する交替データレジスタは、故障が発生した故障キャッシュラインの1ライン分の長さよりも短いデータを保持できればよい。このように、交替データレジスタはデータブロックの長さ分だけのデータを保持すればよいため、キャッシュライン交替レジスタに使用される回路サイズを抑えることが可能となり、回路実装面積の削減と電力消費量低減の効果が期待できる。
また、従来のキャッシュ制御フローにおいてはTLBおよびキャッシュタグの参照とデータの書き込みが同時に実施されていたが、本発明のキャッシュライン交替レジスタによれば、ストア命令の処理フローが従来のキャッシュ制御フローと同じままで、キャッシュライン交替レジスタの内容をストアデータに対応して、常に最新の状態に更新することが可能となり、ストア命令においても交替レジスタを使用できるため、ストア対象が交替レジスタにあった場合に発生した性能低下を回避することが可能となる。

Claims (20)

  1. 複数のキャッシュラインを有するウェイを複数備え、前記キャッシュラインにデータを保持するデータ保持部と、
    前記データ保持部が有するキャッシュラインの1ライン分又は前記キャッシュラインの一部のデータを保持する交替データレジスタと、
    キャッシュアクセスに用いられ、前記データ保持部において故障が発生した故障キャッシュライン及び前記故障キャッシュライン内の故障発生部を指し示すインデックスアドレスを保持する交替アドレスレジスタと、
    前記データ保持部の故障ビットを含む前記データ保持部におけるウェイの情報を保持する交替ウェイレジスタと、
    前記データ保持部にアクセスを行う場合に、アクセスに用いられるインデックスアドレスと前記交替アドレスレジスタが保持する前記インデックスアドレスを比較するアドレスマッチ回路と、
    前記データ保持部にアクセスを行う場合に、アクセスに用いられるウェイ情報と前記交替ウェイレジスタの保持するウェイ情報を比較するウェイマッチ回路と、
    を備えることを特徴とするキャッシュメモリ装置。
  2. 前記データ保持部への読み出し参照アクセスの際、前記アドレスマッチ回路による比較結果が一致した場合に、前記交替ウェイレジスタの保持するウェイ情報に対応するウェイから読み出したデータを前記交替データレジスタの内容と差し替えて前記データ保持部からの読み出しデータとすることを特徴とする請求項1記載のキャッシュメモリ装置。
  3. 前記データ保持部への書き込み参照アクセスの際、前記アドレスマッチ回路および前記ウェイマッチ回路による比較結果が両方とも一致した場合に、前記データ保持部の書き込み対象ウェイにデータを書き込むと共に、前記交替データレジスタにデータを書き込み、該交替データレジスタの内容をデータ保持部の最新の状態に合わせることを特徴とする請求項1記載のキャッシュメモリ装置。
  4. 前記データ保持部上に故障ビットが検出された場合に、該故障ビットを含むキャッシュラインに保持していたデータを下の階層のキャッシュメモリまたは主記憶に対して必要に応じて書き戻しを行うとともに、該キャッシュラインを無効化し、無効化が完了したときに無効化対象となったキャッシュラインのアドレスを前記交替アドレスレジスタに保持し、無効化対象となったキャッシュウェイを前記交替ウェイレジスタに保持することを特徴とする請求項1乃至請求項3いずれか1項に記載のキャッシュメモリ装置。
  5. キャッシュメモリ装置の動作モードが、キャッシュリプレース発生時に前記交替アドレスレジスタの更新を行うキャッシュリプレースモードである場合に、キャッシュリプレース対象のキャッシュインデックスアドレスおよびキャッシュウェイで前記交替アドレスレジスタと前記交替ウェイレジスタを更新することを特徴とする請求項1記載のキャッシュメモリ装置。
  6. 前記データ保持部に故障ビットが発生した時ではなく、通常動作中に、前記動作モードを前記キャッシュリプレースモードに切り替え、前記交替アドレスレジスタの動作チェックおよびキャッシュメモリビットのチェックを行うことを特徴とする請求項5記載のキャッシュメモリ装置。
  7. 前記インデックスアドレスにおける、前記キャッシュライン内の故障ビットを含むデータブロックを示すビット数が1ビット増えるごとに、前記交替データレジスタのサイズを半減可能であることを特徴とする、請求項1乃至請求項6いずれか1項に記載のキャッシュメモリ装置。
  8. キャッシュメモリ装置と前記キャッシュメモリ装置に保持されたデータに対して演算を行う演算処理部とを備えた演算処理装置であって、
    複数のキャッシュラインを有するウェイを複数備え、前記キャッシュラインにデータを保持するデータ保持部と、
    前記データ保持部が有するキャッシュラインの1ライン分又は前記キャッシュラインの一部のデータを保持する交替データレジスタと、
    キャッシュアクセスに用いられ、前記データ保持部において故障が発生した故障キャッシュライン及び前記故障キャッシュライン内の故障発生部を指し示すインデックスアドレスを保持する交替アドレスレジスタと、
    前記データ保持部の故障ビットを含む前記データ保持部におけるウェイの情報を保持する交替ウェイレジスタと、
    前記データ保持部にアクセスを行う場合に、アクセスに用いられるインデックスアドレスと前記交替アドレスレジスタが保持する前記インデックスアドレスを比較するアドレスマッチ回路と、
    前記データ保持部にアクセスを行う場合に、アクセスに用いられるウェイ情報と前記交替ウェイレジスタの保持するウェイ情報を比較するウェイマッチ回路と、
    を備えることを特徴とする演算処理装置。
  9. 前記データ保持部への読み出し参照アクセスの際、前記アドレスマッチ回路による比較結果が一致した場合に、前記交替ウェイレジスタの保持するウェイ情報に対応するウェイから読み出したデータを前記交替データレジスタの内容と差し替えて前記データ保持部からの読み出しデータとすることを特徴とする請求項8記載の演算処理装置。
  10. 前記データ保持部への書き込み参照アクセスの際、前記アドレスマッチ回路および前記ウェイマッチ回路による比較結果が両方とも一致した場合に、前記データ保持部の書き込み対象ウェイにデータを書き込むと共に、前記交替データレジスタにデータを書き込み、該交替データレジスタの内容をデータ保持部の最新の状態に合わせることを特徴とする請求項8記載の演算処理装置。
  11. 前記データ保持部上に故障ビットが検出された場合に、該故障ビットを含むキャッシュラインに保持していたデータを下の階層のキャッシュメモリまたは主記憶に対して必要に応じて書き戻しを行うとともに、該キャッシュラインを無効化し、無効化が完了したときに無効化対象となったキャッシュラインのアドレスを前記交替アドレスレジスタに保持し、無効化対象となったキャッシュウェイを前記交替ウェイレジスタに保持することを特徴とする請求項8乃至請求項10いずれか1項に記載の演算処理装置。
  12. 前記キャッシュメモリ装置の動作モードが、キャッシュリプレース発生時に前記交替アドレスレジスタの更新を行うキャッシュリプレースモードである場合に、キャッシュリプレース対象のキャッシュインデックスアドレスおよびキャッシュウェイで前記交替アドレスレジスタと前記交替ウェイレジスタを更新することを特徴とする請求項8記載の演算処理装置。
  13. 前記データ保持部に故障ビットが発生した時ではなく、通常動作中に、前記動作モードを前記キャッシュリプレースモードに切り替え、前記交替アドレスレジスタの動作チェックおよびキャッシュメモリビットのチェックを行うことを特徴とする請求項12記載の演算処理装置。
  14. 前記インデックスアドレスにおける、前記キャッシュライン内の故障ビットを含むデータブロックを示すビット数が1ビット増えるごとに、前記交替データレジスタのサイズを半減可能であることを特徴とする、請求項8乃至請求項13いずれか1項に記載の演算処理装置。
  15. 複数のキャッシュラインを有するウェイを複数備えるデータ保持部と、アドレスの比較を行うアドレスマッチ回路と、前記ウェイの比較を行うウェイマッチ回路と、キャッシュラインの交替を制御する第1乃至第3のレジスタを備えたキャッシュメモリの制御方法であって、
    前記データ保持部の前記キャッシュラインにデータを保持するステップと、
    前記第1のレジスタに、前記データ保持部が有するキャッシュラインの1ライン分又は前記キャッシュラインの一部のデータを保持するステップと、
    前記第2のレジスタに、キャッシュアクセスに用いられ、前記データ保持部において故障が発生した故障キャッシュライン及び前記故障キャッシュライン内の故障発生部を指し示すインデックスアドレスを保持するステップと、
    前記第3のレジスタに、前記データ保持部の故障ビットを含む前記データ保持部におけるウェイの情報を保持するステップと、
    前記データ保持部にアクセスを行う場合に、前記アドレスマッチ回路により、アクセスに用いられるインデックスアドレスと前記第2のレジスタが保持する前記インデックスアドレスを比較するステップと、
    前記データ保持部にアクセスを行う場合に、前記ウェイマッチ回路により、アクセスに用いられるウェイ情報と前記第3のレジスタが保持する情報を比較するステップと、
    を備えることを特徴とする制御方法。
  16. 前記データ保持部への読み出し参照アクセスの際、前記アドレスマッチ回路による比較結果が一致した場合に、前記交替ウェイレジスタの保持するウェイ情報に対応するウェイから読み出したデータを前記第1のレジスタの内容と差し替えて前記データ保持部からの読み出しデータとするステップを備えることを特徴とする請求項15記載の制御方法。
  17. 前記データ保持部への書き込み参照アクセスの際、前記アドレスマッチ回路および前記ウェイマッチ回路による比較結果が両方とも一致した場合に、前記データ保持部の書き込み対象ウェイにデータを書き込むと共に、前記第1のレジスタにデータを書き込み、前記第1のレジスタの内容をデータ保持部の最新の状態に合わせるステップを備えることを特徴とする請求項15記載の制御方法。
  18. 前記データ保持部上に故障ビットが検出された場合に、該故障ビットを含むキャッシュラインに保持していたデータを下の階層のキャッシュメモリまたは主記憶に対して必要に応じて書き戻しを行うとともに、該キャッシュラインを無効化し、無効化が完了したときに無効化対象となったキャッシュラインのアドレスを前記第2のアドレスに保持し、無効化対象となったキャッシュウェイを前記第3のレジスタに保持するステップを備えることを特徴とする請求項15乃至請求項17いずれか1項に記載の制御方法。
  19. 前記キャッシュメモリの動作モードが、キャッシュリプレース発生時に前記第2のレジスタの更新を行うキャッシュリプレースモードである場合に、キャッシュリプレース対象のキャッシュインデックスアドレスおよびキャッシュウェイで前記第2のレジスタと前記第3のレジスタを更新するステップを備えることを特徴とする請求項15記載の制御方法。
  20. 前記データ保持部に故障ビットが発生した時ではなく、通常動作中に、前記動作モードを前記キャッシュリプレースモードに切り替え、前記第2のレジスタの動作チェックおよびキャッシュメモリビットのチェックを行うステップを備えることを特徴とする請求項19記載の制御方法。
JP2009520146A 2007-06-20 2007-06-20 キャッシュメモリ装置、演算処理装置及びその制御方法 Active JP4595029B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/000663 WO2008155805A1 (ja) 2007-06-20 2007-06-20 キャッシュメモリ装置、演算処理装置及びその制御方法

Publications (2)

Publication Number Publication Date
JPWO2008155805A1 true JPWO2008155805A1 (ja) 2010-08-26
JP4595029B2 JP4595029B2 (ja) 2010-12-08

Family

ID=40155970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009520146A Active JP4595029B2 (ja) 2007-06-20 2007-06-20 キャッシュメモリ装置、演算処理装置及びその制御方法

Country Status (6)

Country Link
US (1) US8700947B2 (ja)
EP (1) EP2159705B1 (ja)
JP (1) JP4595029B2 (ja)
KR (1) KR101077513B1 (ja)
CN (1) CN101689141B (ja)
WO (1) WO2008155805A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065503A (ja) * 2009-09-18 2011-03-31 Renesas Electronics Corp キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法
JP5650441B2 (ja) * 2010-06-07 2015-01-07 キヤノン株式会社 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム
EP2696289B1 (en) * 2011-04-07 2016-12-07 Fujitsu Limited Information processing device, parallel computer system, and computation processing device control method
JP2013061887A (ja) * 2011-09-14 2013-04-04 Fujitsu Ltd 故障位置判定回路、記憶装置、および情報処理装置
US8839025B2 (en) 2011-09-30 2014-09-16 Oracle International Corporation Systems and methods for retiring and unretiring cache lines
JP5565425B2 (ja) * 2012-02-29 2014-08-06 富士通株式会社 演算装置、情報処理装置および演算方法
US9075727B2 (en) * 2012-06-14 2015-07-07 International Business Machines Corporation Reducing penalties for cache accessing operations
US9135126B2 (en) 2013-02-07 2015-09-15 International Business Machines Corporation Multi-core re-initialization failure control system
US9043668B2 (en) 2013-02-08 2015-05-26 Seagate Technology Llc Using ECC data for write deduplication processing
US9262263B2 (en) * 2013-11-25 2016-02-16 Qualcomm Incorporated Bit recovery system
JP2016081169A (ja) * 2014-10-14 2016-05-16 富士通株式会社 情報処理装置、データ処理システム、データ処理管理プログラム、及び、データ処理管理方法
US9703661B2 (en) 2015-02-05 2017-07-11 International Business Machines Corporation Eliminate corrupted portions of cache during runtime
US10185619B2 (en) * 2016-03-31 2019-01-22 Intel Corporation Handling of error prone cache line slots of memory side cache of multi-level system memory
JP6770230B2 (ja) * 2016-09-30 2020-10-14 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
US10437729B2 (en) 2017-04-19 2019-10-08 International Business Machines Corporation Non-disruptive clearing of varying address ranges from cache
JP6947974B2 (ja) 2017-09-13 2021-10-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP7139719B2 (ja) * 2018-06-26 2022-09-21 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法
KR20200081045A (ko) * 2018-12-27 2020-07-07 삼성전자주식회사 3차원 적층 메모리 장치 및 그 동작 방법
US11042483B2 (en) 2019-04-26 2021-06-22 International Business Machines Corporation Efficient eviction of whole set associated cache or selected range of addresses
CN112289353B (zh) * 2019-07-25 2024-03-12 上海磁宇信息科技有限公司 一种优化的具有ecc功能的mram系统及其操作方法
US11966328B2 (en) * 2020-12-18 2024-04-23 Advanced Micro Devices, Inc. Near-memory determination of registers

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5215236A (en) * 1975-07-25 1977-02-04 Nec Corp Error block unit
JPS60123949A (ja) * 1983-12-09 1985-07-02 Hitachi Ltd 記憶装置制御方式
JPH01292454A (ja) * 1988-05-19 1989-11-24 Mitsubishi Electric Corp キャッシュ制御方式
JPH0293745A (ja) * 1988-09-30 1990-04-04 Hitachi Ltd バッファメモリ装置
JPH04239936A (ja) * 1991-01-24 1992-08-27 Nec Corp キャッシュ制御装置
JPH06131897A (ja) * 1992-10-14 1994-05-13 Mitsubishi Electric Corp キャッシュメモリ
JPH07295883A (ja) * 1994-04-28 1995-11-10 Fujitsu Ltd 情報処理装置
JPH10333982A (ja) * 1997-04-29 1998-12-18 Texas Instr Inc <Ti> 2サイクルのキャッシュ・アクセスの間にメモリの行の冗長性を再マッピングするための回路、システム、および方法
JPH11282764A (ja) * 1998-03-30 1999-10-15 Oki Electric Ind Co Ltd メモリエラー箇所切り離し回路
JP2001147859A (ja) * 1999-09-08 2001-05-29 Fujitsu Ltd キャッシュメモリ装置およびキャッシュメモリ制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003203010A (ja) * 2002-01-07 2003-07-18 Nec Computertechno Ltd L2キャッシュメモリ
JP2006343851A (ja) * 2005-06-07 2006-12-21 Toshiba Corp キャッシュメモリおよびマイクロプロセッサ

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69429777T2 (de) * 1993-09-30 2002-10-17 Apple Computer System zur dezentralen massenspeichersteuerung eines rechners mit virtuellem speicher
US6006311A (en) * 1997-04-14 1999-12-21 Internatinal Business Machines Corporation Dynamic updating of repair mask used for cache defect avoidance
US6029237A (en) * 1997-10-08 2000-02-22 Dell Usa, L.P. Method for simulating the presence of a diskette drive in a NetPC computer that contains only a hard disk drive
US6289438B1 (en) * 1998-07-29 2001-09-11 Kabushiki Kaisha Toshiba Microprocessor cache redundancy scheme using store buffer
US6708294B1 (en) 1999-09-08 2004-03-16 Fujitsu Limited Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded
US6339813B1 (en) * 2000-01-07 2002-01-15 International Business Machines Corporation Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory
US6904552B2 (en) * 2001-03-15 2005-06-07 Micron Technolgy, Inc. Circuit and method for test and repair
US6918071B2 (en) * 2001-04-20 2005-07-12 Sun Microsystems, Inc. Yield improvement through probe-based cache size reduction
US20030191885A1 (en) * 2002-04-09 2003-10-09 Chandra Thimmanagari On-chip cache redundancy technique
US6922798B2 (en) * 2002-07-31 2005-07-26 Intel Corporation Apparatus and methods for providing enhanced redundancy for an on-die cache
US7240277B2 (en) * 2003-09-26 2007-07-03 Texas Instruments Incorporated Memory error detection reporting
JP4239936B2 (ja) 2004-09-16 2009-03-18 富士電機リテイルシステムズ株式会社 硬貨処理装置および金銭処理装置
JP4186223B2 (ja) 2004-09-28 2008-11-26 三菱マテリアル株式会社 光記録媒体用反射膜および半透明反射膜並びにこれら反射膜を形成するためのAg合金スパッタリングターゲット
US20060080572A1 (en) 2004-09-30 2006-04-13 Fong John Y Set associative repair cache systems and methods
JP2006099902A (ja) 2004-09-30 2006-04-13 Konica Minolta Opto Inc 光記録/再生用光学装置
JP4791525B2 (ja) 2006-02-14 2011-10-12 富士通株式会社 読み出し処理装置および読み出し方法
JP4392049B2 (ja) 2006-02-27 2009-12-24 富士通株式会社 キャッシュ制御装置およびキャッシュ制御プログラム
JP5010271B2 (ja) 2006-12-27 2012-08-29 富士通株式会社 エラー訂正コード生成方法、およびメモリ制御装置
JP5215236B2 (ja) 2009-05-21 2013-06-19 株式会社デンソー 車線境界線種別推定装置及び車線境界線種別推定方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5215236A (en) * 1975-07-25 1977-02-04 Nec Corp Error block unit
JPS60123949A (ja) * 1983-12-09 1985-07-02 Hitachi Ltd 記憶装置制御方式
JPH01292454A (ja) * 1988-05-19 1989-11-24 Mitsubishi Electric Corp キャッシュ制御方式
JPH0293745A (ja) * 1988-09-30 1990-04-04 Hitachi Ltd バッファメモリ装置
JPH04239936A (ja) * 1991-01-24 1992-08-27 Nec Corp キャッシュ制御装置
JPH06131897A (ja) * 1992-10-14 1994-05-13 Mitsubishi Electric Corp キャッシュメモリ
JPH07295883A (ja) * 1994-04-28 1995-11-10 Fujitsu Ltd 情報処理装置
JPH10333982A (ja) * 1997-04-29 1998-12-18 Texas Instr Inc <Ti> 2サイクルのキャッシュ・アクセスの間にメモリの行の冗長性を再マッピングするための回路、システム、および方法
JPH11282764A (ja) * 1998-03-30 1999-10-15 Oki Electric Ind Co Ltd メモリエラー箇所切り離し回路
JP2001147859A (ja) * 1999-09-08 2001-05-29 Fujitsu Ltd キャッシュメモリ装置およびキャッシュメモリ制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003203010A (ja) * 2002-01-07 2003-07-18 Nec Computertechno Ltd L2キャッシュメモリ
JP2006343851A (ja) * 2005-06-07 2006-12-21 Toshiba Corp キャッシュメモリおよびマイクロプロセッサ

Also Published As

Publication number Publication date
KR101077513B1 (ko) 2011-10-28
CN101689141A (zh) 2010-03-31
JP4595029B2 (ja) 2010-12-08
US20100088550A1 (en) 2010-04-08
WO2008155805A1 (ja) 2008-12-24
CN101689141B (zh) 2012-10-17
EP2159705A4 (en) 2012-07-25
KR20100006588A (ko) 2010-01-19
EP2159705B1 (en) 2016-03-02
EP2159705A1 (en) 2010-03-03
US8700947B2 (en) 2014-04-15

Similar Documents

Publication Publication Date Title
JP4595029B2 (ja) キャッシュメモリ装置、演算処理装置及びその制御方法
CN101714106B (zh) 在低电压操作期间禁用高速缓存部分
US8977820B2 (en) Handling of hard errors in a cache of a data processing apparatus
US7987407B2 (en) Handling of hard errors in a cache of a data processing apparatus
US5201041A (en) Cache bypass apparatus
EP1986101B1 (en) Coherency maintaining device and coherency maintaining method
US7900020B2 (en) Correction of incorrect cache accesses
US6480975B1 (en) ECC mechanism for set associative cache array
US20060236074A1 (en) Indicating storage locations within caches
CN102866879B (zh) 高效存储器层级管理
US8190973B2 (en) Apparatus and method for error correction of data values in a storage device
JPH10301846A (ja) 修復マスクを使用したキャッシュ・アレイ欠陥の機能的迂回方法及びシステム
JP2013196393A (ja) 演算処理装置及び演算処理装置の制御方法
US5802567A (en) Mechanism for managing offset and aliasing conditions within a content-addressable memory-based cache memory
KR100972807B1 (ko) 에러 정정 코드 생성 방법 및 메모리 관리 장치
KR19990006485A (ko) 캐쉬 어드레스 발생 방법
US20040133760A1 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
US6282635B1 (en) Method and apparatus for controlling an instruction pipeline in a data processing system
EP0375864A2 (en) Cache bypass
US8656214B2 (en) Dual ported replicated data cache
US6105109A (en) System speed loading of a writable cache code array
CN112889037A (zh) 持久性存储器清除
JP3494072B2 (ja) キャッシュメモリ及びその障害検出方法
JP2821326B2 (ja) キャッシュメモリの故障検出装置
CN117170918A (zh) 基于多模映射调度的Cache抗辐照加固方法及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100819

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

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

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

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4595029

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150