JP2013196393A - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP2013196393A
JP2013196393A JP2012062897A JP2012062897A JP2013196393A JP 2013196393 A JP2013196393 A JP 2013196393A JP 2012062897 A JP2012062897 A JP 2012062897A JP 2012062897 A JP2012062897 A JP 2012062897A JP 2013196393 A JP2013196393 A JP 2013196393A
Authority
JP
Japan
Prior art keywords
error
way
cache
unit
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012062897A
Other languages
English (en)
Inventor
Noriko Takagi
紀子 高木
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 JP2012062897A priority Critical patent/JP2013196393A/ja
Priority to US13/736,238 priority patent/US8799727B2/en
Publication of JP2013196393A publication Critical patent/JP2013196393A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • 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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】ワードライン故障を適切に救済可能な演算処理装置を提供する。
【解決手段】演算処理装置は、キャッシュラインに発生したエラーを検出するエラー検出部と、第1のエラーが発生したキャッシュラインのエラーウェイ識別情報、エラーワードアドレス、及びエラーカラムアドレスを保持するレジスタと、アクセス対象のキャッシュラインのウェイ識別情報をエラーウェイ識別情報と比較するウェイ比較部と、アクセス対象のキャッシュラインのワードアドレスをエラーワードアドレスと比較するワード比較部と、アクセス対象のキャッシュラインのカラムアドレスをエラーカラムアドレスと比較するカラム比較部と、第1のエラー発生後にエラー検出部が第2のエラーを検出した場合、ウェイ比較部、ワード比較部及びカラム比較部のそれぞれの比較結果に応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する制御部とを有する。
【選択図】図1

Description

