(57)【要約】      （修正有）【課題】ソフトエラー等による一時的な論理アドレスと物理アドレスとの誤変換によるデータの位置誤算出を防ぐことができて信頼性を保てるストレージ制御装置を提供する。【解決手段】ストレージシステムは、記憶装置と、ストレージ制御装置を備え、ストレージ制御装置が、ホストから書き込み指示を受け取ったとき、ホストからの書き込み指示に含まれる論理アドレスを含む読み込み指示を記憶装置へ送るデータ読み込み指示手段と、データ読み込み指示手段からの読み込み指示に基づき、記憶装置が読み取った該当位置のデータに論理アドレスが含まれている場合に、ホストから受け取った書き込み指示に含まれる論理アドレスと読み取ったデータに含まれた論理アドレスとが異なるとき、システム領域からアドレス変換情報を読み出し、読み出したアドレス変換情報をメモリに書き込むアドレス変換情報訂正手段とを有する。【選択図】図３
2012003644.tif 000002
【特許請求の範囲】
【請求項１】
メモリバスを通して被試験メモリに対してミラーリングされるバックアップメモリと、
ミラーリングするデータをスクランブルして割り当てる割り当て手段と、
前記メモリバスの受信したアドレスに基づいてバックアップメモリへの書き込みを行うメモリ制御部と、
前記メモリバスの受信したアドレスを分析する分析手段と、
前記バックアップメモリに書き込まれた書き込みデータと前記被試験メモリに書き込まれた読み出しデータを比較する比較手段と、
を備えたことを特徴とするメモリエラー検出装置。
【請求項２】
メモリバスを通して被試験メモリに対してミラーリングされるバックアップメモリと、
ミラーリングするデータをスクランブルして割り当てる割り当て手段と、
前記メモリバスの受信したアドレスに基づいてバックアップメモリへの書き込みを行うメモリ制御部と、
前記メモリバスの受信したアドレスを分析する分析手段と、
前記バックアップメモリに書き込まれた書き込みデータと前記被試験メモリに書き込まれた読み出しデータを比較する比較手段と、
を備えたことを特徴とするロジックアナライザ。
【請求項３】
前記分析結果を表示する表示装置を備えたことを特徴とするメモリエラー検出装置。
【請求項４】
メモリバスを通して被試験メモリに対してミラーリングされるバックアップメモリのデータをスクランブルして割り当てる割り当て工程と、
前記メモリバスの受信したアドレスに基づいてバックアップメモリへの書き込みを行うメモリ制御工程と、
前記メモリバスの受信したアドレスを分析する分析工程と、
前記バックアップメモリに書き込まれた書き込みデータと前記被試験メモリに書き込まれた読み出しデータを比較する比較工程と、
を備えたことを特徴とするメモリエラー検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置に用いられるメモリにおいて、メモリエラーを解析する装置及び方法に関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータなどの情報処理装置には、メインメモリであるＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）等のメモリモジュールが搭載される。例えば、図１に示すように、情報処理装置５００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１０と、メモリコントローラ５２０と、ＤＩＭＭ５３０とを含む。
【０００３】
ＣＰＵ５１０は、データの計算・加工を行う演算処理装置であり、メモリコントローラ５２０に対して、ＤＩＭＭ５３０へのデータ書込みや読出しを指示する。メモリコントローラ５２０は、ＤＩＭＭ５３０に接続され、ＣＰＵ５１０からの指示に従い、ＤＩＭＭ５３０へのデータの書込みや読出しを行う。そして、ＤＩＭＭ５３０は、複数のＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５３１ａ〜５３１ｄを有し、このＤＲＡＭ５３１ａ〜５３１ｄに各種のデータを記憶する。
【０００４】
メモリは、ＣＰＵのアドレス空間に対応して、物理的にはリニアに配置される。現在のＣＰＵは、プロセスごとに保護されたメモリ空間を仮想的に割り当てる、仮想記憶を採用している。そのため、主記憶装置の空間を一定の単位に区切って管理しつつ利用するメモリ管理機能が利用されている。その方法には、セグメント方式やページング方式がある。近年のパーソナルコンピュータ向けＣＰＵでは、メモリ管理機能がＣＰＵ内に組み込まれている。
【０００５】
仮想記憶（Ｖｉｒｔｕａｌ  Ｍｅｍｏｒｙ）とは、メモリ管理技法の一種であり、マルチタスクオペレーティングシステムが不連続なメモリ領域をソフトウェア（プロセスなど）から見て連続になるように見せかけるものである。仮想記憶はまた、コンピュータ上に実装されている主記憶装置よりも大きな記憶領域を仮想的に提供する仕組みを提供する。仮想記憶の仕組みを利用することで、メモリ空間の一部をハードディスク装置等の大容量外部記憶に待避でき、実装メモリ量以上のメモリ空間が利用できるようになる。
【０００６】
仮想的に与えられたアドレスを論理アドレス（ｌｏｇｉｃａｌ  ａｄｄｒｅｓｓ）、実記憶上で有効なアドレスを物理アドレス（ｐｈｙｓｉｃａｌ  ａｄｄｒｅｓｓ）という。論理アドレスの範囲を論理アドレス空間、物理アドレスの範囲を物理アドレス空間という。
【０００７】
メモリアドレスは、コンピュータにおいてＣＰＵやその他のハードウェアがデータを書き込み、また読み出すメモリ上の位置の一意な識別子である。典型的には整数として表現される。現代のバイトアクセスのコンピュータでは、アドレスはメモリ中の１バイトを識別する。そのため、１バイトに格納するには大きすぎるデータは連続したアドレスを占める複数のバイトに格納されることになる。メモリアドレスは論理メモリと物理メモリの両方で使用される。
【０００８】
かかる情報処理装置の使用中に、ＤＩＭＭ５３０にメモリエラーが発生した場合、情報処理装置を一旦停止し、不良となったＤＩＭＭ５３０を交換しなければならず、ユーザの負担となっていた。メモリエラーは、ＤＲＡＭ５３１ａ〜５３１ｄの備えるメモリブロック（記憶領域）に、データの格納が不可能な不良ブロック（不良領域）が生じることにより起こる。
【０００９】
なお、各ＤＲＡＭ５３１ａ〜５３１ｄの不良情報は、例えば、図１０−１に示すように、ＤＩＭＭ５３０に設けられた不揮発性メモリ５３２にまとめて記憶される。また、各ＤＲＡＭ５３１ａ〜５３１ｄの不良情報は、各ＤＲＡＭ５３１ａ〜５３１ｄ内に設けられた不揮発性メモリ領域５３３ａ〜５３３ｄに個別に記憶してもよい。
【００１０】
図２に、メモリエラー発生時の処理手順の一例を示す。図２に示すように、電源がＯＮされると、チップセット５２０は、ＤＲＡＭ５３１ａ〜５３１ｄの不良発生状況の監視を開始する（ステップＳ１０１）。続いて、チップセット５２０は、ＤＲＡＭ５３１ａ〜５３１ｄの不良発生を検出したか否かを判定する（ステップＳ１０２）。この処理において、ＤＲＡＭ５３１ａ〜５３１ｄの不良発生を検出しないとき（ステップＳ１０２否定）、処理をステップＳ５０１へ移行し、チップセット５２０は、引き続きＤＲＡＭ５３１ａ〜５３１ｄの不良発生状況の監視を行う。一方、ＤＲＡＭ５３１ａ〜５３１ｄの不良発生を検出したと判定すると（ステップＳ１０２肯定）、チップセット５２０は、不良情報を保存した後（ステップＳ１０３）、電源をＯＦＦし（ステップＳ１０４）、処理を終了する。そして、不良と判定されたＤＩＭＭ５３０は、新たなＤＩＭＭ５３０へと交換される。
【００１１】
メモリエラーとは、ＤＲＡＭの備えるメモリブロック、つまり記憶領域に、データの格納が不可能な不良ブロック、つまり不良領域が生じた状態である。メモリにエラーが発生した場合、エラーが発生したメモリを搭載しているモジュールを抜き、メモリを交換した後、メモリモジュールをコンピュータシステムに挿入していた。
【００１２】
ここで、エラーが発生したメモリモジュールにおいて、メモリの不良箇所を解析し、特定することが求められる。メモリ診断システムとして、特許文献１の解析方法がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１１−１０２３２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
メモリ不良を解析する場合、メモリモジュールのメモリにおけるエラーアドレスとエラービットの検出が重要になる。しかしながら、一般的にＣＰＵが表示するエラーアドレスやエラービットは論理的なアドレス、ビットを示すため、論理アドレスから物理アドレスへの変換を行わないと、どのメモリでエラーが発生しているか特定することができない。
【００１５】
メモリコントローラがＣＰＵからの指示に従いメモリ上の指示された箇所へアクセスを行う。ここでメモリコントローラにおいて、ＣＰＵから指示された論理アドレスから物理アドレスへ変換するが、その変換仕様が公開されていない場合、メモリエラーとメモリモジュールを組み込んだ装置のエラーとの相関をとることが困難となる。
【００１６】
従来のメモリエラー解析方法では、メモリモジュールの内のどのメモリでエラーが発生しているか、メモリを一枚ずつ挿入してテストしなければならない。物理アドレスが分からないため、解析に時間がかかっていた。
【００１７】
また、試験時とシステム利用時の環境の差異によるエラー判定の差異により、使用していたシステムから取り外して解析を行うと、エラーモードによっては試験時にエラーとして認識できないこともあった。
【００１８】
メモリのテストカバレッジ不良の詳細例を説明する。通常のメモリ単体試験では正常に動作するが、装置では動作不良となるような、間欠的、マージン的な不良がある。１）特定のアルゴリズムで動作させた場合のみ不良となる。２）特定の書き込みデータに依存してのみ不良となる。３）コントローラや電源供給系の影響等でそのアプリケーションでのみ不良なる。４）負荷条件や伝送系が影響してそのアプリケーションでのみ不良となる。５）特定のタイミング発生時（非同期的）のみ不良となる。６）繰返しアクセス（バラツキ）すると顕在化し不良となる。このような不良は実際のシステム上でしか解析追求が出来ない。
【００１９】
そこで、メモリコントローラの論理−物理変換情報が分からなくても不良アドレスや不良ビットの物理位置を簡単に特定するメモリ診断装置を提供する。
【課題を解決するための手段】
【００２０】
本件開示のメモリ診断装置は、メモリバスを通して被試験メモリに対してミラーリングされるバックアップメモリと、ミラーリングするデータをスクランブルして割り当てる割り当て手段と、メモリバスの受信したアドレスに基づいてバックアップメモリへの書き込みを行うメモリ制御部と、メモリバスの受信したアドレスを分析する分析手段と、
バックアップメモリに書き込まれた書き込みデータと被試験メモリに書き込まれた読み出しデータを比較する比較手段と、を備えたことを特徴とするメモリエラー検出装置。
【００２１】
本件開示のメモリ診断方法は、メモリバスを通して被試験メモリに対してミラーリングされるバックアップメモリのデータをスクランブルして割り当てる割り当て工程と、
メモリバスの受信したアドレスに基づいてバックアップメモリへの書き込みを行うメモリ制御工程と、メモリバスの受信したアドレスを分析する分析工程と、バックアップメモリに書き込まれた書き込みデータと被試験メモリに書き込まれた読み出しデータを比較する比較工程と、を備えたことを特徴とするメモリエラー検出方法。
【発明の効果】
【００２２】
以上のように、本件開示のメモリ診断装置によれば、メモリを接続したままで、メモリエラーの発生箇所を特定することができるため、エラーのモードに関わり無くエラーを検出できて信頼性を保てる。
【００２３】
以上のように、本件開示のメモリ診断方法によれば、メモリを接続したままで、メモリエラー発生箇所を特定することができるため、エラーのモードに関わりなくエラーを検出できて信頼性を保てる。
【図面の簡単な説明】
【００２４】
【図１】図１は、従来における情報処理装置の構成の他の一例を示すブロック図である。
【図２】図２は、従来におけるメモリエラー発生時の処理手順の一例を示すフローチャートである。
【図３】図３は、メモリ診断装置のブロック図である。
【図４】図４は、ロジックアナライザの構成のブロック図である。
【図５】図５は、メモリ制御回路とロジックアナライザの接続例を示す図である。
【図６】図６は、ロジックアナライザを用いた実施例の図である。
【図７】図７は、メモリアクセスフローを示す図である。
【図８】図８は、メモリアクセスフローを示す図である。
【図９】図９は、コマンドテーブル（ＤＤＲ３  ＳＤＲＡＭの一部例）である。
【発明を実施するための形態】
【００２５】
この実施例によりこの発明が限定されるものではない。例えば、以下の実施例では、記憶装置の一例として、揮発性メモリであるＤＲＡＭを用いて説明するが、本願に開示する技術は、フラッシュメモリなどの不揮発性メモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などのディスク装置に対しても適用可能である。また、以下の実施例では、メモリモジュールの一例として、記憶装置たるＤＲＡＭを複数備えたＤＩＭＭを用いて説明するとともに、メモリモジュールをパーソナルコンピュータなどの情報処理装置に搭載した場合について説明する。
【００２６】
本件は、メモリコントローラの論理−物理変換仕様が分からなくても、例えばメモリバスの信号を観測するロジックアナライザにコマンド分析機能とデータ比較機能を設けることによりエラーアドレス、エラービットの物理位置を容易に特定できるメモリ診断装置及びメモリ診断方法に関する。
【００２７】
以下に添付図面を参照して、メモリ診断装置及びメモリ診断方法の実施例を詳細に説明する。
【００２８】
図３は、メモリ診断装置のブロック図である。データバスのプロトコルをアドレス／ライト／リードバスに基づき、分析して、物理アドレスを管理し、メモリに対してバックアップメモリでミラーリングを行い、メモリのデータを複写する。読み出したデータをミラーリングしているメモリとバックアップメモリ間で比較し、物理的なエラーアドレスを検出する。
【００２９】
メモリミラーリングとは、二つのメモリに同一データを書き込むことにより冗長性を高める方法である。データを読み込む際には、メインのメモリから読み込む。どちらかのメモリに不良が発生した場合、残りのメモリに読み書きを行うことが可能である。
【００３０】
メモリコントローラ１は、ＣＰＵからの指令を受け、主記憶装置としてのメモリモジュール２の制御を行う。メモリモジュール２は被試験体メモリである。メモリコントローラ１は、データバス３を通して被試験体メモリ１、メモリ２、メモリ３、バックアップメモリ４（バックアップメモリ）にアクセスする。メモリコントローラ１からの制御コマンドは、イニシャライズ、アドレス、リード、ライト、データ等がある。また、アドレス／ライト／リードバス５を通してメモリ１、メモリ２、メモリ３にアクセスし、コマンド分析部／アドレス分析部６にて分析を行う。アドレス空間を制御するアドレススクランブラ７が分析結果を基にアドレス変換を行い、各メモリとバックアップメモリ４とのデータをデータ比較部８で比較する。コマンド分析、アドレス分析から、メモリ１〜３がエラーしたエラーアドレスをバックアップメモリ４のデータとの比較により検出した分析結果を出力する。
【００３１】
被試験体メモリ２がエラーした場合のアドレスをバックアップメモリ４のデータとの比較により検出することにより、被試験体メモリ２の物理エラーアドレスを特定することができる。
【００３２】
図４は、ロジックアナライザの構成を示す図である。ロジックアナライザは、非周期的信号を観測するため波形記憶用メモリを持ち、１６〜４８チャンネル程度の入力チャンネル数があるものが一般的である。ロジックアナライザは伝送ラインの信号を高速にサンプリングして信号レベルを時間軸に記憶して表示して、信号の流れ（タイミング、ステート）を解析するツールである。ロジックアナライザのメモリはこのサンプリングデータを記憶するため、にリングメモリとして制御されている。つまり、メモリがいっぱいになると古いデータから上書きされていく。さらに、多数のチャンネルと高速サンプリングと長時間のトレースのために大容量のメモリを搭載している。ロジックアナライザは複雑な順序からなるイベントをトリガにでき、テスト環境下にあるシステムから大量のデジタルデータをキャプチャすることができる。
【００３３】
被試験体に接続した入力プローブ９から入力された電圧とスレッショルド電圧１０とを比較器１１でレベル比較し、比較器１１からの出力をラッチ１２に入力する。サンプリングクロック１３をさらにラッチ１２に入力する。トレースメモリ１４にラッチ１２からの出力が入力され、トリガ検出器１５からのトリガによってトレースを開始し、データ処理部１６でデータ処理を行い、表示装置１７上に結果を表示するものである。ロジックアナライザを本発明に用いる。
【００３４】
図５は、メモリコントローラとロジックアナライザの接続例を示す概念図である。ＣＰＵ１８からメモリコントローラ１に指令を送信し、メモリコントローラ１と被試験体メモリ２とをデータバス３により接続する。観測する被試験体メモリ２のデータバス３の信号をロジックアナライザ１９の内部記憶メモリの信号（アドレス，データ，コマンド等）と同一に割当てて被試験体メモリと同じ書込み読出し動作を実施して被試験体メモリの読出しデータとロジックアナライザメモリの読出しデータの比較しエラーを検出することにより、エラーの物理情報がそのまま取得できる。
【００３５】
観測する被試験体のメモリバスの信号をロジックアナライザの内部記憶メモリの信号（アドレス、データ、コマンド等）と同一に割り当てて被試験体メモリと同じ書き込み読み出し動作を実施して被試験体メモリの読み出しデータとロジックアナライザメモリの読み出しデータの比較を行い、エラーを検出することにより、エラーの物理情報がそのまま取得できる。
【００３６】
図６に、ロジックアナライザを用いたメモリ診断装置を示す。ロジックアナライザにコマンド分析器２０と比較器２１が設けられる。コマンド分析に基づいて、バックアップメモリ１４にトレースを行う。被試験体メモリとトレースしたバックアップメモリ１４とを比較することにより、物理エラーアドレスを検出することができる。
【００３７】
図７は、従来のメモリミラーリングアクセスフローを示す図である。ＣＰＵからメモリコントローラへメモリへの書き込み又は読み出し命令（Ｓ２０１）を行う。ＣＰＵが書き込み又は読み出し対象となるメモリの記憶領域に対し論理アドレスを指定する（Ｓ２０２）。メモリコントローラは、ＣＰＵから与えられた論理アドレスを論理−物理変換の仕様に基づき、物理アドレスへ変換し（Ｓ２０３）、メモリコマンド変換を行い、アクセス制御を行う（Ｓ２０４）。被試験体と同型のメモリをバックアップメモリとし、並列に書き込みを行う。それぞれのメモリにアクセスし、書き込み又は読み出しを行い（Ｓ２０５ａ、Ｓ２０５ｂ）、それぞれのデータを出力する（Ｓ２０６ａ、Ｓ２０６ｂ）。これに基づき、ＣＰＵ又はメモリコントローラを含むチップセットにおいて、論理アドレスによって指定した領域に書き込み又は読み出しができたか合否判定を行う（Ｓ２０７）。
【００３８】
図８は、本発明のメモリアクセスフローを示す図である。ＣＰＵからメモリコントローラへメモリへの書き込み又は読み出し命令を行う（Ｓ１）。ＣＰＵが書き込み又は読み出し対象となるメモリの記憶領域に対し論理アドレスを指定する（Ｓ２）。メモリコントローラは、ＣＰＵから与えられた論理アドレスを論理−物理変換の仕様に基づき、物理アドレスへ変換し（Ｓ３）、メモリコマンド変換を行い、アクセス制御を行う（Ｓ４）。メモリにアクセスし、書き込み又は読み出しを行い（Ｓ５）、データを出力する（Ｓ６）。これに基づき、ＣＰＵ又はメモリコントローラを含むチップセットにおいて、論理アドレスによって指定した領域に書き込み又は読み出しができたか合否判定を行う（Ｓ７）。メモリコマンド変換を行い、アクセス制御を行い、メモリコマンド解析を行う（Ｓ８）。アドレス／コマンド／データの読み取りを行い（Ｓ９）、エラーアドレス、エラーデータを確認する。さらに、ミラーメモリへのコマンド変換を行い（Ｓ１０）、ミラーメモリにアクセスし（Ｓ１１）、書き込み又は読み出しを行う。ここで、データを比較し、物理アドレスで判定を行い（Ｓ１２）、エラー信号を出力する。エラー信号を基にアドレス／コマンド／データの読み取りを行い、エラーアドレス、エラーデータを確認することができる。
【００３９】
図９は、コマンドテーブル（ＤＤＲ３  ＳＤＲＡＭの一部例）である。ＣＫＥ、ＣＳ＃、ＲＡＳ＃、ＣＡＳ＃、ＷＥ＃、Ａ１０ＤＲＡＭに接続されるデータバスの一部である。
【００４０】
本件は、メモリ領域のアクセスアルゴリズムや、アドレスのランダム性、書き込みデータの制限が無く、メモリバスからコマンドを分析してメモリの書き込みデータをミラーリングする。すなわち、メモリへのアクセスは固定されたアクセスアルゴリズムとデータによる試験パターンに限られない。
【００４１】
メモリ診断方法であり、被試験体メモリとは別にもう一つメモリを用意し、メモリの書き込み又は読み出しをそれぞれ同時に行ってデータを比較し、一致の有無でエラーを検出する。
【００４２】
ミラーリングしたデータを分析してエラーアドレスを割出す。ミラーリングするアドレスをスクランブルして割当てる。メモリバスのコマンドを認識してロジックアナライザへのデータ書込みを制御する。メモリバスの受信したアドレスにしたがってデータの書込みを行う。書込みデータと読出しデータを比較する機能を具備したロジックアナライザ。比較データの結果から不良ビット、不良アドレスを検出する機能を具備するロジックアナライザ。
【符号の説明】
【００４３】
１．メモリコントローラ
２．被試験体メモリ
３．データバス
４．バックアップメモリ
５．アドレス／ライト／リードバス
６．コマンド／アドレス分析部
７．アドレススクランブラ
８．データ比較部
９．入力プルーブ
１０．スレッショルド電圧
１１．比較器
１２．ラッチ
１３．サンプリングクロック
１４．トレースメモリ（バックアップメモリ）
１５．トリガ検出器
１６．データ処理部
１７．表示部
１８．ＣＰＵ
１９．ロジックアナライザ
２０．コマンド分析部
２１．比較器
５００．情報処理装置
５１０．ＣＰＵ
５２０．メモリコントローラ
５３０．ＤＩＭＭ
５３１．ＤＲＡＭ
５３２．不揮発性メモリ
【図１】
2012003644.tif 000003
【図２】
2012003644.tif 000004
【図３】
2012003644.tif 000005
【図４】
2012003644.tif 000006
【図５】
2012003644.tif 000007
【図６】
2012003644.tif 000008
【図７】
2012003644.tif 000009
【図８】
2012003644.tif 000010
【図９】
2012003644.tif 000011