JP2011100269A - キャッシュシステム - Google Patents

キャッシュシステム Download PDF

Info

Publication number
JP2011100269A
JP2011100269A JP2009254095A JP2009254095A JP2011100269A JP 2011100269 A JP2011100269 A JP 2011100269A JP 2009254095 A JP2009254095 A JP 2009254095A JP 2009254095 A JP2009254095 A JP 2009254095A JP 2011100269 A JP2011100269 A JP 2011100269A
Authority
JP
Japan
Prior art keywords
cache
unit
write
cache data
dirty
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.)
Withdrawn
Application number
JP2009254095A
Other languages
English (en)
Inventor
Hiroyasu Nakatsuka
裕康 中塚
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009254095A priority Critical patent/JP2011100269A/ja
Priority to US12/938,942 priority patent/US20110107143A1/en
Publication of JP2011100269A publication Critical patent/JP2011100269A/ja
Withdrawn 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/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
    • 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

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)

Abstract

【課題】エラー訂正データの書き戻しのために特別なサイクルを消費せず、特別な記憶素子などを追加せず、CPUの割り込み機能を必要とせず、キャッシュ制御回路のみで訂正データの書き戻しを実現する。
【解決手段】Dirty判定処理を行うブロックに、訂正可能エラー発生条件を追加条件として新たに設けた。これにより、本来発生するライトバック動作に付随して訂正データの主記憶への書き戻しが可能になった。
【選択図】図2

Description

