JP2015176333A - 演算処理装置、制御方法、及び、プログラム - Google Patents

演算処理装置、制御方法、及び、プログラム Download PDF

Info

Publication number
JP2015176333A
JP2015176333A JP2014052190A JP2014052190A JP2015176333A JP 2015176333 A JP2015176333 A JP 2015176333A JP 2014052190 A JP2014052190 A JP 2014052190A JP 2014052190 A JP2014052190 A JP 2014052190A JP 2015176333 A JP2015176333 A JP 2015176333A
Authority
JP
Japan
Prior art keywords
request
address
request address
cache
registration
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.)
Granted
Application number
JP2014052190A
Other languages
English (en)
Other versions
JP6334969B2 (ja
Inventor
雅彦 高遠
Masahiko Takato
雅彦 高遠
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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2014052190A priority Critical patent/JP6334969B2/ja
Publication of JP2015176333A publication Critical patent/JP2015176333A/ja
Application granted granted Critical
Publication of JP6334969B2 publication Critical patent/JP6334969B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】訂正不可能なアドレスエラーを検出した場合のシステムダウンを防止する手段を提供する。
【解決手段】演算処理装置10は、プロセッサ101から主記憶装置140へのリクエストをキャッシュするシステムキャッシュ120でキャッシュにミスした場合にリクエストアドレスを登録するリクエストバッファ部221と、リクエストアドレスを読み取りシステムキャッシュに書き込むキャッシュ登録制御部224と、アドレスエラーを検出するアドレスエラー検出部220と、タイムアウトを通知するタイムアウト部222と、ポイズンデータを作成するデータポイズナ部223とを包含し、アドレスエラーを検出した場合、リクエストアドレスの登録を抑止し、リクエストアドレスが返却されるとリクエストアドレスの登録をクリアし、タイムアウトを通知されるとリクエストバッファ部に登録されているリクエストアドレスにポイズンデータを書き込む。
【選択図】図2

Description

本発明は、演算処理装置、制御方法、及び、そのためのプログラムに関する。
マルチプロセッサシステムにおける最も重大なタイプのエラーの1つは、アドレスエラーである。訂正不可能なアドレスエラーを検出した場合、破壊されたアドレスを修復することができないため、メモリアドレスを特定することができない。そのため、メモリコントローラやキャッシュコントローラが誤ったデータを供給する等のデータ化けを引き起こす可能性がある。
マルチプロセッサシステムは、破壊されたデータを継続処理することを避けるために、オペレーティングシステムの即時停止といった致命的エラーに移行する。従って、アプリケーションを正常にシャットダウンすることができず、システムダウンとなってしまう。
特許文献1は、アドレスエラーから回復するための演算処理装置の一例を開示している。この特許文献に記載された演算処理装置は、アドレスエラーを検出した場合に、所定の条件(ハミング距離が0または1である)を満たすアドレスを有するラインをシステムキャッシュから探索して、MESI(キャッシュコヒーレンシ等に関するプロトコルである、MESIプロトコル)の状態が変更(M)または排他的(E)である場合、データ状態の整合性が未知であるため、対応するデータをポイズニングする。また、共用(S)または無効(I)である場合、そのラインを無視するか、または無効であるとマーキングする。
特許文献2は、アドレスエラー発生時であってもデータの意図しない上書きを回避するデータ処理装置を開示している。この特許文献に記載されたデータ処理装置は、アドレス誤り信号を受信した場合、メモリの書き込み処理を禁止し、メモリ読み出しの再実行を行う。これにより、データ処理装置は、メモリへの再読出し処理が行われる前に、データが上書きされることを回避する。
特開2000−322317号公報 特開2013−156821号公報
上記文献の技術を用いた場合、訂正不可能なアドレスエラーを検出すると、システムダウンにより即時停止に至り易い、という課題がある。
特許文献1では、エラーしたアドレスは、正しいアドレスに非常に類似している可能性が高いことから、ハミング距離が0または1、2であるアドレスがシステムキャッシュラインに存在するか探索する。そして探索の結果、存在すればポイズニングする。したがって、類似したアドレスがキャッシュラインに存在すれば、全てエラーとして処理されてしまい、正確にエラー検出ができない場合がある。また、それにより、システムダウンに至り易いという問題がある。
特許文献2は、メモリへの再読出し処理を行っているが、その際にエラーを検出した場合は、データのポイズニングを用いて順序立ててシャットダウンする等の処置を実施しておらず、システムダウンによる即時停止となる可能性が高い。
本発明の目的は、訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上することにある。
本発明の演算処理装置は、プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録する、リクエストバッファ手段と、前記リクエストバッファ手段から、前記リクエストアドレスを読み取り、前記システムキャッシュに書き込む、キャッシュ登録制御手段と、前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出する、アドレスエラー検出手段と、前記リクエストバッファ手段、及び、前記キャッシュ登録制御手段に所定の時間の経過を示すタイムアウトを通知する、タイムアウト手段と、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを作成する、データポイズナ手段と、を包含し、前記アドレスエラー検出手段が、前記アドレスエラーを検出した場合、前記リクエストバッファ手段へ前記リクエストアドレスの登録の抑止を指示して、前記タイムアウト手段を起動し、前記リクエストバッファ手段が、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、前記キャッシュ登録制御手段が、前記タイムアウトを通知されると、前記システムキャッシュで、前記リクエストバッファ手段に登録されている前記リクエストアドレスに、前記データポイズナ手段から読み出した前記ポイズンデータを書き込む。
本発明の制御方法は、プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録し、前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出した場合、前記リクエストアドレスの登録の抑止を指示して、所定の時間の経過を示すタイムアウトを起動し、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、前記タイムアウトを通知されると、前記システムキャッシュで、登録されている前記リクエストアドレスに、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを書き込む。
本発明のコンピュータプログラムは、プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録する処理と、前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出した場合、前記リクエストアドレスの登録の抑止を指示して、所定の時間の経過を示すタイムアウトを起動する処理と、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアする処理と、前記タイムアウトを通知されると、前記システムキャッシュで、登録されている前記リクエストアドレスに、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを書き込む処理と、をコンピュータに実行させる。
本発明は、訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上するという効果を奏する。
図1は、本発明の第一の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。 図2は、本発明の第一の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。 図3は、演算処理装置における、訂正不可能なアドレスエラー検出時の動作の一例を示す図である。 図4は、演算処理装置の動作を示すフローチャートである。 図5は、第二の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。 図6は、第三の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。 図7は、第四の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。 図8は、第五の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。
発明を実施するための第一の形態について、図面を参照して詳細に説明する。
図1は、本発明の第一の実施形態に係る、演算処理装置100の構成の一例を示すブロック図である。また、図1は、一般的なマルチプロセッサシステムの構成の概要を示している。なお、本実施形態の構成要素の詳細については、図2で説明する。
図1において、複数のプロセッサ101〜104と、システムキャッシュ120、121は、ローカルバス110、111で接続される。プロセッサ101、102は、システムキャッシュ120に接続され、プロセッサ103、104は、システムキャッシュ121に接続される。また、各プロセッサは、システムキャッシュを経由し、主記憶装置140やI/O装置141とシステムバス130で接続されている。
マルチプロセッサシステムは、複数のプロセッサ101〜104を同時に使用して、システム全体の処理能力向上や耐故障性を高めたコンピュータシステムであり、複数のプロセッサ101〜104で処理を分担して実行することにより、単一プロセッサでは得られないような高い処理性能を実現している。また、マルチプロセッサシステムは、あるプロセッサで障害が発生しても、他のプロセッサでその処理を引き継いで実行(プロセッサリリーフ)することにより、見かけ上の信頼性を向上させたシステムを実現している。
なお、システムキャッシュ120、121の構造や主記憶装置140のアドレスとキャッシュデータのラインとの関連付け(ダイレクトマッピング、フルアソシアティブおよびセットアソシアティブ)については、すべて本技術分野において周知であり、説明は省略する。
図2は、本発明の第一の実施形態に係る、演算処理装置10の構成の一例を示すブロック図である。
また、図2は、図1のプロセッサ103、104、ローカルバス111、及び、システムキャッシュ121の記載を省略し、演算処理装置10の構成要素を全て記載した図である。
以下、図2を参照して、演算処理装置10の構成、及び、動作について説明する。
なお、以降の説明では、図2の表示に限定せず、プロセッサ101、102の代わりにプロセッサ101〜104と表記する場合や、図2に記載していない(図1に記載している)システムキャッシュ121を説明の中で使用する場合等がある。
図2を参照すると、演算処理装置10は、複数のプロセッサ101、102、ローカルバス110、システムキャッシュ120、システムバス130、主記憶装置140、I/O装置141、アドレスエラー検出部220、リクエストバッファ部221、タイムアウト部222、データポイズナ部223、及び、キャッシュ登録制御部224、により構成される。
複数のプロセッサ101、102は、ローカルバス110に接続され、ローカルバス110の先には処理性能を向上するために高速に動作するシステムキャッシュ(システムキャッシュメモリ)120が接続されている。
システムキャッシュ120は、システムバス130に接続され、その先には主記憶装置140、I/O装置141が接続されている。
システムキャッシュ120は、プロセッサ101、102からローカルバス110及びローカルバス110に接続する信号線201経由で、主記憶装置140に対するリクエストアドレスを受け付け、そのリクエストアドレスに対応するデータがキャッシュ上に登録されているかをライン(キャッシュラインとも言う)の確認により判定する。登録されていれば、システムキャッシュ120は、リクエストアドレスに対応するデータを信号線201経由でプロセッサ101、102に返却する。キャッシュ上に登録されていなければ、システムキャッシュ120は、信号線202経由でリクエストアドレスをシステムバス130に送信して、主記憶装置140から、そのリクエストアドレスに対応するデータを受け取る。なお、システムキャッシュ120のデータ格納構造やライン入れ替え方式、コヒーレンシについては、当業者にとってよく知られており、本発明と直接関係しないので、詳細な説明は省略する。
一方、システムキャッシュ120は、プロセッサ101、102がキャッシュにミスした場合、リクエストアドレスを信号線202経由でシステムバス130に通知すると同時に、リクエストバッファ部221にリクエストアドレスを登録する。そして、主記憶装置140からリクエストアドレスに対応するデータが読み出されシステムバス130に返却されると、システムキャッシュ120は、該当するキャッシュラインに、信号線202にて受信したデータを登録する。
また、システムバス130に接続する信号線206経由にてリクエストアドレスが返却され、リクエストバッファ部221は、自身に登録してある該リクエストアドレスをバッファからクリアする。
複数のプロセッサ101、102からのリクエストアドレスがシステムキャッシュ120上に存在しない場合(すなわち、プロセッサ101、102がキャッシュにミスした場合)は、リクエストバッファ部221に複数のアドレスが、キャッシュミスとなったアドレスとして登録されることになる。
アドレスエラー検出部220は、システムバス130のアドレスを信号線203にて常に監視している。その監視によりシステムバス130を含むシステム側で訂正不可能なアドレスエラーが検出された場合、アドレスエラー検出部220は、アドレスエラーを検知し、信号線204にてリクエストバッファ部221にバッファへのリクエストアドレスの登録抑止を指示する。
なお、アドレスエラーが訂正不可能か否かは、予め設定した基準に基づき、アドレスエラー検出部220が判断するものとするが、ここでは、詳細な説明は省略する。
本発明の第一の実施形態では、訂正不可能なアドレスエラーを検出してもマルチプロセッサシステムは即時停止しない。このため、プロセッサ101〜104からのリクエストは継続して動作する。
このように、アドレスエラー検出部220は、アドレスエラーを検出した以降のリクエストアドレスでリクエストバッファ部221の登録情報が更新されるのを抑止する。
アドレスエラー検出部220は、アドレスエラーを検知し、リクエストバッファ部221にバッファの登録抑止を指示した後、信号線205にて、タイムアウト部222のタイマを起動する。タイムアウト部222に設定する時刻は、システムキャッシュにミスしてから該当データをシステムキャッシュ120に登録するまでのレイテンシよりも大きく、オペレーティングシステムがタイムアウトしない適切な時刻を設定しておく。
タイムアウト部222は、タイムアウトすると、信号線207にてキャッシュ登録制御部224とリクエストバッファ部221にタイムアウトが発生したことを通知する。
キャッシュ登録制御部224は、信号線208を経由して、リクエストバッファ部221のバッファ内に登録されているリクエストアドレスを読み取る。キャッシュ登録制御部224は、リクエストバッファ部221に登録されているリクエストアドレスが無ければ何もしない。登録されているリクエストアドレスが存在する場合には、このリクエストアドレスがアドレスエラーを検出したリクエストであると判断することができる。
キャッシュ登録制御部224は、該当アドレスに対して、データポイズナ部223より、プロセッサ101、102が検出可能な回復不能なエラーパターン(ポイズンデータ)を読み出し、システムキャッシュ120の該当するキャッシュラインに書き込む。
ポイズン処理は、訂正不可能なエラーを効果的に処理する。演算処理装置10は、ポイズン処理された訂正不可能なエラーを検出した場合、訂正はできないがエラーの検出を可能にする機能により、誤った出力の生成を回避することが可能である。データポイズナ部223は、破壊されたアドレスに関するデータが何れかのプロセッサにより使用されるのを防ぐために、破壊されたアドレスに対応するデータをポイズン(poison)と呼ぶ特別なデータパターン(ポイズンデータ)に変換してシステムキャッシュ120に書き込む。
その後、リクエストバッファ部221は、信号線207からのタイムアウトにより登録抑止を解除して動作を再開する。
プロセッサ101、102は、ポイズンデータをシステムキャッシュ120からロードすると、ロードユニットでポイズンであるかチェックし、ポイズンデータであれば、プロセッサチェックに移行する。
プロセッサチェックに移行したプロセッサで実行していたプロセスはジョブアボートかシステムクラッシュとなるが、システムダウンによる即時停止とはならない。このため、演算処理装置10は、重要な動作の優先度を考慮して順序立ててシャットダウンする機会を提供することができ、信頼性を向上することができる。
また、システムキャッシュ120に登録したポイズンデータをプロセッサ101、102が使用せずにパージ処理した場合には、障害に移行することもないため、演算処理装置10は、システムへの影響を軽減することが可能である。
ここで、アドレスエラー検出部220、タイムアウト部222、データポイズナ部223、及び、キャッシュ登録制御部224は、論理回路等のハードウェアで構成される。
また、リクエストバッファ部221は、半導体メモリ等の記憶装置である
また、アドレスエラー検出部220、タイムアウト部222、データポイズナ部223、及び、キャッシュ登録制御部224は、コンピュータである演算処理装置10のプロセッサが、図示されないメモリ上のプログラムを実行することで実現されてもよい。
図3は、演算処理装置10における、訂正不可能なアドレスエラー検出時の動作の一例を示す図である。
以下、図3を用いて、図2の演算処理装置10(および図1の演算処理装置100)における、訂正不可能なアドレスエラー検出時の詳細な動作を説明する。
まず、プロセッサ101〜104が、システムキャッシュ120でミスした場合に、主記憶装置140やシステムキャッシュ121に対して、リクエストアドレスに対応するデータを要求する。
そして、仕掛かり中の(ミスした場合の)リクエストアドレス「1」、「2」、及び、「3」が、リクエストバッファ部221に登録されている状態(221−0)で、アドレスエラー検出部220が訂正不可能なアドレスエラーを検出した場合、アドレスエラー検出部220は、信号線204にてリクエストバッファ部221にエラーの検出を通知する。
次に、リクエストバッファ部221は、エラーを検出した以降にリクエストアドレスが登録されないよう、登録を抑止してバッファをホールドする(状態221-1)。
ここで、タイムアウト部222は、時間監視を起動する。
時間監視中に、仕掛かり中のリクエストアドレス「1」と「3」に対応するデータが主記憶装置140から返却される(リプライの返却がある)と、リクエストバッファ部221は、自身に登録されているリクエストアドレス「1」と「3」をクリアする。
タイムアウト部222は、タイムアウトを検出すると、信号線207にてリクエストバッファ部221にタイムアウトが発生した事を通知する(状態221−2)。
リクエストバッファ部221は、リクエストアドレス「2」が登録された状態であるため、リクエストアドレス「2」がアドレスエラーを検出したアドレスであると判断できる。
キャッシュ登録制御部224は、データポイズナ部223よりポイズンデータを読み出し、リクエストアドレス「2」を登録しているシステムキャッシュ120のキャッシュラインにポイズンデータを書き込む。
図4は、演算処理装置10の動作を示すフローチャートである。
図4は、アドレスエラー検出からポイズン処理までの流れを示している。
まず、アドレスエラー検出部220が、アドレスエラーを検出する(ステップS701)。
次に、アドレスエラー検出部220が、リクエストバッファ部221への登録処理を抑止する(ステップS702)。
また、アドレスエラー検出部220が、タイムアウト部222を起動し(ステップS703)、タイムアウトを検出するまで待ち合わせする(ステップS704)。
そして、キャッシュ登録制御部224は、タイムアウトを検出すると(ステップS704でY)、リクエストバッファ部221に残留しているリクエストアドレスに対してポイズンデータを書き込む(ステップS705)。
本実施形態に係る演算処理装置10は、以下に記載するような効果を奏する。
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリクエストアドレスがバッファに残っているかをチェックする。そして、一定時間の経過後にリプライが無かったリクエストアドレスがアドレスエラーを検出していると判断して、該当するアドレスのデータをポイズン処理する、からである。
<第二の実施形態>
次に、本発明の第二の実施形態について図面を参照して詳細に説明する。
図5は、第二の実施形態に係る、演算処理装置10Aの構成の一例を示すブロック図である。
図5は、図2におけるデータポイズナ部223及びキャッシュ登録制御部224を削除し、代わりにリクエスト再送部320を追加した構成である。
ここで、リクエスト再送部320は、論理回路等のハードウェアで構成される。
また、リクエスト再送部320は、コンピュータである演算処理装置10Aのプロセッサが、図示されないメモリ上のプログラムを実行することで実現されてもよい。
なお、訂正不可能なアドレスエラーを検出してからタイムアウトまでは、図3の動作説明と同様であるため、説明を省略する。
まず、タイムアウト部222は、タイムアウトすると、信号線207にてリクエスト再送部320とリクエストバッファ部221にタイムアウトが発生したことを通知する。
リクエスト再送部320は、リクエストバッファ部221から信号線208により、バッファ内に登録されているリクエストアドレスを読み取る。リクエスト再送部320は、登録されているリクエストアドレスが無ければ何もしない。一方、登録されているリクエストアドレスが存在する場合には、リクエスト再送部320は、このリクエストアドレスがアドレスエラーを検出したリクエストであると判断することができる。リクエスト再送部320は、該当アドレスに対して、信号線301経由で、再度、リクエストをシステムバス130に送信する。
図2と異なる点は、図2の演算処理装置10では、アドレスエラー検出でシステムキャッシュ120にポイズンデータを書き込むのに対して、図5の演算処理装置10Aは、アドレスエラーを検出したリクエストアドレスにリクエストを再送することである。
これにより、演算処理装置10Aは、間欠のシステムバス障害であれば、リクエストアドレスに対するデータを取得し直すことができるため、マルチプロセッサシステムを障害状態に遷移させることなく継続運用することができる。
リクエストバッファ部221は、信号線204による登録抑止を解除して動作を再開する。
本実施形態に係る演算処理装置10Aは、以下に記載するような効果を奏する。
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリクエストアドレスがバッファに残っているかをチェックする。そして、一定時間の経過後にリプライが無かったリクエストアドレスにリクエストを再送する、からである。
<第三の実施形態>
次に、本発明の第三の実施形態について図面を参照して詳細に説明する。
図6は、第三の実施形態に係る、演算処理装置10Bの構成の一例を示すブロック図である。
本実施形態は、図6に示すように、図2の構成に、シャドーバッファ部420を追加した構成である。なお、シャドーバッファ部420は、半導体メモリ等の記憶装置である。
まず、アドレスエラー検出部220は、システムバス130にて訂正不可能なアドレスエラーを検出した場合、エラーを検知し、信号線204にて、リクエストバッファ部221からシャドーバッファ部420にバッファの登録情報をコピーするよう指示する。シャドーバッファ部420は、リクエストバッファ部221のデータを信号線402によりコピーして格納する。
次に、タイムアウト部222は、タイムアウトすると、信号線207にてキャッシュ登録制御部224とシャドーバッファ部420にタイムアウトが発生したことを通知する。
この後、第一の実施形態と同様に、キャッシュ登録制御部224は、シャドーバッファ部420から信号線401により、バッファ内に登録されているリクエストアドレスを読み取り、タイムアウト後に、登録されたリクエストアドレスの有無を判断する。
タイムアウト後に、登録されたリクエストアドレスが有った場合、キャッシュ登録制御部224は、データポイズナ部223が作成したポイズンデータをシステムキャッシュ120に書き込む。そして、シャドーバッファ部420は、信号線403により登録されているリクエストアドレスをリクエストバッファ部221に通知する。また、リクエストバッファ部221は、信号線403経由で通知されたリクエストアドレスと一致するアドレスをバッファから削除する。
上記を除く動作は、図2と同様であるので、説明は省略する。
本実施形態において、アドレスエラーが発生しても、リクエストバッファ部221は停止せずに継続動作する。その理由は、後続のリクエスト処理中にアドレスエラーが発生した場合に、リクエストバッファ部221に残留しているリクエストアドレスでリプライの返却の処理ができるようにするためである。
また、本実施形態では、演算処理装置10Bは、シャドーバッファ部420やタイムアウト部222を複数、備えてもよい。アドレスエラーがタイムアウト期間内に複数発生する可能性がある場合には、演算処理装置10Bは、シャドーバッファ部420やタイムアウト部222を複数分備えることで並列して処理できるようにすることが可能であり、救済率を向上することができる。
本実施形態に係る演算処理装置10Bは、以下に記載するような効果を奏する。
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリクエストアドレスがバッファに残っているかをチェックする。そして、一定時間の経過後にリプライが無かったリクエストアドレスがアドレスエラーを検出していると判断して、該当するアドレスのデータをポイズン処理する、からである。
<第四の実施形態>
次に、本発明の第四の実施形態について図面を参照して詳細に説明する。
図7は、第四の実施形態に係る、演算処理装置10Cの構成の一例を示すブロック図である。
本実施形態は、図7に示すように、図2、図5、及び、図6の構成とは異なり、システムキャッシュ120への登録の制御ではなく、プロセッサ101へリプライするための構成である。また、図7が図2と異なる点は、システムバス130ではなく、ローカルバス110のアドレスエラーに対する回復処理の構成としている点である。また、本実施形態は、図2におけるキャッシュ登録制御部224を削除し、代わりにリクエスト返却部520を追加した構成をローカルバス110に接続したものである。
リクエスト返却部520は、論理回路等のハードウェアで構成される。
また、リクエスト返却部520は、コンピュータである演算処理装置10Cのプロセッサが、図示されないメモリ上のプログラムを実行することで実現されてもよい。
まず、プロセッサ101は、メモリに対するリクエストアドレスを信号線501でローカルバス110に通知すると同時に、リクエストバッファ部221にリクエストアドレスを登録する。
ローカルバス110は、システムキャッシュ120(図2)、または主記憶装置140(図2)からリクエストアドレスに該当するデータがローカルバス110に返却されると、信号線501にてプロセッサ101にデータを返却する。
また、リクエストバッファ部221は、信号線505経由にて返却されリクエストバッファ部221に登録した該当リクエストアドレスをクリアする。
アドレスエラー検出部220は、ローカルバス110のアドレスを信号線502にて常にチェックしている。ローカルバス110にて訂正不可能なアドレスエラーを検出した場合、アドレスエラー検出部220は、エラーを検知し、信号線503にてリクエストバッファ部221にバッファの登録抑止を指示し、アドレスエラーを検出した以降のリクエストでリクエストバッファ221の登録情報が更新されるのを抑止する。
そして、アドレスエラー検出部220は、信号線504にて、タイムアウト部222のタイマを起動する。タイムアウト部222に設定する時刻は、プロセッサ101がリクエストアドレスを送出してから該当データを返却するまでのレイテンシよりも大きく、オペレーティングシステムがタイムアウトしない適切な時刻を設定しておく。タイムアウト部222は、タイムアウトすると、信号線506にてリクエスト返却部520及びリクエストバッファ部221にタイムアウトが発生したことを通知する。
リクエスト返却部520は、タイムアウトの通知を受けて、リクエストバッファ部221から信号線507により、バッファ内に登録されているリクエストアドレスを読み取る。
リクエストバッファ部221は、信号線503により登録抑止を解除して動作を再開する。
そして、リクエスト返却部520は、登録されているリクエストアドレスが無ければ何もしない。また、登録されているリクエストアドレスが存在する場合には、リクエスト返却部520は、このリクエストアドレスがアドレスエラーを検出したリクエストであると判断することができる。
リクエスト返却部520は、データポイズナ部223より、ポイズンデータを読み出し、該リクエストアドレスとポイズンデータをプロセッサ101に返却する。
本実施形態に係る演算処理装置10Cは、以下に記載するような効果を奏する。
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリプライの返却有無をチェックする。一定時間経過後にリプライが無かったリクエストアドレスがアドレスエラーを検出していると判断して、該当するアドレスのデータをポイズン処理する、からである。
<第五の実施形態>
本発明の第五の実施形態について図面を参照して詳細に説明する。
図8は、第五の実施形態に係る、演算処理装置10Dの構成の一例を示すブロック図である。
演算処理装置10Dは、アドレスエラー検出部220、リクエストバッファ部221、タイムアウト部222、データポイズナ部223、及び、キャッシュ登録制御部224、を包含する。
また、演算処理装置10Dは、プロセッサ101、102から主記憶装置140へのリクエストをキャッシュするシステムキャッシュ120を備える。
リクエストバッファ部221は、プロセッサ101、102が、システムキャッシュ120で、キャッシュにミスした場合に、リクエストアドレスを登録する。
キャッシュ登録制御部224は、リクエストバッファ部221から、リクエストアドレスを読み取り、システムキャッシュ120に書き込む。
アドレスエラー検出部220は、主記憶装置140に接続するシステムバス130でアドレスエラーを検出する。
タイムアウト部222は、リクエストバッファ部221、及び、キャッシュ登録制御部224に所定の時間の経過を示すタイムアウトを通知する。
データポイズナ部223は、プロセッサ101、102による検出が可能なエラーパターンであるポイズンデータを作成する。
演算処理装置10Dは、アドレスエラー検出部220が、アドレスエラーを検出した場合、リクエストバッファ部221へリクエストアドレスの登録の抑止を指示し、さらにタイムアウト部222を起動する。登録抑止の指示に基づきリクエストバッファ部221が、リクエストアドレスの登録を抑止する。また、システムバス130からリクエストアドレスが返却されると、リクエストバッファ部221はリクエストアドレスの登録をクリアする。キャッシュ登録制御部224が、タイムアウト部222のタイムアウトを通知されると、キャッシュ登録制御部224は、システムキャッシュ120のキャッシュミスによってリクエストバッファ部221に登録されているリクエストアドレスに、データポイズナ部223から読み出したポイズンデータを書き込む。
本実施形態に係る演算処理装置10Dは、以下に記載するような効果を奏する。
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリクエストアドレスがバッファに残っているかをチェックする。そして、一定時間の経過後にリプライが無かったリクエストアドレスがアドレスエラーを検出していると判断して、該当するアドレスのデータをポイズン処理する、からである。
以上、図面を参照して本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
10 演算処理装置
10A 演算処理装置
10B 演算処理装置
10C 演算処理装置
10D 演算処理装置
100 演算処理装置
101 プロセッサ
102 プロセッサ
103 プロセッサ
104 プロセッサ
110 ローカルバス
111 ローカルバス
120 システムキャッシュ
121 システムキャッシュ
130 システムバス
140 主記憶装置
141 I/O装置
220 アドレスエラー検出部
221 リクエストバッファ部
222 タイムアウト部
223 データポイズナ部
224 キャッシュ登録制御部
320 リクエスト再送部
420 シャドーバッファ部
520 リクエスト返却部

Claims (10)

  1. プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録する、リクエストバッファ手段と、
    前記リクエストバッファ手段から、前記リクエストアドレスを読み取り、前記システムキャッシュに書き込む、キャッシュ登録制御手段と、
    前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出する、アドレスエラー検出手段と、
    前記リクエストバッファ手段、及び、前記キャッシュ登録制御手段に所定の時間の経過を示すタイムアウトを通知する、タイムアウト手段と、
    前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを作成する、
    データポイズナ手段と、を包含し、
    前記アドレスエラー検出手段が、前記アドレスエラーを検出した場合、前記リクエストバッファ手段へ前記リクエストアドレスの登録の抑止を指示して、前記タイムアウト手段を起動し、
    前記リクエストバッファ手段が、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、
    前記キャッシュ登録制御手段が、前記タイムアウトを通知されると、前記システムキャッシュで、前記リクエストバッファ手段に登録されている前記リクエストアドレスに、前記データポイズナ手段から読み出した前記ポイズンデータを書き込む、演算処理装置。
  2. 前記データポイズナ手段、及び、前記キャッシュ登録制御手段の代わりに、前記リクエストバッファ手段から、前記リクエストアドレスを読み取り、前記リクエストアドレスに対してリクエストを送信する、リクエスト再送手段を備え、
    前記タイムアウト手段が、前記リクエスト再送手段に前記タイムアウトを通知し、
    前記リクエスト再送手段が、前記タイムアウトを通知されると、前記システムバスの前記リクエストアドレスに対して前記リクエストを送信する、請求項1に記載の演算処理装置。
  3. 前記リクエストバッファ手段の前記リクエストアドレスをコピーして格納する、
    シャドーバッファ手段を更に備え、
    前記アドレスエラー検出手段が、前記アドレスエラーを検知した場合、前記シャドーバッファ手段が、前記リクエストバッファ手段から前記リクエストアドレスをコピーして格納し、
    前記アドレスエラー検出手段が、前記シャドーバッファ手段へ前記リクエストアドレスの登録の抑止を指示して、前記タイムアウト手段を起動し、
    前記タイムアウト手段が、前記シャドーバッファ手段、及び、前記キャッシュ登録制御手段に前記タイムアウトを通知し、
    前記シャドーバッファ手段が、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、
    前記キャッシュ登録制御手段が、前記タイムアウトを通知されると、前記システムキャッシュで、前記シャドーバッファ手段に登録されている前記リクエストアドレスに、前記データポイズナ手段から読み出した前記ポイズンデータを書き込む、請求項1に記載の演算処理装置。
  4. 前記プロセッサと前記システムキャッシュを接続するローカルバスを更に備え、
    前記キャッシュ登録制御手段の代わりに、前記リクエストバッファ手段から、前記リクエストアドレスを読み取り、前記リクエストアドレスに対応する前記リクエストを前記プロセッサに返却する、リクエスト返却手段を備え、
    前記アドレスエラー検出手段が、前記ローカルバスで前記アドレスエラーを検知し、
    前記タイムアウト手段が、前記リクエストバッファ手段、及び、前記リクエスト返却手段に前記タイムアウトを通知し、
    前記リクエスト返却手段が、前記タイムアウトを通知されると、前記リクエストバッファ手段に登録されている前記リクエストアドレス、及び、前記データポイズナ手段から読み出した前記ポイズンデータを前記プロセッサに返却する、請求項1に記載の演算処理装置。
  5. プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録し、
    前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出した場合、前記リクエストアドレスの登録の抑止を指示して、所定の時間の経過を示すタイムアウトを起動し、
    前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、
    前記タイムアウトを通知されると、前記システムキャッシュで、登録されている前記リクエストアドレスに、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを書き込む、制御方法。
  6. 前記タイムアウトを通知されると、前記システムキャッシュまたは前記主記憶装置に接続するバスの前記リクエストアドレスに対して前記リクエストを送信する、請求項5に記載の制御方法。
  7. 前記アドレスエラーを検知した場合、前記リクエストアドレスをコピーして格納し、
    前記リクエストアドレスのコピーへの前記リクエストアドレスの登録の抑止を指示して、前記タイムアウトを起動し、
    前記リクエストアドレスのコピーへの前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、
    前記タイムアウトを通知されると、前記システムキャッシュで、前記リクエストアドレスのコピーに登録されている前記リクエストアドレスに、前記ポイズンデータを書き込む、請求項1に記載の制御方法。
  8. プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録する処理と、
    前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出した場合、前記リクエストアドレスの登録の抑止を指示して、所定の時間の経過を示すタイムアウトを起動する処理と、
    前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアする処理と、
    前記タイムアウトを通知されると、前記システムキャッシュで、登録されている前記リクエストアドレスに、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを書き込む処理と、をコンピュータに実行させるプログラム。
  9. 前記タイムアウトを通知されると、前記システムキャッシュまたは前記主記憶装置に接続するバスの前記リクエストアドレスに対して前記リクエストを送信する処理、をコンピュータに実行させる請求項8に記載のプログラム。
  10. 前記アドレスエラーを検知した場合、前記リクエストアドレスをコピーして格納する処理と、
    前記リクエストアドレスのコピーへの前記リクエストアドレスの登録の抑止を指示して、前記タイムアウトを起動する処理と、
    前記リクエストアドレスのコピーへの前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアする処理と、
    前記タイムアウトを通知されると、前記システムキャッシュで、前記リクエストアドレスのコピーに登録されている前記リクエストアドレスに、前記ポイズンデータを書き込む処理と、をコンピュータに実行させる請求項8に記載のプログラム。
JP2014052190A 2014-03-14 2014-03-14 演算処理装置、制御方法、及び、プログラム Active JP6334969B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014052190A JP6334969B2 (ja) 2014-03-14 2014-03-14 演算処理装置、制御方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014052190A JP6334969B2 (ja) 2014-03-14 2014-03-14 演算処理装置、制御方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2015176333A true JP2015176333A (ja) 2015-10-05
JP6334969B2 JP6334969B2 (ja) 2018-05-30

Family

ID=54255476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014052190A Active JP6334969B2 (ja) 2014-03-14 2014-03-14 演算処理装置、制御方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP6334969B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63129440A (ja) * 1986-11-20 1988-06-01 Fujitsu Ltd ストアスル−バツフア装置
JPH08171519A (ja) * 1994-12-19 1996-07-02 Nec Eng Ltd Cpu装置
JP2000322317A (ja) * 1999-04-13 2000-11-24 Hewlett Packard Co <Hp> アドレスエラーから回復するためのシステムおよび方法
JP2012178121A (ja) * 2011-02-28 2012-09-13 Nec Computertechno Ltd 情報処理装置及びエラー訂正支援方法
JP2013140445A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置、制御方法および制御プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63129440A (ja) * 1986-11-20 1988-06-01 Fujitsu Ltd ストアスル−バツフア装置
JPH08171519A (ja) * 1994-12-19 1996-07-02 Nec Eng Ltd Cpu装置
JP2000322317A (ja) * 1999-04-13 2000-11-24 Hewlett Packard Co <Hp> アドレスエラーから回復するためのシステムおよび方法
US6405322B1 (en) * 1999-04-13 2002-06-11 Hewlett-Packard Company System and method for recovery from address errors
JP2012178121A (ja) * 2011-02-28 2012-09-13 Nec Computertechno Ltd 情報処理装置及びエラー訂正支援方法
JP2013140445A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置、制御方法および制御プログラム

Also Published As

Publication number Publication date
JP6334969B2 (ja) 2018-05-30

Similar Documents

Publication Publication Date Title
US10310926B2 (en) Data error detection in computing systems
TWI236620B (en) On-die mechanism for high-reliability processor
TWI428742B (zh) 用於本地代理器資料及記憶體管理的裝置、方法及系統
US9047223B2 (en) Replicating tag entries for reliability enhancement in cache tag arrays
US7734949B2 (en) Information error recovery apparatus and methods
US7987384B2 (en) Method, system, and computer program product for handling errors in a cache without processor core recovery
US10514990B2 (en) Mission-critical computing architecture
JP5965076B2 (ja) 訂正不能メモリエラー処理方法及びその可読媒体
US9652407B2 (en) Method for processing error directory of node in CC-NUMA system, and node
US10817369B2 (en) Apparatus and method for increasing resilience to faults
JP2001249911A (ja) データ転送方法及びデータ処理システム
JP5224038B2 (ja) コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム
US20160321146A1 (en) Information processing system and control apparatus
US7194671B2 (en) Mechanism handling race conditions in FRC-enabled processors
JP2010231619A (ja) 情報処理装置
KR20220008237A (ko) 임시 스토리지에 대한 데이터 복원을 위한 시스템 및 장치
JP5021978B2 (ja) マルチプロセッサシステム及びその動作方法
JP6334969B2 (ja) 演算処理装置、制御方法、及び、プログラム
US8458532B2 (en) Error handling mechanism for a tag memory within coherency control circuitry
US9720764B2 (en) Uncorrectable memory errors in pipelined CPUs
KR102376396B1 (ko) 멀티 코어 프로세서 및 그것의 캐시 관리 방법
JP3450132B2 (ja) キャッシュ制御回路
JP2005004290A (ja) メモリ障害処理方式
JP2009116681A (ja) マルチプロセッサシステム、マイクロプロセッサ、及びマイクロプロセッサの障害処理方法
JP5056487B2 (ja) デバッグ支援機構およびプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180427

R150 Certificate of patent or registration of utility model

Ref document number: 6334969

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150