JP2012103826A - キャッシュメモリシステム - Google Patents
キャッシュメモリシステム Download PDFInfo
- Publication number
- JP2012103826A JP2012103826A JP2010250495A JP2010250495A JP2012103826A JP 2012103826 A JP2012103826 A JP 2012103826A JP 2010250495 A JP2010250495 A JP 2010250495A JP 2010250495 A JP2010250495 A JP 2010250495A JP 2012103826 A JP2012103826 A JP 2012103826A
- Authority
- JP
- Japan
- Prior art keywords
- error
- cache memory
- data
- cache
- memory system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1064—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】よりソフトエラーの影響を抑えることのできるキャッシュメモリシステムを提供する。
【解決手段】キャッシュメモリをライトスルー方式で動作させると共に、キャッシュミス発生時の動作を、キャッシュメモリに対応するデータが無い場合か、データがあってもエラーが発生している場合に行なうようにする。そして、キャッシュメモリに、以前にソフトエラーが発生したことを示すビットを立てておき、このビットが”1”のときに、再び、エラーが発生した場合には、ハードウェアのエラーが発生していると判断して、CPUに割り込みをかけるようにする。このビットは、ソフトエラーが発生すると考えられる頻度よりも十分短い時間間隔でリセットされるようにする
【選択図】図3A
【解決手段】キャッシュメモリをライトスルー方式で動作させると共に、キャッシュミス発生時の動作を、キャッシュメモリに対応するデータが無い場合か、データがあってもエラーが発生している場合に行なうようにする。そして、キャッシュメモリに、以前にソフトエラーが発生したことを示すビットを立てておき、このビットが”1”のときに、再び、エラーが発生した場合には、ハードウェアのエラーが発生していると判断して、CPUに割り込みをかけるようにする。このビットは、ソフトエラーが発生すると考えられる頻度よりも十分短い時間間隔でリセットされるようにする
【選択図】図3A
Description
以下の実施形態は、ソフトエラーによる影響を抑制することのできるキャッシュメモリシステムに関する。
近年の半導体技術の高度化に従い、半導体装置の配線等の構造が微細化する傾向がある。しかし、半導体装置の配線等の回路が微細化すると、外部から入ってくるα線や宇宙線(中性子線)によって回路の動作エラーが発生する可能性が高くなる。メモリについても、小型で大容量のメモリが製造されているが、回路の構造が微細なので、α線や宇宙線(中性子線)によって、格納されているデータにエラーを発生する場合がある。このようなエラーをソフトエラーという。ソフトエラーは、メインメモリ、キャッシュメモリ双方に生じうる。
キャッシュメモリについては、その書き込み方式として、ライトバック方式とライトスルー方式がある。動作速度性能はライトバック方式の方が良いが、ライトバック方式の方は制御が複雑であるということが知られている。しかし、ソフトエラーに対してはライトスルーの方が強いということが言える。理由は、ライトバックでは、キャッシュメモリに書いたデータ内容をメインメモリへ書き戻すタイミングが、長時間が経過した後であることが多々あり、その経過時間の間にメモリ内容であるデータの反転が生じ、書き戻す時にソフトエラーとして顕在化するためである。これに対し、ライトスルーでは、キャッシュにデータを書き込むと同時にメインメモリに書き込んでしまうため、長時間経過した内容を読み出す動作が少なくなるので、ソフトエラー率は低く見える。
よってキャッシュメモリの動作速度性能を少し犠牲にして、信頼性を上げるためにキャッシュメモリの方式をライトスルー方式にすることは有効である。
キャッシュメモリをライトスルー方式にした場合、キャッシュメモリとメインメモリのデータ内容はいつも同一であることが言える。このことを利用して、キャッシュメモリでエラーが発生した場合、キャッシュメモリのデータを捨て、そのエラーが発生したキャッシュのアドレスに相当するメインメモリのデータ内容を読み出し、CPUへデータを送ると共に、エラーが発生したキャッシュメモリのデータ内容を書き換えることで、正常な動作をさせることができる。
キャッシュメモリをライトスルー方式にした場合、キャッシュメモリとメインメモリのデータ内容はいつも同一であることが言える。このことを利用して、キャッシュメモリでエラーが発生した場合、キャッシュメモリのデータを捨て、そのエラーが発生したキャッシュのアドレスに相当するメインメモリのデータ内容を読み出し、CPUへデータを送ると共に、エラーが発生したキャッシュメモリのデータ内容を書き換えることで、正常な動作をさせることができる。
従来技術には、バッファメモリの一時的な誤り発生に対し、誤りを補正するものや、α線によるソフトウェアエラーとハードウェア的な不具合によるエラーとが複合して、修正可能ビット数を超えるエラーが発生することを防止するものや、ソフトエラーの蓄積を防止するものが存在する。
以下の実施形態では、よりソフトエラーの影響を抑えることのできるキャッシュメモリシステムを提供する。
以下の実施形態の一態様としてのキャッシュメモリシステムは、タグ部とデータ部からなるデータを格納するキャッシュメモリと、該タグ部とデータ部の双方についてエラー検出を行なうエラー検出部と、該キャッシュメモリをライトスルー方式で動作させると共に、タグ部のキャッシュヒット情報においてキャッシュヒットしたことを示す信号と、かつ、該エラー検出部におけるエラー検出においてエラーがなかった事を示す信号との論理積をとった結果の信号を、CPUへ送るべきキャッシュヒット情報とする制御部とを備え、エラーが発生した時もキャッシュミスヒットであったときと同様に、メインメモリから、エラーが発生したキャッシュメモリのデータに相当するアドレスのデータを読み出し、そのデータでエラーしたキャッシュメモリのデータを置き換える。
以下の実施形態によれば、よりソフトエラーの影響を抑えることのできるキャッシュメモリシステムが提供される。
本実施形態においては、キャッシュメモリをライトスルー方式で動作させると共に、キャッシュミス発生時の動作を、キャッシュメモリに、対応するデータが無い場合か、またはデータがあってもエラーが発生している場合に行なうようにする。そして、キャッシュメモリに、以前にソフトエラーが発生したことを示すビットを設けておき、このビットが”1”のときに、再びエラーが発生した場合には、ハードウェアのエラーが発生していると判断して、CPUに割り込みをかけるようにする。ハードウェアのエラーかの判断はまた、1度キャッシュメモリのエラーが発生するとセットされ、ソフトエラーが発生すると考えられる頻度よりも十分短い時間間隔でリセットされるようなレジスタを用意し、このレジスタがセットされている時に、またキャッシュメモリのエラーが発生した場合、ハードエラーであると判断し、CPUへ割り込みをかけるようにする。
以上のように、キャッシュメモリのデータにエラーがある場合もキャッシュミスしたときと同様に、メインメモリからデータを読み込んで、新しいデータをキャッシュメモリに書き戻すようにしたことにより、エラーの影響が拡散することを抑制することが出来る。
図1及び図2は、キャッシュメモリの動作を説明する図である。
通常、キャッシュメモリは1ライン(16~64Byte程度)を単位に分割され、1ラインにタグが付く。タグの内容は、その1ラインがメインメモリのどこに相当しているかというAddress情報とStatusを持つ。Statusはライトスルー方式ではValid(有効)とInvalid(無効)の2つの状態をとり、リセットしたときはInvalid、キャッシュに正しいデータが入ったときにはValidとなる。これに対し、ライトバック方式では、Invalid(無効)、Clean(キャッシュの内容とメインメモリの内容が同一)とDirty(キャッシュの内容が正しい/メインメモリの内容は古く使用できない)の3つの状態を取る。
通常、キャッシュメモリは1ライン(16~64Byte程度)を単位に分割され、1ラインにタグが付く。タグの内容は、その1ラインがメインメモリのどこに相当しているかというAddress情報とStatusを持つ。Statusはライトスルー方式ではValid(有効)とInvalid(無効)の2つの状態をとり、リセットしたときはInvalid、キャッシュに正しいデータが入ったときにはValidとなる。これに対し、ライトバック方式では、Invalid(無効)、Clean(キャッシュの内容とメインメモリの内容が同一)とDirty(キャッシュの内容が正しい/メインメモリの内容は古く使用できない)の3つの状態を取る。
CPUからのデータライトが発生したとき、ライトスルー方式では、ライトアドレスがキャッシュにヒットする場合は、ライトデータをメインメモリと同時にキャッシュメモリのデータ部にも書き込む。キャッシュミスの場合は、キャッシュメモリは無視して、メインメモリにのみ書き込む。
ライトバック方式では、ライトが発生してもキャッシュにヒットする場合は、キャッシュにしか書き込まない。当然メインメモリとキャッシュメモリのデータの整合性がとれない状態となる。この状態をタグにDirty状態として記憶しておく。ミスヒットの場合はリフィル(メインメモリから1ライン分のデータを読み込む)を行った後、キャッシュメモリに読み込んだデータを書き込む(この時もDirty状態になる)。
図1は、CPUからのデータの書き込み、読み出し動作を行なう構成のブロック構成図である。
CPU10から、キャッシュコントローラ11B、キャッシュメモリ11AにEnable信号と共に、Read/Write信号と、Read/Writeを行なうアドレスを示すAddress信号が入力される。キャッシュメモリ11Aは、C-Address信号で示されるアドレスに対応するデータが内部に存在するか否かを確認し、存在する場合には、CacheHit信号を”1”にし、存在しない場合には、CacheHit信号を”0”にしてキャッシュコントローラ11B に出力する。キャッシュヒットした場合には、キャッシュメモリ11A は、Read/Write信号に従って、指示されたアドレスに対し、データの書き込み、あるいは、データの読み出しを行なう。また、キャッシュコントローラ11Bは、ライトバック方式ではミスヒット場合リフィルが必要となるが、この場合キャッシュコントローラ11Bはメモリコントローラへキャッシュ1ライン分をメインメモリからデータを読み出すようメモリコントローラ12へ指示を出す。メモリコントローラ12は、メインメモリ13へのアクセスを制御する回路である。
CPU10から、キャッシュコントローラ11B、キャッシュメモリ11AにEnable信号と共に、Read/Write信号と、Read/Writeを行なうアドレスを示すAddress信号が入力される。キャッシュメモリ11Aは、C-Address信号で示されるアドレスに対応するデータが内部に存在するか否かを確認し、存在する場合には、CacheHit信号を”1”にし、存在しない場合には、CacheHit信号を”0”にしてキャッシュコントローラ11B に出力する。キャッシュヒットした場合には、キャッシュメモリ11A は、Read/Write信号に従って、指示されたアドレスに対し、データの書き込み、あるいは、データの読み出しを行なう。また、キャッシュコントローラ11Bは、ライトバック方式ではミスヒット場合リフィルが必要となるが、この場合キャッシュコントローラ11Bはメモリコントローラへキャッシュ1ライン分をメインメモリからデータを読み出すようメモリコントローラ12へ指示を出す。メモリコントローラ12は、メインメモリ13へのアクセスを制御する回路である。
CPU10からの、Enable信号と、Read/Write信号と、Address信号は、メモリコントローラ12を介して、メインメモリ13に入力される。データ読み出し時に、キャッシュメモリ11Aにおいて、ミスヒットすると、キャッシュコントローラ11Bは、メインメモリ13から、指定されたアドレスのデータを読み出すようメモリコントローラ12へ読み出し命令を発行する。読み出されたデータは、キャッシュメモリ11Aに格納される。
また、ライトスルー方式でデータの書き込みを行なう場合には、ミスヒットした場合は、キャッシュメモリ11Aには何もしないで、メインメモリ13にのみデータが書き込まれる。ヒットした場合には、キャッシュメモリ11Aとメインメモリ13の両方にデータが書き込まれる。
また、ライトスルー方式でデータの書き込みを行なう場合には、ミスヒットした場合は、キャッシュメモリ11Aには何もしないで、メインメモリ13にのみデータが書き込まれる。ヒットした場合には、キャッシュメモリ11Aとメインメモリ13の両方にデータが書き込まれる。
図2は、ライトバック方式とライトスルー方式の動作を説明する信号図である。
各信号名の前にCがあるのはキャッシュメモリへの信号であり、Mがつくのはメインメモリへの信号である。
各信号名の前にCがあるのはキャッシュメモリへの信号であり、Mがつくのはメインメモリへの信号である。
図2(a)は、ライトバック方式において、キャッシュメモリにヒットした場合の書き込み動作を示す信号図である。キャッシュメモリへAddress信号の印加と同時にC-Enable信号が入力されると、キャッシュ内部のTagが読みだされTagのデータとAddressの上位部が一致すると、キャッシュメモリにヒットしたことを示すHit信号が”1”になる。キャッシュにヒットすると、当該Addressに対応したキャッシュの1ワードへCPUからのデータ:C-Data(write)が書き込み信号:C-Read/WriteをLowにすることで、書き込まれる。また、この図では図示していないが、キャッシュメモリ11BのTAGのStatusはDirtyとなる。
図2(b)は、ライトバック方式において、キャッシュメモリにミスヒットした場合の動作を示す信号図である。C-Enable信号がイネーブルになっても、キャッシュメモリにミスヒットしているので、Hit信号は”0”のままである。ミスヒットするとキャッシュコントローラはAddress信号で示されるアドレスを用いて、メインメモリから1ライン分のデータを読み出すようメモリコントローラへ指示を出す(図示せず)。このとき当該キャッシュラインの既に格納されているデータあり、そのTagのStatusがDirtyである場合は、このデータを該当するメインメモリに書き戻すことが必要であるが、このことは本発明とは関係がないので図示していない。メインメモリから読み出したデータは、該当するキャッシュメモリに書き込まれる。再度同一アドレスでキャッシュに書き込み命令が発せられ、キャッシュメモリには、CPUからのデータが格納される。
図2(c)は、ライトスルー方式における動作を説明する信号図である。最初に、C-Enable信号がイネーブルになる。C-Read/Write信号が書き込みを指示し、Address信号が出力される。Address信号の示すアドレスでTag部を読み出し、ヒットすると、キャッシュメモリにデータを書き込み、続いて、メインメモリに同じデータを書き込む。キャッシュメモリにミスヒットした場合には、キャッシュメモリには何もしないで、メインメモリのみにデータを書き込む。キャッシュメモリにデータがある場合は、キャッシュメモリのデータとメインメモリの対応するデータの内容が同じ内容となる。
図3Aは、本実施形態のキャッシュメモリシステムを示す図である。
本実施形態では図3Aに示すように、CPUからのアドレスがキャッシュコントローラに取り込まれ、その一部を使用して、キャッシュメモリ11からタグ部が読み出され、タグのステータスが無効な時は比較器と両パリティチェック回路はディセーブルにされその出力は”0”となる。有効(Valid)ならその内容と、CPUからの上位アドレスとが比較器20において比較され、等しい場合ヒットとなる。また、データ部及びタグ部から読み出された内容に対しては、タグパリティチェック部21及びパリティチェック出力部22においてパリティチェックを行い、エラーが無ければ、この内容は有効とされCPUへ送られる。タグ部のデータが不一致のとき、あるいは、パリティエラーが発生した場合(図3B参照)は、このデータは無効となる。データが無効となる、つまりパリティエラーが発生した場合も通常のミスヒットと同様にメインメモリからの読み出しが行われ、そのデータがCPUへ送られると共に、キャッシュのデータ部へも読み出されたデータが書き込まれ、タグ部の内容も新たなアドレスに書き換えられる。なおパリティエラーによるタグの書き換えである場合は同一ラインのSEビット(後述)へ“1”を書き込んでおく。CPUからキャッシュを含むメモリへデータを書き込む場合、タグのステータスが有効でありタグ部の内容と該当するアドレスが一致したとしてもキャッシュでパリティエラーが発生すれば、ミスヒットと処理され、CPUからのデータはメインメモリにのみ書き込まれ、この時このタグのステータスは無効:Invalidに変更される。パリティエラーが起きなければCPUからのデータに対しパリティビットがパリティ生成回路35で生成されCPUからのデータはパリティビットと共にキャッシュのデータ部へ書き込まれる。この時もライトスル―方式であるのでメインメモリへの書き込みも行われる。
本実施形態では図3Aに示すように、CPUからのアドレスがキャッシュコントローラに取り込まれ、その一部を使用して、キャッシュメモリ11からタグ部が読み出され、タグのステータスが無効な時は比較器と両パリティチェック回路はディセーブルにされその出力は”0”となる。有効(Valid)ならその内容と、CPUからの上位アドレスとが比較器20において比較され、等しい場合ヒットとなる。また、データ部及びタグ部から読み出された内容に対しては、タグパリティチェック部21及びパリティチェック出力部22においてパリティチェックを行い、エラーが無ければ、この内容は有効とされCPUへ送られる。タグ部のデータが不一致のとき、あるいは、パリティエラーが発生した場合(図3B参照)は、このデータは無効となる。データが無効となる、つまりパリティエラーが発生した場合も通常のミスヒットと同様にメインメモリからの読み出しが行われ、そのデータがCPUへ送られると共に、キャッシュのデータ部へも読み出されたデータが書き込まれ、タグ部の内容も新たなアドレスに書き換えられる。なおパリティエラーによるタグの書き換えである場合は同一ラインのSEビット(後述)へ“1”を書き込んでおく。CPUからキャッシュを含むメモリへデータを書き込む場合、タグのステータスが有効でありタグ部の内容と該当するアドレスが一致したとしてもキャッシュでパリティエラーが発生すれば、ミスヒットと処理され、CPUからのデータはメインメモリにのみ書き込まれ、この時このタグのステータスは無効:Invalidに変更される。パリティエラーが起きなければCPUからのデータに対しパリティビットがパリティ生成回路35で生成されCPUからのデータはパリティビットと共にキャッシュのデータ部へ書き込まれる。この時もライトスル―方式であるのでメインメモリへの書き込みも行われる。
CPUがメモリ読み出し時、キャッシュがミスヒットするあるいはパリティエラーが発生する(図3B参照)と該当するアドレスのメインメモリから読み出しが行われ、その内容に対してパリティ生成回路PG(35)によりパリティビットが生成され、キャッシュのデータ部へメインメモリから読み出した内容と共に書き込まれる。またタグ部に対しても該当するアドレスの1部に対しパリティ生成回路PG(36)によってパリティビットが生成されキャッシュのタグ部への書き込みが行われる。
論理積回路23には、比較器20の出力であるヒット信号と、タグパリティチェック部21とパリティチェック出力部22のパリティチェック結果の信号の論理反転した信号が入力される。これにより、論理積回路23の出力は、キャッシュヒットし、且つ、2つのパリティチェックにおいてエラーが無かった場合には、”1”(有効)となり、キャッシュヒットし、且つ、パリティエラーがあった場合には、”0”(無効)となり、キャッシュミスした場合にも、”0”(無効)となる。データ出力部26は、論理積回路23の出力が有効の場合にのみキャッシュメモリ11のデータ部からのデータを出力する。また、タグパリティチェック部21のパリティチェック結果の信号と、パリティチェック出力部22のパリティチェック結果の信号は、論理和回路24に入力される。論理和回路24の出力は、論理積回路25に入力される。また、SEビット(後述)の値も、論理積回路25に入力される。これにより、2つのパリティチェックの結果のいずれか1つ以上にエラーが発生し、かつ、SEビット(後述)が”1”の場合に、CPUへの割り込みをかける割り込み信号が生成される。この様に非常に簡単な回路の追加(エラーの発生時をキャッシュミスとして出力する回路の追加)で、かつソフトウェアの追加をすることなくキャッシュの品質を向上することができる。すなわち、パリティエラーの発生時もキャッシュミスと同様にメインメモリから該当するアドレスのデータ読み込んでキャッシュのデータ上書きしかつ、タグの内容も更新することで、エラーが消去されるようになる。また、パリティエラーがハードエラーであったかソフトエラーであったかの判定回路を設けるため例えば、キャッシュメモリ11のエントリに1ビット(SEビット:ソフトエラービット)を追加し、1度パリティエラーが発生したら、そのビットを“1”にしておき、また同じアドレスを読んだときにパリティエラーが発生し、かつ、SEビットが”1“の場合はハードエラーと判断する(これはソフトエラーでは、エラー発生箇所がランダムであり同一アドレスでソフトエラーが発生することは非常にまれであることを利用している)。
図4Aは(図4Aにおいて、図3Aと同じ構成要素には同じ参照符号を付し、説明を省略する。またタグのステータスビットも省略)図3AにおけるSEビットが目的としているハードエラーかソフトエラーかの判定方式を他の方式で実施した例である。JK-FFは1度パリティエラーが発生するとその値は“1”に設定される。ダウンカウンタはその値が0になるとJK-FFをリセットする信号(=0)をアクティブにすると同時にダウンカウンタ自身の値をプリセット値に設定する。このJK-FFが”1“の状態でパリティエラーが発生すると、JK-FFの出力とP-エラー信号共に”1“になり、それらは論理積回路で論理積がとられ、割り込み信号がアクティブになる。つまりこの割り込み信号はダウンカウンタが=0を発生する周期以内に2度のパリティエラーが発生したらハードエラーと判定するように動作する(これもソフトエラーの特徴であるソフトエラー発生頻度が非常にまれであり、連続してエラーが発生する確率は非常に小さいことを利用している。ダウンカウンタが0になるまでの時間は、ソフトエラーが発生する時間間隔の1/10程度とする。例えば、ソフトエラーが1年に1度発生する場合には、上記時間間隔は、1ヶ月程度とする。こうすることでパリティエラーが1カ月に2度以上発生した場合には、ハードエラーであると判定することが出来る。
図4Bは図4Aの破線で囲んだ部分のタイミング図である。JK-FFが“1”の状態でキャッシュメモリのデータ部あるいはタグ部でパリティエラー(P-エラー)が発生すると、Pエラーの立下り部分をとらえてJK-FFの内容が”1”になる。ダウンカウンタは0になると同時にプリセット値に戻るダウンカウンタである。ダウンカウンタの値が0になると(=0がHighレベル)JK-FFは“0”になる。JK-FFが“1”の状態つまり1度パリティエラーが発生した状態でまたパリティエラーが発生すると、JK-FFの出力との論理積とられているので、割り込み信号がアクティブになる。
この割り込み信号をソフトエラーかハードエラーかの判定に用いてソフトエラーと判定された場合つまり割り込み信号なしでは、メインメモリからデータを読み込んで、キャッシュメモリに書き込むという処理を行うようにする。もし、割り込み信号がアクティブになり、ハードエラーが発生したと判断した場合は、実際にCPUへ割込みをかける、といった事象を発生させ、CPUのプログラムにその処理をゆだねることもできる。もちろんハードエラーと判断されても、メインメモリのデータを読み出して処理の実行を続けることも可能である。
なお、図3Aの例では、キャッシュメモリは、ダイレクトマップ方式であるが、セットアソシアティブ方式にも適用できる。
なお、図3Aの例では、キャッシュメモリは、ダイレクトマップ方式であるが、セットアソシアティブ方式にも適用できる。
図5に、2ウェイセットアソシエイティブ方式の場合の構成図を示す。この図でもタグのステータスビットは省略されている。
キャッシュメモリ11aは、2つのウェイからなっている。これに伴って、CPUアドレスの上位とタグ部とを比較し、ヒット信号を生成する2つの比較器20−1、20−2が設けられている。比較器20−1、20−2は、キャッシュメモリ11aにCPUアドレスの示すデータが存在するか否かを示す信号を生成するものであるが、この信号と、各ウェイのタグ部のエラーを検出するタグパリティチェック部21−1、21−2からのパリティチェックの結果と、データ部のエラーを検出するパリティチェック出力部22−1、22−2からのパリティチェック結果の論理反転した信号が論理積回路30−1、30−2に入力されている。論理積回路30−1、30−2の出力は、論理和回路31において、論理和がとられ、キャッシュヒット信号として出力される。したがって、CPUアドレスに対応するデータが存在するウェイにおいて、エラーがタグ部にもデータ部にも無い場合に、キャッシュヒット信号が生成される。これは、単に、対応するエントリがキャッシュメモリ11aにあるのみではなく、エラーが発生していない場合に、キャッシュヒットと定義して、CPUにキャッシュメモリ11aにアクセスさせるものである。従って、対応するエントリがキャッシュメモリ11aに無い場合のみならず、エラーが発生した場合も、キャッシュミスが起きた場合と同じ動作をするようになる。
論理積回路30−1、30−2の出力はウェイ選択部32にも入力され、出力が”1”となっているウェイを選択させる。このときにも、単に対応するエントリがキャッシュメモリ11aにあるのみではなく、更にエラーが存在しないウェイを選択させるという構造となっている。
また、タグパリティチェック部21−1、21−2からのチェック結果と、パリティチェック出力部22−1、22−2からのチェック結果の論理を反転された信号が、ウェイごとに、論理積回路33−1、33−2に入力され、論理積がとられる。論理積回路33−1、33−2の出力の論理を反転した信号がそれぞれ、論理積回路34−1、34−2に入力される。論理積回路34−1、34−2には、各ウェイのSEビットも入力され、ウェイごとに論理積がとられる。論理積回路34−1、34−2の出力は、論理和回路35に入力され、論理和が取られ、結果がCPUへの割り込み信号として出力される。この割り込み信号は、いずれか1つ以上のウェイにおいて、タグ部あるいはデータ部またはその両方にエラーがあり、かつ、SEビットが”1”であったエントリがある場合に、ハードエラーが発生したとして、生成される。
Nウェイセットアソシエイティブ方式のキャッシュメモリについても、上記と同様に回路を構成できる。すなわち、ウェイごとに、CPUアドレスの上位とタグ部を比較する比較器を設け、比較器の出力と、当該ウェイのタグ部とデータ部のパリティチェック結果の論理反転信号との論理積をとり、ウェイ選択信号とする。また、ウェイ選択信号の論理和をキャッシュヒット信号とする。また、いずれか1つ以上のウェイにおいて、タグ部あるいはデータ部またはその両方にエラーが存在し、かつ、SEビットが”1”となっている場合に、CPUへの割り込み信号を生成するように構成する。
図6は、パリティチェックを行なうための回路の図である。また、図7は、エラー検出回路としてのECC回路の回路図である。
図6のパリティチェックのための回路は、タグパリティチェック部及びパリティチェック出力部のいずれにも使用可能である。
図6のパリティチェックのための回路は、タグパリティチェック部及びパリティチェック出力部のいずれにも使用可能である。
図6においては、キャッシュメモリに、バイトパリティを採用している。バイトパリティは、1バイト毎にパリティビットを1ビット、つまり、8バイトが1ワードだとすると8ビットのパリティビットを持つ構成である。この構成では、1バイトごとにパリティチェックを行なう。複数のパリティチェックは、回路で並列に行い、全てのパリティチェック結果の論理和を全体のデータのパリティチェック結果として用いる。8バイトからなる64ビットのデータは、パリティビットを除いたデータのみを読み出して用いる。
図6のような構成では、この8ビットのパリティビットをECCの冗長ビットに置き換えることで品質を上げることができる。図7が、8ビットのECCの冗長ビットを用いた場合の構成図である。64ビットのデータと8ビットのECC冗長ビットを読み込んで、1ビットのエラーなら、エラー訂正して出力し、2ビット以上のエラーなら、訂正不能エラーとして、エラー信号を出力する。しかし、この方式では、ECCのチェック/訂正に余分な時間が必要となる。ソフトエラー率が大きい場合、品質を重視して、処理速度の性能は下がるが、図7のようなECCを使用するような信頼性の上がる方式を採用可能である。
図8Aは、図3Aにおいて、図7のECC回路を追加で使用する構成図である。
図8Aにおいて、図3Aと同じ構成要素には同じ参照符号を付し、説明を省略する。
エラー検出方式をECCにするかパリティにするかはECC/パリティ選択部40で設定できる。なおこの図ではキャッシュメモリへの書き込み部が省略されているが、ECC/パリティ選択部40によりECCが選択された場合には図7のECCビットへは、CPUから入力された64ビットのデータに対応したデータがECCビット生成回路(図示せず)により、生成され書き込まれる。ECC/パリティ選択部40によりパリティが選択された場合には図6のP(パリティ)ビットへは、CPUから入力された64ビットのデータの各バイト対応したパリティデータがパリティビット生成回路(図示せず)により、生成され書き込まれる。ECC/パリティ選択部40は、ECCを選択する場合は図7のECC回路41の訂正不能エラー信号を論理和回路45に入力させ、パリティを選択する場合は、図6に構成が示されたパリティチェック出力部22のパリティエラー信号を論理和回路45に入力させる。論理和回路45の出力はキャッシュメモリのSEビットと論理積が46によってとられ、CPUへの割り込み信号となる。
図8Aにおいて、図3Aと同じ構成要素には同じ参照符号を付し、説明を省略する。
エラー検出方式をECCにするかパリティにするかはECC/パリティ選択部40で設定できる。なおこの図ではキャッシュメモリへの書き込み部が省略されているが、ECC/パリティ選択部40によりECCが選択された場合には図7のECCビットへは、CPUから入力された64ビットのデータに対応したデータがECCビット生成回路(図示せず)により、生成され書き込まれる。ECC/パリティ選択部40によりパリティが選択された場合には図6のP(パリティ)ビットへは、CPUから入力された64ビットのデータの各バイト対応したパリティデータがパリティビット生成回路(図示せず)により、生成され書き込まれる。ECC/パリティ選択部40は、ECCを選択する場合は図7のECC回路41の訂正不能エラー信号を論理和回路45に入力させ、パリティを選択する場合は、図6に構成が示されたパリティチェック出力部22のパリティエラー信号を論理和回路45に入力させる。論理和回路45の出力はキャッシュメモリのSEビットと論理積が46によってとられ、CPUへの割り込み信号となる。
図8Aにおいて、キャッシュメモリ11のデータ部のデータは、パリティチェック出力部22と、ECC回路41に入力される。データ部からのデータとECC回路41でエラー訂正されたデータは、マルチプレクサ42に入力される。マルチプレクサ42は、ECC/パリティ選択部40の設定にしたがって、いずれかのデータをデータ出力部26に出力する。パリティチェック出力部22のパリティチェック結果と、ECC/パリティ選択部40の設定信号は、論理積回路43に入力される。また、ECC回路41の訂正不能エラー信号と、ECC/パリティ選択部40の設定信号の論理反転信号は、論理積回路44に入力される。論理積回路43と44に、ECC/パリティ選択部40の設定信号のうち、たがいに論理が反転している信号が入力されることにより、いずれか一方の論理積回路の出力が選択される。論理積回路43、44の出力は、論理和回路45に入力される。すなわち、ECC/パリティ選択部40からの出力が”0”の場合には、論理積回路44の入力に、”0”の論理反転である”1”が入力され、論理積回路44の側が選択される。一方、ECC/パリティ選択部40からの出力が”1”の場合には、論理積回路43の入力に、”1”が入力され、論理積回路43の側が選択される。また、論理和回路45には、タグパリティチェック部21の出力も入力され、論理和が取られ、CPUへの割り込み信号として出力される。これにより、データ部に、パリティチェックでエラーが発見されるか、ECCの検査で訂正不能エラーが発見されるか、タグにパリティエラーが検出されると、タグ部の情報とCPUからのアドレスが一致してもこのエラー信号がLowとなって論理積が47で取られるためヒットとはならずミスヒットとして、キャッシュコントローラにより処理される。また45のエラー出力はキャッシュメモリのSEビット、これは図3Aの実施例で説明したものと同じものと論理積が45によって取られ、SEビットも1であれば、その出力は1となってCPUへの割り込み信号が有効になり、ハードエラーとしての処理が行われる。ここで、ECC処理では、回路的な遅延が大きいことを注意されたい。ソフトエラー率の予測の結果によって、動作速度の性能は下がるが、信頼性の上がる方式(ECC処理)を選択するようにする。すなわち、ソフトエラー率の予測結果が、製造者が想定する以上の高い率を示す場合には、マルチプレクサをECC回路からの訂正後データを選択するように切り替える。ソフトエラー率の予測結果が、製造者が想定する範囲内である場合には、データをそのまま出力すると共に、パリティチェック結果を出力するようにする。
図9及び図10は、パリティチェックとECC訂正のいずれにも適用できるエラーチェックのための構成を説明する図である。
図9は、64ビットのデータに、1バイトごとに1ビットのパリティがついた構成であり、パリティチェックのみを行なう構成である。
図10では、図9に対しECCビットが付加されている。ECCは最も一般的なSECDED:1bitエラー訂正/2bitエラー検出方式を想定している。付加されたECCビットを用いて、エラー訂正も実行できるようにしておき、パリティチェックとECCが同時に可能になっている。この回路を用いた実施例が図8Bである。この実施例では通常のパリティエラーも発生しない状態では、マルチプレクサMPXはキャッシュからのデータをそのまま出力し、パリティエラーが発生すると、マルチプレクサMPXはECC回路からの出力を選択するようになっている。そして、2bitエラーつまり訂正不能エラーが発生すると、キャッシュミスと扱われ、今まで説明した本発明例と同様な処理を行う。この回路ではパリティエラーもない通常の状態では、より高速なパリティチェックのみの処理が行われれ、パリティエラーが発生した時は高信頼性となるECCが有効になる方式となり高速性と高信頼性を兼ね備えている。
図9は、64ビットのデータに、1バイトごとに1ビットのパリティがついた構成であり、パリティチェックのみを行なう構成である。
図10では、図9に対しECCビットが付加されている。ECCは最も一般的なSECDED:1bitエラー訂正/2bitエラー検出方式を想定している。付加されたECCビットを用いて、エラー訂正も実行できるようにしておき、パリティチェックとECCが同時に可能になっている。この回路を用いた実施例が図8Bである。この実施例では通常のパリティエラーも発生しない状態では、マルチプレクサMPXはキャッシュからのデータをそのまま出力し、パリティエラーが発生すると、マルチプレクサMPXはECC回路からの出力を選択するようになっている。そして、2bitエラーつまり訂正不能エラーが発生すると、キャッシュミスと扱われ、今まで説明した本発明例と同様な処理を行う。この回路ではパリティエラーもない通常の状態では、より高速なパリティチェックのみの処理が行われれ、パリティエラーが発生した時は高信頼性となるECCが有効になる方式となり高速性と高信頼性を兼ね備えている。
図11〜図13は、他の本実施形態の動作の詳細を説明する図である。
本実施形態では2ウェイを想定したキャッシュメモリ構成となっている。図11において、図5と同じ構成要素には同じ参照符号を付する。
本実施形態では2ウェイを想定したキャッシュメモリ構成となっている。図11において、図5と同じ構成要素には同じ参照符号を付する。
図11の本実施形態では高信頼性動作を行なうモードと通常動作モードのいずれかの動作を設定できるように構成されている。モードの設定は、ウェイ選択部32に対してなされる。モードの設定値は、レジスタ52に書き込まれ、これが、ウェイ選択部32に入力される。CPUは、レジスタ52へのモード設定値の書き込みアドレスをアドレスデコーダ50に出力する。アドレスデコーダ50は、アドレスをデコードして、論理積回路51に入力する。このアドレスは、レジスタ52のアドレスを示しており、デコードすることにより、レジスタ52への書き込みイネーブル信号となる。論理積回路51には、CPUからの書き込み信号も入力される。論理積回路51にイネーブル信号と、書き込み信号が入力され、論理積がとられて出力される。論理積回路51の出力は、レジスタ52に入力され、CPUからのデータ(モードの設定値)がレジスタ52にラッチされる。
通常動作モード(Mode0)では、CPUからのアドレスの一部が両ウェイのタグ部を読み出し、そのタグ部から読み出されたデータとCPUからのアドレスの上位部と比較される。もし、どちらかのタグ部で、値が一致すればキャッシュヒットとなり、ヒットしたウェイのデータ部がウェイ選択部32を介してCPUへ読み出される。通常動作モードでは、ウェイ0とウェイ1には違う内容が記憶されており、キャッシュのヒット率が上がるように使われている。また、通常動作モードでも、図4Aで示したパリティチェック方式が用いられ、パリティエラーが発生した場合はミスヒットとして処理することも可能である。本実施形態の高信頼性モード(Mode1)では、さらに品質を上げるため、2つのウェイに同一内容を記憶させておく。エラーが無い場合は、両方のデータを読み出すが、一方のウェイでパリティエラーが発生しても、パリティエラーの発生していない他方のウェイをCPUが読み出すことで、パリティエラーを回避して品質をあげることができる。このように、2つのウェイに同一内容を記憶させておく場合には、キャッシュメモリのウェイ数は、2の倍数とする必要がある。これによれば、2つのウェイを1ペアとして、同一内容のデータを記憶させておくことができる。なお、同一内容を記憶させておくウェイ数は2つとは限定されず、任意の数Mでよいが、キャッシュメモリの全ウェイ数は、Mの倍数とする。
図12を参照して説明する。図12は、キャッシュメモリからのデータの読み出し動作のモードと信号値との関係を示す表である。図12の表の動作は、ウェイ選択部32によって実行される。
動作1〜6までは、通常の2ウェイセットアソシエイティブの動作である。動作1は両ウェイ共にミスヒットでキャッシュから読み出しはされない。動作2はウェイ0から正常に(パリティエラー無しに)読み出しがおこなわれたときである。動作3はウェイ0がヒットしたが、パリティエラーが発生したためにキャッシュからのデータはCPUに転送されない場合である。動作4はウェイ1がヒットし、正常に(パリティエラー無しに)読み出しがおこなわれたときである。動作5はウェイ1がヒットしたが、パリティエラーが発生したためにキャッシュからのデータはCPUに転送されない場合である。動作6は、両ウェイ共にヒットだが、これは通常動作では発生しない異常動作のためエラーとして扱われる。
動作7〜10は本実施形態(高信頼性)の動作だが、キャッシュメモリのタグ部・データ部ともエラーがなければ同じ内容が読み出される。動作7は、本実施形態におけるモードでの動作である。ウェイ0がヒットし、パリティエラーなしであるので、ウェイ0のデータがCPUへ転送される。動作8は、両ウェイがヒットし、ウェイ0にパリティエラーが発生し、ウェイ1にはパリティエラーなしであるので、ウェイ1のデータがCPUへ転送される。動作9は、ウェイ1のみヒットし、パリティエラーなしであるので、ウェイ1のデータがCPUへ転送される。動作10は、両ウェイ共にヒットしたが、両ウェイのデータともにパリティエラーが発生したので、キャッシュの内容はCPUへ転送されない。
また、本実施形態のキャッシュへの書き込み動作を図12の表を参照して説明する。
通常動作モード(Mode:0)では、2ウェイセットアソシエイティブキャッシュとして動作する。動作1〜7までは通常の動作である。動作1は、ウェイ0がヒットし、CPUからのデータをウェイ0に書き込む。動作2は、ウェイ1がヒットし、CPUからのデータをウェイ1に書き込む。動作3は、両ウェイともミスヒットしたが、ウェイ0の方はその内容がInvalid(無効)であったため、ウェイ0へCPUからのデータを書き込む。動作4は、両ウェイともミスヒットだが、ウェイ1の方はその内容がInvalid(無効)であったため、ウェイ1へCPUからのデータを書き込む。動作5は、両ウェイともミスヒットし、しかも両ウェイともその内容がValid(有効)である場合で、どちらかのウェイのデータをメインメモリに退避させ、その跡にデータを書き込む必要がある。どちらのWayを退避させるかを解決する方法としてLRU(Least Recently Used)方式が知られており、2ウェイなら簡単に実装可能である。すなわち、タグ部の1ビットをLRUビットとアサインし、CPUからのアクセスがヒットした場合、ウェイ0がヒットしたらLRUビットを1にし、ウェイ1がヒットしたらLRUビットは0にする。こうすることで、1番最後にヒットしたウェイとは逆の情報が書き込まれることになる。この方式を採用することで、動作5では、LRUが0なのでウェイ0へ書き込むが、動作6では、LRUが1なのでウェイ1への書き込みが行われる。動作7は、両ウェイともミスヒットでInvalidであるのでウェイ0への書き込みが行われる。
通常動作モード(Mode:0)では、2ウェイセットアソシエイティブキャッシュとして動作する。動作1〜7までは通常の動作である。動作1は、ウェイ0がヒットし、CPUからのデータをウェイ0に書き込む。動作2は、ウェイ1がヒットし、CPUからのデータをウェイ1に書き込む。動作3は、両ウェイともミスヒットしたが、ウェイ0の方はその内容がInvalid(無効)であったため、ウェイ0へCPUからのデータを書き込む。動作4は、両ウェイともミスヒットだが、ウェイ1の方はその内容がInvalid(無効)であったため、ウェイ1へCPUからのデータを書き込む。動作5は、両ウェイともミスヒットし、しかも両ウェイともその内容がValid(有効)である場合で、どちらかのウェイのデータをメインメモリに退避させ、その跡にデータを書き込む必要がある。どちらのWayを退避させるかを解決する方法としてLRU(Least Recently Used)方式が知られており、2ウェイなら簡単に実装可能である。すなわち、タグ部の1ビットをLRUビットとアサインし、CPUからのアクセスがヒットした場合、ウェイ0がヒットしたらLRUビットを1にし、ウェイ1がヒットしたらLRUビットは0にする。こうすることで、1番最後にヒットしたウェイとは逆の情報が書き込まれることになる。この方式を採用することで、動作5では、LRUが0なのでウェイ0へ書き込むが、動作6では、LRUが1なのでウェイ1への書き込みが行われる。動作7は、両ウェイともミスヒットでInvalidであるのでウェイ0への書き込みが行われる。
動作8~10は、本実施形態(高信頼性)のモードであり、Modeが1、つまり、両ウェイの内容が全く同じになるよう、Write時はいつも両ウェイへ書込みを行なう。ただし、動作9では、両ウェイがValidであるので、キャッシュの内容をメインメモリに退避させてから、両ウェイに書き込みを行なう。
以上の本実施形態では、α線や宇宙線(中性子線)によるソフトエラー対策として、キャッシュメモリの動作品質を上げることの出来るキャッシュメモリシステムを提供することが出来る。
10 CPU
11A キャッシュメモリ
11B キャッシュコントローラ
12 メモリコントローラ
13 メインメモリ
20、20−1、20−2 比較器
21、21−1、21−2 タグパリティチェック部
22、22−1、22−2 パリティチェック出力部
23、25、30−1、30−2、33−1、33−2、34−1、34−2、43、44、51 論理積回路
24、31、35、45 論理和回路
26 データ出力部
32 ウェイ選択部
40 ECC/パリティ選択部
41 ECC回路
42 マルチプレクサ
50 アドレスデコーダ
52 レジスタ
61 アドレスバッファ
62 データバッファ
63 タグアドレスバッファ
64 制御部
65,66 パリティビット生成器
11A キャッシュメモリ
11B キャッシュコントローラ
12 メモリコントローラ
13 メインメモリ
20、20−1、20−2 比較器
21、21−1、21−2 タグパリティチェック部
22、22−1、22−2 パリティチェック出力部
23、25、30−1、30−2、33−1、33−2、34−1、34−2、43、44、51 論理積回路
24、31、35、45 論理和回路
26 データ出力部
32 ウェイ選択部
40 ECC/パリティ選択部
41 ECC回路
42 マルチプレクサ
50 アドレスデコーダ
52 レジスタ
61 アドレスバッファ
62 データバッファ
63 タグアドレスバッファ
64 制御部
65,66 パリティビット生成器
Claims (11)
- タグ部とデータ部からなるデータを格納するキャッシュメモリと、
該タグ部とデータ部の双方についてエラー検出を行なうエラー検出部と、
該キャッシュメモリをライトスルー方式で動作させると共に、タグ部のキャッシュヒット情報においてキャッシュヒットしたことを示す信号と、かつ、該エラー検出部におけるエラー検出においてエラーがなかった事を示す信号との論理積をとった結果の信号を、CPUへ送るべきキャッシュヒット情報とする制御部とを備え、
エラーが発生した時もキャッシュミスヒットであったときと同様に、メインメモリから、エラーが発生したキャッシュメモリのデータに相当するアドレスのデータを読み出し、そのデータでエラーしたキャッシュメモリのデータを置き換えることを特徴とするキャッシュメモリシステム。 - 前記キャッシュメモリは、各データについて、以前にエラーが発生したときに”1”が設定されるソフトエラービットを備え、
前記制御部は、該ソフトエラービットが”1”に設定されているデータについて、前記エラー検出部においてエラーが検出された場合には、CPUへの割り込み信号を生成することを特徴とする請求項1に記載のキャッシュメモリシステム。 - 前記キャッシュメモリシステムは、以前にエラーが発生したときにセットされるレジスタを備え、該レジスタは定期的にリセットされることを特徴とし
前記制御部は、該レジスタがセットされているとき、前記エラー検出部においてエラーが検出された場合には、CPUへの割り込み信号を生成することを特徴とする請求項1に記載のキャッシュメモリシステム。 - 前記エラー検出部は、パリティチェック回路からなることを特徴とする請求項1に記載のキャッシュメモリシステム。
- 前記エラー検出部は、パリティチェック回路とECC回路とを備え、双方を切り換えて使用することを特徴とする請求項1に記載のキャッシュメモリシステム。
- 前記エラー検出部は、1ビットエラー訂正2ビットエラー検出のECC回路を備え、検出可の2ビットエラーが検出されたときエラーと判断することを特徴とする請求項1に記載のキャッシュメモリシステム。
- 前期キャッシュメモリに対し書き込み動作時にエラーが発生した場合には、前期タグ部のステータス状態を無効にすることを特徴とする請求項1に記載のキャッシュメモリシステム。
- 前記エラー検出部は、パリティチェック回路とECC回路とを備え、双方を同時に行うことを特徴とする請求項1に記載のキャッシュメモリシステム。
- 前記キャッシュメモリは、2Nウェイセットアソシエイティブ方式を採用し、
前記制御部は、1ペアのウェイに同一データを書き込ませる制御と、同時に2ウェイの読み出しを実行させ、もし片方のウェイでエラーが発生すれば、他方のウェイを有効にして読み出しアクセスさせる制御とを実行することを特徴とする請求項1に記載のキャッシュメモリシステム。 - 請求項1のキャッシュメモリシステムを備えた半導体装置。
- タグ部とデータ部からなるデータを格納するキャッシュメモリを備えたキャッシュメモリシステムの制御方法であって、
該タグ部とデータ部の双方についてエラー検出を行ない、
該キャッシュメモリをライトスルー方式で動作させると共に、タグ部のキャッシュヒット情報においてキャッシュヒットしたことを示す信号と、かつ、該エラー検出部におけるエラー検出においてエラーがなかった事を示す信号との論理積をとった結果の信号を、CPUへ送るべきキャッシュヒット情報とし、
エラーが発生した時もキャッシュミスヒットであったときと同様に、メインメモリから、エラーが発生したキャッシュメモリのデータに相当するアドレスのデータを読み出し、そのデータでエラーしたキャッシュメモリのデータを置き換える、
ことを特徴とするキャッシュメモリシステム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010250495A JP2012103826A (ja) | 2010-11-09 | 2010-11-09 | キャッシュメモリシステム |
KR1020110085922A KR101319670B1 (ko) | 2010-11-09 | 2011-08-26 | 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법 |
TW100130907A TW201224753A (en) | 2010-11-09 | 2011-08-29 | Cache memory system |
US13/223,996 US8589763B2 (en) | 2010-11-09 | 2011-09-01 | Cache memory system |
CN2011103042411A CN102541756A (zh) | 2010-11-09 | 2011-09-29 | 高速缓冲存储器系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010250495A JP2012103826A (ja) | 2010-11-09 | 2010-11-09 | キャッシュメモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012103826A true JP2012103826A (ja) | 2012-05-31 |
Family
ID=46020798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010250495A Pending JP2012103826A (ja) | 2010-11-09 | 2010-11-09 | キャッシュメモリシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US8589763B2 (ja) |
JP (1) | JP2012103826A (ja) |
KR (1) | KR101319670B1 (ja) |
CN (1) | CN102541756A (ja) |
TW (1) | TW201224753A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014010607A (ja) * | 2012-06-29 | 2014-01-20 | Nec Corp | 情報機器、データ保証システム、処理装置、データ保証方法およびプログラム |
WO2014097464A1 (ja) * | 2012-12-20 | 2014-06-26 | 富士通株式会社 | データ比較回路、及び、処理装置 |
WO2015034087A1 (ja) * | 2013-09-06 | 2015-03-12 | 株式会社 東芝 | メモリ制御回路およびキャッシュメモリ |
JP2018120413A (ja) * | 2017-01-25 | 2018-08-02 | Necプラットフォームズ株式会社 | 保守判断装置、保守判断方法及びプログラム |
JP2019513264A (ja) * | 2016-03-30 | 2019-05-23 | クアルコム,インコーポレイテッド | ダイナミックランダムアクセスメモリ(dram)キャッシュタグの空間効率的記憶の実現 |
JP2021506033A (ja) * | 2017-12-12 | 2021-02-18 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | キャッシュ制御を考慮したメモリコントローラ |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101703173B1 (ko) * | 2011-11-07 | 2017-02-07 | 삼성전자주식회사 | 데이터 캐시 컨트롤러, 이를 포함하는 장치들, 및 이의 동작 방법 |
CN103116484B (zh) * | 2012-12-31 | 2015-12-23 | 华为技术有限公司 | 指令处理方法及设备 |
US9176895B2 (en) | 2013-03-16 | 2015-11-03 | Intel Corporation | Increased error correction for cache memories through adaptive replacement policies |
US9329930B2 (en) | 2014-04-18 | 2016-05-03 | Qualcomm Incorporated | Cache memory error detection circuits for detecting bit flips in valid indicators in cache memory following invalidate operations, and related methods and processor-based systems |
JP6367704B2 (ja) * | 2014-12-25 | 2018-08-01 | 株式会社バイオス | 記憶制御システム及び記憶制御装置 |
US10474569B2 (en) | 2014-12-29 | 2019-11-12 | Toshiba Memory Corporation | Information processing device including nonvolatile cache memory and processor |
KR101629411B1 (ko) | 2015-02-03 | 2016-06-10 | 한국전자통신연구원 | 레벨0 캐시 제어 장치 및 방법 |
CN104750577B (zh) * | 2015-04-13 | 2017-09-29 | 中国人民解放军国防科学技术大学 | 面向片上大容量缓冲存储器的任意多位容错方法及装置 |
CN105335247B (zh) * | 2015-09-24 | 2018-04-20 | 中国航天科技集团公司第九研究院第七七一研究所 | 高可靠系统芯片中Cache的容错结构及其容错方法 |
CN105259150B (zh) * | 2015-11-02 | 2019-01-18 | 深圳市锦瑞生物科技有限公司 | 一种荧光分析仪定标系统 |
US9904593B2 (en) * | 2015-11-13 | 2018-02-27 | Taiwan Semiconductor Manufacturing Co., Ltd. | Memory device and correction method |
CN106710627B (zh) * | 2015-11-18 | 2019-11-26 | 凌阳科技股份有限公司 | 多晶胞芯片及其存储器装置 |
KR102515417B1 (ko) | 2016-03-02 | 2023-03-30 | 한국전자통신연구원 | 캐시 메모리 장치 및 그것의 동작 방법 |
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 |
US10067827B2 (en) * | 2016-06-29 | 2018-09-04 | Micron Technology, Inc. | Error correction code event detection |
KR102538679B1 (ko) * | 2018-04-06 | 2023-06-02 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10990463B2 (en) | 2018-03-27 | 2021-04-27 | Samsung Electronics Co., Ltd. | Semiconductor memory module and memory system including the same |
KR20200015999A (ko) * | 2018-08-06 | 2020-02-14 | 에스케이하이닉스 주식회사 | 예측 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05134938A (ja) * | 1991-11-12 | 1993-06-01 | Shikoku Nippon Denki Software Kk | メモリ制御装置 |
JPH06175934A (ja) * | 1992-12-01 | 1994-06-24 | Oki Electric Ind Co Ltd | 1ビットエラー処理方式 |
JPH10289164A (ja) * | 1997-04-16 | 1998-10-27 | Mitsubishi Electric Corp | メモリ制御方法およびメモリ制御装置 |
JP2005302027A (ja) * | 2004-04-07 | 2005-10-27 | Internatl Business Mach Corp <Ibm> | 自律的エラー回復方法、システム、キャッシュ、およびプログラム・ストレージ装置(メモリ装置のための自律的エラー回復のための方法、システム、およびプログラム) |
JP2008234074A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | キャッシュ装置 |
WO2010109631A1 (ja) * | 2009-03-26 | 2010-09-30 | 富士通株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS581899A (ja) | 1981-06-27 | 1983-01-07 | Toshiba Corp | バツフアメモリの誤り補正方式 |
JPS63278162A (ja) | 1987-05-09 | 1988-11-15 | Nec Corp | 情報処理装置におけるエラ−訂正装置 |
JPH02143352A (ja) | 1988-11-24 | 1990-06-01 | Nec Corp | メモリエラー検出修正方式 |
US5649090A (en) * | 1991-05-31 | 1997-07-15 | Bull Hn Information Systems Inc. | Fault tolerant multiprocessor computer system |
US5961655A (en) * | 1996-12-05 | 1999-10-05 | Hewlett-Packard Company | Opportunistic use of pre-corrected data to improve processor performance |
US5958072A (en) * | 1997-01-13 | 1999-09-28 | Hewlett-Packard Company | Computer-system processor-to-memory-bus interface having repeating-test-event generation hardware |
US6195729B1 (en) * | 1998-02-17 | 2001-02-27 | International Business Machines Corporation | Deallocation with cache update protocol (L2 evictions) |
US6163857A (en) * | 1998-04-30 | 2000-12-19 | International Business Machines Corporation | Computer system UE recovery logic |
US6625749B1 (en) * | 1999-12-21 | 2003-09-23 | Intel Corporation | Firmware mechanism for correcting soft errors |
GB2409301B (en) | 2003-12-18 | 2006-12-06 | Advanced Risc Mach Ltd | Error correction within a cache memory |
JP4201783B2 (ja) | 2005-08-04 | 2008-12-24 | 富士通マイクロエレクトロニクス株式会社 | キャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法 |
JP2010237739A (ja) * | 2009-03-30 | 2010-10-21 | Fujitsu Ltd | キャッシュ制御装置,情報処理装置およびキャッシュ制御プログラム |
KR101066519B1 (ko) * | 2009-06-11 | 2011-09-21 | 수원대학교산학협력단 | 캐시 메모리 장치 및 이를 이용한 에러 검출 방법 |
-
2010
- 2010-11-09 JP JP2010250495A patent/JP2012103826A/ja active Pending
-
2011
- 2011-08-26 KR KR1020110085922A patent/KR101319670B1/ko not_active IP Right Cessation
- 2011-08-29 TW TW100130907A patent/TW201224753A/zh unknown
- 2011-09-01 US US13/223,996 patent/US8589763B2/en not_active Expired - Fee Related
- 2011-09-29 CN CN2011103042411A patent/CN102541756A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05134938A (ja) * | 1991-11-12 | 1993-06-01 | Shikoku Nippon Denki Software Kk | メモリ制御装置 |
JPH06175934A (ja) * | 1992-12-01 | 1994-06-24 | Oki Electric Ind Co Ltd | 1ビットエラー処理方式 |
JPH10289164A (ja) * | 1997-04-16 | 1998-10-27 | Mitsubishi Electric Corp | メモリ制御方法およびメモリ制御装置 |
JP2005302027A (ja) * | 2004-04-07 | 2005-10-27 | Internatl Business Mach Corp <Ibm> | 自律的エラー回復方法、システム、キャッシュ、およびプログラム・ストレージ装置(メモリ装置のための自律的エラー回復のための方法、システム、およびプログラム) |
JP2008234074A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | キャッシュ装置 |
WO2010109631A1 (ja) * | 2009-03-26 | 2010-09-30 | 富士通株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014010607A (ja) * | 2012-06-29 | 2014-01-20 | Nec Corp | 情報機器、データ保証システム、処理装置、データ保証方法およびプログラム |
WO2014097464A1 (ja) * | 2012-12-20 | 2014-06-26 | 富士通株式会社 | データ比較回路、及び、処理装置 |
WO2015034087A1 (ja) * | 2013-09-06 | 2015-03-12 | 株式会社 東芝 | メモリ制御回路およびキャッシュメモリ |
JP2015052938A (ja) * | 2013-09-06 | 2015-03-19 | 株式会社東芝 | メモリ制御回路およびキャッシュメモリ |
US10042725B2 (en) | 2013-09-06 | 2018-08-07 | Kabushiki Kaisha Toshiba | Memory control circuit, cache memory and memory control method |
JP2019513264A (ja) * | 2016-03-30 | 2019-05-23 | クアルコム,インコーポレイテッド | ダイナミックランダムアクセスメモリ(dram)キャッシュタグの空間効率的記憶の実現 |
JP2018120413A (ja) * | 2017-01-25 | 2018-08-02 | Necプラットフォームズ株式会社 | 保守判断装置、保守判断方法及びプログラム |
JP2021506033A (ja) * | 2017-12-12 | 2021-02-18 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | キャッシュ制御を考慮したメモリコントローラ |
JP7036925B2 (ja) | 2017-12-12 | 2022-03-15 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | キャッシュ制御を考慮したメモリコントローラ |
Also Published As
Publication number | Publication date |
---|---|
US20120117428A1 (en) | 2012-05-10 |
KR20120049798A (ko) | 2012-05-17 |
US8589763B2 (en) | 2013-11-19 |
TW201224753A (en) | 2012-06-16 |
KR101319670B1 (ko) | 2013-10-17 |
CN102541756A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101319670B1 (ko) | 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법 | |
KR101252367B1 (ko) | 저전압 동작 동안 캐시 부분의 디스에이블 | |
US7987407B2 (en) | Handling of hard errors in a cache of a data processing apparatus | |
US7055003B2 (en) | Data cache scrub mechanism for large L2/L3 data cache structures | |
JP4019061B2 (ja) | Ecc保護機構における固定ビット障害を解決するための特殊eccマトリクスの適用方法 | |
US8977820B2 (en) | Handling of hard errors in a cache of a data processing apparatus | |
US8205136B2 (en) | Fault tolerant encoding of directory states for stuck bits | |
US7752505B2 (en) | Method and apparatus for detection of data errors in tag arrays | |
US7272773B2 (en) | Cache directory array recovery mechanism to support special ECC stuck bit matrix | |
US6480975B1 (en) | ECC mechanism for set associative cache array | |
JP5202130B2 (ja) | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 | |
US7447844B2 (en) | Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule | |
US8291259B2 (en) | Delete of cache line with correctable error | |
US8190973B2 (en) | Apparatus and method for error correction of data values in a storage device | |
JP2005108222A (ja) | 破損データ値を処理するためのデータ処理装置と方法 | |
US10528473B2 (en) | Disabling cache portions during low voltage operations | |
JP2013196393A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JPH10320280A (ja) | キャッシュに値を格納する方法及びコンピュータ・システム | |
US7395489B2 (en) | Control system and memory control method executing a detection of an error in a formation in parallel with reading operation | |
JPH09146836A (ja) | キャッシュ索引の障害訂正装置 | |
US7689891B2 (en) | Method and system for handling stuck bits in cache directories | |
US20070186135A1 (en) | Processor system and methodology with background error handling feature | |
US7055002B2 (en) | Integrated purge store mechanism to flush L2/L3 cache structure for improved reliabity and serviceability | |
JP2701703B2 (ja) | キャッシュメモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140218 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140617 |