JP2011065565A - キャッシュシステム及びマルチプロセッサシステム - Google Patents

キャッシュシステム及びマルチプロセッサシステム Download PDF

Info

Publication number
JP2011065565A
JP2011065565A JP2009217598A JP2009217598A JP2011065565A JP 2011065565 A JP2011065565 A JP 2011065565A JP 2009217598 A JP2009217598 A JP 2009217598A JP 2009217598 A JP2009217598 A JP 2009217598A JP 2011065565 A JP2011065565 A JP 2011065565A
Authority
JP
Japan
Prior art keywords
cache
data
failure
line
instruction
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
JP2009217598A
Other languages
English (en)
Inventor
Takashi Miura
貴 三浦
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009217598A priority Critical patent/JP2011065565A/ja
Priority to US12/881,381 priority patent/US20110072320A1/en
Publication of JP2011065565A publication Critical patent/JP2011065565A/ja
Pending legal-status Critical Current

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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0721Error 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 within a central processing unit [CPU]
    • G06F11/0724Error 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 within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • 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/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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Landscapes

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

Abstract

【課題】キャッシュに故障が生じることによるシステムの異常実行を低減可能とし、歩留まりの向上、及びシステムに要求される性能の維持を可能とするキャッシュシステム及びマルチプロセッサシステムを提供すること。
【解決手段】キャッシュデータが格納されるキャッシュデータ記憶手段であるデータ部10と、前記キャッシュデータ記憶手段の故障を検出する故障検出手段である命令データチェックサム計算部16、ラインデータチェックサム計算部17及び比較部18と、を有し、前記故障検出手段は、下層メモリシステム3からプリフェッチされた命令データと前記キャッシュデータ記憶手段から読み出されるキャッシュデータとが整合するか否かの判別により、キャッシュライン単位で故障を検出し、故障が検出されたキャッシュラインが無効化される。
【選択図】図1

Description