本発明は、演算処理装置及び演算処理装置の制御方法に関する。
半導体技術の微細化に伴い、キャッシュRAM(Random Access Memory)内部でのエラー発生率が上昇している。RAMには、縦方向に延びる複数のビットライン及び横方向に延びる複数のワードラインが設けられており、各交点に1ビットのメモリセルが配置される。RAMからデータを読み出す際は、ワードラインのアドレス(ワードアドレス)とビットラインのアドレス(カラムアドレス)とを指定し、指定された交点位置のデータを読み出す。
半導体の微細化が進みワードライン間の距離が縮小した結果、ショート等を原因としたRAMのワードライン故障が発生するようになっている。ワードライン故障が発生すると、このワードラインによって読み書きされる全てのメモリセルに対するアクセスが誤動作となる。例えば、4カラム構成のキャッシュRAMであり1つのRAMアクセスアドレスが1つのキャッシュラインに相当する場合、ワードラインが一致しカラムアドレスが異なる4つのRAMアクセスアドレスが1つのワードラインを共有しており、結果4つのキャッシュラインが1つのワードラインを共有している。このようなキャッシュRAMにおいてワードライン故障が発生すると、故障したワードラインを共有する4つのRAMアクセスアドレスが指す全ビットについて、アクセス動作が誤動作となる。従って、これら4つのRAMアクセスアドレスに対応する4つのキャッシュラインが使用できなくなる。
キャッシュRAMのエラー救済方法として、幾つかの技術が存在する。特許文献1に記載の構成において、キャッシュ制御部には複数の動作ビットが設けられており、キャッシュメモリの各ラインにそれぞれ対応付けられている。この動作ビットは、キャッシュメモリが正常に動作しているか否かを示すビットであり、正常時は「有効」を示している。故障が見つかった場合、故障したラインに対応する動作ビットが「無効」に設定される。キャッシュへのアクセスの際は、アクセス対象のデータが含まれるラインの動作ビットが「有効」を示しているか否かを判断する。動作ビットが「有効」を示す場合は、キャッシュメモリへのアクセスが行われ、「無効」を示す場合は、キャッシュメモリではなく外部メモリへのアクセスが行われる。
特許文献2に記載の構成においては、故障したキャッシュラインアドレス及びキャッシュウェイを記憶する監視レジスタが設けられる。故障検出時、監視レジスタが故障アドレスと故障ウェイとを記憶し、同時に、該当キャッシュラインが無効化される。キャッシュメモリへのアクセスの際は、アクセス対象のキャッシュラインアドレスと監視レジスタのキャッシュラインアドレスとが比較される。両アドレスが一致した場合、当該アクセスは故障キャッシュラインへのアクセスであると判定される。故障キャッシュラインへのアクセスの場合、監視レジスタに記憶されている故障ウェイ以外にデータが登録されるように、制御が実行される(ブロックデリート)。また、監視レジスタに記憶されているウェイにおいて、異なるキャッシュラインでも故障が生じた場合には、該当ウェイ全体を縮退させ(ウェイデリート)、残りのウェイのみを用いて動作が継続される。
特許文献1に示す構成では、キャッシュラインごとの縮退が可能であるため、ワードライン故障を救済可能である。しかしながら、キャッシュライン毎に動作ビットが必要であり、回路サイズが大きくなるという問題がある。
特許文献2に示す構成では、ブロックデリートは、1つのキャッシュラインの故障のみを救済可能であり、複数キャッシュラインが同時に故障するワードライン故障を救済することはできない。またウェイデリートは、ワードライン故障を救済することができるが、必要以上に大きな領域(1つのウェイ全体)を縮退させてしまうために、無駄な性能低下が大きい。
特開2011−8491号公報 特許4392049号公報
ワードライン故障を適切に救済可能な演算処理装置が望ましい。
データを記憶する主記憶装置に接続された演算処理装置は、メモリアクセス要求を出力する命令処理部と、前記記憶装置に記憶されたデータの一部を、複数のウェイ毎に設けられた複数のキャッシュラインに保持するキャッシュメモリ本体部と、前記複数のキャッシュラインのいずれかに発生したエラーを検出するエラー検出部と、前記エラー検出部が、前記複数のキャッシュラインのいずれかに発生した第1のエラーを検出した場合、前記第1のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報を保持するエラーウェイレジスタと、前記第1のエラーが発生したキャッシュラインのワードアドレスを保持するエラーワードアドレスレジスタと、前記第1のエラーが発生したキャッシュラインのカラムアドレスを保持するエラーカラムアドレスレジスタと、アクセス対象のキャッシュラインのウェイ識別情報を、前記エラーウェイ識別情報と比較するウェイ比較部と、前記アクセス対象のキャッシュラインのワードアドレスを、前記エラーワードアドレスと比較するワード比較部と、前記アクセス対象のキャッシュラインのカラムアドレスを、前記エラーカラムアドレスと比較するカラム比較部と、前記第1のエラーが発生した後、前記エラー検出部が、前記メモリアクセス要求により、前記複数のキャッシュラインのいずれかに発生した第2のエラーを検出した場合、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する制御部とを有することを特徴とする。
メモリアクセス要求を出力する命令処理部と、主記憶装置に記憶されたデータの一部を複数のウェイ毎に設けられた複数のキャッシュラインに保持するキャッシュメモリ本体部とを含み、データを記憶する前記主記憶装置に接続された演算処理装置の制御方法は、前記複数のキャッシュラインのいずれかに発生した第1のエラーを検出し、前記第1のエラーの検出に応答して、前記第1のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報をエラーウェイレジスタに格納し、前記第1のエラーの検出に応答して、前記第1のエラーが発生したキャッシュラインのワードアドレスをエラーワードアドレスレジスタに格納し、前記第1のエラーの検出に応答して、前記第1のエラーが発生したキャッシュラインのカラムアドレスをエラーカラムアドレスレジスタに格納し、前記複数のキャッシュラインのいずれかに発生した第2のエラーを検出し、前記第2のエラーの検出に応答し、アクセス対象のキャッシュラインのウェイ識別情報を前記エラーウェイ識別情報と比較した第1の結果と、前記アクセス対象のキャッシュラインのワードアドレスを前記エラーワードアドレスと比較した第2の結果と、前記アクセス対象のキャッシュラインのカラムアドレスを前記エラーカラムアドレスと比較した第3の結果とに応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する各段階を含むことを特徴とする。
少なくとも1つの実施形態によれば、ワードライン故障を適切に救済可能な演算処理装置が提供される。
演算処理装置の構成の一例を示す図である。 キャッシュRAMの具体的な構成の一例を示す図である。 エラー監視レジスタ、Del−Flagレジスタ、及びワードライン故障フラグの制御、並びにリプレース対象のウェイの指定のための構成を示す図である。 LRUユニットの構成の一例を示す図である。 TAG−RAMの出力とLRUユニットの出力とに基づいてキャッシュRAMに供給するウェイIDを生成する構成の一例を示す図である。 キャッシュRAM&エラー検出部の構成の一例を示す図である。 故障キャッシュラインを誤りなく縮退させることが可能な構成の一例を示す図である。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
図1は、演算処理装置の構成の一例を示す図である。演算処理装置は、命令発行部10及びキャッシュメモリ11を含み、外部記憶装置12に接続される。命令発行部10は、キャッシュメモリ11に対してメモリアクセス要求を出力する。メモリアクセス要求がデータ書き込み要求の場合、命令発行部10は、書き込みデータと当該データの書き込み先を示す書き込みアドレスとをキャッシュメモリ11に供給する。メモリアクセス要求がデータ読み出し要求の場合、命令発行部10は、データの読み出し先を示す読み出しアドレスをキャッシュメモリ11に供給する。
キャッシュメモリ11は、キャッシュ制御部15及びキャッシュRAM&エラー検出部16を含む。キャッシュ制御部15は、TAG−LRUユニット20、ワードライン故障検出装置21、エラー監視レジスタ22、及びDel−Flagレジスタ23を含む。キャッシュRAM&エラー検出部16は、キャッシュRAM25及びエラー検出部26を含む。
ワードライン故障検出装置21は、ウェイIDマッチ回路31、ワードアドレスマッチ回路32、カラムアドレスマッチ回路33、及びワードライン故障フラグ(WORDLINE-FAIL Flag)34を含む。エラー監視レジスタ22は、エラーウェイレジスタ35、エラーアドレスレジスタ36、及びエラーカウンタ37を含む。TAG−LRUユニット20は、TAG−RAM38及びLRUユニット39を含む。
キャッシュメモリ11は、複数のキャッシュラインを含み、外部記憶装置12からキャッシュメモリ11への情報のコピーはキャッシュライン単位で実行される。主記憶である外部記憶装置12のメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュメモリ11の容量は主記憶の容量よりも小さいので、主記憶のメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。
一般に、アドレスの全ビットのうちで、所定数の下位ビットがキャッシュメモリのインデックスとなり、それより上位に位置する残りのビットがキャッシュメモリのタグとなる。TAG−RAM38が、これらのインデックスに対応するタグを格納している。なお図1に示すキャッシュメモリ11では、ウェイが4つ存在する4ウェイ構成を想定している。従って、各インデックスに対して、4つのウェイに対応する4つのタグが格納される。キャッシュメモリ11は、外部記憶装置12に記憶されたデータの一部を、複数のウェイ毎に設けられた複数のキャッシュラインに保持することになる。
データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分を用いて、TAG−RAM38中の対応するインデックスのタグを読み出す。読み出したタグと、アドレス中のタグ部分のビットパターンとが一致するか否かを判断する。読み出した何れかのタグが一致する場合には、当該アクセスはキャッシュヒットとなる。読み出した何れのタグについても一致しない場合には、当該アクセスはキャッシュミスとなる。
キャッシュヒットの場合、該当インデックスの該当ウェイ(タグが一致したウェイ)に対応するキャッシュデータ(1キャッシュライン分の所定ビット数のデータ)が、キャッシュRAM25においてアクセスされる。キャッシュミスの場合には、外部記憶装置12に格納されている当該アクセスの対象であるデータを、キャッシュRAM25の該当するキャッシュラインに転送する。この際、該当インデックスの全てのウェイにおいて有効なキャッシュデータが存在する場合には、最も必要性の低いデータ(例えば最後にアクセスされてから最も時間が経過しているデータ)を、アクセス対象のデータで置き換えるリプレースが実行される。
図2は、キャッシュRAM25の具体的な構成の一例を示す図である。キャッシュRAM25は、例えば、全体の容量が64KB(キロバイト)であり、4−WAYセットアソシアティブ方式であり、1キャッシュラインが64B(バイト)であってよい。図2において、1K×8B(1024×8バイト)のRAMがメモリRAM0乃至RAM7の8個設けられ、各RAMが例えば4カラム×256ワードラインの構成を有してよい。
図2に示されるように、各RAMは4つのウェイに4等分される。0〜63番目のワードラインがウェイ0として使用され、64〜127番目のワードラインがウェイ1として使用され、128〜191番目のワードラインがウェイ2として使用され、192〜255番目のワードラインがウェイ3として使用される。1つのキャッシュラインの64Bのデータは8Bずつ8個のRAMに分けて配置されている。各RAMの1つのワードラインは4つのカラムに分かれており、これら4つのカラムが4つのキャッシュラインに対応する。例えば、第1番目のワードラインは、4つのキャッシュラインline0〜line3に対応する。従って、インデックスとウェイIDとから、アクセス対象のワードラインが一意に決まる。
エラー検出部26は、キャッシュRAM25の複数のキャッシュラインのいずれかに発生したエラーを検出する。具体的には、エラー検出部26は例えばパリティチェッカを有し、キャッシュRAM25からの読み出しデータに対しエラーチェックを行う。エラー検出部26は、エラーチェック結果をキャッシュ制御部15に送る。即ち、エラー検出部26は、エラーを検出した場合、エラー検出を示す信号をキャッシュ制御部15に供給する。具体的には、キャッシュ制御部15に印加されるエラー検出信号がアサート状態(例えば論理値1の状態)になると、エラー検出信号が供給されたことになる。
エラーウェイレジスタ35は、エラー検出部26が複数のキャッシュラインのいずれかに発生した第1のエラーを検出した場合、第1のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報を保持する。即ち、エラー検出部26から供給されるエラー検出を示す信号に応答し、キャッシュ制御部15が、エラーの発生したウェイを識別するウェイIDをエラーウェイレジスタ35に格納する。このウェイIDは、TAG−RAM38から出力される、タグが一致したウェイIDである。
エラーアドレスレジスタ36は、エラーワードアドレスレジスタとエラーカラムアドレスレジスタとを含む。エラーワードアドレスレジスタは、上記第1のエラーが発生したキャッシュラインのワードアドレスを保持する。即ち、エラー検出部26から供給されるエラー検出を示す信号に応答し、キャッシュ制御部15が、エラーの発生したワードアドレスをエラーワードアドレスレジスタに格納する。このワードアドレスは、命令発行部10から供給されるアドレスの一部である。エラーカラムアドレスレジスタは、上記第1のエラーが発生したキャッシュラインのカラムアドレスを保持する。即ち、エラー検出部26から供給されるエラー検出を示す信号に応答し、キャッシュ制御部15が、エラーの発生したカラムアドレスをエラーカラムアドレスレジスタに格納する。このカラムアドレスは、命令発行部10から供給されるアドレスの一部である。
ウェイIDマッチ回路31は、アクセス対象のキャッシュラインのウェイ識別情報を、エラーウェイレジスタ35に格納されているエラーウェイ識別情報と比較する。なおアクセス対象のキャッシュラインのウェイ識別情報は、TAG−RAM38からタグが一致したウェイのIDとして提供される。またワードアドレスマッチ回路32は、アクセス対象のキャッシュラインのワードアドレスを、エラーアドレスレジスタ36のエラーワードアドレスレジスタに格納されているエラーワードアドレスと比較する。またカラムアドレスマッチ回路33は、アクセス対象のキャッシュラインのカラムアドレスを、エラーアドレスレジスタ36のエラーカラムアドレスレジスタに格納されているエラーカラムアドレスと比較する。
上記第1のエラーが発生した後、エラー検出部26が、メモリアクセス要求により複数のキャッシュラインのいずれかに発生した第2のエラーを検出する。この場合、キャッシュ制御部15は、ウェイIDマッチ回路31、ワードアドレスマッチ回路32、及びカラムアドレスマッチ回路33のそれぞれの比較結果に応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する。即ち、故障が発生したワードラインを共有する複数の全てのキャッシュラインが無効化される。
上記無効化動作について更に詳細に説明する。第2のエラー検出時、ウェイIDマッチ回路31及びワードアドレスマッチ回路32が一致を示し、且つカラムアドレスマッチ回路33が不一致を示す場合、同一ワードライン上の異なるキャッシュラインで故障が発生したことが分かる。この場合、ワードライン故障フラグ34に所定の値(例えば1)が格納される。ワードライン故障フラグ34には初期状態で所定の値(例えば0)が格納されている。ワードライン故障フラグ34に1が一旦格納されると、その後ワードライン故障フラグ34が0を格納する状態に戻ることはない。ワードライン故障フラグ34に1が格納されている場合、エラーが所定回数以上発生してエラー縮退モードが指定されると、キャッシュ制御部15は、故障が発生したワードラインを共有するキャッシュラインを全て無効化する。この無効化の作業においては、TAG−RAM38に設けられるフラグであって、各キャッシュデータの有効又は無効の状態を示す有効フラグを、無効を示す値に設定すればよい。無効化されたキャッシュラインは、その後、命令発行部10からのアクセス要求に対してヒットすることはなくなる。またワードライン故障フラグ34に0が格納されている場合、エラーが所定回数以上発生してエラー縮退モードが指定されると、キャッシュ制御部15は、ビット故障が発生したキャッシュラインを無効化する。即ち、キャッシュ制御部15は、故障した1ビットを含む1つのキャッシュラインのみを無効化する。無効化されたキャッシュラインは、その後、命令発行部10からのアクセス要求に対してヒットすることはなくなる。
エラーが所定回数以上発生してエラー縮退モードが指定される動作について、以下に詳細に説明する。エラーカウンタ37は、複数のキャッシュラインのいずれかに発生しエラー検出部26により検出されたエラーの回数であるエラー回数を計数する。即ちエラーカウンタ37は、エラー検出部26からエラー検出を示す信号が供給される毎に、計数値を1増加させる。エラーカウンタ37が計数したエラー計数が所定値を超えると、Del−Flagレジスタ23に所定の値(例えば1)が格納される。Del−Flagレジスタ23に格納される値"1"により、エラー縮退モードが指定されると共に、前記の無効化動作が実行される。
エラー縮退モードの動作について、以下に詳細に説明する。Del−Flagレジスタ23に1が格納されている場合、エラー縮退モードが指定され、キャッシュミスが発生したときに故障キャッシュラインが縮退される。この場合、キャッシュ制御部15は、ウェイIDマッチ回路31、ワードアドレスマッチ回路32、及びカラムアドレスマッチ回路33のそれぞれの比較結果に応じて、複数のウェイのうちエラーウェイ識別情報で特定されるウェイ以外のウェイをリプレースする。即ちキャッシュミスが発生した場合において、エラーウェイレジスタ35に格納されているエラーウェイ識別情報により特定される故障ウェイは、外部記憶装置12からのデータを格納する対象としては用いない。なおワードライン故障フラグ34に1が格納されている場合、キャッシュ制御部15は、故障ワードラインを共有する複数のキャッシュラインの何れにもデータを登録しないように、ウェイのリプレース制御を行う。ワードライン故障フラグ34に0が格納されている場合、キャッシュ制御部15は、1つの故障キャッシュラインにデータを登録しないように、ウェイのリプレース制御を行う。
図1に示す構成では、ワードライン故障を適切に救済するために、検出エラー回数、エラーウェイID、及びエラーアドレスを記憶しておけばよい。これら3つのレジスタを使用する構成により、回路増加量を抑えながらも、ワードライン故障発生時に故障ワードラインを共有するキャッシュラインを全て同時に縮退することが可能となる。また更に、ワードライン故障か1ビット故障かの判定が可能であり、故障の種類に応じた縮退が可能である。それにより、正常に動作するキャッシュラインを無駄に縮退することがなく、性能低下が必要最低限に抑えられる。
図3は、エラー監視レジスタ22、Del−Flagレジスタ23、及びワードライン故障フラグ34の制御、並びにリプレース対象のウェイの指定のための構成を示す図である。図3において、図1と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
図3において、キャッシュRAM&エラー検出部16からのエラー検出信号がAND回路42乃至44に供給されると共に、エラーカウンタ37に供給される。エラーカウンタ37においては、エラー検出信号が供給される毎に、即ちエラー検出信号がアサートされる毎に、計数値が1だけ増加する。AND回路42は、TAG−RAM38から供給されるタグが一致したウェイのID(TAG−mch−Way−ID)とエラー検出信号とのANDをとる。エラー検出信号がエラー検出を示す値1の場合、AND回路42の出力である故障ウェイのIDが、エラーウェイレジスタ35に格納される。AND回路43は、アクセス対象のアドレスADRSと、エラー検出信号とのANDをとる。エラー検出信号がエラー検出を示す値1の場合、AND回路43の出力である故障アドレスのアドレス値(即ちワードアドレス+カラムアドレス)が、エラーアドレスレジスタ36に格納される。
AND回路44は、ワードアドレスマッチ回路32の出力、カラムアドレスマッチ回路33の出力の反転値、ウェイIDマッチ回路31の出力、及びエラー検出信号を受け取り、これらの信号のANDをとる。AND回路44の出力が1になると、それに応答してワードライン故障フラグ34に1が格納される。
比較器47は、エラーカウンタ37の出力する計数値と所定の閾値CNTTHを比較する。比較器47は、計数値が所定の閾値よりも大きくなると、その出力をアサートする。比較器47の出力のアサートに応じて、Del−Flagレジスタ23には1が格納される。またDel−Flagレジスタ23に1が格納されると、同時に、前述の無効化動作が実行される。なお図3に示す構成の場合、ウェイIDマッチ回路31、ワードアドレスマッチ回路32、及びカラムアドレスマッチ回路33のそれぞれの比較結果に応じて、エラー検出部26が最後にエラーを検出したキャッシュラインのみが無効化されることになる。即ち、エラーウェイレジスタ35及びエラーアドレスレジスタ36に格納されているのは最後に検出されたエラーに関するデータであり、このデータに基づいて無効化が実行されるので、無効化は最後にエラーを検出したキャッシュラインのみとなる。なおこれはワードライン故障が検出されていない場合についての動作である。ワードライン故障が検出されている場合には、最後にエラーを検出したワードラインを共有するキャッシュライン全てが無効化される。
ワードライン故障フラグ34の格納値は、セレクタ46に選択信号として供給される。選択信号が1の場合、セレクタ46は、ワードアドレスマッチ回路32の出力を選択する。選択信号が0の場合、セレクタ46は、AND回路41の出力を選択する。AND回路41は、ワードアドレスマッチ回路32の出力とカラムアドレスマッチ回路33の出力とのAND演算の結果を出力する。セレクタ45は、選択した値をAND回路45に供給する。AND回路45は、Del−Flagレジスタ23の格納値が1である場合、セレクタ46の出力を、故障ウェイ回避信号entry−delとしてLRUユニット39に供給する。故障ウェイ回避信号entry−delが供給されると、LRUユニット39は、エラーウェイレジスタ35から供給される故障ウェイIDの示すウェイを回避してリプレース対象ウェイを選択する。
このようにして、エラーカウンタ37が計数したエラー計数が所定値を超えると、Del−Flagレジスタ23に所定の値(例えば1)が格納され、エラー縮退モードが指定される。Del−Flagレジスタ23に1が格納されている場合、エラー縮退モードが指定され、キャッシュミスが発生した場合において故障キャッシュラインが縮退される。ワードライン故障フラグ34に1が格納されている場合、ワードアドレスマッチ回路32の出力が、故障ウェイ回避信号entry−delとしてLRUユニット39に供給される。従って、ワードライン故障の場合には、アクセス対象のワードアドレスが故障ワードアドレスに一致するか否かの結果に応じて、故障ウェイIDの示すウェイを回避するか否かが決定される。ワードライン故障フラグ34に0が格納されている場合、ワードアドレスマッチ回路32の出力とカラムアドレスマッチ回路33の出力とのANDが、故障ウェイ回避信号entry−delとしてLRUユニット39に供給される。従って、ワードライン故障ではない場合には、アクセス対象のワードアドレス及びカラムアドレスが故障ワードアドレス及び故障カラムアドレスに一致するか否かの結果に応じて、故障ウェイIDの示すウェイを回避するか否かが決定される。
図4は、LRUユニット39の構成の一例を示す図である。図4に示すLRUユニット39は、LRUテーブル50及びリプレースウェイID生成器51を含む。LRUテーブル50は、各ウェイが過去にアクセスされた順番を、インデックス毎(即ちキャッシュライン毎)に保持している。例えば254番目のキャッシュラインline−254について、「3,0,2,1」等のLRUデータが格納されている。このLRUデータは例えば、ウェイ3が最後にアクセスされ、ウェイ3以外ではウェイ0が最後にアクセスされ、ウェイ3,0以外ではウェイ2が最後にアクセスされ、ウェイ1が最も昔にアクセスされたことを示す。LRUテーブル50は、アクセス対象のアドレスADRSを入力として、そのアドレスに対応するインデックスのLRUデータを出力する。リプレースウェイID生成器51は、LRUテーブル50から供給されたLRUデータに基づいて、リプレース対象となるウェイのIDを出力する。具体的には、故障ウェイ回避信号entry−delが0の場合、リプレースウェイID生成器51は、最も昔にアクセスされたウェイ(即ち最後にアクセスされてから最も時間が経っているウェイ)のウェイIDを出力する。故障ウェイ回避信号entry−delが1の場合、リプレースウェイID生成器51は、ERR_WAY_IDが示す故障ウェイを避けて、それ以外のウェイの中から最も昔にアクセスされたウェイのウェイIDを出力する。
図5は、TAG−RAM38の出力とLRUユニット39の出力とに基づいてキャッシュRAM25に供給するウェイIDを生成する構成の一例を示す図である。図5において、図1と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
図5に示す構成は、TAG−RAM38、LRUユニット39、AND回路61及び62、及びOR回路63を含む。TAG−RAM38において、アクセス対象のアドレスのタグと登録されているタグとが一致すると、一致信号matchが1になると共に、タグが一致したウェイのIDであるTAG−mch−Way−IDが出力される。一致信号matchが1であるので、TAG−mch−Way−IDがAND回路61を通過し、OR回路63を介してキャッシュRAM25に供給される。即ちキャッシュヒットの場合には、タグが一致したウェイのIDがキャッシュRAM25に供給される。
アクセス対象のアドレスのタグと登録されているタグとが一致しない場合、一致信号matchが0になる。またLRUユニット39は、リプレース対象となるウェイのIDであるReplace−Way−IDを出力する。一致信号matchが0であるので、Replace−Way−IDがAND回路62を通過し、OR回路63を介してキャッシュRAM25に供給される。即ちキャッシュミスの場合には、リプレース対象となるウェイのIDがキャッシュRAM25に供給される。
図6は、キャッシュRAM&エラー検出部16の構成の一例を示す図である。図6において、図1と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。キャッシュRAM&エラー検出部16は、キャッシュRAM25及びエラー検出部26を含む。キャッシュRAM25は、図2に示すメモリRAM0乃至RAM7に相当するメモリRAM0乃至RAM7を含む。エラー検出部26は、パリティチェック部71乃至74及びセレクタ75を含む。キャッシュRAM25は、読み出しアクセスの場合、アクセス対象のアドレスを受け取り、当該アドレスに対応するデータを4つのウェイのそれぞれについて出力する。パリティチェック部71乃至74は、読み出した4個のデータそれぞれに対するパリティチェックを行う。パリティチェック結果は、セレクタ75に供給される。セレクタ75は、タグが一致したウェイのIDであるTAG−mch−Way−IDを選択信号として受け取り、この選択信号が示すウェイのパリティチェック結果を選択する。このパリティチェック結果が、エラー検出信号としてキャッシュ制御部15(図1参照)に供給される。
上記説明した演算処理装置においては、最後にエラーが発生したキャッシュラインを縮退対象としている。しかしながら、最後に発生したエラーが、宇宙線の入来に起因する記憶データのビット反転であるソフトエラーである可能性もある。そのような確率は非常に低く、上記説明した演算処理装置においても、ワードライン故障を適切に縮退させることができる、と考えてよい。但し、仮にそのようなソフトエラーが発生したとすると、本来のワードライン故障箇所とは異なるキャッシュラインについて縮退が実行されることになり、故障キャッシュラインを縮退させることができない。そこで、故障キャッシュラインを誤りなく縮退させることが好ましい。
図7は、故障キャッシュラインを誤りなく縮退させることが可能な構成の一例を示す図である。図7において、図3と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図7に示す構成では、キャッシュRAM&エラー検出部16からのエラー検出信号をエラーカウンタ37に供給する経路に、AND回路48が設けられている。AND回路48は、ワードアドレスマッチ回路32の出力とキャッシュRAM&エラー検出部16からのエラー検出信号とのAND演算を行い、AND演算の結果を出力する。AND回路48の出力がエラーカウンタ37に供給されており、AND回路48の出力がアサート状態になる度に、エラーカウンタ37の計数値が1増加する。従って、エラーカウンタ37の計数値は、アクセス対象のワードアドレスがエラーアドレスレジスタ36に格納されている故障ワードアドレスに一致し且つエラーが検出された場合にのみ、増加することになる。つまり、エラーカウンタ37が計数するのは、同一のワードアドレスにおいて発生し検出されたエラーの数であり、他のワードアドレスにおいて発生したソフトエラーは計数されない。従って、計数値が所定の閾値CNTTHを超えて縮退モードが有効になる場合、最後に発生したエラーが故障ワードアドレスとは異なるワードアドレスに対するソフトエラーとして検出されることはない。
なお縮退モードに遷移した後、ソフトエラーが発生した場合、そのエラーの検出により、エラーウェイレジスタ35やエラーアドレスレジスタ36の内容が書き換えられてしまう。これを避けたいのであれば、例えば、AND回路42及び43の各々を3入力とし、Del−Flagレジスタ23の出力の反転信号を第3の入力に印加すればよい。これにより、Del−Flagレジスタ23に1が格納され一旦縮退モードが有効になると、その後エラーウェイレジスタ35及びエラーアドレスレジスタ36が更新されることはない。即ち、その後ソフトエラーが発生しても、引き続き故障ワードラインを適切に縮退し続けることができる。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
10 命令発行部
11 キャッシュメモリ
12 外部記憶装置
15 キャッシュ制御部
16 キャッシュRAM&エラー検出部
20 TAG−LRUユニット
21 ワードライン故障検出装置
22 エラー監視レジスタ
23 Del−Flagレジスタ
25 キャッシュRAM
26 エラー検出部26
31 ウェイIDマッチ回路
32 ワードアドレスマッチ回路
33 カラムアドレスマッチ回路
34 ワードライン故障フラグ
35 エラーウェイレジスタ
36 エラーアドレスレジスタ
37 エラーカウンタ
38 TAG−RAM
39 LRUユニット

