(57)【特許請求の範囲】
【請求項１】
メモリにアクセスする試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
複数ビットで特定される前記メモリの物理アドレスにアクセスするために前記試験プログラムで指定するプログラムアドレスであって、それぞれ異なる複数ビット値を有する複数のプログラムアドレスによる前記メモリへのアクセス速度又はそれに対応する値を測定するステップと、
前記アクセス速度又はそれに対応する値に基づいて、前記プログラムアドレスのデータフォーマットを求めるステップとを備えることを特徴とするメモリ試験方法。
【請求項２】
請求項１において、
前記プログラムアドレスのデータフォーマットは、前記メモリの物理アドレスを構成するロウアドレス及びカラムアドレス、バンク、前記メモリが複数の場合は、各メモリの識別情報、前記複数のメモリを制御するメモリコントローラが複数の場合は、前記メモリコントローラの識別情報それぞれに対応するビットを含むことを特徴とするメモリ試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ（RAM、ＲＯＭ）のビットエラーを検出するためのメモリ試験
方法に関する。
【背景技術】
【０００２】
従来のメモリ試験方法においては、エラー検出のために、例えば、メモリ全面のread/write試験などが行われる。しかしながら、近年において、このような従来のメモリ試験方法では、検出できないエラーが発生している。メモリに、ノイズ対策又は性能向上のための仕組みがハード的に組み込まれ、メモリの構造が複雑化し、各種メモリ固有のエラーが発生するからである。そのため、メモリ試験プログラムも、メモリ内部の構成を意識して作成しないと、そのメモリ固有のエラーを検出できない。そのために、メモリ試験プログラムの作成の際、メモリの内部構成の詳細情報（アドレス割り当て）が必要となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６３−１６６１００号公報
【特許文献２】特開平６−１３０１２７号公報
【特許文献３】特開平８−３０５５９５号公報
【特許文献４】特公平６−１２５２９号公報
【特許文献５】特開平９−１６０７６０号公報
【特許文献６】特開平４−１８６１７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、メモリの内部構成は、メーカによって異なり、さらには、同一メーカの同種類のメモリでも、版数によって、その内部構成が異なる場合がほとんどである。そのため、メモリ試験プログラムを、ある一つのメモリに適応させて作成すると、別のメモリに対しては、内部構成が異なるため、その試験プログラムを利用できず、別のメモリのために、試験プログラムを一から作成する必要があった。
【０００５】
このように、従来のメモリ試験プログラムは、内部構成が同一のメモリ毎に作成する必要があり、非効率的であった。即ち、内部構成が異なるメモリに対しては、一から別の試験プログラムを作成する必要があり、試験プログラムの開発工数が膨大になるという問題があった。
【０００６】
そこで、本発明の目的は、メモリの内部構成に依存しない汎用的な試験プログラムによるメモリ試験方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明のメモリ試験方法は、メモリにアクセスする試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
複数ビットで特定される前記メモリ内の複数の物理アドレスそれぞれと、前記各物理アドレスにアクセスするための前記試験プログラムで指定するプログラムアドレスとの対応関係を、前記試験プログラムに対して外部より入力するステップと、
前記対応関係に従って、前記メモリの少なくとも一つの物理アドレスにアクセスするように、前記プログラムアドレスを指定するステップとを備えることを特徴とする。
【０００８】
本メモリ試験方法により、上記対応関係がそれぞれ異なる複数のメモリに対して、汎用的に試験プログラムを使用することができるようになる。
【０００９】
また、上記目的を達成するための本発明のメモリ試験方法は、メモリにアクセスしてデータを書き込む試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
前記メモリに書き込まれる少なくとも１ビットの第一のデータと、前記メモリに前記第一のデータを書き込むための前記試験プログラムで指定する少なくとも１ビットの第二のデータとの対応関係を、前記試験プログラムに対して外部より入力するステップと、
前記対応関係に従って、前記メモリに前記第一のデータを書き込むように、前記第二のデータを指定するステップとを備えることを特徴とする。
【００１０】
これにより、試験プログラムで指定するデータと、メモリに書き込まれるデータがメモリ毎に異なる場合、複数のメモリに対して、汎用的に試験プログラムを使用することができる。
【００１１】
さらに、上記目的を達成するための本発明のメモリ試験方法は、メモリにアクセスする試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
複数ビットで特定される前記メモリの物理アドレスにアクセスするために前記試験プログラムで指定するプログラムアドレスであって、それぞれ異なる複数ビット値を有する複数のプログラムアドレスによる前記メモリへのアクセス速度又はそれに対応する値を測定するステップと、
前記アクセス速度又はそれに対応する値に基づいて、前記プログラムアドレスのデータフォーマットを求めるステップとを備えることを特徴とする。
【００１２】
これにより、メモリの物理アドレスを指定するためのプログラムアドレスのデータフォーマットが不明である場合に、そのデータフォーマットを推定することが可能となる。プログラムアドレスのデータフォーマットは、メモリの物理アドレスを構成するロウアドレス及びカラムアドレス、バンク、メモリが複数の場合は、各メモリの識別情報、複数のメモリを制御するメモリコントローラが複数の場合は、メモリコントローラの識別情報それぞれに対応するビットを含む。
【００１３】
さらに、上記目的を達成するための本発明のメモリ試験方法は、メモリにアクセスする試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
複数ビットで特定される前記メモリ内の複数の物理アドレスそれぞれと、前記各物理アドレスにアクセスするための前記試験プログラムで指定するプログラムアドレスとの対応関係の全組み合わせから任意の一つを選択するステップと、
前記選択された対応関係に基づいて、複数の物理アドレスに連続してアクセスするステップと、
前記アクセスするステップにおいて第一のエラーが検出された場合、前記対応関係の全組み合わせから、前記第一のエラーが検出された前記複数の物理アドレスが隣接する組み合わせに絞り込むステップとを備えることを特徴とする。
【００１４】
これにより、メモリの物理アドレスと、試験プログラムで指定するプログラムアドレスとの対応関係を推定することが可能となる。
【００１５】
なお、前記対応関係の絞り込まれた組み合わせが複数の場合、さらに、前記絞り込まれた組み合わせから任意の一つを選択し、前記選択された対応関係に基づいて、複数の物理アドレスに連続してアクセスし、第二のエラーが検出された場合、前記対応関係の前記絞り込まれた複数の組み合わせから、さらに、前記第二のエラーが検出された前記複数の物理アドレスが隣接する組み合わせの対応関係に絞り込む。この工程を繰り返すことにより、対応関係を特定することできる。
【発明の効果】
【００１６】
本発明によれば、メモリ毎に、その内部構成が異なる場合（試験プレグラムで指定するプログラムアドレスとメモリ内の物理アドレスとの対応関係が異なる場合）であっても、メモリ試験プログラムに対して、メモリ毎の対応関係を外部から入力することで、メモリ試験プログラムを汎用的に使用することが可能となる。
【００１７】
また、内部構成が不明である場合であっても、その内部構成を推定することを可能とすることで、各種メモリに対して、メモリ試験プログラムを汎用的に使用することができるようになる。
【図面の簡単な説明】
【００１８】
【図１】コンピュータシステムの構成例を示す図である。
【図２】ＣＰＵ３からのアドレス指定信号と、一つのメモリモジュール１内の物理アドレスとの対応関係の例を示す図である。
【図３】メモリ内で隣接したアドレスが指定される場合の例を示す模式図である。
【図４】本発明の実施の形態のメモリ試験方法を説明する図である。
【図５】二次元マトリックスにおける本発明の実施の形態のメモリ試験を説明する図である。
【図６】プログラムデータと物理データとの対応関係の例を示す図である。
【図７】アドレス対応関係及びデータ対応関係の入力画面例である。
【図８】アクセス速度の相違を説明する図である。
【図９】データフォーマットを解析するための試験プログラムのフローチャートである。
【図１０】ロウアドレスとカラムアドレスのアドレス対応関係の探索の模式図である。
【図１１】アドレス対応関係の探索方法を説明する図である。
【図１２】アドレス対応関係の探索方法を詳細に説明する図である。
【図１３】アドレス対応関係の探索方法を詳細に説明する図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
【００２０】
図１は、コンピュータシステムの構成例を示す図である。図１（ａ）のコンピュータシステムにおいて、ＣＰＵ１は、メモリコントローラであるＭＡＣコントローラ２を介して、メモリモジュール３にアクセスする。メモリモジュール２は、所定数のメモリモジュール３を制御することができ、コンピュータシステムが、所定数より多いメモリモジュールを有する場合、複数のＭＡＣコントローラによって、複数のメモリモジュール３は制御される。図１（ａ）では、コンピュータシステムは、１６個のメモリモジュールを内蔵し、それぞれ４つのメモリモジュール３を制御するＭＡＣコントローラが４つ用意される。
【００２１】
図１（ｂ）は、各メモリモジュール３のアドレスマップの例を示す図である。図１（ｂ）において、メモリモジュール３のアドレスは、カラム（ＣＬＭ）アドレスとロウ（ＲＯＷ）アドレスで指定される二次元マトリックスで指定される。さらに、メモリモジュール３のアドレスが、複数の二次元マトリックスで構成される場合、各二次元マトリックスは、バンクアドレスで指定される。図１（ｃ）は、ＣＰＵ３からのアドレス指定信号のデータフォーマット例である。データフォーマットは、ロウアドレス、カラムアドレス、バンク、ＭＡＣコントローラ番号、（ＭＡＣ  ＮＯ．）、メモリモジュール番号（ＲＡＭ  ＮＯ．）を有する。
【００２２】
図２は、ＣＰＵ３からのアドレス指定信号（プログラムで指定するアドレス）と、一つのメモリモジュール１内の物理アドレスとの対応関係の例を示す図である。図示されるように、アドレス指定信号におけるロウアドレス及びカラムアドレスの各ビットと、メモリモジュール３内のロウアドレス及びカラムアドレスの各ビット位置とは、一致しない。このように、プログラムで指定するアドレスと、メモリモジュール１内の物理アドレスの対応関係は、メモリの種類、又は同一種類のメモリであってもその版数によって異なる。通常、メモリモジュール１内に内蔵される変換コントローラが、あらかじめ与えられた変換法則に従って、プログラムで指定するアドレスとメモリモジュール１内の物理アドレスとの間の変換処理を実行する。
【００２３】
一方、メモリ試験では、メモリ内の隣接するアドレスに対して連続してアクセスする必要がある。一般に、隣接するアドレスに連続してアクセス（読み出し及び／又は書き込み）する場合に、メモリエラー（読み出し（リード）エラー及び／又は書き込み（ライト）エラー）が発生する確率が高いからである。
【００２４】
図３は、メモリ内で、隣接したアドレスが指定される場合の例を示す模式図である。図３に示すように、隣接する２つのアドレスが指定されると、少なくとも一方のアドレスに対するリード又はライトにエラーが発生する。
【００２５】
従って、メモリ試験を実行するための試験プログラムを作成する場合、メモリ内の隣接するアドレスを連続して指定して、エラーの発生の有無を試験する必要がある。しかしながら、上述したように、プログラムで指定するアドレスと、メモリのアドレスとの対応関係は、メモリの種類などによって異なるので、試験プログラムを作成するプログラマは、メモリメーカから取得した上記対応関係（以下、アドレス対応関係と称す）の情報に基づいて、メモリ内の隣接するアドレスを連続してアクセスするような試験プログラムで指定するアドレスを組み込んだ試験プログラムを作成する。
【００２６】
このように作成された試験プログラムは、一種類（又は同じ種類の同じ版数）のメモリにのみ適用可能であって、別のメモリに対しては適用できない。
【００２７】
そこで、本発明の実施の形態では、汎用的な試験プログラムを作成するために、試験プログラムに対して、アドレス対応関係を、外部から入力可能とする。
【００２８】
図４は、本発明の実施の形態のメモリ試験方法を説明する図である。本実施の形態では、説明を簡単にするために、一次元の４ビットのアドレスについて考え、プログラムで指定するアドレス（以下、プログラムアドレスと称す）とメモリ内の物理アドレス（以下、物理アドレスと称す）とは、図４（ａ）のような対応関係であるとする。
【００２９】
本発明の実施の形態におけるメモリ試験方法では、プログラムアドレスと物理アドレスとの対応関係が外部から入力される。オペレータは、試験対象のメモリを格納するコンピュータシステムに、試験プログラムをロードし、試験プログラムを実行させる。そうすると、試験プログラムは、まず、プログラムアドレスのビットと物理アドレスのビットとの間のアドレス対応関係の入力を要求する。
【００３０】
オペレータは、あらかじめ取得したアドレス対応関係をキーボードなどの入力手段を用いて入力する。図４（ｂ）は、入力されるアドレス対応関係の例である。図４（ｂ）では、アドレス対応関係として、図５（ａ）に従って、プログラムアドレスのビット位置Ｐと、物理アドレスのビット位置Ｒとの対応関係が入力される。
【００３１】
アドレス対応関係が入力されると、試験プログラムは、メモリ内のアドレスに対するアクセスリストを作成する。図４（ｃ）は、アクセスリストの例である。アクセスリストは、全プログラムアドレスと全物理アドレスとの対応関係リストである。図４（ｃ）において、各リスト番号に対して、左側のアドレスが、プログラムアドレスであって、右側のアドレスが、物理アドレスである。例えば、リスト番号２では、プログラムアドレスは「０００１」であるので、プログラムアドレスのビット０３が「１」である。このとき、図４（ａ）のアドレス対応関係によれば、プログラムアドレスのビット０３は、物理アドレスのビット０２に対応するので、物理アドレスは、「００１０」となる。
【００３２】
試験プログラムは、アクセスリストを作成すると、メモリ内で隣接するアドレスに対して連続してアクセスする試験を実行する。具体的には、ある物理アドレスＡをリードアクセスし、続いて、その物理アドレスに隣接する物理アドレスＡ＋１をライトアクセスする。この連続したアクセスを、全物理アドレスに対して実行する。例えば、物理アドレス「００００」をリードアクセスした場合、続いて、隣接する物理アドレス「０００１」（「００００」＋「１」）をライトアクセスする。そのためには、試験プログラムは、アクセスリストに従って、プログラムアドレス「００００」（リスト番号１）、続いて「００１０」（リスト番号３）を指定する。同様に、物理アドレス「００１０」をリードアクセスし、隣接する物理アドレス「００１１」をライトアクセスする場合、試験プログラムは、プログラムアドレス「０００１」（リスト番号２）、続いて「００１１」（リスト番号４）を指定する。
【００３３】
さらに、説明を拡張して、メモリ内の二次元マトリックスでアドレスを指定する場合について説明する。
【００３４】
図５は、二次元マトリックスにおける本発明の実施の形態のメモリ試験を説明する図である。図５（ａ）は、二次元マトリックスにおけるロウアドレスとカラムアドレスそれぞれに対応するプログラムアドレスと物理アドレスとの対応関係の例を示す。図５（ｂ）は、メモリの二次元マトリックスを模式的に示す図である。
【００３５】
今、試験対象のアドレスが、図５（ｂ）の物理アドレス（３、３）、即ち（００１１、００１１）であるとする。この物理アドレスに対応するプログラムアドレスも、図５（ａ）の対応関係により、（００１１、００１１）である。
【００３６】
そして、この試験対象アドレスに隣接する８つのアドレス（図５（ｂ）のアドレス▲1▼〜▲8▼）のアクセスリストは、以下の表１の通りである。
【００３７】
【表１】
0004430122.tif 000002
【００３８】
試験プログラムは、試験対象アドレスに対して、物理アドレスにおいて、それに隣接する各アドレス▲1▲〜▲8▼を順に選択して、互いに隣接する２つのアドレスを連続にアクセスする試験を自動的に実行する。即ち、試験対象アドレスとアドレス▲1▼、試験対象アドレスとアドレス▲2▼、…、試験対象アドレスとアドレス▲8▼の組み合わせによる試験が行われる。試験プログラムは、上記アクセスリストに従って、選択された物理アドレスにアクセスするためのプログラムアドレスを指定する。
【００３９】
ところで、上述のように、プログラムアドレスと物理アドレスとが異なる場合は別に、プログラムで指定するデータ（プログラムデータと称す）とメモリ内に格納されるデータ（物理データと称す）とが異なる場合もある。メモリモジュール１内の変換コントローラは、あらかじめ与えられた変換法則に従って、プログラムデータと物理データとの間の変換処理を実行する。
【００４０】
図６は、プログラムデータと物理データとの対応関係の例を示す図である。図６において、プログラムデータとしてオール「１」
「11111111111111111111111111111111」  …（１）
を指定した場合、図６に示す所定ビットに対するインバータ作用により、
「01110111011101110111011101110111」  …（２）
が格納される。逆に、物理データとして、オール「１」を格納したい場合は、上記データ（２）をプログラムデータとして指定すればよい。
【００４１】
従って、所定のアドレスに、所定のデータを書き込む試験を行う場合、試験プログラムは、このデータ対応関係の外部からの入力を受け付ける工程を有することで、データ対応関係がそれぞれ異なる複数のメモリに対して汎用的に利用することができるようになる。
【００４２】
図７は、アドレス対応関係及びデータ対応関係の入力画面例である。図７において、オペレータは、アドレス対応関係入力位置に、各物理アドレスのビット位置Ｒに対応するプログラムアドレスのビット位置Ｐの番号を入力し、さらに、その隣のデータ対応関係入力位置に、データ対応関係によってビット反転する場合は、「１」、ビット反転しない場合は、「０」を入力する。
【００４３】
なお、プログラムデータと物理データとの対応関係は、反転（インバータ）の関係に限られず、各種論理に基づいて設定可能である。
【００４４】
次に、本発明の別の実施の形態におけるメモリ試験方法ついて説明する。別の実施の形態では、試験プログラムが、アドレス指定信号のデータフォーマット及びアドレス対応関係を検出する方法について説明する。上述の図１（ａ）に示したコンピュータシステムのように、ＣＰＵ１配下の複数のＭＡＣコントローラそれぞれが、所定数のメモリモジュールを制御する構成のコンピュータシステムに対して、メモリ試験を実施する場合を想定する。
【００４５】
このとき、図１（ｃ）で示したアドレス指定信号のデータフォーマットも不明であるとする。但し、データフォーマットのビット数（例えば、３２ビット）は既知である。試験プログラムは、まず、データフォーマットを以下の方法で解析する。
【００４６】
一般に、ＣＰＵ１からメモリモジュール３の異なる複数のアドレス（物理アドレス）に対して連続してアクセスした場合、そのアクセス速度は、複数のアドレスの関係によって相違する。
【００４７】
図８は、アクセス速度の相違を説明する図である。図８（ａ）は、複数のアドレス（アドレス１とアドレス２）が、それぞれ異なるＭＡＣコントローラ２配下の別々のメモリモジュール３に存在する場合である。この場合、アドレス１とアドレス２に対して、異なるＭＡＣコントローラ２を経由してアクセスされる。従って、各ＭＡＣコントローラによる並列的なアクセス制御が可能となり、アクセス速度は高速となる。図８（ｂ）は、複数のアドレス（アドレス１とアドレス２）それぞれが、一つのＭＡＣコントローラ２配下の別々のメモリモジュール３に存在する場合である。この場合、アドレス１とアドレス２に対して、同じＭＡＣコントローラ２を経由してアクセスされる。従って、一つのＭＡＣコントローラによるアクセス制御となるため、アクセス速度は、図８（ａ）の場合より遅くなる。
【００４８】
このように、複数のアドレスに連続してアクセスする場合に、各アドレスが、同じＭＡＣコントローラに属するか、別々のＭＡＣコントローラに属するかによって、アクセス速度に差が生じる。さらに、アクセス速度は、複数のアドレスのＭＡＣコントローラに対する属性の他に、メモリモジュール、メモリモジュール内のバンク、カラムアドレス、ロウアドレスに対する各属性によっても、アクセス速度に差が生じることが知られている。即ち、複数のアドレスが、同じメモリモジュールに属するか否か、メモリモジュール内の同じバンク内にあるか否か、同じカラムアドレスであるか否か、同じロウアドレスであるか否かによって、アクセス速度が異なる。そして、このアクセス速度の差は、一般的に、ＭＡＣコントローラ、メモリモジュール、バンク、カラムアドレス、ロウアドレスの順に大きい。
【００４９】
従って、データフォーマット内のビットを立てる位置を変えながら、複数のアドレスにアクセスした場合のアクセス速度を測定することにより、データフォーマットを解析可能となる。
【００５０】
図９は、データフォーマットを解析するための試験プログラムのフローチャートである。説明を簡単にするために、データフォーマットは８ビットとする。複数のアドレスは、例えば、オールゼロのアドレス１＝00000000と、１ビットだけ「１」が立ったアドレス２である。試験プログラムは、アドレス１とアドレス２を連続してアクセスする。そして、アドレス２の「１」の立てられたビット位置をシフトさせながら、アドレス１とアドレス２の連続アクセスを実行する。最初は、アドレス１と、最下位ビットに「１」が立てられてアドレス２に対する連続アクセスが行われる。
【００５１】
図９において、まずアドレス２＝Ａを指定する（Ｓ８０）。最初のアドレス２は、00000001である。次に、測定開始時間を記憶する（Ｓ８１）。時間は、コンピュータシステムのシステムタイマによって測定される。そして、アドレス１を読み出す（Ｓ８２）。続いて、アドレス２＝Ａを読み出す（Ｓ８３）。Ｓ８２とＳ８３を所定回数（例えば、１００回程度）繰り返す（Ｓ８４）。アクセス速度の差を、比較できる程度に大きくするためである。所定回数の読み出しが終了すると、測定終了時間を記憶する（Ｓ８５）。ステップＳ８１の測定開始時間と測定終了時間との差分から、アクセス時間を算出する（Ｓ８６）。
【００５２】
そして、アドレス２＝Ａの「１」の位置を１ビットずつ上位にシフトし（Ｓ８８）、上記ステップＳ８０乃至Ｓ８６を繰り返し、各アクセス時間を測定する。最後に、アドレス２＝Ａの最上位ビットに「１」が立ったアドレス２＝Ａ、即ち、10000000のアクセス時間を測定する（Ｓ８７）。
【００５３】
以下の表２は、アクセス時間の測定結果の例である。表２において、
【００５４】
【表２】
0004430122.tif 000003
【００５５】
表１のように、アクセス時間は複数段階（例えばa、b、c、d、e）にグループ分けされる。ここで、アクセス時間について、a<b<c<d<eである場合、アクセス時間が小さいほど、アクセス速度は速いので、上記表１において、「１」の立っているビット位置は、上記表１のカッコ内に示す要素に対応すると判定することができる。例えば、最下位ビットは、ＭＡＣコントローラを指定するビットである。
【００５６】
また、所定の測定時間におけるアクセス回数をカウントしてもよい。アクセス回数が多いほどアクセス速度が速いことから、上述同様に、グループ分けされるアクセス回数から、各ビットに対応する要素を判定することができる。
【００５７】
このようにして、データフォーマットが解析されると、次に、ロウアドレスとカラムアドレスそれぞれのアドレス対応関係を探索する。ロウアドレスのアドレス対応関係を探索する場合は、カラムアドレスを固定して、ロウアドレスを変化させ、カラムアドレスのアドレス対応関係を探索する場合は、ロウアドレスを固定して、カラムアドレスを変化させればよい。
【００５８】
図１０は、ロウアドレスとカラムアドレスのアドレス対応関係の探索の模式図である。図１０（ａ）は、ロウアドレスを変化させる場合を示す。カラムアドレスをある列に固定して、ロウアドレスを変化させ、その列のアクセスが終了したら、次の列にカラムアドレスを固定して、ロウアドレスを変化させる。このようにして、全てのアドレスに対してアクセスする。一方、図１０（ｂ）は、カラムアドレスを変化させる場合を示す。ロウアドレスをある行に固定して、カラムアドレスを変化させ、その行のアクセスが終了したら、次の行にロウアドレスを固定して、カラムアドレスを変化させる。こうして、全てのアドレスに対してアクセスする。
【００５９】
図１１は、アドレス対応関係の探索方法を説明する図である。説明を簡単にするために、一次元４ビットのアドレス対応関係を探索する場合を例に説明する。図１１（ａ）は、プログラムアドレスと物理アドレスとの正しい対応関係を示す図であって、この対応関係を探索する。そして、図１１（ｂ）に示すように、物理アドレスＲＡ０６（「０１１０」）とＲＡ０７（「０１１１」）を連続してアクセスすると、物理アドレスＲＡ０７にエラーが発生するものとする。
【００６０】
試験プログラムは、ランダムに、プログラムアドレスと物理アドレスとの対応関係を生成する。例えば、試験プログラムは、図１１（ｃ）のような、間違った対応関係を生成する。
【００６１】
表３は、図１１（ｃ）の対応関係のアクセスリストである。なお、表２には、参照のため、図１１（ａ）の対応関係に従った正しい物理アドレスも示される。
【００６２】
【表３】
0004430122.tif 000004
【００６３】
表３によれば、図１１（ｃ）の間違った対応関係に従って、隣接する物理アドレスＲＡ０６とＲＡ０７に連続アクセスするために、プログラムアドレスＰＡ１０（「１０１０」）とＰＡ１４（「１１１０」）が連続して指定される。しかしながら、このプログラムアドレスの指定では、実際は、隣接しない物理アドレスＲＡ０５とＲＡ１３へのアクセスとなり、エラーが発生しない。従って、この表２の対応関係は、間違っていると判断することができる。
【００６４】
このように、対応関係の全ての組み合わせについて、隣接する物理アドレスにアクセスする試験を行い、エラーが発生しない組み合わせをはずしていくことで、アドレス対応関係を絞り込んでいくことができる。
【００６５】
アドレス対応関係の探索方法について、さらに詳しく説明する。図１２及び図１３は、アドレス対応関係の探索方法を詳細に説明する図である。図１２において、試験プログラムは、プログラムアドレスのビット位置（Ｐ）及び物理アドレスのビット位置（Ｒ）の対応関係の全ての組み合わせ（図１２（ａ））から、ランダムに一つのアドレス対応関係を生成する（図１２（ｂ））。このとき、正しいアドレス対応関係は、図１２（ａ）の関係であるとする。また、図１１（ｂ）同様に、隣接する物理アドレスＲＡ０６とＲＡ０７に連続してアクセスした場合に、物理アドレスＲＡ０７にエラーが発生するものとする。
【００６６】
試験プログラムは、図１２（ｂ）のアドレス対応関係に従って、図１２（ｃ）に示すアクセスリストを作成する。なお、図１２（ｃ）には、参照のために、プグラムアドレスに対応する正しい物理アドレスも示されている。図１２（ｃ）のアクセスリストに従って、試験プログラムは、隣接する物理アドレスに連続してアクセスを行う。
【００６７】
試験プログラムは、物理アドレスＲＡ０６とＲＡ０７に連続してアクセスするために、プログラムアドレスＰＡ０９とＰＡ１１を指定する。このプログラムアドレスの指定によって、物理アドレスＲＡ０６とＲＡ０７が正しく指定されるので、エラーが発生する。
【００６８】
従って、試験プログラムは、図１２（ｃ）のアクセスリストのうち、
プログラムアドレスＰＡ０９−物理アドレスＲＡ０６  …（３）
プログラムアドレスＰＡ１１−物理アドレスＲＡ０７  …（４）
の対応関係は、正しいものと推定する。そして、上記（３）及び（４）それぞれの関係を満たすビット位置の対応関係は、図１２（ｄ）及び（ｅ）に示され、それら両方を満たす対応関係が、図１２（ｆ）に示される。しかしながら、図１２（ｆ）では、プログラムアドレス及び物理アドレスのビット位置の組み合わせは、絞り込まれているが、一対一に特定されていない。
【００６９】
試験プログラムは、さらに、同種の別メモリについて２回目の試験を行う。試験プログラムは、１回目の試験で絞り込まれた図１３（ａ）（図１２（ｆ）と同じ）のビット位置の対応関係を満たす組み合わせから、ランダムに一つのアドレス対応関係を生成する（図１３（ｂ））。このとき、正しいアドレス対応関係は、図１１（ａ）の関係であるとする。また、今回の試験では、隣接する物理アドレスＲＡ０１とＲＡ０２に連続してアクセスした場合に、物理アドレスＲＡ０２にエラーが発生するものとする。
【００７０】
試験プログラムは、図１３（ｂ）のアドレス対応関係に従って、図１３（ｃ）に示すアクセスリストを作成する。なお、図１３（ｂ）には、プログラムアドレスに対応する正しい物理アドレスも、参照のために示されている。図１３（ｃ）のアクセスリストに従って、試験プログラムは、隣接する物理アドレスに連続してアクセスを行う。
【００７１】
試験プログラムは、物理アドレスＲＡ０１とＲＡ０２に連続してアクセスするために、プログラムアドレスＰＡ０２とＰＡ０１を指定する。このプログラムアドレスの指定によって、物理アドレスＲＡ０１とＲＡ０２が正しく指定されるので、エラーが発生する。
【００７２】
従って、試験プログラムは、図１３（ｃ）のアクセスリストのうち、
プログラムアドレスＰＡ０２−物理アドレスＲＡ０１  …（５）
プログラムアドレスＰＡ０１−物理アドレスＲＡ０２  …（６）
の対応関係は、正しいものと推定する。そして、上記（５）及び（６）それぞれの関係を満たすアドレス対応関係が、図１３（ｄ）及び（ｅ）に示される。そして、試験プログラムは、それら両方のアドレス対応関係、さらには、初回の試験で絞り込まれたアドレス対応関係（図１３（ａ））を満たすアドレス対応関係を探索し、図１３（ｆ）に示されるように、プログラムアドレスと物理アドレスが一対一に特定されるアドレス対応関係が求められる。
【００７３】
なお、２回目の試験によっても、一対一のアドレス対応関係が求められない場合は、試験プログラムは、さらに別のメモリについて試験を行い、アドレス対応関係が一対一に特定されるまで、上述の試験を繰り返せばよい。
【００７４】
また、一つのメモリに、隣接すると推定される複数の物理アドレスへの連続アクセスによって、複数のエラーが発生する場合は、上述の別メモリを使用する場合と同様に、各エラー毎に、アドレス対応関係の組み合わせを絞り込んでいけばよい。
【００７５】
なお、本発明におけるメモリは、ＲＡＭ、ＲＯＭなどの記憶素子であって、その種類は限定されない。
【００７６】
（付記１）メモリにアクセスする試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
複数ビットで特定される前記メモリ内の複数の物理アドレスそれぞれと、前記各物理アドレスにアクセスするための前記試験プログラムで指定するプログラムアドレスとの対応関係を、前記試験プログラムに対して外部より入力するステップと、
前記対応関係に従って、前記メモリの少なくとも一つの物理アドレスにアクセスするように、前記プログラムアドレスを指定するステップとを備えることを特徴とするメモリ試験方法。
【００７７】
（付記２）付記１において、
互いに隣接する物理アドレスに連続してアクセスするように、前記プログラムアドレスを指定することを特徴とするメモリ試験方法。
【００７８】
（付記３）メモリにアクセスしてデータを書き込む試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
前記メモリに書き込まれる少なくとも１ビットの第一のデータと、前記メモリに前記第一のデータを書き込むための前記試験プログラムで指定する少なくとも１ビットの第二のデータとの対応関係を、前記試験プログラムに対して外部より入力するステップと、
前記対応関係に従って、前記メモリに前記第一のデータを書き込むように、前記第二のデータを指定するステップとを備えることを特徴とするメモリ試験方法。
【００７９】
（付記４）メモリにアクセスする試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
複数ビットで特定される前記メモリの物理アドレスにアクセスするために前記試験プログラムで指定するプログラムアドレスであって、それぞれ異なる複数ビット値を有する複数のプログラムアドレスによる前記メモリへのアクセス速度又はそれに対応する値を測定するステップと、
前記アクセス速度又はそれに対応する値に基づいて、前記プログラムアドレスのデータフォーマットを求めるステップとを備えることを特徴とするメモリ試験方法。
【００８０】
（付記５）付記４において、
前記プログラムアドレスのデータフォーマットは、前記メモリの物理アドレスを構成するロウアドレス及びカラムアドレス、バンク、前記メモリが複数の場合は、各メモリの識別情報、前記複数のメモリを制御するメモリコントローラが複数の場合は、前記メモリコントローラの識別情報それぞれに対応するビットを含むことを特徴とするメモリ試験方法。
【００８１】
（付記６）メモリにアクセスする試験プログラムを実行することにより、前記メモリのエラーを検出するメモリ試験方法において、
複数ビットで特定される前記メモリ内の複数の物理アドレスそれぞれと、前記各物理アドレスにアクセスするための前記試験プログラムで指定するプログラムアドレスとの対応関係の全組み合わせから任意の一つを選択するステップと、
前記選択された対応関係に基づいて、複数の物理アドレスに連続してアクセスするステップと、
前記アクセスするステップにおいて第一のエラーが検出された場合、前記対応関係の全組み合わせから、前記第一のエラーが検出された前記複数の物理アドレスが隣接する組み合わせに絞り込むステップとを備えることを特徴とするメモリ試験方法。
【００８２】
（付記７）付記６において、
前記対応関係の絞り込まれた組み合わせが複数の場合、さらに、前記絞り込まれた組み合わせから任意の一つを選択するステップと、
前記選択された対応関係に基づいて、複数の物理アドレスに連続してアクセスするステップと、
前記アクセスするステップにおいて第二のエラーが検出された場合、前記対応関係の前記絞り込まれた組み合わせから、さらに、前記第二のエラーが検出された前記複数の物理アドレスが隣接する組み合わせの対応関係に絞り込むステップとを備えることを特徴とするメモリ試験方法。
【００８３】
（付記８）メモリにアクセスして、前記メモリのエラーを検出するためのメモリ試験プログラムを格納するコンピュータ読み取り可能な記録媒体において、前記メモリ試験プログラムは、
複数ビットで特定される前記メモリ内の複数の物理アドレスそれぞれと、前記各物理アドレスにアクセスするための前記試験プログラムで指定するプログラムアドレスとの対応関係の入力を受け付けるステップと、
前記対応関係に従って、前記メモリの少なくとも一つの物理アドレスにアクセスするように、前記プログラムアドレスを指定するステップとを備えることを特徴とする記録媒体。
【００８４】
（付記９）メモリにアクセスし、前記メモリのエラーを検出するためのメモリ試験プログラムを格納するコンピュータ読み取り可能な記録媒体において、前記メモリ試験プログラムは、
複数ビットで特定される前記メモリの物理アドレスにアクセスするために前記試験プログラムで指定するプログラムアドレスであって、それぞれ異なる複数ビット値を有する複数のプログラムアドレスによる前記メモリへのアクセス速度又はそれに対応する値を測定するステップと、
前記アクセス速度又はそれに対応する値に基づいて、前記プログラムアドレスのデータフォーマットを求めるステップとを備えることを特徴とする記録媒体。（付記１０）メモリにアクセスし、前記メモリのエラーを検出するためのメモリ試験プログラムを格納するコンピュータ読み取り可能な記録媒体において、前記メモリ試験プログラムは、
複数ビットで特定される前記メモリ内の複数の物理アドレスそれぞれと、前記各物理アドレスにアクセスするための前記試験プログラムで指定するプログラムアドレスとの対応関係の全組み合わせから任意の一つを選択するステップと、
前記選択された対応関係に基づいて、複数の物理アドレスに連続してアクセスするステップと、
前記アクセスするステップにおいて第一のエラーが検出された場合、前記対応関係の全組み合わせから、前記第一のエラーが検出された前記複数の物理アドレスが隣接する組み合わせに絞り込むステップとを備えることを特徴とする記録媒体。
【００８５】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【符号の説明】
【００８６】
１  ＣＰＵ
２  メモリコントローラ
３  メモリ
【図１】
0004430122.tif 000005
【図２】
0004430122.tif 000006
【図３】
0004430122.tif 000007
【図４】
0004430122.tif 000008
【図５】
0004430122.tif 000009
【図６】
0004430122.tif 000010
【図７】
0004430122.tif 000011
【図８】
0004430122.tif 000012
【図９】
0004430122.tif 000013
【図１０】
0004430122.tif 000014
【図１１】
0004430122.tif 000015
【図１２】
0004430122.tif 000016
【図１３】
0004430122.tif 000017