本発明は、キャッシュシステム及びマルチプロセッサシステムに関する。
一つのチップで対称型マルチプロセッサLSIを構成するマルチプロセッサシステムは、各マイクロプロセッサで同一の命令コードを同時実行する場合がある。各マイクロプロセッサの命令フェッチに伴うバス競合によるストールを回避するため、システムの多くは、各マイクロプロセッサに命令キャッシュが実装される。命令キャッシュは、一般に、キャッシュタグ部(以下、適宜「タグ部」と称する)と、一般的なSRAMを備える命令メモリ部(以下、適宜「メモリ部」と称する)とから構成されている(キャッシュメモリについては、例えば、特許文献1参照)。
メモリ部は、キャッシュヒットの際に命令実行部へ正しい命令データを供給可能とする正常動作を保証するために、LSI検査において厳密にテストされる。一般に、メモリ部は、スペック上の最低電圧、最高周波数で記憶素子の故障が生じ易くなるとされている。良品判定は、このような厳しい条件化で行われ、複数のマイクロプロセッサのうちの一つでも故障が生じれば、たとえティピカルな電圧や駆動周波数では正常な動作が可能であったとしてもLSI全体が不良とみなされることとなる。このような扱いの回避とともにシステムの異常実行を防止するための手法として、例えば、各マイクロプロセッサのメモリ部に冗長記憶部を設けておき、不良部分から正常部分への切り替えをする技術がある。この場合、マイクロプロセッサごとに冗長性を持たせるために、マイクロプロセッサ数に比例して冗長面積が増大することとなる。これらのことから、一つのチップで対称型マルチプロセッサLSIを構成するマルチプロセッサシステムは、単体のマイクロプロセッサチップを複数組み合わせた構成よりも歩留まりが悪くなること、製造コストが増加することが課題となる。
さらに、LSIのアプリケーションにより、メモリ部に不良のあるマイクロプロセッサを使用しないこととし、他の正常なマイクロプロセッサに処理を実行させることで、LSIが処理すべき要求性能を満たそうとする技術もある。この他、メモリ部に不良のあるマイクロプロセッサの分のスペックを低下させることとし、全体として歩留まりを維持する場合もある。いずれの場合も、マイクロプロセッサを一意に不使用とすることで、LSIとしての性能を大幅に低下させ、適用可能なアプリケーションが限定されるため売価の低下を招くという問題がある。
特開2006−343851号公報
本発明は、キャッシュに故障が生じることによるシステムの異常実行を低減可能とし、歩留まりの向上、及びシステムに要求される性能の維持を可能とするキャッシュシステム及びマルチプロセッサシステムを提供することを目的とする。
本願発明の一態様によれば、キャッシュデータが格納されるキャッシュデータ記憶手段と、前記キャッシュデータ記憶手段の故障を検出する故障検出手段と、を有し、前記故障検出手段は、下層メモリからプリフェッチされた命令データと前記キャッシュデータ記憶手段から読み出されるキャッシュデータとが整合するか否かの判別により、キャッシュライン単位で故障を検出し、前記故障が検出されたキャッシュラインが無効化されることを特徴とするキャッシュシステムが提供される。
また、本願発明の一態様によれば、上記のキャッシュシステムが装備された複数のプロセッサと、前記故障検出手段により故障が検出される頻度に応じて、前記複数のプロセッサに対するタスクの振り分けを実行するタスク振り分け手段と、を有することを特徴とするマルチプロセッサシステムが提供される。
本発明によれば、キャッシュに故障が生じることによるシステムの異常実行を低減可能とし、歩留まりの向上、及びシステムに要求される性能の維持が可能となる。
また、本発明によれば、所定の頻度で故障が検出されたプロセッサを停止可能とすることで、システム全体の性能への負荷を軽減させることができる。
図1は、第1の実施の形態に係るキャッシュシステムを備えるマルチプロセッサシステムの構成を示すブロック図である。 図2は、タグ部のデータ構造とラインデータとの対応例を示す図である。 図3は、2ラインのキャッシュに対するタグ部の構成例を示す図である。 図4は、第2の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図である。
以下に添付図面を参照して、本発明の実施の形態に係るキャッシュシステム及びマルチプロセッサシステムを詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るキャッシュシステム1を備えるマルチプロセッサシステムの構成を示すブロック図である。マルチプロセッサシステムは、キャッシュシステム1が装備された複数のプロセッサを備える。ここでは、マルチプロセッサシステムのうち本実施の形態の説明に必要な構成を図示している。命令実行部2は、マルチプロセッサシステムの動作を制御するためのCPU(Central Processing Unit)であり、外部メモリに格納されたプログラムを実行する。下層メモリシステム3は、キャッシュシステム1に対して下位の階層にあるメモリである。
キャッシュシステム1は、データ部10、タグ部11、ミス判定部12、リフィル部13、プリフェッチバッファ14、選択器15、命令データチェックサム計算部16、ラインデータチェックサム計算部17、及び比較部18を備える。
データ部10は、キャッシュライン単位でキャッシュデータが格納されるキャッシュデータ記憶手段として機能する。タグ部11は、キャッシュデータのキャッシュタグ情報が格納される。ミス判定部12は、キャッシュシステム1へキャッシュアクセスされた命令アドレスのタグと、タグ部11から読み出されたタグ情報とを比較することにより、キャッシュアクセスのヒット及びミスを判定し、判定結果を表すミス検出信号を出力する。
リフィル部13は、プリフェッチバッファ14に対するプリフェッチ要求、及び、データ部10に対するライン書き込み要求をする。プリフェッチバッファ14は、下層メモリシステム3からプリフェッチされた命令データを格納する。選択器15は、ヒットしたキャッシュラインデータを選択する。
命令データチェックサム計算部16は、命令データチェックサムを計算する命令データチェックサム計算手段として機能する。命令データチェックサムは、プリフェッチされた命令データのチェックサムである。ラインデータチェックサム計算部17は、ラインデータチェックサムを計算するラインデータチェックサム計算手段として機能する。ラインデータチェックサムは、データ部10に格納されたキャッシュデータのチェックサムである。
比較部18は、命令データチェックサム計算部16で計算された命令データチェックサム、及びラインデータチェックサム計算部17で計算されたラインデータチェックサムを比較する比較手段として機能する。命令データチェックサム計算部16、ラインデータチェックサム計算部17、及び比較部18は、データ部10の故障を検出する故障検出手段として機能する。本実施の形態において「故障」とは、データ部10が備えるSRAMにおける特定ビットトグル故障、SRAMにおける特定ライン読み出し故障など、キャッシュの部分的な故障を指すものとする。
命令実行部2は、実行すべき命令の命令アドレスをキャッシュシステム1へ伝達し、命令データを要求する。命令アドレスは、データ部10、タグ部11、ミス判定部12及びプリフェッチバッファ14へ入力される。タグ部11は、データ部10に予め格納されているキャッシュデータの有効性情報をタグ情報として、ミス判定部12へ供給する。ミス判定部12は、命令アドレスとタグ情報とから、キャッシュアクセスのヒット及びミスを判定する。
ミス判定部12は、ヒットと判定した場合、ミス検出信号として例えば「0」を出力する。選択器15は、ミス検出信号「0」を検出することにより、データ部10から読み出されたキャッシュデータを選択し、命令データとして命令実行部2へ供給する。
ミス判定部12は、ミスと判定した場合、ミス検出信号として例えば「1」を出力する。リフィル部13は、ミス検出信号「1」を検出することにより、プリフェッチバッファ14に対してプリフェッチ要求をする。プリフェッチバッファ14は、プリフェッチ要求に対して、命令アドレスをプリフェッチアドレスとして、優先的に下層メモリシステム3へ伝達する。アクセスされたプリフェッチアドレスのデータは、命令データとして、下層メモリシステム3からキャッシュシステム1へ伝達される。
下層メモリシステム3からの命令データは、プリフェッチバッファ14へ最優先して供給される。プリフェッチバッファ14は、供給された命令データの値をライン書き込みデータ上に載せてデータ部10及び選択器15へ供給する。選択器15は、ミス検出信号「1」を検出することにより、ライン書き込みデータに載せられた命令データを選択する。選択器15で選択された命令データは、命令実行部2へ供給される。
プリフェッチバッファ14は、下層メモリシステム3から供給される命令データを格納し、命令データの値を順次ライン書き込みデータ上に載せてデータ部10及び選択器15へ供給する。また、プリフェッチバッファ14は、命令データを全て格納したところで、リフィル部13へプリフェッチ完了を伝達する。リフィル部13は、プリフェッチ完了の伝達により、データ部10に対してライン書き込み要求をし、リフィル完了を通知する。データ部10は、ライン書き込み要求に対して、命令実行部2からの命令アドレスに対応するラインアドレスへライン書き込みデータを格納していく。
命令データチェックサム計算部16は、プリフェッチバッファ14への命令データの格納と同期して、命令データを読み込む。命令データチェックサム計算部16は、読み込んだ命令データに対して命令データチェックサムを計算し、出力する。
ラインデータチェックサム計算部17は、データ部10へ格納されたライン書き込みデータを読み込む。ラインデータチェックサム計算部17は、読み込んだラインデータに対してラインデータチェックサムを計算し、出力する。
比較部18は、命令データチェックサム計算部16から出力される命令データチェックサムと、ラインデータチェックサム計算部17から出力されるラインデータチェックサムとを比較し、比較結果に応じた一致信号を生成する。比較部18は、命令データチェックサムとラインデータチェックサムとが一致する場合に真とする一致信号を生成し、一致しない場合に偽とする一致信号を生成する。一致信号は、リフィル完了と同期して、データ部10に出力される。故障検出手段は、下層メモリシステム3からプリフェッチされた命令データと、データ部10から読み出されるキャッシュデータとが整合するか否かを、チェックサムの比較によって判別する。
故障検出手段は、命令データチェックサムとラインデータチェックサムとの比較により命令データとキャッシュデータとが整合するか否かを判断する構成とすることで、1ビットずつデータを比較するよりも簡易かつ高速な故障検出が可能となる。
タグ部11は、リフィル完了の伝達により、タグ情報を更新する。タグ部11において更新されるタグ情報は、リフィル完了を検出し、かつ一致信号が真である場合にのみ、タグ情報が有効であるものとして更新される。リフィル完了を検出した場合であっても、一致信号が偽であれば、タグ部11の有効フラグを強制的にOFFにする。このようにして、キャッシュミスによるキャッシュタグ情報の更新の際、故障が検出されたキャッシュラインに対応するキャッシュタグ情報は無効化される。
マルチプロセッサシステムは、下層メモリシステム3からプリフェッチされた命令データと、データ部10から読み出されるキャッシュデータとが整合する場合、そのまま命令を実行する。同じ命令アドレスへの次回以降のアクセスには、データ部10から読み出されたキャッシュデータが使用される。
下層メモリシステム3からプリフェッチされた命令データと、データ部10から読み出されるキャッシュデータとが整合しない場合、マルチプロセッサシステムは、キャッシュアクセスはヒットしなかったものとして、再度下層メモリシステム3から命令データを読み出す。このようにして、キャッシュに故障が生じることによるシステムの異常実行を低減させることが可能となる。また、データ部10の一部に故障があったとしても機能的に正しく動作が可能であればシステムを一律不良とせずに扱うことが可能となるため、歩留まりを向上させるとともに、システムに要求される性能の維持が可能となる。
キャッシュシステム1は、リフィル完了に応じてタグ情報を有効とする従来の構成に故障検出手段からの一致信号を追加する構成であれば良いことから、タグ部11に関しては従来採用される回路をそのまま利用することが可能である。一致信号に応じてヒットとミスとを書き換えるための構成は、比較的小規模な論理回路により実現できる。
本実施の形態に係るマルチプロセッサシステムは、LSIの製造試験時、電源投入時に行う検査の際において、厳しい条件下での良品判定を不要にできるとともに、データ部10への直接的なデータの書き込み及び読み出しを簡略化できる。これにより、製造試験時、電源投入時の検査の簡略化、検査に要する時間の短縮が可能となる。また、電源投入時に行う検査の効率化により、システムの起動時間の短縮も可能となる。
なお、タグ部11は、ライン故障フラグを設け、ライン故障フラグがONである場合は強制的にキャッシュミスと扱うことで無効化しても良い。ライン故障フラグは、故障検出手段による検出結果に応じて適宜更新可能としても良い。また、ライン故障フラグは、一度ONとされた場合は、電源投入時やプログラム動作時に動的にONにしても良く、ONのまま固定しても良い。さらに、ライン故障フラグがONであるキャッシュラインに対するキャッシュアクセスがあった場合、故障検出手段の動作を停止させても良い。故障が認められたキャッシュラインへのアクセスに対しては不要な回路動作を停止可能とすることで、消費電力を抑制させることができる。
故障検出手段は、命令データチェックサムとラインデータチェックサムとの比較によって、命令データとキャッシュデータとが整合するか否かを判断する場合に限られない。故障検出手段は、命令データの値とキャッシュデータの値とが完全一致するか否かにより、命令データとキャッシュデータとが整合するか否かを判断することとしても良い。この場合、命令データとキャッシュデータとが整合するか否かの高精度な判断が可能となる。
図2は、タグ部11のデータ構造とラインデータとの対応例を示す図である。本実施の形態において、タグ部11は、データ部10に記憶された命令データがどのアドレスから読み込まれたかを示すキャッシュラインタグ情報を、キャッシュラインデータと1対1で対応するように保持している。キャッシュラインタグ情報は、タグアドレス部及び有効フラグを備える。
ここで、アドレス情報を32ビットとして、キャッシュ1ライン分として2バイトの命令データを保持し、総計2ラインのダイレクトマップキャッシュの場合を例として説明する。タグ部11の内部は、メモリで構成されているとする。図3は、2ラインのキャッシュに対するタグ部11の構成例を示す図である。各キャッシュラインのタグ情報は、ラインアドレスをインデックスとする配列メモリとして実現できる。
図3に示す構成のタグ部11に、命令実行部2から32ビットの命令アドレスが供給されると、アドレス情報を(32−m−n)ビット、mビット、nビットに分解する。中間のmビットはラインアドレスとして抜き出され、その読み出し結果がタグ情報としてミス判定部12へ供給される。
有効フラグがOFF、或いは、有効フラグがONかつミス判定部12のタグ情報がタグ部11へ供給された命令アドレスとは異なる場合、ミス判定部12は、そのアクセスをキャッシュミスとして扱う。タグ部11は、このキャッシュミスによるリフィル動作が完了した時点で、タグ部11に与えられている命令アドレスから、上述と同様にmビットで示されるラインアドレスの示すキャッシュラインタグ情報の有効フラグをONにする。以降、タグ部11は、命令アドレスが供給されるたびに、これらの動作を繰り返す。
本実施の形態において、タグ部11が保持するキャッシュタグ情報の有効フラグの一例としては、通常の有効ビットの他にライン故障を示すライン故障ビットを設けたものが挙げられる。マルチプロセッサシステムの製造段階やシステム起動時の試験動作等においてキャッシュラインの故障が判明した場合に、当初OFFであった当該ライン故障ビットをONにする。ミス判定部12は、有効フラグがON、かつライン故障ビットがOFFである場合のみ、キャッシュを有効として動作するようにする。ミス判定部12は、ライン故障ビットがONの場合は、常にキャッシュミスと同様に動作し、正しい命令データを下層メモリシステム3から取得する。
ライン故障ビットを導入する代案の一例としては、有効フラグにラインロックビットを設けたものが挙げられる。ラインロックビットは、マイクロプロセッサにおいて、キャッシュに記憶されたヒットの状況を固定化するためのビットである。タグ情報に含まれるアドレス部と命令アドレスとが異なるキャッシュミスが発生しても、ラインロックビットがONである場合は、タグ部11のタグ情報、及びデータ部10のキャッシュラインデータの更新を抑止する。
通常、マイクロプロセッサは、全メモリ領域のうちの一部のみを有効なキャッシュ領域とすることから、キャッシュが有効ではない非キャッシュ領域が存在するのが一般的である。有効フラグにラインロックビットを設ける例では、例えば、アドレス部に非キャッシュ領域を示すアドレスを強制的に登録し、当該ラインロックビットと有効フラグをONに設定する。それ以降、当該キャッシュラインのキャッシュとしての動作は抑止され、結果として故障を回避することが可能となる。
次に、8KByteの2ウェイセットアソシアティブ命令キャッシュと、333MHzで駆動される8基の32bitプロセッサとを搭載するシステムLSIを例として、性能に関する説明をする。かかるシステムLSIにおいて、MP3フォーマットのオーディオデータ(44.1KHz)を50フレーム、56タスクで並列してデコードするものとする。このとき、命令キャッシュのSRAMに不良が無いシステムLSIでは、全体で約50%程度の負荷状況と評価されている。同一のシステムにて一時的に一つのプロセッサにおいて50%のSRAMに故障が発生するとして、常に下層メモリから命令データを供給する状況であっても、全体としての性能低下は例えば0.05%程度となる。このように、命令キャッシュの一部のSRAMに故障が発生したとしても、正しい命令実行を可能とすれば、LSIとしての要求性能は十分維持可能であって、良品として扱うことが可能となる。
(第2の実施の形態)
図4は、本発明の第2の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図である。本実施の形態に係るマルチプロセッサシステムは、故障検出手段により故障が検出される頻度に応じて、複数のプロセッサに対するタスクが振り分けられることを特徴とする。第1の実施の形態と同一の部分には同一の符号を付し、重複する説明を省略する。ここでは、マルチプロセッサシステムのうち本実施の形態の説明に必要な構成を図示している。
キャッシュシステム20は、比較部18からの一致信号を反転させた不一致信号を、故障検出信号として故障検出カウンタ21へ出力する。故障検出カウンタ21は、プロセッサごとに設けられている。故障検出カウンタ21は、故障が検出された回数をカウントする。故障検出カウンタ21は、カウントを信号としてプロセッサ外部へ出力するものであっても良く、プロセッサ外部からのアクセスによりカウントが読み取り可能であるレジスタとして実装されたものであっても良い。
ソフトウェアカーネル22は、マルチプロセッサシステムの各プロセッサに対してソフトウェア処理を振り分ける。ソフトウェアカーネル22は、故障検出カウンタ21によるカウント値をパラメータとする評価関数から、各プロセッサへ割り当てるタスク振り分け処理を実行するタスク振り分け手段として機能する。評価関数は、例えば所定の閾値とカウント値との比較等であって、ユーザにより適宜設定されるものとしても良い。ソフトウェアカーネル22は、各プロセッサの下層メモリシステム3等へ、タスク実行を指令する。
本マルチプロセッサシステムは、故障検出カウンタ21によるカウントの増加を監視し、カウントが増加しないようにソフトウェアカーネル22がタスクを各プロセッサへ振り分ける。SRAMの故障が発現し易いプロセッサを避けてタスクを振り分けることで、所定の頻度を超える故障によりシステムへの悪影響を及ぼす可能性のあるプロセッサを停止又は負荷を減らす。これにより、システム全体の性能への負荷を軽減させることが可能となる。また、急激な負荷変動に対する応答性を向上させ、バスアクセスに伴う消費電力を低減させることも可能となる。本マルチプロセッサシステムは、ソフトウェアの比較的簡単な追加により、性能低下及び消費電力低下の回避を実現することが可能である。
ソフトウェアカーネル22は、故障検出カウンタ21によるカウント値をパラメータとする評価関数からタスク振り分け処理を実行するものに限られない。ソフトウェアカーネル22は、故障検出手段により故障が検出される頻度に応じてタスクの振り分けを実行するものであれば良く、例えば、故障が検出される率を算出してタスクの振り分けを実行することとしても良い。
1、20 キャッシュシステム、3 下層メモリシステム、10 データ部、11 タグ部、16 命令データチェックサム計算部、17 ラインデータチェックサム計算部、18 比較部、21 故障検出カウンタ、22 ソフトウェアカーネル。