Claims (6)

  1. データを記憶する主記憶装置に接続された演算処理装置において、
    メモリアクセス要求を出力する命令処理部と、
    前記記憶装置に記憶されたデータの一部を、複数のウェイ毎に設けられた複数のキャッシュラインに保持するキャッシュメモリ本体部と、
    前記複数のキャッシュラインのいずれかに発生したエラーを検出するエラー検出部と、
    前記エラー検出部が、前記複数のキャッシュラインのいずれかに発生した第1のエラーを検出した場合、前記第1のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報を保持するエラーウェイレジスタと、
    前記第1のエラーが発生したキャッシュラインのワードアドレスを保持するエラーワードアドレスレジスタと、
    前記第1のエラーが発生したキャッシュラインのカラムアドレスを保持するエラーカラムアドレスレジスタと、
    アクセス対象のキャッシュラインのウェイ識別情報を、前記エラーウェイ識別情報と比較するウェイ比較部と、
    前記アクセス対象のキャッシュラインのワードアドレスを、前記エラーワードアドレスと比較するワード比較部と、
    前記アクセス対象のキャッシュラインのカラムアドレスを、前記エラーカラムアドレスと比較するカラム比較部と、
    前記第1のエラーが発生した後、前記エラー検出部が、前記メモリアクセス要求により、前記複数のキャッシュラインのいずれかに発生した第2のエラーを検出した場合、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する制御部と
    を有することを特徴とする演算処理装置。
  2. 前記制御部はさらに、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、ビット故障が発生したキャッシュラインを無効化することを特徴とする請求項1記載の演算処理装置。
  3. 前記制御部はさらに、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、前記検出部が最後にエラーを検出したキャッシュラインのみを無効化することを特徴とする請求項1又は2記載の演算処理装置。
  4. 前記演算処理装置はさらに、前記複数のキャッシュラインのいずれかに発生し前記エラー検出部により検出されたエラーの回数であるエラー回数を計数する計数部を有し、前記制御部はさらに、前記計数部が計数したエラー計数が所定値を超えた場合において、前記制御部は、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、前記複数のウェイのうち前記エラーウェイ識別情報で特定されるウェイ以外のウェイをリプレースすることを特徴とする請求項1乃至3何れか一項記載の演算処理装置。
  5. 前記演算処理装置はさらに、前記複数のキャッシュラインの同一のキャッシュラインに発生し前記エラー検出部により検出されたエラーの回数であるエラー回数を計数する計数部を有し、前記制御部はさらに、前記計数部が計数したエラー計数が所定値を超えた場合において、前記制御部は、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、前記複数のウェイのうち前記エラーウェイ識別情報で特定されるウェイ以外のウェイをリプレースすることを特徴とする請求項1乃至3何れか一項記載の演算処理装置。
  6. メモリアクセス要求を出力する命令処理部と、主記憶装置に記憶されたデータの一部を複数のウェイ毎に設けられた複数のキャッシュラインに保持するキャッシュメモリ本体部とを含み、データを記憶する前記主記憶装置に接続された演算処理装置において、
    前記複数のキャッシュラインのいずれかに発生した第1のエラーを検出し、
    前記第1のエラーの検出に応答して、前記第1のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報をエラーウェイレジスタに格納し、
    前記第1のエラーの検出に応答して、前記第1のエラーが発生したキャッシュラインのワードアドレスをエラーワードアドレスレジスタに格納し、
    前記第1のエラーの検出に応答して、前記第1のエラーが発生したキャッシュラインのカラムアドレスをエラーカラムアドレスレジスタに格納し、
    前記複数のキャッシュラインのいずれかに発生した第2のエラーを検出し、
    前記第2のエラーの検出に応答し、アクセス対象のキャッシュラインのウェイ識別情報を前記エラーウェイ識別情報と比較した第1の結果と、前記アクセス対象のキャッシュラインのワードアドレスを前記エラーワードアドレスと比較した第2の結果と、前記アクセス対象のキャッシュラインのカラムアドレスを前記エラーカラムアドレスと比較した第3の結果とに応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する
    各段階を含むことを特徴とする演算処理装置の制御方法。
