JP2011065565A - キャッシュシステム及びマルチプロセッサシステム - Google Patents
キャッシュシステム及びマルチプロセッサシステム Download PDFInfo
- 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
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
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0703—Error 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/0706—Error 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/0721—Error 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/0724—Error 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
-
- 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/0703—Error 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/0706—Error 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/073—Error 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
-
- 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/1004—Adding 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
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- 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/0703—Error 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/0793—Remedial or corrective actions
-
- 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/60—Details of cache memory
- G06F2212/6028—Prefetching 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
【解決手段】キャッシュデータが格納されるキャッシュデータ記憶手段であるデータ部10と、前記キャッシュデータ記憶手段の故障を検出する故障検出手段である命令データチェックサム計算部16、ラインデータチェックサム計算部17及び比較部18と、を有し、前記故障検出手段は、下層メモリシステム3からプリフェッチされた命令データと前記キャッシュデータ記憶手段から読み出されるキャッシュデータとが整合するか否かの判別により、キャッシュライン単位で故障を検出し、故障が検出されたキャッシュラインが無効化される。
【選択図】図1
Description
本発明は、キャッシュシステム及びマルチプロセッサシステムに関する。
一つのチップで対称型マルチプロセッサLSIを構成するマルチプロセッサシステムは、各マイクロプロセッサで同一の命令コードを同時実行する場合がある。各マイクロプロセッサの命令フェッチに伴うバス競合によるストールを回避するため、システムの多くは、各マイクロプロセッサに命令キャッシュが実装される。命令キャッシュは、一般に、キャッシュタグ部(以下、適宜「タグ部」と称する)と、一般的なSRAMを備える命令メモリ部(以下、適宜「メモリ部」と称する)とから構成されている(キャッシュメモリについては、例えば、特許文献1参照)。
メモリ部は、キャッシュヒットの際に命令実行部へ正しい命令データを供給可能とする正常動作を保証するために、LSI検査において厳密にテストされる。一般に、メモリ部は、スペック上の最低電圧、最高周波数で記憶素子の故障が生じ易くなるとされている。良品判定は、このような厳しい条件化で行われ、複数のマイクロプロセッサのうちの一つでも故障が生じれば、たとえティピカルな電圧や駆動周波数では正常な動作が可能であったとしてもLSI全体が不良とみなされることとなる。このような扱いの回避とともにシステムの異常実行を防止するための手法として、例えば、各マイクロプロセッサのメモリ部に冗長記憶部を設けておき、不良部分から正常部分への切り替えをする技術がある。この場合、マイクロプロセッサごとに冗長性を持たせるために、マイクロプロセッサ数に比例して冗長面積が増大することとなる。これらのことから、一つのチップで対称型マルチプロセッサLSIを構成するマルチプロセッサシステムは、単体のマイクロプロセッサチップを複数組み合わせた構成よりも歩留まりが悪くなること、製造コストが増加することが課題となる。
さらに、LSIのアプリケーションにより、メモリ部に不良のあるマイクロプロセッサを使用しないこととし、他の正常なマイクロプロセッサに処理を実行させることで、LSIが処理すべき要求性能を満たそうとする技術もある。この他、メモリ部に不良のあるマイクロプロセッサの分のスペックを低下させることとし、全体として歩留まりを維持する場合もある。いずれの場合も、マイクロプロセッサを一意に不使用とすることで、LSIとしての性能を大幅に低下させ、適用可能なアプリケーションが限定されるため売価の低下を招くという問題がある。
本発明は、キャッシュに故障が生じることによるシステムの異常実行を低減可能とし、歩留まりの向上、及びシステムに要求される性能の維持を可能とするキャッシュシステム及びマルチプロセッサシステムを提供することを目的とする。
本願発明の一態様によれば、キャッシュデータが格納されるキャッシュデータ記憶手段と、前記キャッシュデータ記憶手段の故障を検出する故障検出手段と、を有し、前記故障検出手段は、下層メモリからプリフェッチされた命令データと前記キャッシュデータ記憶手段から読み出されるキャッシュデータとが整合するか否かの判別により、キャッシュライン単位で故障を検出し、前記故障が検出されたキャッシュラインが無効化されることを特徴とするキャッシュシステムが提供される。
また、本願発明の一態様によれば、上記のキャッシュシステムが装備された複数のプロセッサと、前記故障検出手段により故障が検出される頻度に応じて、前記複数のプロセッサに対するタスクの振り分けを実行するタスク振り分け手段と、を有することを特徴とするマルチプロセッサシステムが提供される。
本発明によれば、キャッシュに故障が生じることによるシステムの異常実行を低減可能とし、歩留まりの向上、及びシステムに要求される性能の維持が可能となる。
また、本発明によれば、所定の頻度で故障が検出されたプロセッサを停止可能とすることで、システム全体の性能への負荷を軽減させることができる。
以下に添付図面を参照して、本発明の実施の形態に係るキャッシュシステム及びマルチプロセッサシステムを詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るキャッシュシステム1を備えるマルチプロセッサシステムの構成を示すブロック図である。マルチプロセッサシステムは、キャッシュシステム1が装備された複数のプロセッサを備える。ここでは、マルチプロセッサシステムのうち本実施の形態の説明に必要な構成を図示している。命令実行部2は、マルチプロセッサシステムの動作を制御するためのCPU(Central Processing Unit)であり、外部メモリに格納されたプログラムを実行する。下層メモリシステム3は、キャッシュシステム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ライン分として2nバイトの命令データを保持し、総計2mラインのダイレクトマップキャッシュの場合を例として説明する。タグ部11の内部は、メモリで構成されているとする。図3は、2mラインのキャッシュに対するタグ部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の実施の形態と同一の部分には同一の符号を付し、重複する説明を省略する。ここでは、マルチプロセッサシステムのうち本実施の形態の説明に必要な構成を図示している。
図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に記載のキャッシュシステム。 - 前記故障検出手段は、
前記命令データのチェックサムである命令データチェックサムを計算する命令データチェックサム計算手段と、
前記キャッシュデータのチェックサムであるラインデータチェックサムを計算するラインデータチェックサム計算手段と、
前記命令データチェックサム及び前記ラインデータチェックサムを比較する比較手段と、を備えることを特徴とする請求項1または2に記載のキャッシュシステム。 - 前記比較手段は、リフィルの終了と同期して、前記命令データチェックサム及び前記ラインデータチェックサムの比較結果を出力することを特徴とする請求項3に記載のキャッシュシステム。
- 請求項1から4のいずれか一項に記載のキャッシュシステムが装備された複数のプロセッサと、
前記故障検出手段により故障が検出される頻度に応じて、前記複数のプロセッサに対するタスクの振り分けを実行するタスク振り分け手段と、を有することを特徴とするマルチプロセッサシステム。
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)
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)
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)
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 |
-
2009
- 2009-09-18 JP JP2009217598A patent/JP2011065565A/ja active Pending
-
2010
- 2010-09-14 US US12/881,381 patent/US20110072320A1/en not_active Abandoned
Cited By (2)
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 |