本発明は、キャッシュシステムと、このキャッシュシステムを用いるキャッシュ方法に係り、特に、ライトバック方式で制御されるキャッシュシステムと、このキャッシュシステムを用いるキャッシュ方法とに係る。
近年、コンピュータシステムでは主記憶容量の増加、半導体プロセスの微細化に伴い、ソフトエラーの問題が顕在化している。そこで、信頼性向上のためにECC(Error Check and Correct:エラー検出訂正)回路を設け、メモリリード時に1bitエラーの場合は訂正、複数bitエラーの場合は検出を行っている。
しかし、1bitエラーの発生したメモリデータを、訂正データで修正せずにそのままにしておくと、訂正不可能な複数bitエラーとなる危険性が高い。そこで、信頼性向上のためには1bitエラーとなったメモリデータの修正ライトを行い、複数bitエラーの発生を防止するシステムが求められている。
上記に関連して、特許文献1(特開平5−158809号公報)には、メモリエラー自動修正ライト方式に係る記載が開示されている。このメモリエラー自動修正ライト方式は、メモリからリードしたデータを修正しライトするものである。このメモリエラー自動修正ライト方式は、メモリからリードしたデータの1ビットエラーを検出する1ビットエラー検出回路と、この1ビットエラー検出回路によって1ビットエラー検出したアドレスをラッチするアドレスラッチと、メモリからリードしたデータの1ビットエラーを修正する修正回路とを備え、メモリからブロックリードしたデータについて、上記1ビットエラー検出回路が1ビットエラー検出したときに上記修正回路が修正を行い、修正後のデータを出力すると共に、1ビットエラー検出したアドレスを上記アドレスラッチが保持しておき、ブロックリード終了後にこのアドレスラッチが保持するアドレスのメモリからリードしたデータを上記修正回路が修正した後の修正データをメモリに書き込んで修正するように構成したことを特徴とする。
また、特許文献2(特開平10−83357号公報)には、データ記憶制御方法に係る記載が開示されている。このデータ記憶制御方法は、連続したアドレスのデータを転送するバースト転送用の外部バスインタフェースを有するCPUと、主記憶手段と、データの誤り検出訂正を行うECC実行部とを有するコンピュータシステムで用いられるものである。このデータ記憶制御方法は、CPUから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ECC実行部に検出されたときに、誤りのあるデータのアドレスを保持し、上記ECC実行部によりデータの誤りが検出された際に、割込み情報を保持し、上記CPUに割込み要求を行い、CPUの割込み処理ルーチンにて、CPUを割込み禁止にし、主記憶手段から上記保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、上記読み出した複数のデータを上記ECC実行部により誤り訂正を実行し、誤りを訂正した複数のデータを主記憶手段に書き戻し、上記割込み情報をクリアし、CPUを割込み許可状態とすることを特徴とする。
特開平5−158809号公報 特開平10−83357号公報
特許文献1によるメモリエラー自動修正ライト方式では、エラー発生したリードサイクルの次サイクルには必ずリード/訂正ライトが入る。このため、連続リードリクエストがあった場合などのケースにおいては、システム性能が低下してしまうという問題がある。また、エラー発生アドレスを保持する必要があるが、最大の保持数、すなわち最大のエラー発生回数が、論理的には決定出来ない。このため、アドレスラッチの保持数によって性能と面積のトレードオフが発生し、効果にばらつきが出る問題がある。
特許文献1の問題についてさらに詳細に説明する。特許文献1によるメモリエラー自動修正ライト方式では、アドレスラッチにアドレスを保持し、その保持されたアドレスに対してエラー訂正を行う。このため、この保持数によって一度にエラー訂正できる数が決まる。また、特許文献1ではメモリブロックリードサイクルの性能処理向上に着目しているが、エラー訂正のライトを次のサイクルへ先送りしているため、そのしわ寄せが次のサイクルに発生するという制限を有している。
特許文献2によるデータ記憶制御方法では、エラー訂正を行う際に、CPUに割り込みを挙げて、CPUの割り込み処理ルーチンで行う。このため、割り込み機能を有したCPUが接続されたシステムでしか使用できないという問題がある。DMAデバイスなどが接続されていた場合、DMAデバイスを停止する必要があるなど、システムバスに接続される構成によって影響範囲が広くなる可能性がある。このため、システムの制御が複雑となり、実現性に困難なケースが発生する問題がある。
特許文献2の問題についてさらに詳細に説明する。特許文献2によるデータ記憶制御方法では、CPUの割り込み処理ルーチンにおいてエラー訂正を行う制御方式であるため、割り込み機能が必須である。また、CPUの制御下にないデバイスに関しては、割り込みをトリガとして、DMA停止などの制御を個々に行う必要がある。このため、特許文献2の発明を実現するための必要条件が多くなってしまう制限を有している。
以下に、(発明を実施するための形態)で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、(特許請求の範囲)の記載と(発明を実施するための形態)との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、(特許請求の範囲)に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明によるキャッシュシステムは、ライトバック方式で制御される。このキャッシュシステムは、Dirty Bit部(32、32−1、32−2)と、OR演算回路(35、35−1、35−2)とを具備する。ここで、Dirty Bit部(32、32−1、32−2)は、ライトバック方式に基づいて、キャッシュデータがDirty状態であるかどうかを表す1bit情報を格納する。OR演算回路(35、35−1、35−2)は、Dirty Bit部(32、32−1、32−2)の前段に接続されている。OR演算回路(35、35−1、35−2)は、第1の入力部と、第2の入力部と、出力部とを具備する。ここで、第1の入力部は、キャッシュデータの書き込み要求を意味するWrite Request信号を入力する。第2の入力部は、キャッシュデータに訂正可能エラーがあることを意味する訂正可能エラー判定信号を入力する。出力部は、Write Request信号と、訂正可能エラー判定信号とのうち、少なくとも1つの信号を入力した場合に、Dirty Bit部(32、32−1、32−2)をDirty状態にする信号を出力する。
本発明によるキャッシュ方法は、ライトバック方式で制御されるキャッシュシステムを用いる。このキャッシュ方法は、(a)キャッシュデータの書き込み要求を意味するWrite Request信号を入力するステップと、(b)キャッシュデータに訂正可能エラーがあることを意味する訂正可能エラー判定信号を入力するステップと、(c)Write Request信号と、訂正可能エラー判定信号とのうち、少なくとも1つの信号を入力した場合に、ライトバック方式に基づいて、キャッシュデータがDirty状態であるかどうかを表す1bit情報を格納するDirty Bit部(32、32−1、32−2)をDirty状態にする信号を出力するステップとを具備する。
本発明では、Dirty判定処理を行うブロックに、訂正可能エラー発生条件を追加条件として新たに設けた。これにより、本来発生するライトバック動作に付随して訂正データの主記憶への書き戻しが可能になった。
図1は、本発明の第1の実施形態によるキャッシュシステムの構成について説明するためのブロック図である。 図2は、本発明の第1の実施形態によるキャッシュと、DRAMコントローラと、DRAMにおける詳細な構成について説明するためのブロック図である。 図3は、本発明の第1および第2の実施形態によるキャッシュシステムの動作方法、すなわち本発明の第1および第2の実施形態によるキャッシュ方法について説明するためのフローチャートである。 図4は、本発明の第1および第2の実施形態によるキャッシュシステムの動作方法、すなわち本発明の第1および第2の実施形態によるキャッシュ方法について説明するためのフローチャートである。 図5は、本発明の第2の実施形態によるキャッシュシステムの構成について説明するためのブロック図である。 図6は、本発明の第2の実施形態による2つのキャッシュと、DRAMコントローラと、DRAMにおける詳細な構成について説明するためのブロック図である。
添付図面を参照して、本発明によるキャッシュシステムと、このキャッシュシステムを用いるシャッシュ方法とを実施するための形態を以下に説明する。
(第1の実施形態)
本発明の第1の実施形態では、CPU1がシングルコアである場合を扱う。図1は、本実施形態によるキャッシュシステムの構成について説明するためのブロック図である。このキャッシュシステムは、CPU1と、DMAコントローラ2と、キャッシュ3と、DRAMコントローラ4と、DRAM5と、バス6とを具備している。
図2は、本実施形態によるキャッシュ3と、DRAMコントローラ4と、DRAM5における詳細な構成について説明するためのブロック図である。キャッシュ3は、キャッシュライン30と、OR演算回路35とを具備する。キャッシュライン30の数は、1つであっても良いし、複数であっても良い。それぞれのキャッシュライン30は、Tag部31と、Dirty Bit部32と、Valid Bit部33と、Data部34とを具備する。DRAMコントローラ4は、エラー制御判定部41を具備する。DRAM5は、ECC部51と、Data部52とを具備する。
キャッシュライン30における各構成要素について説明する。キャッシュライン30が1つのデータをキャッシュする際、データの本体はData部34に格納される。このデータが主記憶としてのDRAM5に格納されているアドレスなどの情報は、Tag部31に格納される。
Dirty Bit部32は、Data部34に格納されているデータの状態が、「Dirty」であるか、「Clean」であるかを示す1Bit情報を格納する。なお、Data部34に格納されたキャッシュデータが、DRAM5に格納されている元のデータと同一である場合は「Clean」状態であり、更新されて異なる場合は「Dirty」状態である。
Valid Bit部33は、Data部34に格納されたキャッシュデータの状態が、「Valid」であるか、「InValid」であるかを示す1Bit情報を格納する。なお、「Valid」状態は、有効なキャッシュデータがData部34に格納されていることを意味し、「InValid」状態はその反対を意味する。
次に、本実施形態によるキャッシュシステムにおける各構成要素同士の接続関係について説明する。
バス6は、CPU1と、DMAコントローラ2と、キャッシュ3とに接続されている。キャッシュ3と、DRAMコントローラ4と、DRAM5とは、この順番に直列に接続されている。
ECC部51における出力部と、Data部52における出力部とは、エラー制御判定部41における第1および第2の入力部にそれぞれ接続されている。エラー制御判定部41における出力部は、OR演算回路35における第1の入力部に接続されている。OR演算回路35における第2の入力部には、図示されないWrite Request信号の出力部が接続されている。OR演算回路35における出力部は、Dirty Bit部32における入力部に接続されている。
以上、本実施形態によるキャッシュシステムにおける各構成要素同士の接続関係のうち、本実施形態における動作を行うために必須のものについて説明した。一般的なキャッシュシステムと同様に、構成要素同士の接続関係は他に必要なものもあるが、詳細な説明は省略する。
このように、CPU1からは、DRAM5が直接的には見えない。つまり、CPU1がDRAM5にアクセスするためには、読み込みを行う場合でも、書き込みを行う場合でも、必ずキャッシュ3を経由する必要がある。
図3および図4は、本実施形態によるキャッシュシステムの動作方法、すなわち本実施形態によるキャッシュ方法について説明するためのフローチャートである。まず、図3を用いて、Write Request信号がOR演算回路35に供給された時の動作について、すなわち書き込みがリクエストされた時の動作について、説明する。
図3の、本実施形態の書き込み時に係るフローチャートは、S1〜S8のステップを具備する。
まず、ステップS1では、キャッシュヒットが発生したかどうかを判定する。キャッシュヒットしなかった、すなわちキャッシュミスした(NO)場合は、ステップS2に進む。キャッシュヒットした(YES)場合は、ステップS8に進む。
ステップS2では、Valid Bit部33に格納されたビット情報を判定する。Valid Bit部33の状態がInValidであった(YES)場合は、ステップS3に進む。Valid Bit部33の状態がValidであった(NO)場合は、ステップS5に進む。
ステップS3では、Dirty Bit部32に格納されたビット情報を判定する。Dirty Bit部32の情報がDirtyであった(YES)場合は、ステップS4に進む。Dirty Bit部32の情報がCleanであった(NO)場合は、ステップS5に進む。
ステップS4では、ライトバック動作を行う。具体的には、現キャッシュライン30に格納された内容を、主記憶のDRAM5に書き戻す作業を行う。このとき、Dirty Bit部32の状態をそのまま残す。また、Valid Bit部33の状態をInValid状態にする。その後、ステップS5に進む。
ステップS5では、ステップS4で主記憶のDRAM5に書き込んだ内容を、主記憶のDRAM5からReadを行い、キャッシュライン30に格納する。このとき、Dirty Bit部32の状態をCleanにする。また、Valid Bit部33の状態をValidにする。その後、ステップS6に進む。
ステップS6では、ステップS5でReadした際に、このReadデータに1ビットエラーが発生したかどうかを判定する。1ビットエラーが発生した(YES)場合は、ステップS7に進む。1ビットエラーが発生しなかった(NO)場合は、ステップS8に進む。
ステップS7では、Dirty Bit部32をDirty状態にする。また、Valid Bit部33はそのままの状態に残す。なお、本実施形態では、CPU1がシングルコアの場合を扱うので、他のブロックに係る動作を行わない。その後、ステップS8に進む。
ステップS8では、キャッシュライン30の内容を更新し、Dirty Bit部32の状態をDirtyにする。なお、Valid Bit部33はそのままの状態で残す。
次に、図4を用いて、本実施形態による読み出し(Read)がリクエストされた時の動作について説明する。
まず、ステップS1では、キャッシュヒットが発生したかどうかを判定する。キャッシュヒットが発生していない(NO)場合は、ステップS2に進む。キャッシュヒットが発生している(YES)場合は、ステップS9に進む。
ステップS2〜ステップS5については、図3における書き込み(Write)動作の場合と同じであるので、詳細な説明を省略する。
ステップS6では、ステップS5でReadした際に、このReadデータに1ビットエラーが発生したかどうかを判定する。1ビットエラーが発生した(YES)場合は、ステップS7に進む。1ビットエラーが発生しなかった(NO)場合は、ステップS10に進む。
ステップS7では、Dirty Bit部32をDirty状態にする。また、Valid Bit部33はそのままの状態に残す。ただし、他のブロックに該当キャッシュラインが存在すれば、Snoopリクエストを発生して、そのキャッシュラインについてはValid Bit部33をInValid状態にする。その後、ステップS10に進む。
ステップS9では、キャッシュ3のData部34からデータの読み出し(Read)を行う。このとき、Dirty Bit部32およびValid Bit部33は、そのままの状態で残す。その後、ステップS10に進む。
ステップS10では、Readデータを上位に返す。このとき、Dirty Bit部32およびValid Bit部33は、そのままの状態で残す。
以上に説明をまとめると、本発明の特徴は次のとおりである。主記憶としてのDRAM5からのリードデータをキャッシュライン30に格納する際に、リードデータが1bit訂正可能エラーだった場合、Dirty Bit部32の状態をDirtyにする。こうすることにより、次回に同じキャッシュライン30でキャッシュミスが発生した際に、そのキャッシュライン30の内容を主記憶としてのDRAM5に書き戻すライトバック動作に付随して、キャッシュライン30内にある訂正データの書き戻し処理が行われる。
(第2の実施形態)
本発明の第2の実施形態では、CPU1−1、1−2がマルチコアである場合を扱う。
図5は、本実施形態によるキャッシュシステムの構成について説明するためのブロック図である。このキャッシュシステムは、第1および第2のCPU1−1、1−2と、第1および第2のDMAコントローラ2−1、2−2と、第1および第2のキャッシュ3−1、3−2と、DRAMコントローラ4と、DRAM5と、3つのバス60、60−1、60−2とを具備する。
なお、図5に示すキャッシュシステムの構成は、CPU1−1、1−2が2つのマルチコアである場合であって、さらに多くのCPUによるマルチコアであっても本実施形態によるキャッシュシステムは実施可能である。ただし、その場合、DMAコントローラ、キャッシュ、バスの総数を、CPUの総数に合わせて適宜増減する必要があることは言うまでも無い。ここでは、CPU1−1、1−2が2つの場合について説明を続ける。
図6は、本実施形態による2つのキャッシュ3−1、3−2と、DRAMコントローラ4と、DRAM5における詳細な構成について説明するためのブロック図である。
第1のキャッシュ3−1は、第1のキャッシュライン30−1と、第1のOR演算回路35−1と、第1のAND演算回路36−1と、2つのNOT演算回路37−1、38−1とを具備する。第1のキャッシュライン30−1の数は、1つであっても良いし、複数であっても良い。それぞれの第1のキャッシュライン30−1は、第1のTag部31−1と、第1のDirty Bit部32−1と、第1のValid Bit部33−1と、第1のData部34−1とを具備する。
第2のキャッシュ3−2は、第2のキャッシュライン30−2と、第2のOR演算回路35−2と、第2のAND演算回路36−2と、2つのNOT演算回路37−2、38−2とを具備する。第2のキャッシュライン30−2の数は、1つであっても良いし、複数であっても良い。それぞれの第2のキャッシュライン30−2は、第2のTag部31−2と、第2のDirty Bit部32−2と、第2のValid Bit部33−2と、第2のData部34−2とを具備する。
DRAMコントローラ4は、エラー制御判定部41を具備する。DRAM5は、ECC部51と、Data部52とを具備する。
次に、本実施形態によるキャッシュシステムにおける各構成要素同士の接続関係について説明する。
バス60−1は、第1のCPU1−1と、第1のDMAコントローラ2−1と、第1のキャッシュ3−1とに接続されている。バス60−2は、第2のCPU1−2と、第2のDMAコントローラ2−2と、第2のキャッシュ3−2とに接続されている。バス60は、第1のキャッシュ3−1と、第2のキャッシュ3−2と、DRAMコントローラ4とに接続されている。DRAMコントローラ4は、DRAM5に接続されている。
ECC部51における出力部と、Data部52における出力部とは、エラー制御判定部41における第1および第2の入力部にそれぞれ接続されている。エラー制御判定部41における第1の出力部は、第1のOR演算回路35−1における第1の入力部と、第2のキャッシュ3−2のNOT演算回路37−2における入力部とに接続されている。エラー制御判定部41における第2の出力部は、第1のキャッシュ3−1のNOT演算回路37−1における入力部と、第2のOR演算回路35−2における第1の入力部とに接続されている。第1のキャッシュ3−1のNOT演算回路38−1における入力部と、第2のキャッシュ3−2のNOT演算回路38−2における入力部とには、図示されない他キャッシュからのInvalid要求信号の出力部が接続されている。
第1のキャッシュ3−1の内部における各構成要素同士の接続関係について説明する。第1のOR演算回路35−1における第2の入力部には、図示されないWrite Request信号の出力部が接続されている。2つのNOT演算回路37−1、38−1における出力部は、第1のAND演算回路36−1における2つの入力部にそれぞれ接続されている。第1のOR演算回路35−1における出力部は、Dirty Bit部32−1における入力部に接続されている。第1のAND演算回路36−1における出力部は、Valid Bit部33−1における入力部に接続されている。
第2のキャッシュ3−2の内部における各構成要素同士の接続関係について説明する。第2のOR演算回路35−2における第2の入力部には、図示されないWrite Request信号の出力部が接続されている。2つのNOT演算回路37−2、38−2における出力部は、第2のAND演算回路36−2における2つの入力部にそれぞれ接続されている。第2のOR演算回路35−2における出力部は、Dirty Bit部32−2における入力部に接続されている。第2のAND演算回路36−2における出力部は、Valid Bit部33−2における入力部に接続されている。
以上、本実施形態によるキャッシュシステムにおける各構成要素同士の接続関係のうち、本実施形態における動作を行うために必須のものについて説明した。一般的なキャッシュシステムと同様に、構成要素同士の接続関係は他に必要なものもあるが、詳細な説明は省略する。
本実施形態によるキャッシュシステムの動作、すなわち、本実施形態によるキャッシュ方法について説明する。例として、第1のキャッシュ3−1でリードリクエストが発生した場合について説明する。
本実施形態でも、基本的には、本発明の第1の実施形態と同様に、図3および図4に示すフローチャートに基づいてWrite動作とRead動作を行う。ここで、本発明の第1の実施形態おけるキャッシュライン30、Dirty Bit部32、Valid Bit部33は、本実施例におけるキャッシュライン30−1または30−2、Dirty Bit部32−1または32−2、Valid Bit部33−1または33−2に、それぞれ読み替える必要がある。つまり、図3および図4は、本実施形態によるキャッシュシステムの動作、すなわち、本実施形態によるキャッシュ方法について説明するためのフローチャートでもある。ただし、本実施形態と、本発明の第1の実施形態とでは、ステップS7に差異がある。
本実施形態によるWrite動作およびRead動作において、ステップS7では、まず、本発明の第1の実施形態と同様に、Dirty Bit部32−1をDirty状態にする。また、Valid Bit部33−1はそのままの状態に残す。ただし、他のブロックに該当キャッシュラインが存在すれば、Snoopリクエストを発生して、そのキャッシュラインについてはValid Bit部33−1をInValid状態にする。その後、ステップS8に進む。
本実施形態によるキャッシュ方法における、ステップS7以外の各ステップについては、本発明の第1の実施形態と同様であるので、詳細な説明を省略する。
このように、本実施形態では、リクエスト元以外の、他のキャッシュ3−2におけるValid Bit部33−2の状態をInValidにする。これにより、次回、他のキャッシュ3−2のキャッシュライン30−2に対してリードリクエストが発生した場合に、ライトバック方式に基づいて他のキャッシュ3−2が主記憶としてのDRAM5からメモリリードを行う前に、第1のキャッシュ3−1のシャッシュライン30−1の内容を主記憶としてのDRAM5に書き戻すライトバック動作に付随して、キャッシュライン30−1内にある訂正データの書き戻し処理が行われる。その後、他のキャッシュ3−2のキャッシュライン30−2に主記憶としてのDRAM5からのメモリリードが行われるため、他のキャッシュ3−2のキャッシュライン30−2には訂正後のデータが格納される。
その他の動作については、複数のキャッシュ3−1、3−2のうちの1つに注目すると、図3および図4で説明した本発明の第1の実施形態の場合と同じである。言い換えれば、複数のキャッシュ3−1、3−2のそれぞれにおいて、図3および図4のフローチャートに基づく動作が独立に行うことが可能である。
したがって、本発明によるキャッシュシステムおよびキャッシュ方法は、キャッシュの総数を3つ以上に増やすことも容易である。ただし、キャッシュの総数の増減に応じて、エラー制御判定部41の出力部と、AND演算回路36−1、36−2における入力部と、AND演算回路36−1、36−2の入力部に接続されたNOT演算回路37−1、37−2、38−1、38−2とも増減する必要があることは言うまでも無い。
本実施形態によるキャッシュシステムは、本発明の第1の実施形態によるキャッシュシステムに、Valid Bit部33−1、33−2に接続されるAND演算回路36−1、36−2を追加するのみで、ライトバック方式を採用したマルチコア構成にも適応可能となる。また、マルチコア構成の複雑なキャッシュアルゴリズム自体の修正をする必要が無く、Valid Bit部33−1、33−2への書きこみ条件のみの簡単な修正内容で、ECC訂正データの書き戻しが実現できる。
1、1−1、1−2 CPU
2、2−1、2−2 DMAコントローラ
3、3−1、3−2 キャッシュ
30、30−1、30−2 キャッシュライン
31、31−1、31−2 Tag部
32、32−1、32−2 Dirty Bit部
33、33−1、33−2 Valid Bit部
34、34−1、34−2 Data部
35、35−1、35−2 OR演算回路
36−1、36−2 AND演算回路
37−1〜37−4 NOT演算回路
4 DRAMコントローラ
41 エラー制御判定部
5 DRAM
51 ECC部
52 Data部
6、60、60−1、60−2 バス