Claims (5)

  1. キャッシュデータが格納されるキャッシュデータ記憶手段と、
    前記キャッシュデータ記憶手段の故障を検出する故障検出手段と、を有し、
    前記故障検出手段は、下層メモリからプリフェッチされた命令データと前記キャッシュデータ記憶手段から読み出されるキャッシュデータとが整合するか否かの判別により、キャッシュライン単位で故障を検出し、
    前記故障が検出されたキャッシュラインが無効化されることを特徴とするキャッシュシステム。
  2. 前記キャッシュデータのキャッシュタグ情報が格納されるタグ部を有し、
    前記タグ部は、前記故障が検出されたキャッシュラインのキャッシュタグ情報を更新し、無効化することを特徴とする請求項1に記載のキャッシュシステム。
  3. 前記故障検出手段は、
    前記命令データのチェックサムである命令データチェックサムを計算する命令データチェックサム計算手段と、
    前記キャッシュデータのチェックサムであるラインデータチェックサムを計算するラインデータチェックサム計算手段と、
    前記命令データチェックサム及び前記ラインデータチェックサムを比較する比較手段と、を備えることを特徴とする請求項1または2に記載のキャッシュシステム。
  4. 前記比較手段は、リフィルの終了と同期して、前記命令データチェックサム及び前記ラインデータチェックサムの比較結果を出力することを特徴とする請求項3に記載のキャッシュシステム。
  5. 請求項1から4のいずれか一項に記載のキャッシュシステムが装備された複数のプロセッサと、
    前記故障検出手段により故障が検出される頻度に応じて、前記複数のプロセッサに対するタスクの振り分けを実行するタスク振り分け手段と、を有することを特徴とするマルチプロセッサシステム。