JP2012062897A 2012-03-19 2012-03-19 演算処理装置及び演算処理装置の制御方法 Pending JP2013196393A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012062897A JP2013196393A (ja) 2012-03-19 2012-03-19 演算処理装置及び演算処理装置の制御方法
US13/736,238 US8799727B2 (en) 2012-03-19 2013-01-08 Arithmetic processing apparatus and method of controlling arithmetic processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012062897A JP2013196393A (ja) 2012-03-19 2012-03-19 演算処理装置及び演算処理装置の制御方法

Publications (1)

Publication Number Publication Date
JP2013196393A true JP2013196393A (ja) 2013-09-30

Family

ID=49158853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012062897A Pending JP2013196393A (ja) 2012-03-19 2012-03-19 演算処理装置及び演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US8799727B2 (ja)
JP (1) JP2013196393A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018163539A (ja) * 2017-03-27 2018-10-18 日本電気株式会社 自己診断方法および自己診断プログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914708B2 (en) 2012-06-15 2014-12-16 International Business Machines Corporation Bad wordline/array detection in memory
GB2528901B (en) * 2014-08-04 2017-02-08 Ibm Uncorrectable memory errors in pipelined CPUs
US9535787B2 (en) * 2015-02-12 2017-01-03 International Business Machines Corporation Dynamic cache row fail accumulation due to catastrophic failure
US9910728B2 (en) 2015-12-23 2018-03-06 Intel Corporation Method and apparatus for partial cache line sparing
KR20200081045A (ko) * 2018-12-27 2020-07-07 삼성전자주식회사 3차원 적층 메모리 장치 및 그 동작 방법
US11720444B1 (en) * 2021-12-10 2023-08-08 Amazon Technologies, Inc. Increasing of cache reliability lifetime through dynamic invalidation and deactivation of problematic cache lines
US11868204B1 (en) * 2021-12-10 2024-01-09 Amazon Technologies, Inc. Cache memory error analysis and management thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
WO2007097026A1 (ja) 2006-02-27 2007-08-30 Fujitsu Limited キャッシュ制御装置およびキャッシュ制御プログラム
US7890836B2 (en) * 2006-12-14 2011-02-15 Intel Corporation Method and apparatus of cache assisted error detection and correction in memory
JP5202130B2 (ja) * 2008-06-24 2013-06-05 株式会社東芝 キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
JP2011008491A (ja) 2009-06-25 2011-01-13 Toshiba Corp プロセッサシステム
US8788891B2 (en) * 2012-06-14 2014-07-22 International Business Machines Corporation Bitline deletion

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018163539A (ja) * 2017-03-27 2018-10-18 日本電気株式会社 自己診断方法および自己診断プログラム