Claims (4)

  1. ライトバック方式で制御されるキャッシュシステムであって、
    前記ライトバック方式に基づいて、キャッシュデータがDirty状態であるかどうかを表す1bit情報を格納するDirty Bit部と、
    前記Dirty Bit部の前段に接続されたOR演算回路と
    を具備し、
    前記OR演算回路は、
    前記キャッシュデータの書き込み要求を意味するWrite Request信号を入力する第1の入力部と、
    前記キャッシュデータに訂正可能エラーがあることを意味する訂正可能エラー判定信号を入力する第2の入力部と、
    前記Write Request信号と、前記訂正可能エラー判定信号とのうち、少なくとも1つの信号を入力した場合に、前記Dirty Bit部をDirty状態にする信号を出力する出力部と
    を具備する
    キャッシュシステム。
  2. 請求項1に記載のキャッシュシステムにおいて、
    前記ライトバック方式に基づいて、前記キャッシュデータがValid状態であるかどうかを表す1bit情報を格納するValid Bit部と、
    前記Valid Bit部の前段に接続された演算回路と
    をさらに具備し、
    前記AND演算回路は、
    前記キャッシュデータ以外の他のキャッシュデータに基づくInValid要求信号を入力する第1の入力部と、
    前記他のキャッシュデータに訂正可能エラーがあることを意味する他キャッシュデータ訂正可能エラー判定信号を入力する第2の入力部と、
    前記InValid要求信号と、前記他キャッシュデータ訂正可能エラー判定信号とのうち、少なくとも1つの信号を入力した場合に、前記Valid Bit部をInValid状態にする信号を出力する出力部と
    を具備する
    キャッシュシステム。
  3. ライトバック方式で制御されるキャッシュシステムを用いるキャッシュ方法であって、
    (a)キャッシュデータの書き込み要求を意味するWrite Request信号を入力するステップと、
    (b)前記キャッシュデータに訂正可能エラーがあることを意味する訂正可能エラー判定信号を入力するステップと、
    (c)前記Write Request信号と、前記訂正可能エラー判定信号とのうち、少なくとも1つの信号を入力した場合に、前記ライトバック方式に基づいて、キャッシュデータがDirty状態であるかどうかを表す1bit情報を格納する前記Dirty Bit部をDirty状態にする信号を出力するステップと
    を具備する
    キャッシュ方法。
  4. 請求項3に記載のキャッシュ方法において、
    (d)前記キャッシュデータ以外の他のキャッシュデータに基づくInValid要求信号を入力するステップと、
    (e)前記他のキャッシュデータに訂正可能エラーがあることを意味する他キャッシュデータ訂正可能エラー判定信号を入力するステップと、
    (f)前記InValid要求信号と、前記他キャッシュデータ訂正可能エラー判定信号とのうち、少なくとも1つの信号を入力した場合に、前記ライトバック方式に基づいて、前記キャッシュデータがValid状態であるかどうかを表す1bit情報を格納する前記Valid Bit部をInValid状態にする信号を出力するステップと
    をさらに具備する
    キャッシュ方法。