JP2009217598A 2009-09-18 2009-09-18 キャッシュシステム及びマルチプロセッサシステム Pending JP2011065565A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009217598A JP2011065565A (ja) 2009-09-18 2009-09-18 キャッシュシステム及びマルチプロセッサシステム
US12/881,381 US20110072320A1 (en) 2009-09-18 2010-09-14 Cache system and control method thereof, and multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009217598A JP2011065565A (ja) 2009-09-18 2009-09-18 キャッシュシステム及びマルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JP2011065565A true JP2011065565A (ja) 2011-03-31

Family

ID=43757672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009217598A Pending JP2011065565A (ja) 2009-09-18 2009-09-18 キャッシュシステム及びマルチプロセッサシステム

Country Status (2)

Country Link
US (1) US20110072320A1 (ja)
JP (1) JP2011065565A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013205856A (ja) * 2012-03-27 2013-10-07 Nec Corp キャッシュ診断装置、キャッシュ診断方法、及びプログラム
JP2013232231A (ja) * 2011-11-07 2013-11-14 Square Enix Holdings Co Ltd 描画サーバ、センタサーバ、符号化装置、制御方法、符号化方法、プログラム、及び記録媒体

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6179369B2 (ja) * 2013-11-22 2017-08-16 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN105335247B (zh) * 2015-09-24 2018-04-20 中国航天科技集团公司第九研究院第七七一研究所 高可靠系统芯片中Cache的容错结构及其容错方法
US10853165B2 (en) * 2019-02-21 2020-12-01 Arm Limited Fault resilient apparatus and method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620302A (en) * 1984-01-06 1986-10-28 Burroughs Corporation Programmable digital signal testing system
US5555397A (en) * 1992-01-10 1996-09-10 Kawasaki Steel Corporation Priority encoder applicable to large capacity content addressable memory
US5361391A (en) * 1992-06-22 1994-11-01 Sun Microsystems, Inc. Intelligent cache memory and prefetch method based on CPU data fetching characteristics
US5590310A (en) * 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
US5504859A (en) * 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
US5574922A (en) * 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates
US5664135A (en) * 1994-09-28 1997-09-02 Hewlett-Packard Company Apparatus and method for reducing delays due to branches
US5732242A (en) * 1995-03-24 1998-03-24 Silicon Graphics, Inc. Consistently specifying way destinations through prefetching hints
US5784548A (en) * 1996-03-08 1998-07-21 Mylex Corporation Modular mirrored cache memory battery backup system
US5809548A (en) * 1996-08-30 1998-09-15 International Business Machines Corporation System and method for zeroing pages with cache line invalidate instructions in an LRU system having data cache with time tags
JP3786328B2 (ja) * 1998-07-27 2006-06-14 株式会社日立製作所 サーバおよび通信制御方法
US6226763B1 (en) * 1998-07-29 2001-05-01 Intel Corporation Method and apparatus for performing cache accesses
US7395279B2 (en) * 2003-11-17 2008-07-01 International Business Machines Corporation System and method for achieving different levels of data consistency
US7290179B2 (en) * 2003-12-01 2007-10-30 Intel Corporation System and method for soft error handling
GB2409301B (en) * 2003-12-18 2006-12-06 Advanced Risc Mach Ltd Error correction within a cache memory
US8185127B1 (en) * 2008-02-12 2012-05-22 Sprint Communications Company L. P. Method and system for allocating network resources for a single user operating multiple devices
JP5303975B2 (ja) * 2008-03-18 2013-10-02 株式会社リコー データ配信装置及びデータ配信システムと、そのエラー通知方法並びにそのプログラム及びそれを記録した記録媒体
US8949540B2 (en) * 2009-03-11 2015-02-03 International Business Machines Corporation Lateral castout (LCO) of victim cache line in data-invalid state

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232231A (ja) * 2011-11-07 2013-11-14 Square Enix Holdings Co Ltd 描画サーバ、センタサーバ、符号化装置、制御方法、符号化方法、プログラム、及び記録媒体
JP2013205856A (ja) * 2012-03-27 2013-10-07 Nec Corp キャッシュ診断装置、キャッシュ診断方法、及びプログラム

