(57)【要約】【課題】オプション基板の物理的なメモリ構成と診断するメモリブッロクのサイズと一致しない場合においても、メモリサイズを正確に診断し、かつメモリが正常に動作しているかの診断を行なう。【解決手段】オプション基板上に搭載され得るメモリサイズを記憶しておき、メモリチェックにより搭載メモリサイズと診断されたメモリサイズが前記記憶されたメモリサイズかどうかを判断し、またオプション基板上に搭載され得るメモリサイズ及びブロック毎に搭載されるメモリサイズを記憶しておき、搭載メモリサイズと診断されたメモリサイズが記憶されたメモリサイズにないときには、それまでにチェックを終了したブロックに搭載されるメモリサイズのメモリ領域全体を再度診断する。【選択図】        図１
2005018397.tif 000002
【特許請求の範囲】
【請求項１】
搭載されたメモリを複数に分割し、分割されたブロックの所定部分のメモリを順次チェックし、発生するエラーにより搭載メモリサイズの診断及びメモリの正常／異常を診断するメモリチェック方法であって、
前記所定部分のメモリチェックにより所定部分がエラーのときは、搭載メモリサイズの種類として登録しておいたメモリサイズかどうかを判定し、
登録されたメモリサイズでないときは、メモリエラーとすることを特徴とするメモリチェック方法。
【請求項２】
前記所定部分のメモリチェックにより所定部分が全部エラーのときは、搭載メモリサイズの種類として登録しておいたメモリサイズかどうかを判定し、
登録されたメモリサイズでないときは、すでにメモリチェックを行なったブロックに搭載されるメモリサイズとなる全領域のメモリチェックを行ない、全領域のメモリチェック結果が正常であった場合、前記メモリサイズが搭載メモリサイズと診断することを特徴とする請求項１記載のメモリチェック方法。
【請求項３】
前記所定部分のメモリチェックにより所定部分が全部エラーでないときは、すでにメモリチェックを行なったブロックに搭載されるメモリサイズとなる全領域のメモリチェックを行ない全領域のメモリチェック結果が正常であった場合、前記メモリサイズが搭載メモリサイズと診断することを特徴とする請求項２記載のメモリチェック方法。
【請求項４】
搭載されたメモリを複数に分割し、分割されたブロックの所定部分のメモリを順次チェックし、発生したエラーが全部エラーか否かにより搭載メモリサイズの診断及びメモリの正常／異常を診断するメモリチェック方法において、
搭載メモリサイズの種類と、メモリチェックを行なうブロック毎の搭載メモリサイズのいずれか或いは両方をプログラムメモリ内に記憶することを特徴とした情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置において、搭載したメモリサイズの検出、及び正常に動作しているかどうかを診断する方法に関するものである。
【０００２】
【従来の技術】
図４は前記情報処理装置の構成図である。この情報処理装置は、情報処理装置全体を制御するＣＰＵ１、制御用のプログラムを記憶するプログラムＲＯＭ２、制御プログラム動作においてワーキング用として使用するレジデントＲＡＭ３、図示しない各種Ｉ／Ｏ機器を制御するための入出力用Ｉ／Ｏポート４、オプション基板を接続するためのオプションＩ／Ｆ５、そしてオプション基板６から構成されており、各部はバス８により相互に接続されている。なお、オプション基板は、通常、複数のメモリが搭載可能なようにパタンが配置されており、適宜基板上にメモリ７を搭載し、オプションメモリとして各種のメモリサイズのオプション基板を用意することができる構成になっている。
【０００３】
情報処理装置のオプションメモリの従来の診断方法としては、上記のように増設メモリとして複数の搭載パタンがあり、オプションメモリとして搭載されたメモリサイズを確認する必要があり、また搭載されたメモリが正常かどうかの診断を行なう必要がある。この診断方法として例えば、特公平７−９６３０に記載されているように、オプションメモリとして搭載されたメモリサイズを確認するためにディップスイッチ等をオプションメモリのオプションボードに搭載し、ディップスイッチの設定値を読取ることにより搭載メモリサイズを検出し、その搭載メモリサイズに応じてメモリチェックを行なう。しかしながら、オプション基板６にディップスイッチを搭載した場合、部品の増加、オプション基板６のパタンの複雑化、コネクタのピン数の増加などの欠点があり、以下に説明する図５のようなチェック方法が考案されている。
【０００４】
ここで、オプション基板６のメモリチェックを行なう場合には、短時間にチェックを行なうために、図２に示したようにメモリ空間を複数のブロックに分割し、各ブロックの先頭チェック部１０〜１３のみを診断対象領域とし、そのメモリブロックが正常かどうかをチェックする方法が採用されている。
【０００５】
図５はメモリ空間４Ｍｂｙｔｅを１Ｍｂｙｔｅ毎のブロックに分割し、各ブロックの先頭のチェック部分を２５６Ｂｙｔｅとしたメモリチェックの動作フローチャートである。まず、診断するデータをセットし、搭載メモリサイズを記憶する診断結果レジスタをリセットし、診断ブロックを示すレジスタｎ値を初期値１とする。ここで、診断データとしては通常１バイト毎の診断の場合には５５Ｈ（以下「Ｈ」は１６進を表す）或いはＡＡＨを使用する。（ステップＳ１）
【０００６】
次に最初の１ブロックの１Ｍｂｙｔｅの先頭チェック部１０の２５６バイトに対し、診断データをライトした後、リードし診断データと一致しているかチェックを行なう。前記診断データ５５Ｈ、ＡＡＨをそれぞれ使用して２度診断する場合もある。（ステップＳ２）
【０００７】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。すなわち、２５６バイト全てに５５Ｈをライトした後、リードした時に２５６バイト全てが５５Ｈと異なり、例えばＦＦＨとリードされた場合に全部エラーと判定する。通常メモリが搭載されていない場合は、プッシュプル抵抗等によりデータバスが全てハイレベルとなっているのでＦＦＨとなる。（ステップＳ４）
【０００８】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックのメモリは搭載されていないと判断し、オプション基板には（ｎ−１）＊１Ｍｂｙｔｅが搭載されていると判断する。この場合、ｎ＝１であるので０ＭＢｙｔｅを搭載している旨を診断結果レジスタにセットする。（ステップＳ８）
【０００９】
２５６バイトのうち一部のみがメモリエラーの場合は、メモリは搭載されているが、メモリのライト、リードが正常に行なわれないと判断し、このオプションメモリ基板は不良であるとし、オプション基板メモリエラーとする。（ステップＳ５）
【００１０】
一方、ステップ３にて最初の１ブロックの１Ｍｂｙｔｅの先頭チェック部１０の２５６バイトのチェックが正常であった場合は、次のブロックの診断を行なうために診断ブロック番号を示すｎ値を＋１する。この場合ｎは２となる。（ステップＳ６）
【００１１】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａより大きいかどうかを判定する。全メモリ空間が４Ｍｂｙｔｅで１ブロック１Ｍｂｙｔｅであるので４ブロックとなりａは４であり、この場合ｎは２であるのでステップＳ２に戻る。（ステップＳ７）
【００１２】
次に、ｎは２であるので第２ブロックの１Ｍｂｙｔｅの先頭チェック部１１の２５６バイトのチェックを行なう。（ステップＳ２）
【００１３】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【００１４】
ステップＳ４にて２５６バイト全部がエラーの場合、オプション基板には（ｎ−１）＊１Ｍｂｙｔｅ搭載と判断する。この場合、ｎ＝２であるので１ＭＢｙｔｅ搭載している旨を診断結果レジスタにセットする。（ステップＳ８）
【００１５】
２５６バイトのうち一部のみがメモリエラーの場合は、メモリは搭載されているが、メモリのライト、リードが正常に行なわれないと判断し、このオプションメモリ基板は不良であるとし、オプション基板メモリエラーとする。（ステップＳ５）
【００１６】
一方、ステップ３にて最初の２ブロックの１Ｍｂｙｔｅの先頭チェック部１１の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは３となる。（ステップＳ６）
【００１７】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａ＝４より大きいかどうかを判定する。この場合ｎは３であるのでステップＳ２に戻る。
【００１８】
以下、ステップＳ２以降の処理を同様に繰り返し行ない、ステップＳ３にてエラーが４回発生しない場合、ステップＳ７にてｎが５となりａ＝４より大きくなるので（ｎ−１）＊１Ｍｂｙｔｅは４Ｍｂｙｔｅとなり４Ｍｂｙｔｅ搭載している旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
以上の処理を行なうことにより、メモリサイズの情報を設定するディップスイッチなしでメモリサイズを検出でき、かつメモリエラーの診断を行なえ、また全領域を診断する場合に比べて診断時間を短くすることができ、メモリチェックを効率よく行なうことができる。
【００１９】
【特許文献１】
特開平１１−２９６４２９号公報
【００２０】
【発明が解決しようとする課題】
しかしながら、従来のメモリチェック方法では、オプション基板の物理的なメモリ構成は診断するメモリブッロクのサイズとは必ずしも一致しないので、例えば、図３に示すようなオプションメモリ基板の構成の場合は、２Ｍｂｙｔｅのメモリチップ２個で構成されており、メモリの診断を１Ｍｂｙｔｅ単位で行なうため、例えば１ブロック目の診断がＯＫで２ブロック目の診断の際にステップ４にて全部がエラーだった場合、オプション基板は正常で１Ｍｂｙｔｅのメモリを搭載していると判断される。しかしながら１ブロック目と２ブロック目は同一チップであるため、１ブロックのみが正常であっても、このメモリが正常であるという判断は適当でなく、メモリチェックの信頼性が低いという問題点があった。
【００２１】
【課題を解決するための手段】
本発明の実施例によれば、本発明は、前述の課題を解決するため次の方法を採用する。すなわち、第１の実施形態の発明では、搭載されたメモリを複数に分割し、分割されたブロックの先頭部分のメモリを順次チェックし、発生するエラーが全部エラーか否かにより搭載メモリサイズの診断及びメモリの正常／異常を診断するメモリチェック方法において、前記先頭部分のメモリチェックにより先頭部分が全部エラーのときは、搭載メモリサイズの種類として登録しておいたメモリサイズかどうかを判定し、登録されたメモリサイズでないときは、メモリエラーとする。
【００２２】
第２の実施形態の発明では、搭載されたメモリを複数に分割し、分割されたブロックの先頭部分のメモリを順次チェックし、発生するエラーが全部エラーか否かにより搭載メモリサイズの診断及びメモリの正常／異常を診断するメモリチェック方法において、前記先頭部分のメモリチェックにより先頭部分が全部エラーのときは、搭載メモリサイズの種類として登録しておいたメモリサイズかどうかを判定し、登録されたメモリサイズでないときは、すでにメモリチェックを行なったブロックに搭載されるメモリサイズとなる全領域のメモリチェックを行ない、全領域のメモリチェック結果が正常であった場合、前記メモリサイズが搭載メモリサイズと診断する。
【００２３】
第３の実施形態の発明では、搭載されたメモリを複数に分割し、分割されたブロックの先頭部分のメモリを順次チェックし、発生するエラーが全部エラーか否かにより搭載メモリサイズの診断及びメモリの正常／異常を診断するメモリチェック方法において、先頭部分のメモリチェックにより先頭部分が全部エラーでないときは、すでにメモリチェックを行なったブロックに搭載されるメモリサイズとなる全領域のメモリチェックを行ない全領域のメモリチェック結果が正常であった場合、前記メモリサイズが搭載メモリサイズと診断する。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて説明する。なお図面に共通する要素には同一の符号を付す。
【００２５】
（（実施形態１））
（構成）
図４は本発明実施形態１のメモリチェック方法を実施する情報処理装置の構成例を示す図である。この情報処理装置は、情報処理装置全体を制御するＣＰＵ１、制御用のプログラムを記憶するプログラムＲＯＭ２、制御プログラム動作においてワーキング用として使用するレジデントＲＡＭ３、図示しない各種Ｉ／Ｏ機器を制御するための入出力用Ｉ／Ｏポート４、オプション基板を接続するためのオプションＩ／Ｆ５、そしてオプション基板６から構成されており、各部はバス８により相互に接続されている。なお、オプション基板は、通常、複数のメモリが搭載可能なようにパタンが配置されており、適宜基板上にメモリ７を搭載し、オプションメモリとして各種のメモリサイズのオプション基板を用意することができる構成になっている。
【００２６】
実施形態１の情報処理装置では、プログラムＲＯＭ２にオプション基板の搭載メモリサイズの種類を記憶しておく。例えば、図３のオプションメモリの構成では２Ｍｂｙｔｅ及び４Ｍｂｙｔｅのメモリサイズの組合せが可能であり、搭載メモリサイズの種類である２Ｍｂｙｔｅ、４Ｍｂｙｔｅを記憶しておく。
【００２７】
（動作）
図１は本発明実施形態１のメモリチェック方法の動作フローチャート図である。  図１に従い本発明実施形態１のメモリチェック方法の動作をオプション基板が図３のように２Ｍｂｙｔｅのメモリチップ２個で構成されている場合について説明する。
【００２８】
（１ブロック目の診断）
まず、診断するデータをセットし、搭載メモリサイズを記憶する診断結果レジスタをリセットし、診断ブロックを示すレジスタｎ値を１とする。ここで、診断データとしては通常１バイト毎の診断の場合には５５Ｈ或いはＡＡＨを使用する。（ステップＳ１）
【００２９】
次に最初の１ブロックの１Ｍｂｙｔｅの先頭チェック部１０の２５６バイトに対し、診断データをライトした後、リードし診断データと一致しているかチェックを行なう。前記診断データ５５Ｈ、ＡＡＨをそれぞれ使用して２度診断する場合もある。（ステップＳ２）
【００３０】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。すなわち、２５６バイト全てに５５Ｈをライトした後、リードした時に２５６バイト全てが５５Ｈと異なり、例えばＦＦＨとリードされた場合に全部エラーと判定する。通常メモリが搭載されていない場合は、プッシュプル抵抗等によりデータバスが全てハイレベルとなっているのでＦＦＨとなる。（ステップＳ４）
【００３１】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【００３２】
この場合、ｎ＝１であるので０ＭＢｙｔｅは登録された搭載メモリサイズではないのでオプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００３３】
一方、ステップＳ４にて２５６バイトのうち一部のみがメモリエラーの場合は、メモリは搭載されているが、メモリのライト、リードが正常に行なわれないと判断し、このオプションメモリ基板は不良であるとし、同様にオプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００３４】
一方、ステップ３にて最初の１ブロックの１Ｍｂｙｔｅの先頭チェック部１０の２５６バイトのチェックが正常であった場合、次のブロックの診断を行なうために診断ブロック番号を示すｎ値を＋１する。この場合ｎは２となる。（ステップＳ６）
【００３５】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａより大きいかどうかを判定する。全メモリ空間が４Ｍｂｙｔｅで１ブロック１Ｍｂｙｔｅであるので４ブロックとなりａは４であり、この場合ｎは２であるのでステップＳ２に戻る。（ステップＳ７）
【００３６】
（２ブロック目の診断）
ｎは２であるので第２ブロックの１Ｍｂｙｔｅの先頭チェック部１１の２５６バイトのチェックを行なう。（ステップＳ２）
【００３７】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【００３８】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【００３９】
この場合、ｎ＝２であるので１ＭＢｙｔｅとなるが、１ＭＢｙｔｅは登録された搭載メモリサイズではないのでオプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００４０】
一方、ステップＳ４にて２５６バイトのうち一部のみがメモリエラーの場合は、メモリは搭載されているが、メモリのライト、リードが正常に行なわれないと判断し、このオプションメモリ基板は不良であるとし、同様にオプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００４１】
一方、ステップ３にて最初の２ブロックの１Ｍｂｙｔｅの先頭チェック部１１の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは３となる。（ステップＳ６）
【００４２】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａ＝４より大きいかどうかを判定する。この場合ｎは３であるのでステップＳ２に戻る。
【００４３】
（３ブロック目の診断）
ｎは３であるので第３ブロックの１Ｍｂｙｔｅの先頭チェック部１２の２５６バイトのチェックを行なう。（ステップＳ２）
【００４４】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【００４５】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【００４６】
この場合、ｎ＝３であるので２ＭＢｙｔｅとなり、２ＭＢｙｔｅは登録された搭載メモリサイズであるので２ＭＢｙｔｅ搭載の旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【００４７】
一方、ステップＳ４にて２５６バイトのうち一部のみがメモリエラーの場合は、メモリは搭載されているが、メモリのライト、リードが正常に行なわれないと判断し、このオプションメモリ基板は不良であるとし、同様にオプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００４８】
一方、ステップ３にて最初の３ブロックの１Ｍｂｙｔｅの先頭チェック部１２の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは４となる。（ステップＳ６）
【００４９】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａ＝４より大きいかどうかを判定する。この場合、ｎは４であるのでステップＳ２に戻る。
【００５０】
以下、ステップＳ２以降の処理を同様に繰り返し行ない、ステップＳ３にてエラーが４回発生しない場合、ステップＳ７にてｎが５となりａ＝４より大きくなるのでｎ−１は４となり４Ｍｂｙｔｅ搭載している旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【００５１】
（実施形態１の効果）
以上詳細に述べたように、本発明実施形態１のメモリチェック方法によれば、搭載メモリサイズとして検出されたメモリサイズがプログラムＲＯＭ２等に登録されたメモリサイズでない場合には、メモリエラーと判断することができるので、メモリ診断を適確に行なうことができる。
【００５２】
（（実施形態２））
実施形態１のメモリチェック方法では、搭載メモリサイズとして検出されたメモリサイズがプログラムＲＯＭ２等に登録されたメモリサイズでない場合、単にメモリエラーとしているので、メモリエラーとなる頻度が高い。この課題を解決するために本発明実施形態２のメモリチェック方法では、以下の方法を採用する。
【００５３】
（構成）
実施形態２のメモリチェック方法を実施する情報処理装置の構成は実施形態１のメモリチェック方法の場合と同様であるので、説明を省略する。実施形態２の情報処理装置では、図８に示したようにプログラムＲＯＭ２にオプション基板の搭載メモリサイズの種類等を記憶しておく。例えば、図３のオプションメモリの構成では２Ｍｂｙｔｅ及び４Ｍｂｙｔｅのメモリサイズの組合せが可能であり、図８に示したように、ブロック毎に搭載メモリサイズとなるメモリサイズ、及び搭載メモリサイズの種類である２Ｍｂｙｔｅ、４Ｍｂｙｔｅを記憶しておく。
【００５４】
（動作）
図６は、本発明実施形態２のメモリチェック方法の動作フローチャート図である。図６に従い本発明実施形態２のメモリチェック方法の動作をオプション基板が図３のように２Ｍｂｙｔｅのメモリチップ２個で構成されている場合について説明する。
【００５５】
（１ブロック目の診断）
まず、診断するデータをセットし、搭載メモリサイズを記憶する診断結果レジスタをリセットし、診断ブロックを示すレジスタｎ値を１とする。（ステップＳ１）
【００５６】
次に最初の１ブロックの１Ｍｂｙｔｅの先頭チェック部１０の２５６バイトに対し、診断データをライトした後、リードし診断データと一致しているかチェックを行なう。（ステップＳ２）
【００５７】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【００５８】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された図８の搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【００５９】
この場合、図示していないが、ｎ＝１であるので０ＭＢｙｔｅは登録されたメモリサイズではないのでステップＳ３０にて（ｎ−１）ブロックに搭載されているべきメモリサイズの全領域をチェックするのであるが、ｎ−１＝０ブロックとなり図８の登録テーブルに該当するものがないので、特例として、オプション基板メモリエラーとし処理を終了する。これは、最初のチェックによりエラーが発生した場合はオプション基板の装着不良と判断すべきであるためである。（ステップＳ５）
【００６０】
一方、ステップＳ４にて全部エラーでない、すなわち、２５６バイトのうち一部のみがメモリエラーの場合は、メモリは搭載されているが、メモリのライト、リードが正常に行なわれないと判断し、このオプションメモリ基板は不良であるとし、同様にオプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００６１】
一方、ステップ３にて最初の１ブロックの１Ｍｂｙｔｅの先頭チェック部１０の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは２となる。（ステップＳ６）
【００６２】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａより大きいかどうかを判定する。全メモリ空間が４Ｍｂｙｔｅで１ブロック１Ｍｂｙｔｅであるので４ブロックとなりａは４であり、この場合ｎは２であるのでステップＳ２に戻る。（ステップＳ７）
【００６３】
（２ブロック目の診断）
ｎは２であるので第２ブロックの１Ｍｂｙｔｅの先頭チェック部１１の２５６バイトのチェックを行なう。（ステップＳ２）
【００６４】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【００６５】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された図８の搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【００６６】
この場合、ｎ＝２であるので１ＭＢｙｔｅは登録されたメモリサイズではないので、図８の登録テーブルより、ｎ−１＝１ブロックの搭載メモリサイズとなるメモリサイズである２ＭＢｙｔｅの全領域のチェックを行なう。この診断方法としては各ブロックの先頭２５６バイトの診断と同様に例えば診断データ５５Ｈ、ＡＡＨをライトし、その後リードし、ライトしたデータと一致しているかどうかを確認するのが一般的である。ここで、全領域について再度診断を行なう理由は、部分的ではあるが１度エラーになった場合、信頼性を考慮し全領域について再度診断を行なう必要があるためである。（ステップＳ３０）
【００６７】
そして、ステップＳ３０の全領域の再度のチェックによりエラーと判断された場合は（ステップＳ３１）、オプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００６８】
一方、上記ステップＳ３０の全領域の再度のチェックによりエラーなしと診断された場合は（ステップＳ３１）、ｎ値をチェックしたブロック数＋１とし（ステップＳ３２）、（ｎ−１）＊１ＭＢｙｔｅ搭載である旨を診断結果レジスタに記憶する。この場合、この場合、ステップＳ３２にてｎ＝３となっているので２ＭＢｙｔｅとなり、２ＭＢｙｔｅ搭載である旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【００６９】
一方、ステップＳ４にて２５６バイトのうち一部のみがメモリエラーの場合は、メモリは搭載されているが、メモリのライト、リードが正常に行なわれないと判断し、このオプションメモリ基板は不良であるとし、同様にオプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００７０】
一方、ステップ３にて最初の２ブロックの１Ｍｂｙｔｅの先頭チェック部１１の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは３となる。（ステップＳ６）
【００７１】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａ＝４より大きいかどうかを判定する。この場合ｎは３であるのでステップＳ２に戻る。
【００７２】
（３ブロック目の診断）
ｎは３であるので第３ブロックの１Ｍｂｙｔｅの先頭チェック部１２の２５６バイトのチェックを行なう。（ステップＳ２）
【００７３】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【００７４】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された図８の搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【００７５】
この場合、ｎ＝３であるので２ＭＢｙｔｅとなり、２ＭＢｙｔｅは登録されたメモリサイズであるので２ＭＢｙｔｅ搭載の旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【００７６】
一方、ステップＳ４にて２５６バイトのうち一部のみがメモリエラーの場合は、メモリは搭載されているが、メモリのライト、リードが正常に行なわれないと判断し、このオプションメモリ基板は不良であるとし、同様にオプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００７７】
一方、ステップ３にて最初の３ブロックの１Ｍｂｙｔｅの先頭チェック部１２の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは４となる。（ステップＳ６）
【００７８】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａ＝４より大きいかどうかを判定する。この場合ｎは４であるのでステップＳ２に戻る。
【００７９】
以下、ステップＳ２以降の処理を同様に繰り返し行ない、ステップＳ３にてエラーが４回発生しない場合、ステップＳ７にてｎが５となりａ＝４より大きくなるのでｎ−１は４となり４Ｍｂｙｔｅ搭載している旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【００８０】
（実施形態２の効果）
以上述べたように本発明実施形態２のメモリチェック方法では、搭載メモリサイズとして検出されたメモリサイズがプログラムＲＯＭ２に登録されたメモリサイズでない場合、単にメモリエラーとせず、それまでにチェックを終了したブロックに搭載されているメモリ領域全体を再度診断するので、信頼性を損なうことなくエラーとなる頻度を減らすことができる。
【００８１】
（（実施形態３））
実施形態２のメモリチェック方法では、ステップＳ４の判断にて１部メモリのエラーがあったと判断したときには、オプション基板メモリエラーとし、それまでの診断で正常だと判断されたメモリ領域があってもオプション基板メモリエラーとされてしまうという問題があった。この課題を解決するために本発明実施形態３メモリチェック方法では、以下の方法を採用する。
【００８２】
（構成）
実施形態３のメモリチェック方法を実施する情報処理装置の構成は実施形態１のメモリチェック方法の場合と同様であるので、説明を省略する。実施形態３の情報処理装置では、図８に示したようにプログラムＲＯＭ２にオプション基板の搭載メモリサイズの種類等を記憶しておく。例えば、図３のオプションメモリの構成では２Ｍｂｙｔｅ及び４Ｍｂｙｔｅのメモリサイズの組合せが可能であり、図８に示したように、ブロック毎に搭載メモリサイズとなるメモリサイズ、及び搭載メモリサイズの種類である２Ｍｂｙｔｅ、４Ｍｂｙｔｅを記憶しておく。
【００８３】
（動作）
図７は、本発明実施形態３のメモリチェック方法の動作フローチャート図である。図７に従い本発明実施形態３のメモリチェック方法の動作をオプション基板が図３のように２Ｍｂｙｔｅのメモリチップ２個で構成されている場合について説明する。
【００８４】
（１ブロック目の診断）
まず、診断するデータをセットし、搭載メモリサイズを記憶する診断結果レジスタをリセットし、診断ブロックを示すレジスタｎ値を１とする。（ステップＳ１）
【００８５】
次に最初の１ブロックの１Ｍｂｙｔｅの先頭チェック部１０の２５６バイトに対し、診断データをライトした後、リードし診断データと一致しているかチェックを行なう。（ステップＳ２）
【００８６】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【００８７】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された図８の搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【００８８】
この場合、図示していないが、ｎ＝１であるので０ＭＢｙｔｅは登録されたメモリサイズではないのでステップＳ３０にて（ｎ−１）ブロックに搭載されているべきメモリサイズの全領域をチェックするのであるが、ｎ−１＝０ブロックとなり図８の登録テーブルに該当するものがないので、特例として、オプション基板メモリエラーとし処理を終了する。これは、最初のチェックによりエラーが発生した場合はオプション基板の装着不良と判断すべきであるためである。（ステップＳ５）
【００８９】
一方、ステップＳ４にて２５６バイトのうち一部のみがメモリエラーの場合も同様に、ｎ＝１であるので、特例として、オプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００９０】
一方、ステップＳ３にて最初の１ブロックの１Ｍｂｙｔｅの先頭チェック部１０の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは２となる。（ステップＳ６）
【００９１】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａより大きいかどうかを判定する。全メモリ空間が４Ｍｂｙｔｅで１ブロック１Ｍｂｙｔｅであるので４ブロックとなりａは４であり、この場合ｎは２であるのでステップＳ２に戻る。（ステップＳ７）
【００９２】
（２ブロック目の診断）
ｎは２であるので第２ブロックの１Ｍｂｙｔｅの先頭チェック部１１の２５６バイトのチェックを行なう。（ステップＳ２）
【００９３】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【００９４】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された図８の搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【００９５】
この場合、ｎ＝２であるので１ＭＢｙｔｅは登録されたメモリサイズではないので、図８の登録テーブルより、ｎ−１＝１ブロックの搭載メモリサイズとなるメモリサイズである２ＭＢｙｔｅの全領域のチェックを行なう。この診断方法としては各ブロックの先頭２５６バイトの診断と同様に例えば診断データ５５Ｈ、ＡＡＨをライトし、その後リードし、ライトしたデータと一致しているかどうかを確認するのが一般的である。ここで、全領域について再度診断を行なう理由は、部分的ではあるが１度エラーになった場合、信頼性を考慮し全領域について再度診断を行なう必要があるためである。（ステップＳ３０）
【００９６】
そして、ステップＳ３０の全領域の再度のチェックによりエラーと判断された場合は（ステップＳ３１）、オプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【００９７】
一方、上記ステップＳ３０の全領域の再度のチェックによりエラーなしと診断された場合は（ステップＳ３１）、ｎ値をチェックしたブロック数＋１とし（ステップＳ３２）、（ｎ−１）＊１ＭＢｙｔｅ搭載である旨を診断結果レジスタに記憶する。この場合、この場合、ステップＳ３２にてｎ＝３となっているので２ＭＢｙｔｅとなり、２ＭＢｙｔｅ搭載である旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【００９８】
一方、ステップＳ４にて２５６バイトのうち一部のみがメモリエラーの場合は、ｎ＝２であるので１ＭＢｙｔｅは登録されたメモリサイズではないので、図８の登録テーブルより、ｎ−１＝１ブロックの搭載メモリサイズとなるメモリサイズである２ＭＢｙｔｅの全領域のチェックを行なう。（ステップＳ３０）
【００９９】
そして、上記ステップＳ３０の全領域の再度のチェックによりエラーと判断された場合は（ステップＳ３１）、オプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【０１００】
一方、上記ステップＳ３０の全領域の再度のチェックによりエラーなしと診断された場合は（ステップＳ３１）、ｎ値をチェックしたブロック数＋１し（ステップＳ３２）、（ｎ−１）＊１ＭＢｙｔｅ搭載である旨を診断結果レジスタに記憶する。この場合、ステップＳ３２にてｎ＝３となっているので２ＭＢｙｔｅとなり、２ＭＢｙｔｅ搭載である旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【０１０１】
一方、ステップ３にて最初の２ブロックの１Ｍｂｙｔｅの先頭チェック部１１の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは３となる。（ステップＳ６）
【０１０２】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａ＝４より大きいかどうかを判定する。この場合ｎは３であるのでステップＳ２に戻る。
【０１０３】
（３ブロック目の診断）
ｎは３であるので第３ブロックの１Ｍｂｙｔｅの先頭チェック部１２の２５６バイトのチェックを行なう。（ステップＳ２）
【０１０４】
次に、ステップＳ２におけるチェックによりエラーが発生したかどうかを判断し（ステップＳ３）エラーが発生した場合、２５６バイト全部がエラーしたかどうかを確認する。（ステップＳ４）
【０１０５】
ステップＳ４にて２５６バイト全部がエラーの場合、このブロックにはメモリが搭載されていないと判断し、（ｎ−１）＊１Ｍｂｙｔｅが搭載メモリサイズと判断し、（ｎ−１）＊１ＭｂｙｔｅがプログラムＲＯＭ２に登録された図８の搭載メモリサイズであるかどうかを判定する。（ステップＳ２０）
【０１０６】
この場合、ｎ＝３であるので２ＭＢｙｔｅとなり、２ＭＢｙｔｅは登録されたメモリサイズであるので２ＭＢｙｔｅ搭載の旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【０１０７】
一方、ステップＳ４にて２５６バイトのうち一部のみがメモリエラーの場合は、ｎ＝３であるので、図８の登録テーブルより、ｎ−１＝２ブロックの搭載メモリサイズとなるメモリサイズである搭載メモリサイズとなる２ＭＢｙｔｅの全領域のチェックを行なう。ここで、全領域について再度診断を行なう理由は、部分的ではあるが１度エラーになった場合、信頼性を考慮し再度２ＭＢｙｔｅ全領域について診断を行なう必要があるためである。（ステップＳ３０）
【０１０８】
そして、上記ステップＳ３０の全領域の再度のチェックによりエラーと判断された場合は（ステップＳ３１）、オプション基板メモリエラーとし処理を終了する。（ステップＳ５）
【０１０９】
一方、上記ステップＳ３０の全領域の再度のチェックによりエラーなしと診断された場合は（ステップＳ３１）、ｎ値をチェックしたブロック数＋１し（ステップＳ３２）、（ｎ−１）＊１ＭＢｙｔｅ搭載である旨を診断結果レジスタに記憶する。この場合、ステップＳ３２にてｎ＝３となっているので２ＭＢｙｔｅとなり、２ＭＢｙｔｅ搭載である旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【０１１０】
一方、ステップ３にて最初の３ブロックの１Ｍｂｙｔｅの先頭チェック部１２の２５６バイトのチェックが正常であった場合、次の診断ブロックを診断するために診断ブロック番号を示すｎ値を＋１する。この場合ｎは４となる。（ステップＳ６）
【０１１１】
次に、診断ブロック番号ｎ値が、最大チェック数である全メモリ空間のブロック数ａ＝４より大きいかどうかを判定する。この場合ｎは４であるのでステップＳ２に戻る。
【０１１２】
以下、ステップＳ２以降の処理を同様に繰り返し行ない、ステップＳ３にてエラーが４回発生しない場合、ステップＳ７にてｎが５となりａ＝４より大きくなるのでｎ−１は４となり４Ｍｂｙｔｅ搭載している旨を診断結果レジスタに記憶し処理を終了する。（ステップＳ８）
【０１１３】
（実施形態３の効果）
以上述べたように本発明実施形態３のメモリチェック方法では、搭載メモリサイズの確認を適確に行なうことができるとともに、１部メモリのエラーがあった場合でも、単にメモリエラーとせず、それまでにチェックを終了したブロックに搭載されているメモリ領域全体を再度診断するので、信頼性を下げることなく、メモリエラーの頻度をさらに低減できる。
【０１１４】
（（その他の変形例））
以上、各実施形態について説明したが、本発明のメモリチェック方法は本実施形態に限定されものではない。すなわち、実施形態１、２及び３のステップＳ２０にて（ｎ−１）＊１ＭＢｙｔｅが登録されたメモリサイズかどうか判定しているが、一般的にオプションメモリは偶数のメモリチップで構成されメモリサイズも偶数になるので、ステップＳ２０の判定を偶数かどうかの判定とすることもできる。
【０１１５】
また、実施形態１、２及び３のメモリチェック方法ではｎ値を１ずつ更新し、すなわち１ブロック毎にメモリチェックを行なっているが、図８と同様に図９のように、ブロック毎に搭載されるメモリサイズや搭載される種類のメモリサイズをプログラムＲＯＭ２内に記憶しておき、記憶した診断ブロック番号の順にメモリチェックを行なうようにすれば、非連続にメモリチェックを行なうこともできる。図９の例は、搭載メモリサイズとして２ＭＢｙｔｅ、４ＭＢｙｔｅ、８ＭＢｙｔｅの種類のオプション基板が用意されている場合で２ブロック毎にチェックを行なう場合の登録テーブルの例である。
【０１１６】
また、各実施形態のメモリチェック方法では、オプション基板のメモリのチェック方法について記載したが、標準として搭載されるレジデントメモリのチェックにも適用することができることは言うまでもない。
【０１１７】
【発明の効果】
以上詳細に説明したように、本発明によれば、オプション基板上に搭載され得るメモリサイズを記憶しておき、メモリチェックにより搭載メモリサイズと診断されたメモリサイズが前記記憶されたメモリサイズかどうかを判断することにより、オプション基板の物理的なメモリ構成と診断するメモリブッロクのサイズと一致しない場合においても、メモリサイズを正確に診断でき、かつメモリが正常に動作しているかどうかの診断を行なうことができる。
【０１１８】
また、オプション基板上に搭載され得るメモリサイズ及びブロック毎に搭載されるメモリサイズを記憶しておき、搭載メモリサイズと診断されたメモリサイズが前記記憶されたメモリサイズでないときに、前記ブロック毎に搭載されるメモリサイズを参照し、それまでにすでにチェックを終了したブロックに搭載されるメモリサイズのメモリ領域全体を再度診断することにより、メモリエラーとなる頻度を低減できる。
【図面の簡単な説明】
【図１】本発明実施形態１の情報処理装置メモリチェックの動作フローチャートである。
【図２】情報処理装置のオプション基板の構成例１である。
【図３】情報処理装置のオプション基板の構成例２である。
【図４】情報処理装置の構成図である。
【図５】従来の情報処理装置メモリチェックの動作フローチャートである。
【図６】本発明実施形態２の情報処理装置メモリチェックの動作フローチャートである。
【図７】本発明実施形態３の情報処理装置メモリチェックの動作フローチャートである。
【図８】搭載メモリサイズの種類を登録するテーブル例１である。
【図９】搭載メモリサイズの種類を登録するテーブル例２である。
【符号の説明】
１    ＣＰＵ
２    プログラムＲＯＭ
３    レジデントＲＡＭ
４    入出力Ｉ／Ｏポート
５    オプションＩ／Ｆ
６    オプション基板
７    メモリ
８    バス
【図１】
2005018397.tif 000003
【図２】
2005018397.tif 000004
【図３】
2005018397.tif 000005
【図４】
2005018397.tif 000006
【図５】
2005018397.tif 000007
【図６】
2005018397.tif 000008
【図７】
2005018397.tif 000009
【図８】
2005018397.tif 000010
【図９】
2005018397.tif 000011