JP2009254095A 2009-11-05 2009-11-05 キャッシュシステム Withdrawn JP2011100269A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009254095A JP2011100269A (ja) 2009-11-05 2009-11-05 キャッシュシステム
US12/938,942 US20110107143A1 (en) 2009-11-05 2010-11-03 Cache system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009254095A JP2011100269A (ja) 2009-11-05 2009-11-05 キャッシュシステム

Publications (1)

Publication Number Publication Date
JP2011100269A true JP2011100269A (ja) 2011-05-19

Family

ID=43926669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009254095A Withdrawn JP2011100269A (ja) 2009-11-05 2009-11-05 キャッシュシステム

Country Status (2)

Country Link
US (1) US20110107143A1 (ja)
JP (1) JP2011100269A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014006732A1 (ja) * 2012-07-05 2014-01-09 富士通株式会社 データ訂正方法、マルチプロセッサシステム、及びプロセッサ
KR20170102723A (ko) * 2016-03-02 2017-09-12 한국전자통신연구원 캐시 메모리 장치 및 그것의 동작 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5843804B2 (ja) 2013-03-25 2016-01-13 株式会社東芝 演算装置およびエラー処理方法
KR102410692B1 (ko) 2015-03-30 2022-06-17 삼성전자주식회사 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템
KR102362239B1 (ko) 2015-12-30 2022-02-14 삼성전자주식회사 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509119A (en) * 1994-09-23 1996-04-16 Hewlett-Packard Company Fast comparison method and apparatus for error corrected cache tags
GB2409301B (en) * 2003-12-18 2006-12-06 Advanced Risc Mach Ltd Error correction within a cache memory
US7117310B2 (en) * 2004-02-18 2006-10-03 Lsi Logic Corporation Systems and methods for cache synchronization between redundant storage controllers
US7353445B1 (en) * 2004-12-10 2008-04-01 Sun Microsystems, Inc. Cache error handling in a multithreaded/multi-core processor
US7437597B1 (en) * 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
WO2007097027A1 (ja) * 2006-02-27 2007-08-30 Fujitsu Limited 縮退制御装置および縮退制御プログラム
US8190974B2 (en) * 2009-09-28 2012-05-29 Nvidia Corporation Error detection and correction for external DRAM

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014006732A1 (ja) * 2012-07-05 2014-01-09 富士通株式会社 データ訂正方法、マルチプロセッサシステム、及びプロセッサ
KR20170102723A (ko) * 2016-03-02 2017-09-12 한국전자통신연구원 캐시 메모리 장치 및 그것의 동작 방법
KR102515417B1 (ko) 2016-03-02 2023-03-30 한국전자통신연구원 캐시 메모리 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
US20110107143A1 (en) 2011-05-05