Also Published As

Publication number Publication date
US20110072320A1 (en) 2011-03-24

Similar Documents

Publication Publication Date Title
KR101252367B1 (ko) 저전압 동작 동안 캐시 부분의 디스에이블
US9323600B2 (en) Systems and methods for retiring and unretiring cache lines
US8589763B2 (en) Cache memory system
US9286172B2 (en) Fault-aware mapping for shared last level cache (LLC)
US8775906B2 (en) Efficient storage of meta-bits within a system memory
US20050273669A1 (en) Cache entry error-correcting code (ECC) based at least on cache entry data and memory address
US10769013B1 (en) Caching error checking data for memory having inline storage configurations
KR102208835B1 (ko) 역방향 메모리 스페어링을 위한 방법 및 장치
US11113164B2 (en) Handling errors in buffers
CN107885611B (zh) 可主动回写的分级指令存储器结构容错方法和装置
US10528473B2 (en) Disabling cache portions during low voltage operations
CN107992376A (zh) Dsp处理器数据存储器主动容错方法和装置
US20090019306A1 (en) Protecting tag information in a multi-level cache hierarchy
JP2011065565A (ja) キャッシュシステム及びマルチプロセッサシステム
JP5625809B2 (ja) 演算処理装置、情報処理装置及び制御方法
JPH10320280A (ja) キャッシュに値を格納する方法及びコンピュータ・システム
KR100297914B1 (ko) 스누핑장치를위한다중캐쉬디렉토리
US7954038B2 (en) Fault detection
US8667325B2 (en) Method, apparatus and system for providing memory sparing information
JPH10320279A (ja) 回復可能な高速ディレクトリ・アクセス方法
CN111352757A (zh) 检测未初始化存储器读取的设备、系统和方法
US20100131718A1 (en) Multiprocessor system
JP2013061887A (ja) 故障位置判定回路、記憶装置、および情報処理装置
US20070294587A1 (en) Improving Performance of a Processor Having a Defective Cache
US8370582B2 (en) Merging subsequent updates to a memory location