Also Published As

Publication number Publication date
US20130246868A1 (en) 2013-09-19
US8799727B2 (en) 2014-08-05

Similar Documents

Publication Publication Date Title
US10884940B2 (en) Method and apparatus for using compression to improve performance of low voltage caches
JP2013196393A (ja) 演算処理装置及び演算処理装置の制御方法
US8291168B2 (en) Disabling cache portions during low voltage operations
US7069494B2 (en) Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
US6006311A (en) Dynamic updating of repair mask used for cache defect avoidance
US7987407B2 (en) Handling of hard errors in a cache of a data processing apparatus
US7272773B2 (en) Cache directory array recovery mechanism to support special ECC stuck bit matrix
US6480975B1 (en) ECC mechanism for set associative cache array
US20080181035A1 (en) Method and system for a dynamically repairable memory
JP5202130B2 (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
US6023746A (en) Dual associative-cache directories allowing simultaneous read operation using two buses with multiplexors, address tags, memory block control signals, single clock cycle operation and error correction
JP2012103826A (ja) キャッシュメモリシステム
US9042191B2 (en) Self-repairing memory
US9424195B2 (en) Dynamic remapping of cache lines
US9081719B2 (en) Selective memory scrubbing based on data type
US10528473B2 (en) Disabling cache portions during low voltage operations
US6085288A (en) Dual cache directories with respective queue independently executing its content and allowing staggered write operations
US5883904A (en) Method for recoverability via redundant cache arrays
US20200081771A1 (en) Bit Error Protection in Cache Memories
US5943686A (en) Multiple cache directories for non-arbitration concurrent accessing of a cache memory
Ganapathy et al. Killi: Runtime fault classification to deploy low voltage caches without MBIST
US20080077824A1 (en) Storage of data in data stores having some faulty storage locations
US9141552B2 (en) Memory using voltage to improve reliability for certain data types
US9141451B2 (en) Memory having improved reliability for certain data types
JP2013061887A (ja) 故障位置判定回路、記憶装置、および情報処理装置