(57)【要約】【課題】情報処理装置に搭載されたメモリの試験を容易に実行する情報処理装置、情報処理システム、情報処理装置制御プログラム及び情報処理装置制御方法を提供する。【解決手段】メモリスロットは、複数存在する。ＳＰＤ読出部１１２は、メモリスロットに搭載されたＤＩＭＭ１０４の物理的な搭載状態を示す実装情報を取得する。試験用搭載情報テーブル作成部１１１は、ＳＰＤ読出部１１２により取得された実装情報を基に、ＤＩＭＭ１０４のメモリスロットへの試験用の搭載パターンに応じた搭載情報を生成する。メモリ初期化部１２１は、試験用搭載情報テーブル作成部１１１により生成された搭載情報を基にＤＩＭＭ１０４の試験を実行する。【選択図】図４
2018018177.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリスロットと、
前記メモリスロットに搭載されたメモリの物理的な搭載状態を示す実装情報を取得する状態取得部と、
前記状態取得部により取得された前記実装情報を基に、前記メモリの前記メモリスロットへの試験用の搭載パターンに応じた搭載情報を生成する試験制御部と、
前記試験制御部により生成された前記搭載情報を基に前記メモリの試験を実行する試験部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記試験制御部は、前記搭載パターンを基に、前記実装情報で示される前記メモリが搭載された前記メモリスロットの中から前記試験に用いるメモリスロットを選択し、選択したメモリスロットに搭載されているメモリ容量を決定することで前記搭載情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記試験制御部は、予め前記実装情報に応じた前記メモリの前記搭載パターンを複数記憶しており、前記搭載パターン毎に、前記実装情報を基に前記搭載パターンにしたがって前記メモリスロットの中から前記試験に用いるメモリスロットを選択し、選択したメモリスロットに搭載されるメモリ容量を決定して前記搭載パターンを生成する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記試験部は、前記搭載情報で前記メモリが搭載されているとされたメモリスロット以外のメモリスロットには前記メモリが搭載されていないものとして前記試験を実施することを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
演算処理装置、複数のメモリスロット及びシステム制御装置を有する情報処理装置、並びに、試験装置を有する情報処理システムであって、
前記システム制御装置は、
前記メモリスロットに搭載されたメモリの物理的な搭載状態を示す実装情報を取得する状態取得部と、
前記メモリの前記メモリスロットへの前記メモリの搭載パターンを前記試験装置から取得し、前記実装情報を基に、前記搭載パターンに応じた搭載情報を生成する試験制御部とを備え、
前記演算処理装置は、
前記試験制御部により生成された前記搭載情報を基に前記メモリの試験を実行する試験部を備え、
前記試験装置は、
前記搭載パターンを前記試験制御部に入力する情報入力部と、
前記試験部により実行された試験結果を取得する結果取得部を備えた
ことを特徴とする情報処理システム。
【請求項６】
前記情報入力部は、指定された試験目的に応じて、前記搭載パターンの優先順位を決定し、前記優先順位に応じて前記試験を行うことを前記試験制御部に指示することを特徴とする請求項５に記載の情報処理システム。
【請求項７】
複数のメモリスロットの全て又はいくつかに搭載されたメモリの物理的な搭載状態を示す実装情報を取得し、
取得した前記実装情報を基に、前記メモリの前記メモリスロットへの試験用の搭載パターンに応じた搭載情報を生成し、
生成した実装パターンを基に前記メモリの試験を実行する
ことを特徴とする情報処理装置制御方法。
【請求項８】
複数のメモリスロットの全て又はいくつかに搭載されたメモリの物理的な搭載状態を示す実装情報を取得し、
取得した前記実装情報を基に、前記メモリの前記メモリスロットへの試験用の搭載パターンに応じた搭載情報を生成し、
生成した実装パターンを基に前記メモリの試験を実行する
処理をコンピュータに実行させることを特徴とする情報処理装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理装置制御プログラム及び情報処理装置制御方法に関する。
【背景技術】
【０００２】
情報処理装置の主記憶装置として用いられるＤＩＭＭ（Dual  Inline  Memory  Module）の試験には、以下の２つの試験がある。１つは、各メモリモードにおけるシステムとしての動作検証である。この試験は、具体的には、メモリモードを変更して、各メモリモードにおけるＢＩＯＳ（Basic  Input  Output  System）ファームウェアの動作の検証を行う試験である。以下では、この試験を「動作モードの試験」という。また、他の１つは、搭載条件に応じた動作周波数の安定動作検証である。この試験は、具体的には、メモリの搭載条件を変更して、各搭載条件におけるＢＩＯＳファームウェア及びハードウェアの動作の検証を行う試験である。以下では、この試験を「動作周波数の試験」という。これらいずれの試験においても、複数のＤＩＭＭ搭載パターンを構築した上で試験が行われる。
【０００３】
ＤＩＭＭの動作モードには、例えば、ノーマル、ミラー、スペアの３種類がある。そして、各動作モードに応じて、ＤＩＭＭの搭載パターンが決められている。そこで、動作モードの試験の場合、それぞれのパターンでＯＳ（Operating  System）を起動させた際に、期待通りのメモリ容量が認識されているかの確認の検証がＤＩＭＭの構成毎に行われる。
【０００４】
また、ＤＩＭＭの動作周波数は、ＤＩＭＭの搭載パターン、容量の違いによるＤＩＭＭの種類及びメモリ動作モードによって異なる。そこで、動作周波数の違いでメモリのトレーニング論理が異なるため、動作周波数の試験では、各メモリ構成に応じた動作周波数においてメモリのトレーニングが成功し、ＯＳの起動後に安定動作するかどうかのテストが行われる。
【０００５】
特に、ＤＩＭＭの種類や搭載パターンとメモリ動作モードとの組み合わせにより、複数の異なるメモリのトレーニング論理が存在するため、トレーニング論理にバグが内在するケースが多く、検証の後の工程で問題になることが多い。構成に依存した潜在的なバグを事前に検出し、開発側にフィードバックするために、搭載バターンを構成変更して試験を網羅的に実施することが好ましい。また、個体のバラつきも考慮に含めた安定度確認のための繰り返し試験を行うことが好ましい。
【０００６】
例えば、ＤＩＭＭで発生する障害としては、メモリトレーニングすなわちメモリの初期化中にトレーニングエラーが発生し、ＯＳを起動できないことが考えられる。また、メモリトレーニング完了後のＯＳの運用中に、動作が不安定になる修復可能エラー又は修復不可能なエラーが頻発することが考えられる。
【０００７】
従来は、動作モードの試験及び動作周波数の試験を行う際に、以下のような流れでＤＩＭＭの組み合わせを変更して繰り返し試験が行われていた。まず、試験を行うオペレータが手動で、試験項目に応じたＤＩＭＭの種類及び搭載パターンとなるようにＤＩＭＭを情報処理装置に実装する。次に、オペレータがメモリモードを設定する。次に、試験装置から被試験装置に対し指示を出し試験を開始する。この時、試験内容は、例えば、電源のオンオフの繰り替えし及びＯＳ起動状態でのテストプログラムの走行である。そして、障害発生時には、装置ログにエラーが記録される。試験終了後、オペレータは、装置ログを確認して良否判定を行う。
【０００８】
なお、情報処理装置の試験方法として、ＢＭＣ（Baseboard  Management  Controller）に検証用のパラメータを格納しておき、試験対象の情報処理装置は起動後ＢＭＣに格納されたパラメータを読み出して試験を行う従来技術がある。また、ＢＩＯＳの立ち上げ処理中にマルチＣＰＵ（Central  Processing  Unit）間のインタフェース回路のエラー情報をＢＭＣに通知して故障部位を判定する従来技術がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１４−９６０３２号公報
【特許文献２】特開２０１２−７９２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、大容量のＤＩＭＭを搭載可能な情報処理装置においては、搭載パターンが多数存在する。例えば、１枚のシステムボードあたり、最大４８枚のＤＩＭＭが搭載可能である場合、動作モードを加味して、ＤＩＭＭの搭載パターンが４１パターンとなる場合がある。この場合にＤＩＭＭの種類が４種類とすると、動作モードとＤＩＭＭの種類の組み合わせでＤＩＭＭの搭載パターンは１６４パターンとなる。さらに、ＤＩＭＭ容量の混在、複数システムボードの構成を考慮すると、搭載パターンは膨大な数となる。
【００１１】
このような膨大な搭載パターンに応じた試験を行う場合、試験項目に応じた搭載パターンの物理位置にＤＩＭＭを搭載することは、オペレータが手作業で行う場合、非常に煩雑な作業となる。また、ＤＩＭＭの載せ替え作業を行うには情報処理装置の電源を落とすことになり、その都度試験装置からの指示を完了させ、ＤＩＭＭの載せ替え作業後に再度試験指示を行うことになる。このため、全ての搭載パターンの試験を完了するためには、情報処理装置の電源のオンオフが非常に多くの回数行われることになる。このようなことから、従来は、情報処理装置に搭載されたメモリの試験を行うことに多くの手間がかかっていた。
【００１２】
また、ＢＭＣから検証用のパラメータを読み出す従来技術では、メモリの搭載パターンを変更することは考慮されておらず、メモリの試験を容易に実行することは困難である。また、マルチＣＰＵ間のインタフェース回路のエラー情報をＢＭＣに通知する従来技術を用いても、メモリの試験を容易に実行することは困難である。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、情報処理装置に搭載されたメモリの試験を容易に実行する情報処理装置、情報処理システム、情報処理装置制御プログラム及び情報処理装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示する情報処理装置、情報処理システム、情報処理装置制御プログラム及び情報処理装置制御方法の一つの態様において、複数のメモリスロットを備える。さらに、状態取得部は、前記メモリスロットに搭載されたメモリの物理的な搭載状態を示す実装情報を取得する。試験制御部は、前記状態取得部により取得された前記実装情報を基に、前記メモリの前記メモリスロットへの試験用の搭載パターンに応じた搭載情報を生成する。試験部は、前記試験制御部により生成された前記搭載情報を基に前記メモリの試験を実行する。
【発明の効果】
【００１５】
本願の開示する情報処理装置、情報処理システム、情報処理装置制御プログラム及び情報処理装置制御方法の一つの態様によれば、情報処理装置に搭載されたメモリの試験を容易に実行することができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、サーバの構成図である。
【図２】図２は、システムボード上に搭載されるＤＩＭＭの搭載図である。
【図３】図３は、ＤＩＭＭの搭載規則を表す図である。
【図４】図４は、実施例１に係るメモリ試験を行うサーバ及び試験サーバのブロック図である。
【図５】図５は、試験管理テーブルの一例の図である。
【図６】図６は、搭載パターン規則フォーマットの一例の図である。
【図７】図７は、実搭載情報テーブルの一例の図である。
【図８】図８は、ＤＩＭＭ容量及び搭載枚数と動作周波数との関係を表す図である。
【図９】図９は、ＢＭＣ及びＣＰＵとＤＩＭＭとの接続状態を模式的に表す図である。
【図１０】図１０は、実施例１に係るサーバによるメモリ試験の流れを説明するための図である。
【図１１】図１１は、実施例１に係るサーバによるメモリ検証のフローチャートである。
【図１２】図１２は、実施例１に係るサーバによるメモリ試験のフローチャートである。
【図１３】図１３は、仮想搭載情報テーブルの一例の図である。
【図１４】図１４は、容量情報テーブルの一例の図である。
【図１５】図１５は、他の搭載パターンにおける仮想搭載情報テーブルの一例の図である。
【図１６】図１６は、他の搭載パターンにおける容量情報テーブルの一例の図である。
【図１７】図１７は、ＢＩＯＳ実行部によるメモリ試験の詳細を表すフローチャートである。
【図１８】図１８は、試験管理テーブルの一例を表す図である。
【図１９】図１９は、試験テーブルの一例を表す図である。
【図２０】図２０は、イベントＩＤテーブルの一例を表す図である。
【図２１】図２１は、メモリ試験における作業時間の比較を表す図である。
【図２２】図２２は、混載数を基準とした優先順位テーブルの一例の図である。
【図２３】図２３は、出荷実績及びエラー発生実績を基準とした優先順位テーブルの一例の図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する情報処理装置、情報処理システム、情報処理装置制御プログラム及び情報処理装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム、情報処理装置制御プログラム及び情報処理装置制御方法が限定されるものではない。
【実施例１】
【００１８】
図１は、サーバの構成図である。情報処理装置であるサーバ１は、図１に示すように、システムボード１０、ファン１１、管理ボード１２、フレキシブルＩ／Ｏスイッチ１３、Ｉ／Ｏユニット１４及び電源１５を有する。
【００１９】
ファン１１は、本実施例ではサーバ１内に複数配置される。ただし、ファン１１は、１つであってもよい。また、ファン１１は、システムボード１０、管理ボード１２、フレキシブルＩ／Ｏスイッチ１３及びＩ／Ｏユニット１４を冷却する。
【００２０】
電源１５は、本実施例ではサーバ１内に複数配置される。ただし、電源１５は、１つであってもよい。電源１５は、システムボード１０、ファン１１、管理ボード１２、フレキシブルＩ／Ｏスイッチ１３及びＩ／Ｏユニット１４に電源を供給する。
【００２１】
システムボード１０は、サーバ１内に複数配置される。ただし、システムボード１０は、１つであってもよい。システムボード１０は、ＢＭＣ１０１、ＣＰＵ１０２、メモリコントローラ１０３及びＤＩＭＭ１０４を有する。
【００２２】
ＤＩＭＭ１０４は、主記憶装置である。ＤＩＭＭ１０４は、メモリコントローラ１０３からの制御を受けて、データの格納及び出力を行う。ＤＩＭＭ１０４は、システムボード１０上に設けられたメモリスロットに挿入されることでシステムボード１０に実装される。ここで、図１では、ＤＩＭＭ１０４は１つしか図示していないが、実際には、ＤＩＭＭ１０４は、システムボード１０上に複数搭載されてもよい。
【００２３】
ＢＭＣ１０１は、電圧・温度等のエラーの監視、エラー情報の通報、電源制御等のシステム固有の制御等、システムの状態を監視するシステム制御装置である。また、ＢＭＣ１０１は、ＤＩＭＭ１０４の実際の物理的な搭載情報を取得する。そして、メモリ試験の実行の指示を試験サーバから受けると、ＢＭＣ１０１は、ＤＩＭＭ１０４の試験用の搭載パターンを表すメモリの仮想的な搭載情報を生成しＣＰＵ１０２へ通知する。
【００２４】
ＣＰＵ１０２は、演算処理装置である。ＣＰＵ１０２は、ＤＩＭＭ１０４及びＩ／Ｏユニット１４などを用いて演算処理を行う。また、ＣＰＵ１０２は、ＢＭＣ１０１から入力されたＤＩＭＭ１０４の仮想的な搭載情報を用いてＤＩＭＭ１０４の試験を行う。ＢＭＣ１０１及びＣＰＵ１０２によるメモリ試験の機能については後で詳細に説明する。ＣＰＵ１０２は、ＤＩＭＭ１０４に対するデータの読み出し及び書き込みを行う場合、メモリコントローラ１０３を介して処理を行う。ここで、図１では、ＣＰＵ１０２は１つしか図示していないが、実際には、ＣＰＵ１０２は、システムボード１０上に複数搭載されてもよい。
【００２５】
メモリコントローラ１０３は、ＤＩＭＭ１０４に対してデータの書き込み及び読み出しを行う。メモリコントローラ１０３は、ＣＰＵ１０２からの指示を受けて、受けた指示にしたがいＤＩＭＭ１０４に対するデータの書き込み及び読み出しを行う。ここで、図１では、メモリコントローラ１０３は１つしか図示していないが、実際には、メモリコントローラ１０３は、システムボード１０上に複数搭載されてもよい。
【００２６】
図２は、システムボード上に搭載されるＤＩＭＭの搭載図である。図２は、システムボード１０上のメモリスロット１０５にＤＩＭＭ１０４が搭載された状態を示す。本実施例では、図２に示すように、システムボード１０上にメモリスロット１０５が４８個配置されている場合で説明する。図２では、４８個全てのメモリスロット１０５にＤＩＭＭ１０４が搭載されている状態を表す。そして、図２においてメモリスロット１０５の中に記載されたＤＩＭＭを表す情報における「＃」を含む＃から後の３つの符号が、各メモリスロット１０５のスロット番号に対応する。例えば、「ＤＩＭＭ＃１Ｄ５」は、スロット番号＃１Ｄ５のメモリスロット１０５に搭載されたＤＩＭＭ１０４を表す。
【００２７】
図２に示すように、１つのメモリコントローラ１０３が６つのＤＩＭＭ１０４を管理する。そして、１つのＣＰＵ１０２が、４つのメモリコントローラ１０３に接続され、合計２４個のＤＩＭＭ１０４を使用する。
【００２８】
さらに、ＤＩＭＭ１０４は、図３に示す搭載規則テーブル１５０で示される順序にしたがってシステムボード１０に搭載される。図３は、ＤＩＭＭの搭載規則を表す図である。本実施例では、ＤＩＭＭ１０４の動作モードとして、ノーマルモード、ミラーモード及びスペアモードの３つのモードがある。搭載規則テーブル１５０では、動作モード毎に、メモリを搭載するスロットの順番が記載してある。ＤＩＭＭスロットの行に記載された符号が、図２の各メモリスロット１０５のスロット番号に対応する。搭載規則テーブル１５０では、＃を抜いてメモリスロット１０５の番号を表す。またここでは、搭載規則テーブル１５０において、スロット番号＃０Ａ０〜＃０Ｄ５までのメモリスロット１０５を用いるＣＰＵ１０２をＣＰＵ＃０とし、スロット番号＃１Ａ０〜＃１Ｄ５までのメモリスロット１０５を用いるＣＰＵ１０２をＣＰＵ＃１とする。
【００２９】
例えば、ノーマルモードの場合、ＤＩＭＭ１０４は、スロット番号＃０Ａ０，＃０Ａ３，＃１Ａ０及び＃１Ａ３のメモリスロット１０５に搭載された状態が最小の搭載状態である。この状態からＤＩＭＭ１０４を増設する場合、番号が２，３，４・・・の順に対応する各メモリスロット１０５にＤＩＭＭ１０４が搭載される。これは、動作モードが、ミラーモードの場合もスペアモードの場合も同様である。
【００３０】
フレキシブルＩ／Ｏスイッチ１３は、システムボード１０とＩ／Ｏユニット１４との接続経路を切り替えるクロスバスイッチである。フレキシブルＩ／Ｏスイッチ１３は、あるシステムボード１０に対していずれかのＩ／Ｏユニット１４を接続する。フレキシブルＩ／Ｏスイッチ１３は、サーバ１内に複数搭載されてもよい。
【００３１】
Ｉ／Ｏユニット１４は、本実施例では、サーバ１内に複数配置される。ただし、Ｉ／Ｏユニット１４は、１つであってもよい。Ｉ／Ｏユニット１４は、例えば、ハードディスク、ＣＤ、ＤＶＤ及びＵＳＢメモリなどの入出力装置である。Ｉ／Ｏユニット１４は、フレキシブルＩ／Ｏスイッチ１３を介してシステムボード１０と接続される。Ｉ／Ｏユニット１４は、例えばＣＰＵ１０２からの指示を受けて、データの入出力を実施する。
【００３２】
次に、図４を参照して、本実施例に係るサーバによるメモリ試験の機能の詳細について説明する。図４は、実施例１に係るメモリ試験を行うサーバ及び試験サーバのブロック図である。以下では、ＤＩＭＭの動作モードの試験及び動作周波数の試験をまとめて、「メモリ試験」という。また、メモリ試験以外の、ＤＩＭＭ１０４チェック及び単体試験とメモリ試験とを合わせた試験の全体を「メモリ検証」という。
【００３３】
図４に示すように、メモリ検証を行うサーバ１は、ネットワーク３を介して試験サーバ２に接続されている。試験サーバ２は、試験に用いる情報の入力及び試験結果の収集を行うためのサーバである。この試験サーバ２が、「試験装置」の一例にあたる。
【００３４】
試験サーバ２は、単体試験実行部２１、搭載パターン規則フォーマット入力部２２、動作モード指定部２３及び試験管理部２４を有する。ここで、単体試験実行部２１、搭載パターン規則フォーマット入力部２２、動作モード指定部２３及び試験管理部２４は、いずれもメモリにそれらを実現するプログラムが格納され、ＣＰＵがメモリに格納されたプログラムを実行することによって実現される。
【００３５】
試験サーバ２の試験管理部２４は、メモリ検証を開始させるための試験開始指示をサーバ装置制御部２００を介してシステムボード制御部１１０の統括制御部１１３へ送信する。その後、試験管理部２４は、サーバ装置制御部２００を介して統括制御部１１３から構成チェックの結果を受信する。そして、試験管理部２４は、通知された構成チェックの結果からＤＩＭＭ１０４の構成の良否を判定する。試験管理部２４は、ＤＩＭＭ１０４の構成に問題が無ければその旨を単体試験実行部２１に通知する。
【００３６】
その後、試験管理部２４は、単体試験のログをサーバ装置制御部２００を介して統括制御部１１３から受信する。そして、試験管理部２４は、通知された単体試験のログから、ハード的な故障の有無によりＤＩＭＭ１０４の交換を行うか否かを判定する。ＤＩＭＭ１０４の交換を行う場合、試験管理部２４は、ＤＩＭＭ１０４の交換をオペレータに報知した後、メモリ検証を終了する。
【００３７】
ＤＩＭＭ１０４のハード的な故障が発生していない場合、試験管理部２４は、単体試験の終了を搭載パターン規則フォーマット入力部２２及び動作モード指定部２３へ通知する。その後、試験管理部２４は、サーバ装置制御部２００を介して統括制御部１１３からメモリ試験のログを取得し蓄積する。この試験管理部２４が、「結果取得部」の一例にあたる。
【００３８】
単体試験実行部２１は、試験サーバ２においてオペレータが試験項目を選択することで生成された図５に示すような試験管理テーブル２１０を記憶する。図５は、試験管理テーブルの一例の図である。試験管理テーブル２１０には、試験項目毎に、オペレータが選択した試験番号、試験回数及び試験オプションが登録される。試験番号は、異なる内容の試験ごとに割り当てられた番号である。
【００３９】
単体試験実行部２１は、ＤＩＭＭ１０４の構成に問題が無い旨の通知を試験管理部２４から受ける。そして、単体試験実行部２１は、単体試験の実行の指示をサーバ装置制御部２００を介してシステムボード制御部１１０の統括制御部１１３へ送信する。この時、単体試験実行部２１は、試験管理テーブル２１０にしたがって、試験項目の順番に単体試験を実行するように統括制御部１１３に指示する。
【００４０】
搭載パターン規則フォーマット入力部２２は、試験サーバ２においてオペレータが試験項目を選択することで生成された図６に示すような搭載パターン規則フォーマット２２０を記憶する。図６は、搭載パターン規則フォーマットの一例の図である。搭載パターン規則フォーマット２２０には、メモリスロット１０５に搭載されたＤＩＭＭ１０４の種類毎に、試験パターンが登録される。ここでのＤＩＭＭ１０４の種類とは、メモリ容量の違いによる種類分けである。搭載パターン規則フォーマット２２０の左端に記載した試験パターン番号（Ｐ）の値が試験パターンの識別番号にあたる。さらに、試験パターンには、複数種類の試験を含む場合がある。試験パターンに含まれる試験は、試験番号（ｘ）がふられる。例えば、図６の試験パターン番号（Ｐ）が「４」の試験パターンには、試験番号（ｘ）が１〜ｍの試験が含まれる。そして、試験番号（ｘ）毎に、搭載パターンが登録される。さらに、搭載パターン規則フォーマット２２０では、搭載パターンが無くなった後の試験パターン番号（Ｐ）の欄には、終了値を設定する。
【００４１】
この搭載パターン規則フォーマット２２０における試験パターン番号（Ｐ）及び試験番号（ｘ）に応じた搭載パターンは、オペレータが自由に設定することが可能である。搭載パターンには、エラーが発生しやすいパターンを設定されることが好ましい。
【００４２】
搭載パターン規則フォーマット入力部２２は、単体試験の終了の通知を試験管理部２４から受ける。そして、搭載パターン規則フォーマット入力部２２は、搭載パターン規則フォーマット２２０をサーバ装置制御部２００を介してシステムボード制御部１１０へ送信する。この搭載パターン規則フォーマット入力部２２が、「情報入力部」の一例にあたる。
【００４３】
動作モード指定部２３は、単体試験の終了の通知を試験管理部２４から受ける。そして、動作モード指定部２３は、予めオペレータから指定されたメモリ試験で用いる動作モードをサーバ装置制御部２００を介してシステムボード制御部１１０へ送信する。
【００４４】
次に、サーバ１について説明する。サーバ１は、図４に示すように、サーバ装置制御部２００を有する。さらに、サーバ１に搭載されたシステムボード１０は、システムボード制御部１１０、ＢＩＯＳ実行部１２０及びＤＩＭＭ１０４を有する。
【００４５】
サーバ装置制御部２００は、図１における管理ボード１２によって実現される。サーバ装置制御部２００は、システムボード１０と試験サーバ２との間の通信を中継する。以下の説明では、説明の都合上、システムボード１０と試験サーバ２とが直接通信を行うように説明するが、実際には、サーバ装置制御部２００が通信を仲介する。
【００４６】
システムボード制御部１１０は、試験用搭載情報テーブル作成部１１１、ＳＰＤ（Serial  Presence  Detect）読出部１１２及び統括制御部１１３を有する。
【００４７】
統括制御部１１３は、試験開始の指示を試験管理部２４から受信する。そして、統括制御部１１３は、メモリ検証を開始する。
【００４８】
統括制御部１１３は、ＤＩＭＭ１０４の構成をチェックする。具体的には、システムボード１０のメモリスロット１０５にＤＩＭＭ１０４が搭載されているか、不良なＤＩＭＭ１０４が無いか、搭載されているＤＩＭＭ１０４がサポートされているメモリかなどをチェックする。さらに、統括制御部１１３は、メモリの容量をチェックする。そして、統括制御部１１３は、チェック結果を試験サーバ２の試験管理部２４に通知する。
【００４９】
その後、統括制御部１１３は、ＤＩＭＭ１０４の単体試験を行う。具体的には、統括制御部１１３は、サーバ１のオンオフなどを行いＤＩＭＭ１０４のハード的な確認を行う。この場合、統括制御部１１３は、ＣＰＵ１０２とともに単体試験を行ってもよい。そして、統括制御部１１３は、単体試験のログを収集する。その後、統括制御部１１３は、収集した単体試験のログを試験サーバ２の試験管理部２４に通知する。
【００５０】
その後、ＢＩＯＳ実行部１２０によるある項目の１回のメモリ試験が終了すると、統括制御部１１３は、メモリ試験のログをＢＩＯＳ実行部１２０から取得する。次に、統括制御部１１３は、試験サーバ２の試験管理部２４から試験終了の指示を受けたか否かを判定する。試験終了の指示を受けた場合、統括制御部１１３は、メモリ試験を終了する。
【００５１】
これに対して、試験終了の指示を受けていない場合、統括制御部１１３は、試験サーバ２から繰り返し指示を受けたか否かを判定する。ここで、繰り返し指示は、この段階で統括制御部１１３が、繰り返しを実行するか否かの問い合わせを試験管理部２４に行い、試験管理部２４からの応答により判定してもよい。また、統括制御部１１３は、例えば試験情報を取得後ログ採取までの間に試験管理部２４から繰り返し指示の入力を受けたか否かによりこの判定を行ってもよい。
【００５２】
繰り返し指示を受けていれば、統括制御部１１３は、試験用搭載情報テーブル作成部１１１に前回と同様の試験を行わせる。これに対して、繰り返し指示を受けていなければ、統括制御部１１３は、試験の次段階への進行を試験用搭載情報テーブル作成部１１１に通知する。
【００５３】
その後、統括制御部１１３は、メモリ試験の完了の通知を試験用搭載情報テーブル作成部１１１から受ける。そして、統括制御部１１３は、採取した全てのログを試験サーバ２の試験管理部２４へ送信する。
【００５４】
ＳＰＤ読出部１１２は、ＳＰＤの読み出し指示を試験用搭載情報テーブル作成部１１１から受信する。そして、ＳＰＤ読出部１１２は、システムボード１０に搭載された全てのＤＩＭＭ１０４のＳＰＤを読み出す。ＳＰＤの情報には、ＤＩＭＭ１０４の容量、ベンダＩＤ（Identifier）、シリアルナンバー及び種類などが含まれる。次に、ＳＰＤ読出部１１２は、読み出した全てのＤＩＭＭ１０４のＳＰＤを試験用搭載情報テーブル作成部１１１に送信する。このＳＰＤ読出部１１２が、「状態取得部」の一例にあたる。
【００５５】
試験用搭載情報テーブル作成部１１１は、搭載パターン規則フォーマット２２０を試験サーバ２の搭載パターン規則フォーマット入力部２２から受信する。次に、試験用搭載情報テーブル作成部１１１は、ＳＰＤの読み出し指示をＳＰＤ読出部１１２へ送信する。その後、試験用搭載情報テーブル作成部１１１は、システムボード１０に搭載された全てのＤＩＭＭ１０４のＳＰＤをＳＰＤ読出部１１２から取得する。そして、試験用搭載情報テーブル作成部１１１は、システムボード１０に搭載された全てのＤＩＭＭ１０４のＳＰＤ情報を含んだ図７に示す実搭載情報テーブル３０１を作成する。この実搭載情報テーブル３０１が、「実装情報」の一例にあたる。
【００５６】
図７は、実搭載情報テーブルの一例の図である。図７の実搭載情報テーブル３０１には、上部に記載された符号が、図２の各メモリスロット１０５のスロット番号に対応する。図７の実搭載情報テーブル３０１では、＃を抜いてメモリスロット１０５の番号を表す。
【００５７】
図７では、全てのメモリスロット１０５にＤＩＭＭ１０４が搭載された状態を表す。また、図７では一例として搭載位置を記載しているが、実際には、ＤＩＭＭ１０４毎にＤＩＭＭ１０４の容量、ベンダＩＤ（Identifier）、シリアルナンバー及び種類などが登録される。
【００５８】
次に、試験用搭載情報テーブル作成部１１１は、試験に用いるメモリの動作モードの指定を試験サーバ２の動作モード指定部２３から受信する。例えば、試験用搭載情報テーブル作成部１１１は、ノーマルモード、ミラーモード及びスペアモードの３種類の動作モードの指定を受ける。そして、試験用搭載情報テーブル作成部１１１は、受信した動作モードの中から１つの動作モードを選択する。
【００５９】
そして、試験用搭載情報テーブル作成部１１１は、搭載パターン規則フォーマット２２０にしたがって、選択した動作モードにおいて指定された搭載パターンを順次取得する。ここで、試験用搭載情報テーブル作成部１１１は、実搭載情報テーブル３０１においてメモリスロット１０５に搭載されているＤＩＭＭ１０４を用いた搭載パターンを取得する。例えば、基本構成が同じＤＩＭＭ１０４であれば、試験用搭載情報テーブル作成部１１１は、ＤＩＭＭ１０４のランク数などの情報を変更することで、大きい容量のＤＩＭＭを実際よりも小さい容量のＤＩＭＭとして動作させる搭載パターンを用いることができる。すなわち、試験用搭載情報テーブル作成部１１１は、ＤＩＭＭ１０４の搭載枚数及び容量以下の搭載枚数及び容量を条件とする搭載パターンを用いる。そのため、より多くの搭載パターンで試験を行うためには、できるだけ容量の大きいＤＩＭＭ１０４をできるだけ多く搭載しておくことが好ましい。
【００６０】
次に、試験用搭載情報テーブル作成部１１１は、取得した搭載パターンにしたがって、仮想的なＤＩＭＭ１０４の搭載状態を表す試験用搭載情報テーブルを作成する。この試験用搭載情報テーブルが、「搭載情報」の一例にあたる。そして、試験用搭載情報テーブル作成部１１１は、作成した試験用搭載情報テーブルをＢＩＯＳ実行部１２０へ送信し、試験用搭載情報テーブルで表されるＤＩＭＭ１０４の搭載状態に対してメモリ試験を実行させる。試験用搭載情報テーブル作成部１１１は、選択した動作モードに対して搭載パターン規則フォーマット２２０で指定された全種類の搭載パターンでメモリ試験をＢＩＯＳ実行部１２０に実行させる。
【００６１】
さらに、試験用搭載情報テーブル作成部１１１は、指定された動作モードの全てに対して、搭載パターン規則フォーマット２２０で指定された全種類の搭載パターンでのメモリ試験をＢＩＯＳ実行部１２０に実行させる。その後、全ての試験が終了すると、試験用搭載情報テーブル作成部１１１は、メモリ試験の完了を統括制御部１１３へ通知する。この試験用搭載情報テーブル作成部１１１による全動作モード毎の全搭載パターンの選択方法については後で詳細に説明する。この試験用搭載情報テーブル作成部１１１が、「試験制御部」の一例にあたる。
【００６２】
ＢＩＯＳ実行部１２０は、ＣＰＵ１０２によって実現される。ＢＩＯＳ実行部１２０は、メモリ初期化部１２１を有する。メモリ初期化部１２１が行うメモリ試験の処理は、ＣＰＵ１０２によって実行されるＢＩＯＳによって実行される処理の一部にあたる。
【００６３】
ＢＩＯＳ実行部１２０は、試験情報とともに試験用搭載情報テーブルを試験用搭載情報テーブル作成部１１１から受信する。そして、ＢＩＯＳ実行部１２０のメモリ初期化部１２１は、サーバ１を起動しＤＩＭＭ１０４の初期化、メモリ空間の割り当て及びメモリアクセスなどを行ってメモリ試験を実施する。このメモリ初期化部１２１が、「試験部」の一例にあたる。また、ＢＩＯＳ実行部１２０を実現するＣＰＵ１０２が、「試験装置」の一例にあたる。
【００６４】
ここで、ＤＩＭＭ１０４の動作周波数は、ＤＩＭＭ１０４の搭載パターン、ＤＩＭＭ１０４の種類及び動作モードによって異なる。ただし、ＤＩＭＭ１０４の動作周波数は、システムボード制御部１１０によってＢＩＯＳ実行部１２０に明示的に設定されるものではない。試験用搭載情報テーブル作成部１１１が、ＤＩＭＭ１０４の搭載パターンとして搭載位置を含む搭載枚数及びＤＩＭＭ１０４の容量を設定することで、ＢＩＯＳ実行部１２０が自動的に動作周波数を決定する。
【００６５】
例えば、図８は、ＤＩＭＭ容量及び搭載枚数と動作周波数との関係を表す図である。図８の１ＤＰＣ（DIMM  Per  Channel）構成とは、１つのメモリコントローラ１０３が制御する３つのメモリスロット１０５の中に１枚のＤＩＭＭ１０４が搭載されている状態を表す。図８に示すように、ＤＩＭＭ１０４の搭載枚数とＤＩＭＭ１０４の容量に応じてＤＩＭＭ１０４の動作周波数が決定される。ＢＩＯＳ実行部１２０は、この動作周波数に応じてＤＩＭＭ１０４のメモリ試験を行う。
【００６６】
このように、ＤＩＭＭ１０４の搭載パターンを決定することで、ＢＩＯＳ実行部１２０は、自動的に動作周波数を変更したメモリ試験を実施することができる。
【００６７】
図９は、ＢＭＣ及びＣＰＵとＤＩＭＭとの接続状態を模式的に表す図である。実際には、ＢＭＣ１０１及びＣＰＵ１０２は、メモリコントローラ１０３を介してＤＩＭＭ１０４に接続するが、ここでは説明の都合上、メモリコントローラ１０３を省略して表す。ＢＭＣ１０１及びＣＰＵ１０２はスイッチ１０６を介してＤＩＭＭ１０４と接続される経路を有する。スイッチ１０６が切り替わることで、ＤＩＭＭ１０４は、ＢＭＣ１０１又はＣＰＵ１０２の何れかに接続される。
【００６８】
本実施例に係るサーバ１では、メモリ試験の場合でなければ、ＢＭＣ１０１及びＣＰＵ１０２は以下の動作を行う。ＢＭＣ１０１は、サーバ１の電源オン前に、ＤＩＭＭ１０４のＳＰＤにアクセスし、搭載されているＤＩＭＭ１０４が搭載条件に違反していないかをチェックする。違反している場合は、ＢＭＣ１０１は、エラーを表示し電源オンを抑止する。一方、ＣＰＵ１０２は、サーバ１の電源オン時に、ＤＩＭＭ１０４のＳＰＤを読んで搭載されているＤＩＭＭ１０４の構成を認識して初期化を実行する。
【００６９】
このように、電源オン時にスイッチ１０６がＣＰＵ１０２側に切り替わり、ＣＰＵ１０２がＤＩＭＭ１０４に接続されると、ＣＰＵ１０２はＤＩＭＭ１０４の実際の物理的な搭載状態を読み込んでしまう。これでは、仮想的搭載状態を形成しメモリ試験を行うことが困難となる。
【００７０】
そこで、図１０に示す方法で本実施例に係るサーバ１はメモリ試験を実行する。図１０は、実施例１に係るサーバによるメモリ試験の流れを説明するための図である。本実施例に係るサーバ１では、メモリ試験時に、ＢＭＣ１０１が、ＤＩＭＭ１０４から読み込んだＳＰＤから実際の物理的なＤＩＭＭ１０４の搭載状態を表す実搭載情報テーブル３０１を生成する。さらに、サーバ１の電源オン時にＣＰＵ１０２側にスイッチ１０６を切り替えることなく、ＢＭＣ１０１に動作モードと搭載規則フォーマットを入力し、ＢＭＣ１０１に、仮想搭載情報テーブル３０２及び容量情報テーブル３０３を生成させる。その後、ＢＭＣ１０１は、仮想搭載情報テーブル３０２及び容量情報テーブル３０３から試験用搭載情報テーブルを作成し、ＣＰＵ１０２に試験用搭載情報テーブルを送信することで、ＣＰＵ１０２に仮想の搭載状態にＤＩＭＭ１０４があると把握させる。これにより、ＣＰＵ１０２は、実際の物理的な搭載状態とは異なる仮想の搭載状態のＤＩＭＭ１０４についてメモリ試験を行う。
【００７１】
次に、図１１を参照して、本実施例に係るサーバ１によるメモリ検証の全体的な流れについて説明する。図１１は、実施例１に係るサーバによるメモリ検証のフローチャートである。
【００７２】
試験サーバ２の試験管理部２４は、試験開始指示をサーバ装置制御部２００を介してシステムボード制御部１１０の統括制御部１１３へ送信する。統括制御部１１３は、試験開始の指示を受信し、メモリ検証を開始する（ステップＳ１）。
【００７３】
統括制御部１１３は、ＤＩＭＭ１０４の構成をチェックする（ステップＳ２）。そして、統括制御部１１３は、チェック結果をサーバ装置制御部２００を介して試験サーバ２の試験管理部２４に通知する。試験管理部２４は、通知された構成チェックの結果からＤＩＭＭ１０４の構成の良否を判定し、構成に問題が無ければその旨を単体試験実行部２１に通知する。
【００７４】
単体試験実行部２１は、試験管理部２４からＤＩＭＭ１０４の構成に問題が無い旨の通知を受けると、単体試験の実行の指示をサーバ装置制御部２００を介してシステムボード制御部１１０の統括制御部１１３へ送信する。統括制御部１１３は、ＤＩＭＭ１０４の単体試験を行う（ステップＳ３）。具体的には、統括制御部１１３は、サーバ１のオンオフなどを行いＤＩＭＭ１０４のハード的な確認を行う。この場合、統括制御部１１３は、ＣＰＵ１０２とともに単体試験を行ってもよい。
【００７５】
そして、統括制御部１１３は、単体試験のログを収集する（ステップＳ４）。その後、統括制御部１１３は、収集した単体試験のログをサーバ装置制御部２００を介して試験サーバ２の試験管理部２４に通知する。
【００７６】
試験管理部２４は、単体試験のログをサーバ装置制御部２００を介して統括制御部１１３から受信する。そして、試験管理部２４は、通知された単体試験のログから、ハード的な故障の有無によりＤＩＭＭ１０４の交換を行うか否かを判定する（ステップＳ５）。
【００７７】
ＤＩＭＭ１０４の交換を行う場合（ステップＳ５：肯定）、試験管理部２４は、メモリ検証を終了する。これにより、サーバ１もメモリ検証を終了する。
【００７８】
これに対して、ＤＩＭＭ１０４の交換を行わない場合（ステップＳ５：否定）、試験管理部２４は、単体試験の終了を搭載パターン規則フォーマット入力部２２及び動作モード指定部２３へ通知する。搭載パターン規則フォーマット入力部２２は、単体試験の終了の通知を試験管理部２４から受ける。そして、搭載パターン規則フォーマット入力部２２は、搭載パターン規則フォーマット２２０をサーバ装置制御部２００を介してシステムボード制御部１１０へ送信する。また、動作モード指定部２３は、単体試験の終了の通知を試験管理部２４から受ける。そして、動作モード指定部２３は、メモリ試験で用いる動作モードをサーバ装置制御部２００を介してシステムボード制御部１１０へ送信する。システムボード制御部１１０は、搭載パターン規則フォーマット２２０及び動作モードを受信する。そして、システムボード制御部１１０は、搭載パターン規則フォーマット２２０で指定された全ての搭載パターンでのメモリ試験を実施する（ステップＳ６）。
【００７９】
次に、図１２を参照して、本実施例に係るサーバ１によるメモリ試験の流れについて説明する。図１２は、実施例１に係るサーバによるメモリ試験のフローチャートである。図１２のフローチャートは、図１１におけるステップＳ６で実行される処理の一例にあたる。図１２のフローチャートで示す処理は、試験用搭載情報テーブル作成部１１１による全動作モード毎の全搭載パターンの選択方法の一例にあたる。
【００８０】
試験用搭載情報テーブル作成部１１１は、搭載パターン規則フォーマット２２０を試験サーバ２の搭載パターン規則フォーマット入力部２２から受信する（ステップＳ１０１）。
【００８１】
ＳＰＤ読出部１１２は、システムボード１０に搭載された全てのＤＩＭＭ１０４のＳＰＤを読み出す。試験用搭載情報テーブル作成部１１１は、システムボード１０に搭載された全てのＤＩＭＭ１０４のＳＰＤをＳＰＤ読出部１１２から取得する。そして、試験用搭載情報テーブル作成部１１１は、システムボード１０に搭載された全てのＤＩＭＭ１０４のＳＰＤ情報を含んだ実搭載情報テーブル３０１を作成する（ステップＳ１０２）。
【００８２】
次に、試験用搭載情報テーブル作成部１１１は、試験に用いるメモリの動作モードの指定をサーバ装置１００を介して試験サーバ２の動作モード指定部２３から受信する。そして、試験用搭載情報テーブル作成部１１１は、受信した動作モードの中から１つの動作モードを選択する（ステップＳ１０３）。
【００８３】
次に、試験用搭載情報テーブル作成部１１１は、実搭載情報テーブル３０１に記載されたＤＩＭＭ１０４の搭載数及び動作モードから、選択した動作モードにおける最大搭載番号（Ａ）を算出する（ステップＳ１０４）。ここで、最大搭載番号（Ａ）とは、図３に示したＤＩＭＭ１０４の搭載順を表す番号の最も大きい番号にあたる。すなわち、最大搭載番号（Ａ）は、選択した動作モードにおいて、ＤＩＭＭ１０４がどの順番の番号まで搭載されているかを表す値である。試験用搭載情報テーブル作成部１１１は、後述する仮想搭載情報テーブル３０２を作成する際に、最大搭載番号（Ａ）以下の順番のメモリスロット１０５であれば、ＤＩＭＭ１０４が搭載されているとして扱うことができる。
【００８４】
例えば、動作モードがノーマルモードの場合、試験用搭載情報テーブル作成部１１１は、ＤＩＭＭ１０４の搭載数を２で除算した値を最大搭載番号（Ａ）とする。また、動作モードがミラーモードの場合、試験用搭載情報テーブル作成部１１１は、ＤＩＭＭ１０４の搭載数を４で除算した値から１を減算した値を最大搭載番号（Ａ）とする。また、動作モードがスペアモードの場合、試験用搭載情報テーブル作成部１１１は、ＤＩＭＭ１０４の搭載数を６で除算した値を最大搭載番号（Ａ）とする。
【００８５】
次に、試験用搭載情報テーブル作成部１１１は、試験用搭載番号（Ｂ）を初期値に設定する（ステップＳ１０５）。具体的には、試験用搭載情報テーブル作成部１１１は、試験用搭載番号（Ｂ）の初期値を最大搭載番号（Ａ）から１を減算した値とする。試験用搭載番号（Ｂ）とは、仮想搭載情報テーブル３０２を作成する際に、仮想的にどの順番のメモリスロット１０５までメモリが搭載されているとするかを表す番号である。試験用搭載情報テーブル作成部１１１は、試験用搭載番号（Ｂ）以下の順番の番号を有するメモリスロット１０５にＤＩＭＭ１０４が搭載されているものとして取り扱う。さらに、試験用搭載情報テーブル作成部１１１は、試験パターン番号（Ｐ）を初期値である「１」に設定する。
【００８６】
次に、試験用搭載情報テーブル作成部１１１は、試験パターン番号（Ｐ）を初期値である「１」に設定する（ステップＳ１０６）。
【００８７】
次に、試験用搭載情報テーブル作成部１１１は、仮想搭載情報テーブル３０２を作成する（ステップＳ１０７）。具体的には、試験用搭載情報テーブル作成部１１１は、試験用搭載番号（Ｂ）より順番が大きいメモリスロット１０５にＤＩＭＭ１０４が搭載されていないことを仮想的に表す非搭載フラグを設定して、図１３に示すような仮想搭載情報テーブル３０２を作成する。図１３は、仮想搭載情報テーブルの一例の図である。ここでは、試験用搭載番号（Ｂ）が３の場合であり、試験用搭載情報テーブル作成部１１１は、順番が４以上のメモリスロット１０５に非搭載フラグである「−」を設定する。
【００８８】
次に、試験用搭載情報テーブル作成部１１１は、搭載パターン規則フォーマット２２０における試験パターン番号（Ｐ）における最大の番号に試験番号（ｘ）を設定する（ステップＳ１０８）。例えば、図６の搭載パターン規則フォーマット２２０における１６ＧＢのＤＩＭＭ１０４が搭載されている場合の試験パターン番号（Ｐ）が４の場合であれば、試験用搭載情報テーブル作成部１１１は、試験番号（ｘ）を「ｍ」と設定する。
【００８９】
次に、試験用搭載情報テーブル作成部１１１は、実搭載情報テーブル３０１に登録された搭載されているＤＩＭＭ１０４の種類に応じた試験パターン番号（Ｐ）の試験番号（ｘ）に該当する搭載パターンを、搭載パターン規則フォーマット２２０から取得する。そして、試験用搭載情報テーブル作成部１１１は、取得した搭載パターンの条件にその時点の条件が適合しているか否かを判定する（ステップＳ１０９）。例えば、その時点の試験用搭載番号（Ｂ）が３である場合、試験用搭載番号（Ｂ）が２であるという搭載パターンの条件であれば、試験用搭載情報テーブル作成部１１１は、搭載パターンの条件に不適合と判定する。搭載パターンの条件に不適合の場合（ステップＳ１０９：否定）、試験用搭載情報テーブル作成部１１１は、搭載パターン不適合を統括制御部１１３へ通知する。そして、処理はステップＳ１１６に進む。
【００９０】
一方、搭載パターンの条件に適合する場合（ステップＳ１０９：肯定）、試験用搭載情報テーブル作成部１１１は、取得した搭載パターンにしたがい容量情報テーブル３０３を作成する（ステップＳ１１０）。具体的には、試験用搭載情報テーブル作成部１１１は、取得した搭載パターンにしたがい各メモリスロット１０５毎の搭載するＤＩＭＭ１０４の容量を設定して図１４に示すような容量情報テーブル３０３を作成する。図１４は、容量情報テーブルの一例の図である。試験用搭載情報テーブル作成部１１１は、例えば、図１３に示す仮想搭載情報テーブル３０２を用いる場合であって、全てのＤＩＭＭ１０４の容量を１６ＧＢとする搭載パターンを用いる場合、図１４に示す容量情報テーブル３０３を生成する。
【００９１】
ここで、例えば、ＤＩＭＭ１０４を８枚搭載し全て１６ＧＢとする搭載パターンから、ＤＩＭＭ１０４を２０枚搭載し全て８ＧＢとする搭載パターンへと変更する場合を考える。この場合、仮想搭載情報テーブル３０２は、図１３の状態から図１５の状態へ変化する。また、容量情報テーブル３０３は、図１４の状態から図１６の状態へ変化する。このように、試験用搭載情報テーブル作成部１１１は、ＤＩＭＭ１０４の物理的な搭載状態を変更することなく、搭載パターンを変化させることができる。図１５は、他の搭載パターンにおける仮想搭載情報テーブルの一例の図である。また、図１６は、他の搭載パターンにおける容量情報テーブルの一例の図である。
【００９２】
次に、試験用搭載情報テーブル作成部１１１は、作成した仮想搭載情報テーブル３０２及び容量情報テーブル３０３を用いて試験用搭載情報テーブルを生成する（ステップＳ１１１）。ここで、試験用搭載情報テーブルは、メモリスロット１０５毎に仮想的な搭載状態及び容量の設定を定義し、ＢＩＯＳに移入することのできるコードで表したテーブルである。具体的には、試験用搭載情報テーブルには、ＤＩＭＭ１０４の実装状態又は未実装を表す値、パッケージランク情報及びデバイス幅情報などがメモリスロット１０５毎に登録される。
【００９３】
次に、試験用搭載情報テーブル作成部１１１は、実行する試験を表す試験情報を試験サーバ２の試験管理部２４から受信する（ステップＳ１１２）。
【００９４】
次に、試験用搭載情報テーブル作成部１１１は、試験情報とともに試験用搭載情報テーブルをＢＩＯＳ実行部１２０へ送信する（ステップＳ１１３）。
【００９５】
ＢＩＯＳ実行部１２０は、試験情報とともに試験用搭載情報テーブルを試験用搭載情報テーブル作成部１１１から受信する。そして、ＢＩＯＳ実行部１２０のメモリ初期化部１２１は、メモリ試験を実行する（ステップＳ１１４）。ＢＩＯＳ実行部１２０は、非搭載フラグが設定されたメモリスロット１０５に搭載されているＤＩＭＭ１０４に対しては、初期化を行わず、また、メモリ領域としても使用しない。
【００９６】
ＢＩＯＳ実行部１２０によるメモリ試験が終了すると、統括制御部１１３は、メモリ試験のログを採取する（ステップＳ１１５）。
【００９７】
次に、統括制御部１１３は、試験サーバ２の試験管理部２４から試験終了の指示を受けたか否かを判定する（ステップＳ１１６）。試験終了の指示を受けた場合（ステップＳ１１６：肯定）、統括制御部１１３は、ステップＳ１２５へ進む。
【００９８】
これに対して、試験終了の指示を受けていない場合（ステップＳ１１６：否定）、統括制御部１１３は、試験サーバ２から繰り返し指示を受けたか否かを判定する（ステップＳ１１７）。繰り返し指示を受けた場合（ステップＳ１１７：肯定）、統括制御部１１３は、ステップＳ１１３へ戻る。
【００９９】
これに対して、繰り返し指示を受けていない場合（ステップＳ１１７：否定）、統括制御部１１３は、試験の次段階への進行を試験用搭載情報テーブル作成部１１１に通知する。試験用搭載情報テーブル作成部１１１は、試験の次段階への進行の通知を受けて、試験番号（ｘ）が０か否かを判定する（ステップＳ１１８）。
【０１００】
試験番号（ｘ）が０以外の場合（ステップＳ１１８：否定）、試験用搭載情報テーブル作成部１１１は、試験番号（ｘ）を１つデクリメントする（ステップＳ１１９）。すなわち、試験用搭載情報テーブル作成部１１１は、ｘ＝ｘ−１とする。その後、試験用搭載情報テーブル作成部１１１は、ステップＳ１０９へ戻る。
【０１０１】
これに対して、試験番号（ｘ）が０の場合（ステップＳ１１８：肯定）、試験用搭載情報テーブル作成部１１１は、搭載パターン規則フォーマット２２０において試験パターン番号（Ｐ）が終了値であるか否かを判定する（ステップＳ１２０）。これにより、試験用搭載情報テーブル作成部１１１は、選択したモードにおける試験パターン番号（Ｐ）の搭載パターンを全て実行したか否かを判定する。
【０１０２】
試験パターン番号（Ｐ）が終了値でない場合（ステップＳ１２０：否定）、試験用搭載情報テーブル作成部１１１は、試験パターン番号（Ｐ）を１つインクリメントする（ステップＳ１２１）。すなわち、試験用搭載情報テーブル作成部１１１は、Ｐ＝Ｐ＋１とする。その後、試験用搭載情報テーブル作成部１１１は、ステップＳ１０８へ戻る。
【０１０３】
これに対して、試験パターン番号（Ｐ）が終了値の場合（ステップＳ１２０：肯定）、試験用搭載情報テーブル作成部１１１は、試験用搭載番号（Ｂ）が１か否かを判定する（ステップＳ１２２）。
【０１０４】
試験用搭載番号（Ｂ）が１でない場合（ステップ１２２：否定）、試験用搭載情報テーブル作成部１１１は、試験用搭載番号（Ｂ）を１つデクリメントする（ステップＳ１２３）。すなわち、試験用搭載情報テーブル作成部１１１は、Ｂ＝Ｂ−１とする。その後、試験用搭載情報テーブル作成部１１１は、ステップＳ１０６へ戻る。
【０１０５】
これに対して、試験用搭載番号（Ｂ）が１の場合（ステップ１２２：肯定）、試験用搭載情報テーブル作成部１１１は、全動作モードの試験が完了したか否かを判定する（ステップＳ１２４）。試験が終わっていない動作モードがある場合（ステップＳ１２４:否定）、試験用搭載情報テーブル作成部１１１は、ステップＳ１０３へ戻る。
【０１０６】
これに対して、全動作モードの試験が完了した場合（ステップＳ１２４:肯定）、試験用搭載情報テーブル作成部１１１は、メモリ試験の完了を統括制御部１１３へ通知する。統括制御部１１３は、メモリ試験の完了の通知を試験用搭載情報テーブル作成部１１１から受けると、採取した全てのログを試験サーバ２の試験管理部２４へ送信する（ステップＳ１２５）。
【０１０７】
次に、図１７を参照して、ＢＩＯＳ実行部１２０によるメモリ試験の詳細について説明する。図１７は、ＢＩＯＳ実行部によるメモリ試験の詳細を表すフローチャートである。図１７のフローチャートで表される一連の処理は、図１２におけるステップＳ１１４で実行される処理の一例にあたる。
【０１０８】
ＢＩＯＳ実行部１２０は、図１８に示す試験管理テーブル４０１、図１９に示す試験テーブル４０２及び図２０に示すイベントＩＤテーブル４０３を予め有する。
【０１０９】
図１８は、試験管理テーブルの一例を表す図である。試験管理テーブル４０１は、試験の実施状態及び結果などを登録するテーブルである。ＢＩＯＳ実行部１２０は、試験管理テーブル４０１を用いて試験の実行状態を管理する。
【０１１０】
図１９は、試験テーブルの一例を表す図である。試験テーブル４０２は、実行する試験の内容が登録されたテーブルである。ＢＩＯＳ実行部１２０は、この試験テーブル４０２に記載された試験内容の試験を行う。
【０１１１】
図２０は、イベントＩＤテーブルの一例を表す図である。イベントＩＤテーブル４０３は、メモリ試験において発生したイベントの内容などを表すテーブルである。ＢＩＯＳ実行部１２０は、イベントが発生した場合にイベントＩＤテーブル４０３を用いて処理を進める。
【０１１２】
ＢＩＯＳ実行部１２０は、試験項目を１に設定する（ステップＳ２０１）。また、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１の現在の試験項目の試験回数カウンタに試験回数を設定する。さらに、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１の現在の試験項目の再テストの値を「０」に設定する。
【０１１３】
次に、ＢＩＯＳ実行部１２０のメモリ初期化部１２１は、サーバ１を起動しＤＩＭＭ１０４の初期化、メモリ空間の割り当て及びメモリアクセスなどを行ってメモリ試験を実施する（ステップＳ２０２）。
【０１１４】
次に、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１の現在の試験項目の試験回数カウンタを確認し、試験回数カウンタが０か否かを判定する（ステップＳ２０３）。試験回数カウンタが０でない場合（ステップＳ２０３：否定）、試験回数カウンタを１つデクリメントする（ステップＳ２０４）。その後、ＢＩＯＳ実行部１２０は、ステップＳ２０２に戻る。
【０１１５】
これに対して、試験回数カウンタが０の場合（ステップＳ２０３：肯定）、ＢＩＯＳ実行部１２０は、実行したメモリ試験のログを採取し、イベントＩＤを試験管理テーブル４０１の結果の欄に登録する（ステップＳ２０５）。ここで、試験管理テーブル４０１の再テストの値が「０」であれば、ＢＩＯＳ実行部１２０は、第１結果にイベントＩＤを登録する。また、試験管理テーブル４０１の再テストの値が「１」であれば、ＢＩＯＳ実行部１２０は、第２結果にイベントＩＤを登録する。ここで、イベントＩＤの記録優先順位はイベントＩＤテーブル４０３の重要度がＥｒｒｏｒ、Ｗａｒｎｉｎｇ、Ｉｎｆｏ（Information）の順となる。その中でも、重要度がＥｒｒｏｒ又はＷａｒｎｉｎｇの場合、タイムスタンプの最も早いイベントＩＤが登録される。また、Ｉｎｆｏの場合、タイムスタンプの最も遅いイベントＩＤが登録される。
【０１１６】
次に、ＢＩＯＳ実行部１２０は、登録したイベントＩＤが試験管理テーブル４０１の現在の試験項目の期待値か否かを判定する（ステップＳ２０６）。登録したイベントＩＤが期待値に一致した場合（ステップＳ２０６：肯定）、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１のステータスクリアを行いステップＳ２１３へ進む。
【０１１７】
これに対して、登録したイベントＩＤが期待値に一致しない場合（ステップＳ２０６：否定）、ＢＩＯＳ実行部１２０は、イベントＩＤテーブル４０３の繰り返しの値から再試行を実施するか否かを判定する（ステップＳ２０７）。具体的には、ＢＩＯＳ実行部１２０は、イベントＩＤテーブル４０３における繰り返しの値が「１」であれば再試行を実施すると判定する。再試行を実施しない場合（ステップＳ２０７：否定）、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１のステータスクリアを行いステップＳ２１３へ進む。
【０１１８】
これに対して、再試行を実施する場合（ステップＳ２０７：肯定）、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１の現在の試験項目の再テストの値を確認し、再テストが実行済みか否かを判定する（ステップＳ２０８）。具体的には、再テストの値が「０」の場合、ＢＩＯＳ実行部１２０は、再テストが行われていないと判定する。
【０１１９】
再テストが行われていない場合（ステップＳ２０８：否定）、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１の現在の試験項目の再テストの値に「１」を設定する（ステップＳ２０９）。そして、ＢＩＯＳ実行部１２０は、ステップＳ２０２へ戻る。
【０１２０】
これに対して、再テストが実行済みの場合（ステップＳ２０８：肯定）、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１の現在の試験項目の第１結果と第２結果とが一致しているか否かを判定する（ステップＳ２１０）。第１結果と第２結果とが一致しない場合（ステップＳ２１０：否定）、間欠的なファームウェアエラーや単なる警告である可能性が高いため、ＢＩＯＳ実行部１２０は、ファームウェアバグと判定する。そこで、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１のステータスクリアを行いステップＳ２１３へ進む。
【０１２１】
これに対して、第１結果と第２結果とが一致する場合（ステップＳ２１０：肯定）、ＢＩＯＳ実行部１２０は、イベントＩＤテーブル４０３を確認し、登録したイベントＩＤに対応するハードウェア故障フラグが「１」であるか否かを判定する（ステップＳ２１１）。ここで、イベントＩＤテーブル４０３におけるハードウェア故障の欄には、ハードウェアに起因するイベントＩＤであれば、ハードウェア故障フラグとして「１」が設定される。それ以外の場合、イベントＩＤテーブル４０３におけるハードウェア故障の欄には、「０」が設定される。
【０１２２】
ハードウェア故障フラグが「１」の場合（ステップＳ２１１：肯定）、ＢＩＯＳ実行部１２０は、ハードウェア故障と判定し（ステップＳ２１２）、メモリテストを終了する。
【０１２３】
これに対して、ハードウェア故障フラグが「０」の場合（ステップＳ２１１：否定）、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１のステータスクリアを行いステップＳ２１３へ進む。
【０１２４】
ＢＩＯＳ実行部１２０は、登録したイベントＩＤを有するイベントのイベントＩＤテーブル４０３に登録された対処を実施する（ステップＳ２１３）。
【０１２５】
次に、ＢＩＯＳ実行部１２０は、試験管理テーブル４０１に登録された試験項目の実施が全て完了したか否かを判定する（ステップＳ２１４）。実施していない試験項目がある場合（ステップＳ２１４：否定）、ＢＩＯＳ実行部１２０は、試験項目の値を１つインクリメントする（ステップＳ２１５）。その後、ＢＩＯＳ実行部１２０は、ステップＳ２０２へ戻る。
【０１２６】
これに対して、全ての試験項目の実施が完了している場合（ステップＳ２１４：肯定）、ＢＩＯＳ実行部１２０は、メモリ試験処理を終了する。
【０１２７】
以上に説明したように、本実施例に係る情報処理装置は、ＢＭＣがＤＩＭＭの物理的な搭載状態を確認し、その情報を基に試験用の搭載パターンを生成し、生成した搭載パターンにしたがってメモリ試験をＣＰＵに行わせる。すなわち、ＢＭＣは、実際の物理的な搭載状態とは異なった仮想の搭載状態をＤＩＭＭの搭載状態としてＣＰＵに認識させテストを行わせる。これにより、ＤＩＭＭの試験項目に合わせてＤＩＭＭの載せ替えを行わなくて済み、ＤＩＭＭの挿抜を行わずに様々な搭載パターンでＤＩＭＭの試験を行うことができる。したがって、ＤＩＭＭの載せ替えのオペレータの手間を削減することができる。さらに、挿抜のための情報処理装置の電源のオンオフを行わないため、連続して複数の搭載パターンのＤＩＭＭの試験を行うことができる。すなわち、情報処理装置に搭載されたメモリの試験を容易に実行することができ、メモリ試験の試験時間の効率化を図ることができる。
【０１２８】
図２１は、メモリ試験における作業時間の比較を表す図である。オペレータが搭載パターン毎にＤＩＭＭ１０４を載せ替える従来の方式では、搭載パターン数を５０とした場合、搭載パターンの切り替えに１．０時間かかる。これに対して、本実施例に係るサーバ１では、仮想的にＤＩＭＭ１０４の搭載パターンを自動で変更するため、搭載パターンの切り替え時間は、０．２時間しかかからない。この搭載パターンの切り替え時間には、ＤＩＭＭ１０４の取り付け及び取り外し時間にサーバ１の起動時間を加えたものである。そして、メモリ試験の総時間としては、従来方式の場合には５０時間かかるのに対して、本実施例に係るサーバ１を用いた場合、１０時間しかかからない。このように、本実施例に係る情報処理装置を用いることで、メモリ試験の試験時間を大幅に短縮することができる。
【０１２９】
さらに、本実施例に係る情報処理装置は、試験サーバと連携するためのインタフェースを有する。そして、搭載パターン規則フォーマット、メモリ試験の詳細な設定及び繰り返し指示などを試験サーバから受信することで、本実施例に係る情報処理装置及び試験サーバは、エラー発生時における再試験や切り分け試験を柔軟且つ自動的に行うことが可能である。
【実施例２】
【０１３０】
次に、実施例２について説明する。本実施例に係るサーバは、障害が発生しやすい搭載パターンについて自動で優先的にメモリ試験を行うことが実施例１と異なる。本実施例に係るサーバ１も図４のブロック図で表される。以下の説明では、実施例１と同様の各部の機能については説明を省略する。
【０１３１】
メモリ試験を行うＤＩＭＭ１０４の搭載パターンは、試験目的によって優先させる順番が異なる。そこで、オペレータが試験目的を指定し、情報を試験サーバ２に入力することで、試験サーバ２が自動的に試験に用いる搭載パターンを選択して搭載パターン規則フォーマット２２０を生成する。以下に詳細を説明する。
【０１３２】
搭載パターン規則フォーマット入力部２２は、試験目的に対応させて優先させる搭載パターンの条件を予め記憶する。例えば、搭載パターン規則フォーマット入力部２２は、試験目的がファーム障害の検出であれば、より多くの種類のＤＩＭＭ１０４が混載した搭載パターンを優先させる。また、搭載パターン規則フォーマット入力部２２は、試験目的がハードの伝送問題の検出であれば、ＤＩＭＭ１０４の動作周波数が高い搭載パターンを優先させる。また、サーバ１を実際に使用する構成での早期問題検出が試験目的であれば、出荷したサーバの搭載パターンの中で障害実績が高い搭載パターンを優先させる。
【０１３３】
例えば、搭載パターン規則フォーマット入力部２２は、試験目的としてファーム障害の検出の指定を受ける。この場合、搭載パターン規則フォーマット入力部２２は、混載数が多いほどエラー確率が高いことから混載数の多いＤＩＭＭ１０４の搭載パターンを優先させる。例えば、搭載パターン規則フォーマット入力部２２は、図２２に示す優先順位テーブル５０１を生成する。
【０１３４】
図２２は、混載数を基準とした優先順位テーブルの一例の図である。図２２では、動作モードがノーマルであり、ＤＩＭＭ１０４を８枚搭載した場合の搭載パターンを示す。図２２における動作モードの欄の「ｎｏｒｍａｌ」はノーマルモードを表す。図２２における各メモリスロット１０５のスロット番号に対応する各項の値が、そのメモリスロット１０５に搭載されたＤＩＭＭ１０６の容量を表す。例えば、項５の搭載パターンでは、スロット番号＃０Ａ０及び＃０Ａ１のメモリスロット１０５に１６ＧＢのＤＩＭＭ１０４が搭載される。また、スロット番号＃０Ｃ０及び＃０Ｃ１のメモリスロット１０５に８ＧＢのＤＩＭＭ１０４が搭載される。また、スロット番号＃１Ａ０，＃１Ａ１，＃１Ｃ０及び＃１Ｃ１のメモリスロット１０５に４ＧＢのＤＩＭＭ１０４が搭載される。
【０１３５】
搭載パターン規則フォーマット入力部２２は、混載数の高い搭載パターンにより高い優先順位を割り振る。そして、より高い優先順位を有する項の搭載パターンに搭載パターン規則フォーマット２２０における試験番号（ｘ）のより大きい値を割り当てる。これにより、実施例１で説明した試験パターン番号（Ｐ）の中で試験番号（ｘ）の大きい順にメモリ試験を行う場合、混載数の高い搭載パターンが優先される。また、ここでは、抽出したすべての搭載パターンに試験番号（ｘ）を割り当てたが、搭載パターン規則フォーマット入力部２２は、優先順位の低い搭載パターンは除外して試験番号（ｘ）を割り当ててもよい。そして、搭載パターン規則フォーマット入力部２２は、優先順位テーブル５０１を用いて生成した搭載パターン規則フォーマット２２０を試験用搭載情報テーブル作成部１１１へ送信して、混載数の高い搭載パターンのメモリ試験を優先的に行わせる。
【０１３６】
また、例えば、搭載パターン規則フォーマット入力部２２は、試験目的としてハードの伝送問題の検出の指定を受ける。この場合、搭載パターン規則フォーマット入力部２２は、ＤＩＭＭ１０４の動作周波数が高くなるほどエラー確率が高いことから動作周波数の高いＤＩＭＭ１０４の搭載パターンを優先させる。この場合、搭載パターン規則フォーマット入力部２２は、例えば、図８に示したＤＩＭＭ１０４の搭載数及び容量と動作周波数との関係を表すテーブルを記憶しておき、より動作周波数が高くなる搭載パターンを優先させて搭載パターン規則フォーマット２２０を生成する。そして、搭載パターン規則フォーマット入力部２２は、動作周波数が高い搭載パターンを優先させるように生成した搭載パターン規則フォーマット２２０を試験用搭載情報テーブル作成部１１１へ送信して、動作周波数が高い搭載パターンのメモリ試験を優先的に行わせる。
【０１３７】
また、例えば、搭載パターン規則フォーマット入力部２２は、試験目的としてサーバ１を実際に使用する構成での早期問題検出の指定を受ける。この場合、搭載パターン規則フォーマット入力部２２は、出荷実績及びエラー発生実績の大きい搭載パターンを優先させる。例えば、搭載パターン規則フォーマット入力部２２は、予め搭載パターン毎の出荷実績及びエラー発生実績をテーブルなどで有する。そして、搭載パターン規則フォーマット入力部２２は、搭載パターン毎の出荷実績及びエラー発生実績を用いて、図２３に示す優先順位テーブル５０２を生成する。
【０１３８】
図２３は、出荷実績及びエラー発生実績を基準とした優先順位テーブルの一例の図である。優先順位テーブル５０２の各項それぞれが異なる搭載パターンにあたる。そして、搭載パターン規則フォーマット入力部２２は、項毎に出荷実績、エラー発生実績及びその合計を登録する。搭載パターン規則フォーマット入力部２２は、出荷実績及びエラー発生実績の合計が高い順に高い優先順位を割り振る。ここで、合計が同じ場合、搭載パターン規則フォーマット入力部２２は、エラー発生率が高い搭載パターンの優先順位を高くする。そして、より高い優先順位を有する項の搭載パターンに搭載パターン規則フォーマット２２０における試験番号（ｘ）のより大きい値を割り当てる。これにより、実施例１で説明した試験パターン番号（Ｐ）の中で試験番号（ｘ）の大きい順にメモリ試験を行う場合、出荷実績とエラー発生実績との合計の高い搭載パターンが優先される。そして、搭載パターン規則フォーマット入力部２２は、優先順位テーブル５０２を用いて生成した搭載パターン規則フォーマット２２０を試験用搭載情報テーブル作成部１１１へ送信して、出荷実績とエラー発生実績との合計が高い搭載パターンのメモリ試験を優先的に行わせる。
【０１３９】
以上に説明したように、本実施例に係る試験サーバは、試験目的に応じてメモリ試験に採用する搭載パターンの優先度を変更する。これにより、試験目的に応じて障害が発生しやすいパターンについて優先的にメモリ試験を行うことができ、試験目的に応じた適切な試験が容易に行える。
【符号の説明】
【０１４０】
１  サーバ
２  試験サーバ
３  ネットワーク
１０  システムボード
１１  ファン
１２  管理ボード
１３  フレキシブルＩ／Ｏスイッチ
１４  Ｉ／Ｏユニット
１５  電源
２１  単体試験実行部
２２  搭載パターン規則フォーマット入力部
２３  動作モード指定部
２４  試験管理部
１０１  ＢＭＣ
１０２  ＣＰＵ
１０３  メモリコントローラ
１０４  ＤＩＭＭ
１０５  メモリスロット
１１１  試験用搭載情報テーブル作成部
１１２  ＳＰＤ読出部
１１３  統括制御部
１２０  ＢＩＯＳ実行部  
１２１  メモリ初期化部
２２０  搭載パターン規則フォーマット
３０１  実搭載情報テーブル
３０２  仮想搭載情報テーブル
３０３  容量情報テーブル
【図１】
2018018177.tif 000003
【図２】
2018018177.tif 000004
【図３】
2018018177.tif 000005
【図４】
2018018177.tif 000006
【図５】
2018018177.tif 000007
【図６】
2018018177.tif 000008
【図７】
2018018177.tif 000009
【図８】
2018018177.tif 000010
【図９】
2018018177.tif 000011
【図１０】
2018018177.tif 000012
【図１１】
2018018177.tif 000013
【図１２】
2018018177.tif 000014
【図１３】
2018018177.tif 000015
【図１４】
2018018177.tif 000016
【図１５】
2018018177.tif 000017
【図１６】
2018018177.tif 000018
【図１７】
2018018177.tif 000019
【図１８】
2018018177.tif 000020
【図１９】
2018018177.tif 000021
【図２０】
2018018177.tif 000022
【図２１】
2018018177.tif 000023
【図２２】
2018018177.tif 000024
【図２３】
2018018177.tif 000025