(57)【特許請求の範囲】
【請求項１】
メモリを接続可能なスロットを複数そなえた制御装置であって、
該メモリにかかる検証アドレスを選択する検証アドレス選択部と、
該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成部と、
該エラー生成部によって発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得部と、
該スロット情報取得部によって取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成部と、
該マッピング情報作成部によって作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行部とをそなえることを特徴とする、制御装置。
【請求項２】
該検証アドレス選択部が、該メモリにかかる物理アドレスにおいて、先にメモリアクセスを行なった該検証アドレスから、複数の該メモリのうちの最小容量サイズ以上離れた位置を次の検証アドレスとして選択することを特徴とする、請求項１記載の制御装置。
【請求項３】
当該制御装置にそなえられたＣＰＵ（Central Processing Unit）が、キャッシュを複数のウェイに分割するマルチウェイ方式である場合において、
該マッピング情報作成部が、該マッピング情報において、一の該スロット情報に関して同一のキャッシュライン上の複数の論理アドレスを対応付けるとともに、
該アクセス実行部が、該マッピング情報を参照して、該一のスロット情報にかかる該メモリに対して、該ウェイ数よりも多数の論理アドレスに対してアクセスを行なうことを特徴とする、請求項１又は２記載の制御装置。
【請求項４】
メモリを接続可能なスロットを複数そなえた制御装置における、該メモリの試験方法であって、
該メモリにかかる検証アドレスを選択する検証アドレス選択ステップと、
該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成ステップと、
該エラー発生ステップにおいて発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得ステップと、
該スロット情報取得ステップにおいて取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成ステップと、
該マッピング情報作成ステップにおいて作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行ステップとをそなえることを特徴とする、試験方法。
【請求項５】
メモリを接続可能なスロットを複数そなえたコンピュータにおいて、該メモリの試験を行なう試験機能を該コンピュータに実行させるための試験プログラムであって、
該メモリにかかる検証アドレスを選択する検証アドレス選択ステップと、
該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成ステップと、
該エラー発生ステップにおいて発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得ステップと、
該スロット情報取得ステップにおいて取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成ステップと、
該マッピング情報作成ステップにおいて作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行ステップとを、該コンピュータに実行させることを特徴とする、試験プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、例えばＦＢ−ＤＩＭＭ（Full Buffered-Dual Inline Memory Module）の負荷試験を行なう技術に関する。
【背景技術】
【０００２】
例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置のコントロールモジュール等の制御装置においては、メモリを取り付け可能なメモリスロットを複数そなえるものがある。又、これらのメモリスロットに取り付けられたメモリの耐久性等の品質を確認する手法として、制御装置において、メモリスロットに取り付けられたメモリに対して集中的にアクセスを行なう負荷試験が知られている。
【０００３】
一般的なＤＩＭＭ（Dual Inline Memory Module）を用いる場合には、制御装置においては、物理メモリアドレスとメモリコントローラの情報とから、論理アドレスにどのメモリスロット位置のメモリが割り当てられているかを判断することができる。これにより、負荷試験を行なうに際して、特定のメモリスロットに取り付けられたメモリに対して効率的に負荷を与えることができる。
【０００４】
また、近年、メモリチップとやりとりされるコマンド，アドレス及びデータのすべてが一旦バッファチップに蓄えられるＦＢ−ＤＩＭＭ（Fully Buffered DIMM）が知られており、このＦＢ−ＤＩＭＭをＤＩＭＭに代えて制御装置に搭載することが考えられる。ＦＢ−ＤＩＭＭは、ＡＭＢ（Advanced Memory Buffer）をそなえ、クロックやアドレス，データ等の全ての信号をバッファリングし、高速メモリに対するタイミングマージンを確保することにより高速動作を実現する。
【０００５】
なお、このＦＢ−ＤＩＭＭの試験手法として、ＦＢ−ＤＩＭＭのＡＭＢがそなえるメモリコントローラ機能を用いてＥＣＣ（Error Correcting Code）チェックを行なう手法が知られている（下記特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２６２３２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＦＢ−ＤＩＭＭにおいては、その仕様上、物理メモリアドレスとメモリコントローラの情報とから、論理アドレスにどのメモリスロット位置のメモリが割り当てられているかを判断することができない。従って、このような従来の制御装置にＦＢ−ＤＩＭＭを用いた場合には、特定のメモリスロットに取り付けられたＦＢ−ＤＩＭＭに対してメモリアクセスを集中させることができず、集中アクセスによる負荷試験を実施することができないという課題がある。
【０００８】
本件の目的の一つは、このような課題に鑑み創案されたもので、メモリをそなえた制御装置において、効率的に負荷試験を実施できるようにすることである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【０００９】
このため、この制御装置は、メモリを接続可能なスロットを複数そなえた制御装置であって、該メモリにかかる検証アドレスを選択する検証アドレス選択部と、該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成部と、該エラー生成部によって発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得部と、該スロット情報取得部によって取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成部と、該マッピング情報作成部によって作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行部とをそなえる。
【００１０】
また、この試験方法は、メモリを接続可能なスロットを複数そなえた制御装置における、該メモリの試験方法であって、該メモリにかかる検証アドレスを選択する検証アドレス選択ステップと、該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成ステップと、該エラー発生ステップにおいて発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得ステップと、該スロット情報取得ステップにおいて取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成ステップと、該マッピング情報作成ステップにおいて作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行ステップとをそなえる。
【００１１】
さらに、この試験プログラムは、メモリを接続可能なスロットを複数そなえたコンピュータにおいて、該メモリの試験を行なう試験機能を該コンピュータに実行させるための試験プログラムであって、該メモリにかかる検証アドレスを選択する検証アドレス選択ステップと、該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成ステップと、該エラー発生ステップにおいて発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得ステップと、該スロット情報取得ステップにおいて取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成ステップと、該マッピング情報作成ステップにおいて作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行ステップとを、該コンピュータに実行させる。
【発明の効果】
【００１２】
開示の技術によれば、以下の少なくともいずれか１つの効果ないし利点が得られる。
（１）各スロット位置のメモリがどの物理メモリアドレスに割当てられているかを知ることができる。
（２）特定のスロットに取り付けられたメモリに対してメモリアクセスを集中させることができ、メモリの負荷試験を効率よく実施することができる。
【００１３】
（３）マッピング情報を短時間で作成することができる。
（４）メモリへのメモリアクセス毎にキャッシュリプレースを生じさせ、メモリへのアクセス頻度を高くすることができる。
（５）メモリへの負荷を効率的に高めることができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態の一例としてのコントローラモジュールをそなえたＲＡＩＤ装置のハードウェア構成を模式的に示す図である。
【図２】実施形態の一例としてのコントローラモジュールのメモリスロットの構成を模式的に示す図である。
【図３】ＦＢ−ＤＩＭＭの機能構成を模式的に示す図である。
【図４】実施形態の一例としての制御装置におけるＭＡＰテーブルの例を示す図である。
【図５】論理アドレスと物理アドレスの関係を説明するための図である。
【図６】実施形態の一例としてのコントローラモジュールにおけるＭＡＰテーブルの作成手法を説明するための図である。
【図７】実施形態の一例としてのコントローラモジュールにおけるアクセス実行部によるアクセス手法を説明するための図である。
【図８】実施形態の一例としてのコントロールモジュールにおけるＦＢ−ＤＩＭＭの負荷試験時の処理を説明するためのフローチャートである。
【図９】実施形態の一例としてのコントローラモジュールにおけるＭＡＰテーブルの作成手法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して実施の形態を説明する。
図１は実施形態の一例としてのコントローラモジュール１をそなえたＲＡＩＤ装置１００のハードウェア構成を模式的に示す図、図２はそのメモリスロットの構成を模式的に示す図である。又、図３はＦＢ−ＤＩＭＭの機能構成を模式的に示す図である。
本コントローラモジュール（制御装置，コンピュータ）１は、例えば、複数の記憶装置（図示省略）がアレイ状に配列されたＲＡＩＤ装置１００にそなえられ、ＲＡＩＤ装置１００における各種制御を行なうものである。
【００１６】
ＲＡＩＤ装置１００は、図示しないホストコンピュータ等からの入出力要求（例えば、リードコマンドやライトコマンド）に応じて、記憶装置に対して、データの読み出しや書き込み等の処理を行なう。なお、以下、ＲＡＩＤ装置１００におけるコントローラモジュール１以外の構成については、便宜上、その図示や説明を省略する。
コントローラモジュール１は、図１に示すように、ＣＰＵ（Central Processing Unit）１０，ＤＭＡ（Direct Memory Access）コントローラ２０，メモリコントローラ２１及び複数（図１に示す例では１６個）のＦＢ−ＤＩＭＭ（メモリ）３０−０〜３０−１５をそなえている。なお、以下、コントローラモジュール１におけるこれら以外の構成については、便宜上、その図示や説明を省略する。
【００１７】
ＦＢ−ＤＩＭＭ３０−０〜３０−１５は、データの書込み及び読出しが可能な記憶装置であって、後述するメモリコントローラ２１にポイント・ツー・ポイントでシリアル接続される。これらのＦＢ−ＤＩＭＭ３０−０〜３０−１５は、それぞれＡＭＢ３１（図３参照）をそなえ、このＡＭＢ３１にクロックやアドレス，データ等の全ての信号をバッファリングして、高速メモリに対するタイミングマージンを確保することにより高速動作を実現する。なお、以下、ＦＢ−ＤＩＭＭを示す符号としては、複数のＦＢ−ＤＩＭＭのうち１つを特定する必要があるときには符号３０−０〜３０−１５を用いるが、任意のＦＢ−ＤＩＭＭを指すときには符号３０を用いる。
【００１８】
各ＦＢ−ＤＩＭＭ３０は、図２に示すように、メモリコントローラ２１に接続されたスロット（Slot）Ｓ０〜Ｓ１５にそれぞれ取り付けられる。スロットＳ０〜Ｓ１５は、それぞれＦＢ−ＤＩＭＭ３０をメモリコントローラ２１に対してデータを授受可能な状態に取り付けるコネクタである。以下、スロットを示す符号としては、複数のスロットのうち１つを特定する必要があるときには符号Ｓ０〜Ｓ１５を用いるが、任意のスロットを指すときには符号Ｓを用いる。又、以下、スロットＳ０〜Ｓ１５を、符号Ｓを略して単にスロット０〜１５のように表現する場合もある。
【００１９】
図２に示す例においては、各スロットＳはブランチ０とブランチ１とに分けて接続され、ブランチ０において、チャネル０にスロットＳ０，Ｓ４，Ｓ８，Ｓ１２が、又、チャネル１にスロットＳ１，Ｓ５，Ｓ９，Ｓ１３が、それぞれシリアルに接続されている。同様に、ブランチ１において、チャネル０にスロットＳ２，Ｓ６，Ｓ１０，Ｓ１４が、又、チャネル１にスロットＳ３，Ｓ７，Ｓ１１，Ｓ１５が、それぞれシリアルに接続されている。
【００２０】
また、これらの複数のスロットＳにおいて、同一ブランチ内において隣り合う２つのスロットＳどうしがペア（Pair；メモリスロットペア）を形成する。図２に示す例においては、コントローラモジュール１はペア０〜ペア７の８つのペアをそなえている。
すなわち、スロット０とスロット１がペア０を形成し、スロット４とスロット５がペア２を形成する。同様に、スロット８とスロット９がペア４を、スロット１２とスロット１３がペア６を、スロット２とスロット３とがペア１を、スロット６とスロット７とがペア３を、スロット１０とスロット１１とがペア５を、スロット１４とスロット１５とがペア７を、それぞれ形成する。
【００２１】
なお、以下、ペアを特定する０〜７の数字（識別情報）をメモリスロットペア番号という場合がある。そして、このメモリスロットペア番号が、ＦＢ−ＤＩＭＭ３０のスロットに関するスロット情報に相当する。
また、これらの複数のスロットＳにおいて、スロット０〜３がランク（Rank）０，１を形成する。そして、シングルランクのＦＢ−ＤＩＭＭ３０を搭載する際には、ランク０が用いられ、デュアルランクのＦＢ−ＤＩＭＭ３０を搭載する際には、ランク０，１が用いられる。同様に、スロット４〜７がランク２，３を、スロット８〜１１がランク４，５を、スロット１２〜１５がランク６，７を、それぞれ形成する。そして、シングルランクのＦＢ−ＤＩＭＭ３０を搭載する際には、ランク２，４，６が用いられ、デュアルランクのＦＢ−ＤＩＭＭ３０を搭載する際には、ランク２〜７が用いられる。
【００２２】
ＦＢ−ＤＩＭＭ３０は、図３に示すように、ＡＭＢ３１と複数のＤＲＡＭ（Dynamic Random Access Memory）３２とをそなえている。ＤＲＡＭ３２はキャパシタに電荷を蓄えることにより情報を記憶する揮発性のメモリである。ＡＭＢ３１は、メモリコントローラ２１からの指示に従い、ＤＲＡＭ３２へのデータの書き込み、又はＤＲＡＭ３２からのデータの読み出しを行なう。このＡＭＢ３１は、図３に示すように、ノースバウンド（NorthBound）制御部３０１，ノースバウンドフレーム作成部３０２，レジスタアクセス制御部３０３，ＤＲＡＭ制御部３０４，サウスバウンド（SouthBound）フレーム解析部３０５およびサウスバウンド制御部３０６をそなえている。
【００２３】
なお、図３に示す例においては、便宜上、一部のＦＢ−ＤＩＭＭ３０だけを図示するとともに、１つのＦＢ−ＤＩＭＭ３０についてだけ、その機能構成を図示している。
ＦＢ−ＤＩＭＭ３０は、リード方向バスであるシリアルリンク（ノースバウンド）と、ライト方向バスであるシリアルリンク（サウスバウンド）とをそなえている。そして、ＡＭＢ３１は、サウスバウンドを通じてホストとなるメモリコントローラから与えられたシリアルデータを一旦バッファリングし、ＤＲＡＭ３２に転送する。このシリアルデータにはＤＲＡＭ３２に与えるアドレス、データ、コマンド情報が含まれており、ＡＭＢ３１内部でＤＲＡＭバスデータへの変換が行なわれる。
【００２４】
サウスバウンド制御部３０６は、メモリコントローラ２１から送信されたシリアルデータの転送等を制御するものである。サウスバウンドフレーム解析部３０５は、メモリコントローラ２１から送信されたシリアルデータのヘッダ等を解析して、シリアルデータが当該ＦＢ−ＤＩＭＭ３０宛であるものであるか等を判断する。
また、ＤＲＡＭ３２から読み出されたデータはシリアルデータに変換され、ノースバウンドにのせてメモリコントローラ２１へと返される。
【００２５】
ノースバウンドフレーム作成部３０２は、ＤＲＡＭ３２から読み出したデータに基づき、メモリコントローラ２１等に送信するシリアルデータを作成する。ノースバウンド制御部３０１は、メモリコントローラ２１へ送信されるシリアルデータの転送等を制御するものである。ＤＲＡＭ制御部３０４はＤＲＡＭ３２へのデータの書込み及び読出しを制御するものである。レジスタアクセス制御部３０３は、図示しないＦＢ−ＤＩＭＭ３０のレジスタへのアクセスを制御するものである。
【００２６】
そして、本制御装置１のスロットＳに取り付けられる複数のＦＢ−ＤＩＭＭ３０は、同じ規格に従って形成されている。又、これらのＦＢ−ＤＩＭＭ３０においては、必ずしも同じメモリ容量を有する必要はなく、容量の異なるＦＢ−ＤＩＭＭ３０を、適宜、組み合わせて使用することができる。なお、これらの複数のＦＢ−ＤＩＭＭ３０のうち、最もメモリ容量が少ないＦＢ−ＤＩＭＭ３０を最小容量ＦＢ−ＤＩＭＭ３０といい、そのメモリ容量を最小容量という場合がある。
【００２７】
また、上述した複数のＦＢ−ＤＩＭＭ３０のうち一部には、後述するＭＡＰテーブルＭＴが格納される。図１に示す例においては、ＦＢ−ＤＩＭＭ３０−０にＭＡＰテーブルＭＴが格納されている状態を示している。すなわち、このＦＢ−ＤＩＭＭ３０−０がＭＡＰテーブルＭＴを格納するマッピング情報格納部として機能する。
なお、このＭＡＰテーブルＭＴは、必ずしもＦＢ−ＤＩＭＭ３０−０に格納する必要はなく、他のＦＢ−ＤＩＭＭ３０に格納したり、複数のＦＢ−ＤＩＭＭ３０に分散して格納してもよい。すなわち、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００２８】
ＤＭＡコントローラ２０は、複数のＦＢ−ＤＩＭＭ３０間や、ＦＢ−ＤＩＭＭ３０とＩ／Ｏデバイス（図示省略）等との間のデータ転送を制御するものである。このＤＭＡコントローラ２０は、ＣＰＵ１０等を介することなくデータ転送を行なうＤＭＡ転送における通信制御を実現する。
メモリコントローラ（ＭＣＨ：Memory Controller Hub）２１は、複数のＦＢ−ＤＩＭＭ３０や外部キャッシュメモリチップ（図示省略）等を制御して、ＣＰＵ１０やＩ／Ｏデバイス（例えば、グラフィックカード）とのデータ転送をつかさどる。
【００２９】
このメモリコントローラ２１は、ＣＰＵ１０とＣＰＵバスを介して通信可能に接続されている。又、このメモリコントローラ２１には、複数のＦＢ−ＤＩＭＭ３０やＩ／Ｏデバイスが接続されており、メモリコントローラ２１は、ＣＰＵ１０と、これらのメモリ３０やＩ／Ｏデバイスとの間におけるデータの授受を制御する。
また、メモリコントローラ２１は、エラーインジェクション機能をそなえており、ＦＢ−ＤＩＭＭ３０に意図的にＥＣＣエラーを発生させることができる。すなわち、このメモリコントローラ２１は、ＦＢ−ＤＩＭＭ３０へのメモリアクセスによりエラーを発生させるエラー生成部として機能する。なお、このメモリコントローラ２１は、後述するＣＰＵ１０のコア０によるエラー生成指示に従ってＥＣＣエラーを発生させる。又、このメモリコントローラ２１のエラーインジェクション機能は既知の手法により実現することができ、その詳細な説明は省略する。
【００３０】
さらに、メモリコントローラ２１は、ＦＢ−ＤＩＭＭ３０へのメモリアクセスにより発生させたエラーに関して、エラー応答情報を作成してＣＰＵ１０に対して送信する。すなわち、メモリコントローラ２１は、発生させたエラーに関してエラー応答情報を作成するエラー応答情報作成部として機能する。
ここで、エラー応答情報としては、例えば、エラーが発生したブランチを特定する情報（エラーブランチ特定情報），エラーが発生したランクを特定する情報（エラーランク特定情報）、及びエラーが発生したチャネルを特定する情報（エラーチャネル特定情報）である。
【００３１】
なお、これらのエラー応答情報としては、チップセットを提供するメーカの仕様等に応じて適宜変更して実現することが望ましい。
ＣＰＵ１０は、メモリやＨＤＤ（Hard Disk Drive：磁気記憶装置）等の図示しない記憶装置に格納されたプログラムを実行することにより、種々の演算や制御を行ない、種々の機能を実現するものである。そして、このＣＰＵ１０は、試験プログラムを実行することにより、本コントローラモジュール１に搭載されたＦＢ−ＤＩＭＭ３０の負荷試験を実行する。
【００３２】
また、このＣＰＵ１０は、複数のコア（プロセッサコア）を有するマルチコアプロセッサとして構成されている。そして、これらのコアは、それぞれがプログラムを実行することにより、互いに独立して処理を実行することができる。なお、本実施形態においては、図１に示すように、ＣＰＵ１０が、コア１１−０〜１１−３の４つのコアを有する４コアプロセッサの例について説明する。
【００３３】
なお、以下、コアを示す符号としては、複数のコアのうち１つを特定する必要があるときには符号１１−０〜１１−３を用いるが、任意のコアを指すときには符号１１を用いる。又、以下、コア１１−０を単にコア０という場合がある。同様に、コア１１−１をコア１、コア１１−２をコア２、コア１１−３をコア３とそれぞれいう場合がある。
なお、これらの４つのコア０〜コア３は、互いに同じ構成であってもよく、又、少なくとも１つのコアを他のコアと異なる構成をそなえていてもよい。
【００３４】
コア０は、ＭＡＰテーブルＭＴを作成するＭＡＰテーブル作成機能と、ＭＡＰテーブルＭＴを参照して、ＦＢ−ＤＩＭＭ３０に対してアクセスを行なうことにより、ＦＢ−ＤＩＭＭ３０に対して負荷を与える負荷付与機能とを実現する。
図４は実施形態の一例としての制御装置１におけるＭＡＰテーブルＭＴの例を示す図である。ＭＡＰテーブルＭＴは、論理アドレスとメモリスロットペア番号（スロット情報）とを対応付けることにより構成されている。すなわち、ＭＡＰテーブルＭＴは、０〜７の各メモリスロットペア番号に対して、論理アドレスを複数個、関連付けて登録している。ここで、このＭＡＰテーブルＭＴに登録される論理アドレスは、各メモリスロットペアにそれぞれ割り当てられている物理アドレスに対応するものであり、試験領域という場合がある。なお、図４においては、便宜上、全ての論理アドレスを“xxxxxxxx”と表わしている。
【００３５】
図５は論理アドレスと物理アドレスの関係を説明するための図である。物理アドレスは、物理空間上の位置を示す情報である。一方、論理アドレスは、論理アドレス空間上の位置を示す情報であって、物理アドレスにアクセスするための情報である。物理メモリ空間における領域には、ページング機能によって論理アドレスが割り当てられる。図５に示す例においては、論理アドレス空間において#0で始まる空間（領域）が物理メモリにおける空間Ａに割り当てられている。同様に、論理アドレス空間において#1000で始まる領域が物理メモリにおける空間Ｂに割り当てられている。又、この論理アドレスは、例えば、ＣＰＵ１０において実行されるプログラムがアクセスを行なう際に用いる。
【００３６】
また、このＭＡＰテーブルＭＴのうち、同一の行を構成する一連の論理アドレス、すなわち、メモリスロットペア番号０〜７にそれぞれ対応する同一行の８つの論理アドレスに同じ試験領域番号を付して表わしている。この試験領域番号は、試験領域を識別するための識別情報であり、図５に示す例においては、試験領域番号として整数を用いている。
ＭＡＰテーブルＭＴにおいて、各メモリスロットペア毎の試験領域の数（試験領域数）は、ＣＰＵ１０のキャッシュ（ＣＰＵキャッシュ）におけるウェイ数よりも多くそなえられている。ウェイ数は、キャッシュを分割し、1つのインデックスに対して複数のタグアドレス（およびデータ）を持たせるセットアソシエイティブ方式における、キャッシュの分割数を表す。又、１つのウェイのサイズ（ウェイサイズ）はＣＰＵ毎に予め設定されている。
【００３７】
そして、本実施形態においては、試験領域数をウェイ数よりも多くすることにより、キャッシュミスを必ず生じさせ、キャッシュ（ウェイ）のリプレイスを生じさせることができ、ＦＢ−ＤＩＭＭ３０へのアクセス頻度を高めることができる。なお、本実施形態においては、試験領域数はウェイ数の２倍以上になるよう作成される。
また、各メモリスロットペア毎の試験領域は、同じキャッシュライン上に割り当てられる領域となるように作成されており（詳細は後述）、他のペア及び他のコアが使用するキャッシュラインとは重ならないようになっている。なお、キャッシュラインとは、キャッシュメモリにデータを格納する際の格納単位であり、キャッシュラインサイズはキャッシュメモリに一度に書き込まれるデータのサイズを表す。
【００３８】
なお、ウェイサイズやキャッシュサイズ，キャッシュラインサイズ，ウェイ数等は、例えば、アセンブラのcpuidコマンドを用いて取得することができ、コア０は、このような手法を用いて、これらの情報を取得する。
さらに、このＭＡＰテーブルＭＴは、少なくとも、ＣＰＵ１０にそなえられた複数のコアのうち、ＦＢ−ＤＩＭＭ３０の負荷試験を行なうに際してメモリアクセスにかかる負荷試験を行なうコアと同数、作成される。例えば、本実施形態においては、後述の如くコア０，コア１及びコア２の３つのコアがＦＢ−ＤＩＭＭ３０のメモリアクセスにかかる負荷試験を行なうので、少なくとも３つのＭＡＰテーブルＭＴが作成される。
【００３９】
そして、このようなＭＡＰテーブルＭＴを作成するＭＡＰテーブル作成機能は、コア０が検証アドレス選択部１０１，エラー生成指示部１０２，スロット情報取得部１０３及びテーブル作成部１０４として機能することにより実現される。
検証アドレス選択部１０１は、ＭＡＰテーブルＭＴを作成するに際して、ＦＢ−ＤＩＭＭ３０にかかる検証アドレスを選択するものである。検証アドレスは、スロットＳに取り付けられたＦＢ−ＤＩＭＭ３０に割り当てられた論理アドレスを特定するべく、検証を行なうためのアクセス対象とする物理アドレスである。
【００４０】
この検証アドレス選択部１０１は、ＦＢ−ＤＩＭＭ３０における未使用領域であって、ＣＰＵ１０の２次キャッシュ（図示省略）の１ウェイ分と同じサイズの未使用領域を検証アドレス領域として選択する。又、この検証アドレス領域を特定するためのアドレス（例えば、その先頭アドレス）を検証アドレスという。又、以下、検証アドレス領域に対してアクセス等の処理を行なうことを、単に、検証アドレスに対して処理を行なうと表現する場合がある。なお、本実施形態においては、検証アドレス選択部１０１は、検証アドレスの切り替えに際して、物理メモリ空間において値が小さいメモリアドレスから値が大きいメモリアドレスにかけてアドレスの切り替えを行なうものとする。
【００４１】
そして、この検証アドレス選択部１０１によって選択された検証アドレスに対して、後述の如く、メモリコントローラ２１によるエラーインジェクション機能を用いたＥＣＣエラーが意図的に発生される。
エラー生成指示部１０２は、メモリコントローラ（エラー生成部）２１に対して、検証アドレス選択部１０１によって選択された検証アドレスにＥＣＣエラーを発生させるための指示を行なう。具体的には、検証アドレスに対して、あえてＥＣＣコードとしてエラーを表す値が含まれたテストデータを書き込ませる。これにより、検証アドレスにおいてＥＣＣエラーが検出されることになる。例えば、エラー生成指示部１０２は、検証アドレスとともにメモリコントローラ２１に対して所定のコマンドを発行することにより、このメモリコントローラ２１が、ＦＢ−ＤＩＭＭ３０における検証アドレスに対応する位置にシングルビットエラーを発生させる。なお、この選択した検証アドレスは、例えばＦＢ−ＤＩＭＭ３０−１等の所定の記憶領域に格納される。本実施形態においては、検証アドレスは、後述の如く、変数taddrとしてばＦＢ−ＤＩＭＭ３０−１の所定の領域に格納される。
【００４２】
また、メモリコントローラ２１は、ＥＣＣエラーを発生させた検証アドレスからデータのリードを行ない、このエラーインジェクション機能によって発生させたエラーについて、前述の如くエラー応答情報の作成も行なう。
スロット情報取得部１０３は、メモリコントローラ２１によって発生させたエラーに関して作成されたエラー応答情報に基づいて、このエラーにかかる検証アドレスが割り当てられているＦＢ−ＤＩＭＭのスロットに関するスロット情報を取得する。
【００４３】
具体的には、スロット情報取得部１０３は、メモリコントローラ２１が作成したエラー応答情報を受信し、このエラー応答情報から、エラーブランチ特定情報，エラーランク特定情報及びエラーチャネル特定情報を抽出する。そして、スロット情報取得部１０３は、これらのエラーブランチ特定情報，エラーランク特定情報及びエラーチャネル特定情報から、シングルビットエラーが発生したＦＢ−ＤＩＭＭ３０のメモリスロットペアを判断する。
【００４４】
具体的には、例えば、インテル社のチップセットにおいては、エラーブランチを特定するエラーブランチ特定情報や、エラーランクを特定するエラーランク特定情報，エラーチャネルを特定するエラーチャネル特定情報として、それぞれ特定のレジスタの特定のビットの値を用いることができる。すなわち、これらのエラーブランチ特定情報，エラーランク特定情報，エラーチャネル特定情報をエラー応答情報として使用することができる。
【００４５】
そして、スロット情報取得部１０３は、これらの情報を組み合わせることにより、シングルビットエラーが発生したＦＢ−ＤＩＭＭ３０のメモリスロットペアを判断することができる。
また、スロット情報取得部１０３は、この判断したメモリスロットペアのメモリスロットペア番号（スロット情報）をテーブル作成部１０４に受け渡す。
【００４６】
テーブル作成部（マッピング情報作成部）１０４は、スロット情報取得部１０３によって取得されたメモリスロットペア番号に基づいて、そのメモリスロットペア番号に対して、シングルビットエラーを発生させた検証アドレスに対応する論理アドレスを対応付けて登録することにより、前述の如きＭＡＰテーブルＭＴ（マッピング情報）を作成する。
また、このテーブル作成部１０４によって作成されたＭＡＰテーブルＭＴは、例えばＦＢ−ＤＩＭＭ３０−１に格納される。すなわち、このＦＢ−ＤＩＭＭ３０−１が、テーブル作成部１０４によって作成されたマップテーブルを格納するマップテーブル格納部として機能する。なお、ＣＰＵ１０においては、このようなマップテーブルが格納された領域やプログラムが格納されたプログラム領域等を認識しており、これらの領域を検証アドレスとして判断することはない。
【００４７】
そして、上述の如く、メモリコントローラ２１によるシングルビットエラーの生成やエラー応答情報の作成，スロット情報取得部１０３によるエラー応答情報の取得，テーブル作成部１０４によるＭＡＰテーブルＭＴの作成が行なわれると、検証アドレス選択部１０１は検証アドレスを切り替える。なお、これらの検証アドレスの選択からＭＡＰテーブルＭＴへの一連の処理は、ＭＡＰテーブルＭＴにおいて、試験領域数が所定数に達するまで繰り返し行なわれる。すなわち、試験領域数がＣＰＵ１０のキャッシュにおけるウェイ数の２倍以上になるまで繰り返し行なわれる。
【００４８】
図６は実施形態の一例としてのコントローラモジュール１におけるＭＡＰテーブルＭＴの作成手法を説明するための図である。この図６に示す例においては、物理メモリ空間においてアドレス#A〜#Bの領域にスロット０〜３が割り当てられており、アドレス#C以降の領域にスロット４，５が割り当てられているものとする。
テーブル作成部１０４は、メモリ空間の先頭に割り当てられているメモリスロットペア分の項目を用意する。そして、テーブル作成部１０４は、先ず、アドレス#Aに割り当てられているスロットについて、そのメモリスロットペアをＭＡＰテーブルＭＴの列項目として作成する。
【００４９】
そして、検証アドレス選択部１０１は、アドレス#AからＣＰＵ１０のキャッシュサイズ単位で検証アドレスを切り替える。すなわち、検証アドレス選択部１０１は、先に選択したアドレスに対して、キャッシュサイズを加算した値を次の検証アドレスとして選択する。以下、隣接しない離れた位置のアドレスを選択することをアドレススキップもしくはアドレスジャンプという場合がある。又、この際、次のアドレスまでの距離をジャンプ単位といい、例えば、キャッシュサイズだけ離れたアドレスにアドレスジャンプを行なうことを、キャッシュサイズ単位でアドレスジャンプを行なうと表現する場合がある。
【００５０】
この切り替え先の検証アドレスに対して、メモリコントローラ２１によるシングルビットエラーの生成やエラー応答情報の作成，スロット情報取得部１０３によるエラー応答情報の取得，テーブル作成部１０４によるＭＡＰテーブルＭＴへの登録が行なわれる。なお、本実施形態においては、検証アドレス選択部１０１は、検証アドレスのアドレススキップを行なうに際して、物理メモリ空間においてメモリアドレスが小さい方から大きい方に向けて行なうものとする。
【００５１】
このような、検証アドレスのキャッシュサイズ単位でのアドレススキップ，シングルビットエラーの生成，エラー応答情報の取得及びＭＡＰテーブルＭＴへの登録は、ＭＡＰテーブルＭＴにおいて、試験領域の数がスロットに対して予め設定された必要数を満たすまで繰り返し行なわれる。
スロット０〜３について、ＭＡＰテーブルＭＴにおいて試験領域が必要数分確保されると、次に、検証アドレス選択部１０１は、ＦＢ−ＤＩＭＭ３０にかかる物理アドレスにおいて、先にメモリアクセスを行なった該検証アドレスから、複数のＦＢ−ＤＩＭＭ３０のうちの最小容量サイズ以上（本実施形態では最小容量サイズ）離れた位置を次の検証アドレスとして選択する。すなわち、検証アドレス選択部１０１は、最小容量サイズ単位でアドレスジャンプを行なう。なお、本実施形態においては、検証アドレス選択部１０１は、検証アドレスのアドレスジャンプを行なうに際して、物理メモリ空間においてメモリアドレスが小さい方から大きい方に向けて行なうものとする。
【００５２】
この最小容量サイズ単位でのアドレスジャンプは、新たな検証アドレスが先にＭＡＰテーブルＭＴへ登録を行なったスロットとは異なるスロットに対応するものになるまで行なうことが望ましい。
そして、この新たな検証アドレスが、先にＭＡＰテーブルＭＴへ登録を行なったスロットとは異なるスロット（例えば、スロット４，５）に対応するものである場合には、テーブル作成部１０４は、メモリ空間の先頭に割り当てられているメモリスロットペア分の項目を用意する。テーブル作成部１０４は、アドレス#Bに割り当てられているスロットについて、そのメモリスロットペアをＭＡＰテーブルＭＴの列項目として作成する。
【００５３】
その後、検証アドレス選択部１０１は、この新たな検証アドレスからＣＰＵ１０のキャッシュサイズ単位でアドレススキップを行ない、シングルビットエラーの生成，エラー応答情報の取得及びＭＡＰテーブルＭＴへの登録を行なう。
このような、スロット４，５についての、検証アドレスのキャッシュサイズ単位でのアドレススキップ，シングルビットエラーの生成，エラー応答情報の取得及びＭＡＰテーブルＭＴへの登録も、ＭＡＰテーブルＭＴにおいて、試験領域の数がスロットに対して予め設定された必要数を満たすまで繰り返し行なわれる。
【００５４】
なお、本実施形態においては、上記過程において物理メモリ空間においてスキップした空間は、当該ＭＡＰテーブルＭＴに登録されないことにより、当該ＭＡＰテーブルＭＴにかかる試験領域としては使用されないことになる。しかしながら、これらのスキップされた空間中に存在するメモリアドレスは、他のＭＡＰテーブルＭＴに登録された場合には、この他のＭＡＰテーブルＭＴにより、試験領域として使用されることとなる。
【００５５】
本コントローラモジュール１においては、上述の如く、物理メモリ空間において、検証アドレスが特定のスロットに割り当てられている領域内にある場合に、ＭＡＰテーブルＭＴへの検証アドレスにかかる登録が試験領域数を満たすまで、アドレススキップとシングルビットエラーの生成，エラー応答情報の取得及びＭＡＰテーブルＭＴへの登録を繰り返し行なう。このように、メモリ空間をアドレススキップしながらＭＡＰテーブルＭＴを作成することにより、メモリ空間を短時間で検証することができる。すなわち、これにより、ＭＡＰテーブルＭＴの作成に要する時間を短縮することができる。
【００５６】
また、物理メモリ空間において、特定のスロットに関して、ＭＡＰテーブルＭＴへの検証アドレスにかかる登録が試験領域数を満たした場合には、次に、検証アドレスがＭＡＰテーブルＭＴに未登録な他のスロットに対応するものになるまで、アドレスジャンプとシングルビットエラーの生成，エラー応答情報の取得及びＭＡＰテーブルＭＴへの登録を繰り返し行なう。これにより、物理メモリ空間内に点在しているスロットに関する領域を短時間で見つけ出すことができ、ＭＡＰテーブルＭＴの作成に要する時間を短縮することができる。
【００５７】
また、検証アドレス選択部１０１は、ＦＢ−ＤＩＭＭ３０にかかる物理アドレスにおいて、先にメモリアクセスを行なった検証アドレスと同一のキャッシュライン上に割り当てられている論理アドレスを次の検証アドレスとして選択する。なお、この同一キャッシュライン上に割り当てられている論理アドレスの選択は、例えば、２次キャッシュサイズ，ウェイ数，キャッシュラインのサイズ及びウェイサイズに基づいて行なわれる。
【００５８】
さらに、コア０は、ＦＢ−ＤＩＭＭ３０の負荷試験の実行時においてアクセス実行部１０５としても機能する。このアクセス実行部１０５は、テーブル作成部１０４によって作成されたＭＡＰテーブルＭＴに基づいて、試験対象のＦＢ−ＤＩＭＭ３０にかかる論理アドレスに対してメモリアクセスを行なう。本実施形態においては、コア０はＦＢ−ＤＩＭＭ３０にかかる論理アドレスに対するメモリアクセスとして、所定のデータのライトとリードを行なう。
【００５９】
さらに、この際、アクセス実行部１０５は、ＭＡＰテーブルＭＴにおいて同一のメモリスロットペアに関連付けられた複数の論理アドレスに順番にアクセスする。これにより、アクセス実行部１０５は、そのメモリスロットペアに取り付けられたＦＢ−ＤＩＭＭ３０に集中的にメモリアクセスを行なうことができ、特定のＦＢ−ＤＩＭＭ３０に効率よく負荷を与えることができる。
【００６０】
さらに、上述の如く、ＭＡＰテーブルＭＴには、同一のキャッシュライン上に割り当てられている論理アドレスが登録されており、更に、これらの論理アドレスがウェイ数よりも多数の試験領域数となるように登録されている。すなわち、アクセス実行部１０５は、ＭＡＰテーブルＭＴに基づいて、試験対象である特定のＦＢ−ＤＩＭＭ３０に対応付けられた複数の論理アドレスに対して順次アクセスを行なうことにより、同一のキャッシュライン上に割り当てられている論理アドレスであって、ウェイ数よりも多数の論理アドレスに対してアクセスを行なう。
【００６１】
図７は実施形態の一例としてのコントローラモジュール１におけるアクセス実行部１０５によるアクセス手法を説明するための図である。
本コントローラモジュール１においては、以下の（１），（２）の策により、全てのメモリアクセスを特定のＦＢ−ＤＩＭＭ３０へのアクセスとすることにより、アクセス頻度を高めることが可能である。
【００６２】
（１）物理メモリ空間において、ＣＰＵキャッシュの同一ラインに割り当てられる複数の領域（図７に示す例では、例えば領域１〜４参照）を確保する。
ここで、確保する領域の数は、ＣＰＵキャッシュのウェイ数よりも多数となるようにする。特に、ＣＰＵ１０におけるウェイ（キャッシュ）のリプレイスがランダムに行なわれる場合には、ウェイ数の２倍以上の領域をアクセス先として用意することにより、ＣＰＵキャッシュのヒット率を低減し、ＦＢ−ＤＩＭＭ３０へのアクセス頻度を向上させることができる。従って、ウェイのリプレイス手法が未知である場合には、ウェイ数の２倍以上の領域をアクセス先として用意することが望ましい。
【００６３】
確保する領域の数がＣＰＵキャッシュのウェイ数の２倍よりも少ない場合には、２順目以降にアクセスしたアドレスがＣＰＵキャッシュにヒットする確率が高くなり、ＦＢ−ＤＩＭＭ３０へのアクセス頻度が下がる。
（２）各領域の先頭アドレスのみをアクセスアドレスとして使用し、これらの各領域の先頭アドレスに対して順次アクセスする。これにより、1回のメモリアクセス命令実行毎に対象ＦＢ−ＤＩＭＭ３０へのアクセス頻度を高める。
アクセス実行部１０５は、各ウェイの同じキャッシュラインｎに割当られる複数（ウェイ数の２倍以上の個数）の領域の先頭アドレスへのアクセスを繰り返す。図７においては、物理メモリ空間における互いに異なる領域１〜４へのアクセスを行なう例を示している。アクセス実行部１０５は、物理メモリ空間における領域１の先頭アドレスへのアクセス（符号ａ１）、領域２の先頭アドレスへのアクセス（符号ａ２）、領域３の先頭アドレスへのアクセス（符号ａ３）、領域４の先頭アドレスへのアクセス（符号ａ４）の順で順次アクセスを行なう。更に、その後、物理メモリ空間における領域１の先頭アドレスへのアクセス（符号ａ１）、領域１の先頭アドレスへのアクセス（符号ａ５）、領域２の先頭アドレスへのアクセス（符号ａ６）・・・と、上記の各領域１〜４へのアクセスを繰り返し実行する。これにより、符号ａ３以降のアクセス時において、ウェイ０，１の各キャッシュラインｎには、先にアクセスした領域のデータが読み込まれている確率が高くなる。すなわち、メモリアクセス毎にキャッシュリプレースが発生し、ＦＢ−ＤＩＭＭ３０へのアクセス実頻度を高くすることができる。
【００６４】
また、コア１，２のそれぞれも、ＦＢ−ＤＩＭＭ３０の負荷試験の実行時において、コア０と同様にアクセス実行部１０５として機能する。これらのコア１，２のアクセス実行部１０５は、コア０のアクセス先と同一のＦＢ−ＤＩＭＭ３０に対してメモリアクセスを行なう。この際、これらのコア１，２のアクセス実行部１０５は、ＦＢ−ＤＩＭＭ３０―１に格納されているコア１用のＭＡＰテーブルＭＴ及びコア２用のＭＡＰテーブルＭＴに基づいて、ＦＢ−ＤＩＭＭ３０に対するメモリアクセスを行なう。
【００６５】
特に、本実施形態においては、図３に示すように、コア１はＦＢ−ＤＩＭＭ３０にかかる論理アドレスに対するメモリアクセスとして所定のデータのライトを行なう。又、コア２はＦＢ−ＤＩＭＭ３０にかかる論理アドレスに対するメモリアクセスとして、データのリードを行なう。
また、コア３は、ＦＢ−ＤＩＭＭ３０の負荷試験の実行時において、ＦＢ−ＤＩＭＭ３０のＡＭＢ３１のレジスタ（図示省略）に対するレジスタアクセスを行なう。このように、ＦＢ−ＤＩＭＭ３０の負荷試験の実行時において、同一のＦＢ−ＤＩＭＭ３０に対して、コア０〜２による互いに異なる種類のメモリアクセスと、コア３によるＡＭＢ３１のレジスタアクセスとを同時に動作させる。例えば、複数のコアに対して、同じタイミングで指示を行なうことにより、これらのコアが同時に動作する。これにより、ＡＭＢ３１を構成する各モジュールを同時に動作させる。なお、コア３によるレジスタアクセスの具体的手法は、既知の種々の手法により実現することができ、その説明を省略する。
【００６６】
そして、処理装置１のＣＰＵ１０が、試験プログラムを実行することにより、上述した検証アドレス選択部１０１，エラー生成指示部１０２，スロット情報取得部１０３，テーブル作成部１０４及びアクセス実行部１０５として機能する。
なお、これらの検証アドレス選択部１０１，エラー生成指示部１０２，スロット情報取得部１０３，テーブル作成部１０４及びアクセス実行部１０５としての機能を実現するためのプログラム（試験プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク，種々のメモリカード（例えば、ＣＦ（CompactFlash）カードやＳＤカード）等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００６７】
検証アドレス選択部１０１，エラー生成指示部１０２，スロット情報取得部１０３，テーブル作成部１０４及びアクセス実行部１０５としての機能を実現する際には、内部記憶装置（本実施形態では例えば、ＦＢ−ＤＩＭＭ３０）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００６８】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、コントローラモジュール１がコンピュータとしての機能を有しているのである。
【００６９】
図１に示すＴＴＹ（Tele-TYpewriter）端末４１は、キーボード等の入力装置とディスプレイやプリンタ等の出力装置とをそなえた入出力端末である。このＴＴＹ端末４１は、本コントロールモジュール１に通信可能に接続されている。そして、オペレータは、このＴＴＹ端末４１を介して、種々の入力操作を行なう。例えば、オペレータは、このＴＴＹ端末４１を用いて、ＦＢ−ＤＩＭＭ３０の試験プログラムの実行指示を行なう。又、この試験プログラムによる結果等はこのＴＴＹ端末４１の出力装置を介して出力される。
【００７０】
上述の如く構成された本コントロールモジュール１におけるＦＢ−ＤＩＭＭ３０の負荷試験時の処理を、図８に示すフローチャート（ステップＡ１０〜Ａ５０）に従って説明する。
オペレータがＴＴＹ端末４１からＦＢ−ＤＩＭＭ３０の負荷試験開始の指示を入力すると、ＣＰＵ１０により試験プログラムが実行される。これにより、コア０において、任意の論理アドレスに対してエラー生成指示が行なわれ、メモリコントローラ２１がその論理アドレスにエラーを生成する（ステップＡ１０）。そして、このエラー生成を行なった論理アドレスからリードを行ない、メモリコントローラ２１から得られるエラー応答情報に基づいて、その論理アドレスに対応するスロット位置を割り出す（ステップＡ２０）。
【００７１】
テーブル作成部１０４が、ステップＡ１０においてエラー生成を行なった論理アドレスとステップＡ２０において割り出されたスロット情報とを対応付けることによりＭＡＰテーブルＭＴにエントリする（ステップＡ３０）。なお、本実施形態においては、このＭＡＰテーブルＭＴは、コア０〜３のうち、メモリアクセス試験を行なうコア０〜３に対応させるべく３種類作成される。
【００７２】
そして、全メモリスロットペア（スロット）に対して、それぞれ所定数の論理アドレスの抽出が行なわれたか否かを確認する（ステップＡ４０）。ここで、全スロットに対して所定数の論理アドレスが抽出されていない場合には（ステップＡ４０のＮＯルート参照）、ステップＡ１０に戻る。一方、全スロットに対して所定数の論理アドレスが抽出されている場合には（ステップＡ４０のＹＥＳルート参照）、コア０〜３の各アクセス実行部１０５が、それぞれＭＡＰテーブルＭＴを参照して、同一のメモリスロットペアにアクセスすべく、互いに異なる論理アドレスに対して同時にメモリアクセス（ライト、リード、ライト＆リード）を行なう（ステップＡ５０）。これにより、特定のメモリスロットペアに搭載されたＦＢ−ＤＩＭＭ３０に対してメモリアクセスを集中させることができ、効率的にＦＢ−ＤＩＭＭ３０の負荷試験を実施することができるのである。
【００７３】
なお、負荷試験に関して、ＦＢ−ＤＩＭＭ３０において集中的なメモリアクセスを行なわせた後の処理（例えば、ＦＢ−ＤＩＭＭ３０の性能評価等）については、既知の種々の手法を適用して実現することができるものであり、便宜上その詳細な説明は省略する。
また、上述したフローチャートにおいて、ステップＡ１０〜Ａ４０によりＭＡＰテーブルＭＴを作成するＭＡＰテーブル作成機能が実現される。
【００７４】
次に、本コントローラモジュール１におけるＭＡＰテーブルＭＴの作成手法を、図９に示すフローチャート（ステップＢ１０〜Ｂ１４０）に従って説明する。
先ず、検証アドレス選択部１０１が、ＦＢ−ＤＩＭＭ３０におけるシステムの未使用領域を検索する（ステップＢ１０）。具体的には、検証アドレス選択部１０１は、ＣＰＵ１０の２次キャッシュの１ウェイサイズ分の未使用領域を探す。また、ここで、テーブル作成部１０４は、メモリスロットペア数に相当する数の列と、ウェイ数の２倍の数の行とからなるブランクのＭＡＰテーブルＭＴを、負荷試験の実行時にメモリアクセスを担当するコア０〜２の数と同数用意する。以下、このＭＡＰテーブルＭＴのブランクを埋めることにより、ＭＡＰテーブルＭＴを完成させる。
【００７５】
また、テーブル作成部１０４は、見つかった未使用領域の先頭の物理アドレスを検証アドレスとして、変数taddrにセットする（ステップＢ２０）。又、エラー生成指示部１０２は、メモリコントローラ２１に対して、ステップＢ１０において検証アドレス選択部１０１によって選択された検証アドレスにＥＣＣエラーを発生させるための指示を行なう（ステップＢ３０：エラー生成指示ステップ）。この指示は、例えば、メモリコントローラ２１にエラーインジェクション機能を実行させる所定のコマンドを、taddrに格納されているアドレスとともに送信することにより行なう。メモリコントローラ２１は、taddrに格納されているアドレスに対して、エラーインジェクション機能によりＥＣＣシングルビットエラーを発生させる。
【００７６】
スロット情報取得部１０３は、メモリコントローラ２１に設定されるエラー情報（エラー発生メモリコントローラ２１のブランチ，ランク情報等）から、割り当てられているメモリスロットペア位置を特定する（ステップＢ４０：スロット情報取得ステップ）。
また、スロット情報取得部１０３は、該当するメモリスロットペアの試験領域数が既に必要数（本実施形態ではウェイ数の２倍）分確保済みであるか否かを判断する（ステップＢ５０）。ここで、該当するメモリスロットペアの試験領域数が必要数に満たない場合には（ステップＢ５０のＮＯルート参照）、次に、検証アドレスが、該当メモリスロットペアにおいて最初に見つかった試験領域（１個目）であるかを判断する（ステップＢ６０）。すなわち、これから検証アドレスによって埋めようとするブランクがＭＡＰテーブルＭＴにおける試験領域番号１に相当するものであるか否かを判断する。検証アドレスが該当メモリスロットペアにおいて最初に見つかった（先頭の）試験領域である場合には（ステップＢ６０のＹＥＳルート参照）、変数taddrの物理アドレス（検証アドレス）に対応する論理アドレスをＭＡＰテーブルＭＴにおける当該位置にセットする（ステップＢ７０）。
【００７７】
そして、スロット情報取得部１０３は、必要な試験領域数が確保されたか否かを判断し（ステップＢ８０）、必要な試験領域数が確保できた場合には（ステップＢ８０のＹＥＳルート参照）、処理を終了する。又、必要な試験領域数が確保できていない場合には（ステップＢ８０のＮＯルート参照）、次に、未使用領域（ＣＰＵ１０の２次キャッシュ１ウェイサイズ）分が終了したかを確認する（ステップＢ１００）。すなわち、ステップＢ１０においえ確保した１ウェイサイズ分の未使用領域の全てに対してステップＢ２０〜Ｂ４０の各処理（検証）を行なったかを判断する。
【００７８】
１ウェイサイズ分の未使用領域の全て領域に対して処理が完了していない場合には（ステップＢ１００のＮＯルート参照）、変数taddrにＣＰＵ１０のキャッシュラインサイズ分加算する（ステップＢ１１０）。すなわち、キャッシュサイズ単位でアドレススキップを行なうことにより、次のキャッシュラインをチェックするのである。その後、ステップＢ２０に戻る。
【００７９】
一方、検証アドレスが、該当メモリスロットペアにおいて最初に見つかった試験領域（１個目）ではない場合には（ステップＢ６０のＮＯルート参照）、次に、検証アドレスが、その検証アドレスが最初に見つかった試験領域と同じＣＰＵキャッシュラインであるか否かを判断する（ステップＢ９０）。ここで、検証アドレスが、最初に見つかった試験領域と同一のＣＰＵキャッシュライン上にある場合には（ステップＢ９０のＹＥＳルート参照）、ステップＢ７０に移行する。一方、検証アドレスが、その検証アドレスが最初に見つかった試験領域と同じＣＰＵキャッシュラインでない場合には（ステップＢ９０のＮＯルート参照）、ステップＢ１００に移行する。これらにより、ＭＡＰテーブルＭＴにおいて、各メモリスロットペア毎の試験領域が同じキャッシュライン上に割り当てられる領域となるようにすることができるのである。
【００８０】
また、１ウェイサイズ分の未使用領域の全て領域に対して処理が完了した場合には（ステップＢ１００のＹＥＳルート参照）、確保した１ウェイ分の未使用領域において試験領域が見つかったか否かを確認する（ステップＢ１２０）。ここで、１つでも試験領域が見つかった場合には（ステップＢ１２０のＮＯルート参照）、未使用領域の最後のアドレスを開始位置として、次の１ウェイサイズ分の未使用領域を検索して（ステップＢ１３０）、ステップＢ２０に戻る。一方、１個も試験領域が見つからなかった場合には（ステップＢ１２０のＹＥＳルート参照）、未使用領域の先頭アドレスに、実装されているＦＢ−ＤＩＭＭ３０の最小容量のペアサイズ分（最小容量サイズ）を加算したアドレスを開始位置として、次の１ウェイサイズ分の未使用領域を検索する（ステップＢ１４０）、すなわち、最小容量サイズ単位でアドレスジャンプを行なう。その後、ステップＢ２０に戻る。
【００８１】
このように、実施形態の一例としての  コントローラモジュール１によれば、アクセス実行部１０５が、論理アドレスとメモリスロットペアとを対応付けて作成したＭＡＰテーブルＭＴに基づいて、ＦＢ−ＤＩＭＭ３０にアクセスを行なう。これにより、従来手法では物理メモリアドレスからメモリスロット位置を判断できないＦＢ−ＤＩＭＭ３０においても、各スロット位置のＦＢ−ＤＩＭＭ３０がどの物理メモリアドレスに割当てられているかを知ることができる。すなわち、特定のスロットＳに取り付けられたＦＢ−ＤＩＭＭ３０に対してメモリアクセスを集中させることができ、ＦＢ−ＤＩＭＭ３０の負荷試験を効率よく実施することができる。
【００８２】
また、ＭＡＰテーブルＭＴの作成に際して、検証アドレス選択部１０１が、キャッシュサイズ単位でアドレススキップを行ないながら検証アドレスを決定し、この検証アドレスに対してシングルビットエラーの生成やエラー応答情報の取得、ＭＡＰテーブルＭＴへの登録を繰り返し行なう。更に、ＭＡＰテーブルＭＴにおいて、試験領域数がスロットに対して予め設定された必要数を満たされた後には、検証アドレス選択部１０１が、最小容量サイズ単位でアドレスジャンプを行なって検証アドレスを決定することにより、ＭＡＰテーブルＭＴを短時間で作成することができる。特に、アドレスジャンプを、複数そなえられたＦＢ−ＤＩＭＭ３０のうちの最小容量サイズで行なうことにより、異なるスロットに対応する論理アドレスを効率的に見つけ出すことができる。
【００８３】
すなわち、メモリ空間全体に各スロットが割り当てられている空間が点在している場合においても、物理メモリ空間における先頭位置から順番にほぼメモリ全体にわたって、スロット位置を特定するための処理を順番に繰り返し行なう必要がなく効率的である。
また、ＭＡＰテーブルＭＴにおいて、メモリスロットペアに関して同一のキャッシュライン上の複数の論理アドレスを対応付けている。そして、アクセス実行部１０５が、このＭＡＰテーブルＭＴを参照して、一のメモリスロットペアにかかるＦＢ−ＤＩＭＭ３０に対して、ウェイ数よりも多数の論理アドレスに対してアクセスを行なう。これにより、ＦＢ−ＤＩＭＭ３０へのメモリアクセス毎にキャッシュリプレースが生じ、ＦＢ−ＤＩＭＭ３０へのアクセス頻度を高くすることができる。
【００８４】
ＦＢ−ＤＩＭＭ３０の負荷試験の実行時において、同一のＦＢ−ＤＩＭＭ３０に対して、コア０〜２による互いに異なる種類のメモリアクセスと、コア３によるＡＭＢ３１のレジスタアクセスとを同時に動作させる。これにより、ＦＢ−ＤＩＭＭ３０において、ＡＭＢ３１を構成する各モジュールを同時に動作させることができ、又、リード方向バスとライト方向バスとを同時に動作させることができる。これにより、ＦＢ−ＤＩＭＭ３０への負荷を効率的に高めることができる。
【００８５】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、ＣＰＵ１０が４コアである例について説明しているが、これに限定されるものではなく、ＣＰＵ１０が、３以下もしくは５以上のコアをそなえてもよい。
【００８６】
また、上述した実施形態においては、ＣＰＵ１０が２ウェイキャッシュ（ウェイ数＝２）の例について説明しているが、これに限定されるものではなく、ＣＰＵ１０が３以上のウェイをそなえてもよい。又、ＣＰＵ１０においてキャッシュを分割しない場合についても適用することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【００８７】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
メモリを接続可能なスロットを複数そなえた制御装置であって、
該メモリにかかる検証アドレスを選択する検証アドレス選択部と、
該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成部と、
該エラー生成部によって発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得部と、
該スロット情報取得部によって取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成部と、
該マッピング情報作成部によって作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行部とをそなえることを特徴とする、制御装置。
【００８８】
（付記２）
該マッピング情報作成部によって作成された該マッピング情報を格納するマッピング情報格納部をそなえることを特徴とする、付記１記載の制御装置。
（付記３）
該検証アドレス選択部が、該メモリにかかる物理アドレスにおいて、先にメモリアクセスを行なった該検証アドレスから、複数の該メモリのうちの最小容量サイズ以上離れた位置を次の検証アドレスとして選択することを特徴とする、付記１又は付記２記載の制御装置。
【００８９】
（付記４）
当該制御装置にそなえられたＣＰＵ（Central Processing Unit）が、キャッシュを複数のウェイに分割するマルチウェイ方式である場合において、
該マッピング情報作成部が、該マッピング情報において、一の該スロット情報に関して同一のキャッシュライン上の複数の論理アドレスを対応付けるとともに、
該アクセス実行部が、該マッピング情報を参照して、該一のスロット情報にかかる該メモリに対して、該ウェイ数よりも多数の論理アドレスに対してアクセスを行なうことを特徴とする、付記１〜付記３のいずれか１項に記載の制御装置。
【００９０】
（付記５）
該ＣＰＵが複数のコアをそなえる場合において、該複数のコアのうち２以上のコアが、それぞれ該アクセス実行部として、該試験対象のメモリに対して互いに異なる種類のメモリアクセスを同時に行なうことを特徴とする、付記１〜４のいずれか１項に記載の制御装置。
【００９１】
（付記６）
該複数のコアのうち該２以上のコアとは異なる他のコアが、該２以上のコアによる各メモリアクセスと同時に、該試験対象のメモリに対するレジスタアクセスを行なうことを特徴とする、付記５記載の制御装置。
（付記７）
メモリを接続可能なスロットを複数そなえた制御装置における、該メモリの試験方法であって、
該メモリにかかる検証アドレスを選択する検証アドレス選択ステップと、
該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成ステップと、
該エラー発生ステップにおいて発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得ステップと、
該スロット情報取得ステップにおいて取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成ステップと、
該マッピング情報作成ステップにおいて作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行ステップとをそなえることを特徴とする、試験方法。
【００９２】
（付記８）
該検証アドレス選択ステップにおいて、該メモリにかかる物理アドレスにおいて、先にメモリアクセスを行なった該検証アドレスから、複数の該メモリのうちの最小容量サイズ以上離れた位置を次の検証アドレスとして選択することを特徴とする、付記７記載の試験方法。
【００９３】
（付記９）
当該制御装置にそなえられたＣＰＵ（Central Processing Unit）が、キャッシュを複数のウェイに分割するマルチウェイ方式である場合において、
該マッピング情報作成ステップにおいて、該マッピング情報において、一の該スロット情報に関して同一のキャッシュライン上の複数の論理アドレスを対応付けるとともに、
該アクセス実行ステップにおいて、該マッピング情報を参照して、該一のスロット情報にかかる該メモリに対して、該ウェイ数よりも多数の論理アドレスに対してアクセスを行なうことを特徴とする、付記７又は付記８記載の試験方法。
【００９４】
（付記１０）
該ＣＰＵが複数のコアをそなえる場合に、該アクセス実行ステップにおいて、該複数のコアのうち２以上のコアが、該それぞれ該試験対象のメモリに対して、互いに異なる種類のメモリアクセスを同時に行なうことを特徴とする、付記７〜９のいずれか１項に記載の試験方法。
【００９５】
（付記１１）
該アクセス実行ステップにおいて、該複数のコアのうち該２以上のコアとは異なる他のコアが、該２以上のコアによる各メモリアクセスと同時に、該試験対象のメモリに対するレジスタアクセスを行なうことを特徴とする、付記１０記載の試験方法。
（付記１２）
メモリを接続可能なスロットを複数そなえたコンピュータにおいて、該メモリの試験を行なう試験機能を該コンピュータに実行させるための試験プログラムであって、
該メモリにかかる検証アドレスを選択する検証アドレス選択ステップと、
該検証アドレスに対するメモリアクセスによりエラーを発生させるエラー生成ステップと、
該エラー発生ステップにおいて発生させた該エラーに関して作成されたエラー応答情報に基づいて、当該エラーにかかる検証アドレスが割り当てられているメモリの該スロットに関するスロット情報を取得するスロット情報取得ステップと、
該スロット情報取得ステップにおいて取得された該スロット情報に基づいて、該検証アドレスに対応する論理アドレスと該スロット情報とを対応付けることによりマッピング情報を作成するマッピング情報作成ステップと、
該マッピング情報作成ステップにおいて作成された該マッピング情報に基づいて、試験対象のメモリにかかる論理アドレスに対してアクセスを行なうアクセス実行ステップとを、該コンピュータに実行させることを特徴とする、試験プログラム。
【００９６】
（付記１３）
該検証アドレス選択ステップにおいて、該メモリにかかる物理アドレスにおいて、先にメモリアクセスを行なった該検証アドレスから、複数の該メモリのうちの最小容量サイズ以上離れた位置を次の検証アドレスとして選択させるように、該コンピュータを機能させることを特徴とする、付記１２記載の試験プログラム。
【００９７】
（付記１４）
当該制御装置にそなえられたＣＰＵ（Central Processing Unit）が、キャッシュを複数のウェイに分割するマルチウェイ方式である場合において、
該マッピング情報作成ステップにおいて、該マッピング情報において、一の該スロット情報に関して同一のキャッシュライン上の複数の論理アドレスを対応付けるように、該コンピュータを機能させるとともに、
該アクセス実行ステップにおいて、該マッピング情報を参照して、該一のスロット情報にかかる該メモリに対して、該ウェイ数よりも多数の論理アドレスに対してアクセスを行なわせるように、該コンピュータを機能させることを特徴とする、付記１２又は付記１３記載の試験プログラム。
【００９８】
（付記１５）
該ＣＰＵが複数のコアをそなえる場合に、該アクセス実行ステップにおいて、該複数のコアのうち２以上のコアに、該それぞれ該試験対象のメモリに対して、互いに異なる種類のメモリアクセスを同時に行なわせるように、該コンピュータを機能させることを特徴とする、付記１２〜１４のいずれか１項に記載の試験プログラム。
【００９９】
（付記１６）
該アクセス実行ステップにおいて、該複数のコアのうち該２以上のコアとは異なる他のコアが、該２以上のコアによる各メモリアクセスと同時に、該試験対象のメモリに対するレジスタアクセスを行なうように、該コンピュータを機能させることを特徴とする、付記１５記載の試験プログラム。
【符号の説明】
【０１００】
１    コントローラモジュール
１０    ＣＰＵ
１１−０〜１１−３，１１    コア
２０    ＤＭＡコントローラ
２１    メモリコントローラ（エラー生成部，エラー応答作成部）
３０−０〜３０−１５，３０    ＦＢ−ＤＩＭＭ（メモリ）
３１    ＡＭＢ
３２    ＤＲＡＭ
４１    ＴＴＹ端末
１００    ＲＡＩＤ装置
１０１    検証アドレス選択部
１０２    エラー生成指示部
１０３    スロット情報作成部
１０４    テーブル作成部
１０５    アクセス実行部  
３０１    ノースバウンド制御部
３０２    ノースバウンドフレーム作成部
３０３    レジスタアクセス制御部
３０４    ＤＲＡＭ制御部
３０５    サウスバウンドフレーム解析部
３０６    サウスバウンド制御部
ＭＴ    ＭＡＰテーブル（マッピング情報）
【図１】
0005423501.tif 000002
【図２】
0005423501.tif 000003
【図３】
0005423501.tif 000004
【図４】
0005423501.tif 000005
【図５】
0005423501.tif 000006
【図６】
0005423501.tif 000007
【図７】
0005423501.tif 000008
【図８】
0005423501.tif 000009
【図９】
0005423501.tif 000010