Similar Documents

Publication Publication Date Title
JP4019061B2 (ja) Ecc保護機構における固定ビット障害を解決するための特殊eccマトリクスの適用方法
US8589763B2 (en) Cache memory system
US7797609B2 (en) Apparatus and method for merging data blocks with error correction code protection
US7272773B2 (en) Cache directory array recovery mechanism to support special ECC stuck bit matrix
US6480975B1 (en) ECC mechanism for set associative cache array
US8127205B2 (en) Error correction code generation method and memory control device
JP5202130B2 (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
US20120072796A1 (en) Memory controller with automatic error detection and correction
US8190973B2 (en) Apparatus and method for error correction of data values in a storage device
US9003260B2 (en) Partial-writes to ECC (error check code) enabled memories
KR20090028507A (ko) 비휘발성 메모리 에러 보정 시스템 및 방법
JP2011100269A (ja) キャッシュシステム
JPH10301846A (ja) 修復マスクを使用したキャッシュ・アレイ欠陥の機能的迂回方法及びシステム
JP2005302027A (ja) 自律的エラー回復方法、システム、キャッシュ、およびプログラム・ストレージ装置(メモリ装置のための自律的エラー回復のための方法、システム、およびプログラム)
US20160110250A1 (en) Cache memory with fault tolerance
JP4339914B2 (ja) エラー訂正コード生成方法及びメモリ管理装置
KR100297914B1 (ko) 스누핑장치를위한다중캐쉬디렉토리
US7058877B2 (en) Method and apparatus for providing error correction within a register file of a CPU
US8914712B2 (en) Hierarchical error correction
US20040001269A1 (en) Control system and memory control method executing a detection of an error in a formation in parallel with reading operation
US7577890B2 (en) Systems and methods for mitigating latency associated with error detection and correction
US20110320919A1 (en) High performance cache directory error correction code
JP2011257966A (ja) キャッシュ装置及び情報処理装置
US20110320866A1 (en) Dynamic pipeline cache error correction
JP2011054221A (ja) 記憶装置及び電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120730

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130117