(57)【要約】【課題】メモリ動作を決定する複数のパラメータを適切な値に調整する。【解決手段】複数のパラメータが取り得る値の複数の組み合わせを管理するパラメータ管理部１１ａと、パラメータ管理部１１ａによって管理されている複数の組み合わせを複数のパラメータに順次設定するパラメータ設定部１１ｄと、パラメータ設定部１１ｄによって複数の組み合わせが複数のパラメータに順次設定される都度、メモリ２とメモリコントローラ１２との間のメモリ動作の試験を行い、その試験の判定結果を蓄積するパラメータ試験部１１ｂと、パラメータ試験部１１ｂに蓄積された試験の判定結果に基づいて、複数の組み合わせの中の１組を決定するパラメータ決定部１１ｃと、を備え、パラメータ設定部１１ｄは、パラメータ決定部１１ｃによって決定された複数の組み合わせの中の１組を複数のパラメータに設定する。【選択図】図１
2010160724.tif 000002
【特許請求の範囲】
【請求項１】
メモリとメモリコントローラとの間のメモリ動作を決定する複数のパラメータが取り得る値の複数の組み合わせを管理するパラメータ管理手段と、
前記パラメータ管理手段によって管理されている前記複数の組み合わせを前記複数のパラメータに順次設定するパラメータ設定手段と、
前記パラメータ設定手段によって前記複数の組み合わせが前記複数のパラメータに順次設定される都度、前記メモリと前記メモリコントローラとの間のメモリ動作の試験を行い、その試験の判定結果を蓄積するパラメータ試験手段と、
前記パラメータ試験手段に蓄積された試験の判定結果に基づいて、前記複数の組み合わせの中の１組を決定するパラメータ決定手段と、
を備え、
前記パラメータ設定手段は、前記パラメータ決定手段によって決定された前記複数の組み合わせの中の１組を前記複数のパラメータに設定すること
を特徴とするメモリ制御システム。
【請求項２】
前記パラメータ試験手段は、データストローブ信号（ＤＱＳ）又はライトデータ遅延に関するパラメータに値を設定して試験を行った場合に、当該試験の結果が不合格であると判定したときに、前記複数の組み合わせの中の当該試験において前記データストローブ信号（ＤＱＳ）又は前記ライトデータ遅延に関するパラメータに設定された値を含む１つ又は複数の組み合わせを前記パラメータ管理手段の管理範囲から除外すること
を特徴とする請求項１に記載のメモリ制御システム。
【請求項３】
前記パラメータ試験手段は、
前記メモリの特定の領域内のアドレスに対して特定のデータを書き込んだ後、前記メモリの前記特定の領域の前記アドレスからデータを読み出し、書き込んだデータと読み出したデータとが一致するか否かの判定を行うことを前記アドレスを前記特定の領域内で変化させながら複数回繰り返すことで、ヴェリファイを実現するメモリ領域ヴェリファイ手段と、
前記メモリ領域ヴェリファイ手段によって行われた複数回の判定の結果を記憶するヴェリファイ結果記憶手段と、
前記メモリの前記特定の領域に行われた前記複数回の判定の総回数に対する前記ヴェリファイ結果記憶手段に記憶されている前記複数回の判定の結果の中の合格となった数の比率が所定の比率以上となった場合に、前記メモリの前記特定の領域に実施されたヴェリファイの結果が合格であった旨を記憶するメモリ領域試験結果記憶手段と、
を備えることを特徴とする請求項１又は２に記載のメモリ制御システム。
【請求項４】
前記メモリ領域ヴェリファイ手段は、前記ヴェリファイ結果記憶手段に記憶されている前記複数回の判定の結果に従って、次の書き込み及び読み出しを行う前記アドレスを決定すること
を特徴とする請求項３に記載のメモリ制御システム。
【請求項５】
前記パラメータ管理手段は、前記メモリ領域試験結果記憶手段に記憶されているヴェリファイの結果に応じて、前記複数の組み合わせの中から前記複数のパラメータに次に設定する組み合わせを決定すること
を特徴とする請求項３に記載のメモリ制御システム。
【請求項６】
前記複数のパラメータは、前記メモリ側へ設定する１つ又は複数のパラメータを含むこと
を特徴とする請求項１乃至５のいずれか一つに記載のメモリ制御システム。
【請求項７】
不揮発性メモリと、
前記パラメータ決定手段によって決定され、前記パラメータ設定手段によって前記複数のパラメータに設定された前記複数の組み合わせの中の１組の値を前記不揮発性メモリに記憶する設定値記憶手段と、
前記複数の組み合わせの中の１組の値が前記不揮発性メモリに記憶されているか否かを判定するパラメータ設定履歴判定手段と、
を更に備え、
前記パラメータ設定履歴判定手段は、前記メモリ制御システムの起動時又は再起動時に、前記複数の組み合わせの中の１組の値が前記不揮発性メモリに記憶されていると判定した場合は、前記不揮発性メモリに記憶されている前記複数の組み合わせの中の１組の値を前記複数のパラメータの起動時又は再起動時の設定値とすること
を特徴とする請求項１乃至６のいずれか一つに記載のメモリ制御システム。
【請求項８】
メモリとメモリコントローラとの間のメモリ動作を決定する複数のパラメータが取り得る値の複数の組み合わせを管理するパラメータ管理ステップと、
前記パラメータ管理ステップによって管理されている前記複数の組み合わせを前記複数のパラメータに順次設定するパラメータ設定ステップと、
前記パラメータ設定ステップによって前記複数の組み合わせが前記複数のパラメータに順次設定される都度、前記メモリと前記メモリコントローラとの間のメモリ動作の試験を行い、その試験の判定結果を蓄積するパラメータ試験ステップと、
前記パラメータ試験ステップに蓄積された試験の判定結果に基づいて、前記複数の組み合わせの中の１組を決定するパラメータ決定ステップと、
を有し、
前記パラメータ設定ステップは、前記パラメータ決定ステップによって決定された前記複数の組み合わせの中の１組を前記複数のパラメータに設定すること
を特徴とするメモリ制御方法。
【請求項９】
前記パラメータ試験ステップは、データストローブ信号（ＤＱＳ）又はライトデータ遅延に関するパラメータに値を設定して試験を行った場合に、当該試験の結果が不合格であると判定したときに、前記複数の組み合わせの中の当該試験において前記データストローブ信号（ＤＱＳ）又は前記ライトデータ遅延に関するパラメータに設定された値を含む１つ又は複数の組み合わせを前記パラメータ管理ステップの管理範囲から除外すること
を特徴とする請求項８に記載のメモリ制御方法。
【請求項１０】
前記パラメータ試験ステップは、
前記メモリの特定の領域内のアドレスに対して特定のデータを書き込んだ後、前記メモリの前記特定の領域の前記アドレスからデータを読み出し、書き込んだデータと読み出したデータとが一致するか否かの判定を行うことを前記アドレスを前記特定の領域内で変化させながら複数回繰り返すことで、ヴェリファイを実現するメモリ領域ヴェリファイステップと、
前記メモリ領域ヴェリファイステップによって行われた複数回の判定の結果を記憶するヴェリファイ結果記憶ステップと、
前記メモリの前記特定の領域に行われた前記複数回の判定の総回数に対する前記ヴェリファイ結果記憶ステップで記憶された前記複数回の判定の結果の中の合格となった数の比率が所定の比率以上となった場合に、前記メモリの前記特定の領域に実施されたヴェリファイの結果が合格であった旨を記憶するメモリ領域試験結果記憶ステップと、
を含むことを特徴とする請求項８又は９に記載のメモリ制御方法。
【請求項１１】
前記メモリ領域ヴェリファイステップは、前記ヴェリファイ結果記憶ステップで記憶された前記複数回の判定の結果に従って、次の書き込み及び読み出しを行う前記アドレスを決定すること
を特徴とする請求項１０に記載のメモリ制御方法。
【請求項１２】
前記パラメータ管理ステップは、前記メモリ領域試験結果記憶ステップで記憶されたヴェリファイの結果に応じて、前記複数の組み合わせの中から前記複数のパラメータに次に設定する組み合わせを決定すること
を特徴とする請求項１０に記載のメモリ制御方法。
【請求項１３】
前記複数のパラメータは、前記メモリ側へ設定する１つ又は複数のパラメータを含むこと
を特徴とする請求項８乃至１２のいずれか一つに記載のメモリ制御方法。
【請求項１４】
不揮発性メモリを備えたメモリ制御システムが実行する方法であって、
前記パラメータ決定ステップによって決定され、前記パラメータ設定ステップによって前記複数のパラメータに設定された前記複数の組み合わせの中の１組の値を前記不揮発性メモリに記憶する設定値記憶ステップと、
前記複数の組み合わせの中の１組の値が前記不揮発性メモリに記憶されているか否かを判定するパラメータ設定履歴判定ステップと、
を更に有し、
前記パラメータ設定履歴判定ステップは、前記メモリ制御システムの起動時又は再起動時に、前記複数の組み合わせの中の１組の値が前記不揮発性メモリに記憶されていると判定した場合は、前記不揮発性メモリに記憶されている前記複数の組み合わせの中の１組の値を前記複数のパラメータの起動時又は再起動時の設定値とすること
を特徴とする請求項８乃至１３のいずれか一つに記載のメモリ制御方法。
【請求項１５】
請求項８乃至１４のいずれか一つに記載されたメモリ制御方法をコンピュータに実行させるためのメモリ制御プログラム。
【請求項１６】
請求項１５に記載されたメモリ制御プログラムを格納したコンピュータの読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御システム、メモリ制御方法、メモリ制御プログラム及び記録媒体に関するものである。
【背景技術】
【０００２】
近年、コンピュータシステムを内蔵したＯＡ機器の制御系等に、ＤＤＲ−ＳＤＲＡＭ（double data rate synchronous dynamic random access memory）、ＤＤＲ２−ＳＤＲＡＭ等のダブルデータレート型メモリが搭載されている。ＤＤＲ−ＳＤＲＡＭ等においては、データストローブ信号（ＤＱＳ）の立ち上がりタイミング及び立ち下がりタイミングの両方に同期してデータ信号（ＤＱ）の読み書きが行われる。
【０００３】
ＤＤＲ−ＳＤＲＡＭ等を搭載した機器等においては、メモリアクセスに関する電気的特性を決めるパラメータを設定する必要がある。しかしながら、ＤＤＲ−ＳＤＲＡＭ等のメモリアクセスに関するパラメータの種類は多く、従って、そのようなパラメータの組み合わせの数も多いので、最適なパラメータを見つけるには多くの時間を必要とする。
【０００４】
関連する技術として、本出願人は、ＤＤＲ−ＳＤＲＡＭにデータの読み書きを行なうメモリシステムに対し、データストローブ信号（ＤＱＳ）を遅延させてディレイ調整を行うディレイ調整手段を備え、ある特定の値を特定のアドレスに書き込み、ディレイ調整手段のディレイ値を変更しながら、書き込んだアドレスと同じアドレスへ読み込み、両者の値を比較して認識し、認識した読み込み可能範囲の中間値をディレイ調整手段に設定するメモリ制御手段を備えたことを特徴とするメモリ制御装置等を提案した（例えば、下記の特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−９９３２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、データストローブ信号（ＤＱＳ）の遅延値に着目しており、データストローブ信号（ＤＱＳ）の遅延値以外のパラメータ（例えば、メモリ側のＯＤＴ等）は事前に設定されていることが前提と考えられる。そのため、データストローブ信号（ＤＱＳ）の遅延値以外のパラメータ（例えば、メモリ側のＯＤＴ等）の設定に起因するアクセス不良がある場合、データストローブ信号（ＤＱＳ）の遅延値の調整そのものが成功しない可能性がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、メモリ動作を決定する複数のパラメータ（リード、ライト、その他）を網羅し、複数のパラメータの組み合わせを管理しながら複数のパラメータを適切な値に調整することが可能なメモリ制御システム、メモリ制御方法、メモリ制御プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明にかかるメモリ制御システムは、メモリとメモリコントローラとの間のメモリ動作を決定する複数のパラメータが取り得る値の複数の組み合わせを管理するパラメータ管理手段と、前記パラメータ管理手段によって管理されている前記複数の組み合わせを前記複数のパラメータに順次設定するパラメータ設定手段と、前記パラメータ設定手段によって前記複数の組み合わせが前記複数のパラメータに順次設定される都度、前記メモリと前記メモリコントローラとの間のメモリ動作の試験を行い、その試験の判定結果を蓄積するパラメータ試験手段と、前記パラメータ試験手段に蓄積された試験の判定結果に基づいて、前記複数の組み合わせの中の１組を決定するパラメータ決定手段と、を備え、前記パラメータ設定手段は、前記パラメータ決定手段によって決定された前記複数の組み合わせの中の１組を前記複数のパラメータに設定することを特徴とする。
【０００９】
また、本発明にかかるメモリ制御方法は、メモリとメモリコントローラとの間のメモリ動作を決定する複数のパラメータが取り得る値の複数の組み合わせを管理するパラメータ管理ステップと、前記パラメータ管理ステップによって管理されている前記複数の組み合わせを前記複数のパラメータに順次設定するパラメータ設定ステップと、前記パラメータ設定ステップによって前記複数の組み合わせが前記複数のパラメータに順次設定される都度、前記メモリと前記メモリコントローラとの間のメモリ動作の試験を行い、その試験の判定結果を蓄積するパラメータ試験ステップと、前記パラメータ試験ステップに蓄積された試験の判定結果に基づいて、前記複数の組み合わせの中の１組を決定するパラメータ決定ステップと、を有し、前記パラメータ設定ステップは、前記パラメータ決定ステップによって決定された前記複数の組み合わせの中の１組を前記複数のパラメータに設定することを特徴とする。
【００１０】
また、本発明にかかるメモリ制御プログラムは、請求項８乃至１４のいずれか一つに記載されたメモリ制御方法をコンピュータに実行させる。
【００１１】
また、本発明にかかる記録媒体は、請求項１５に記載されたメモリ制御プログラムを格納したコンピュータの読み取り可能な記録媒体であることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、メモリ動作を決定する複数のパラメータ（リード、ライト、その他）を網羅し、複数のパラメータの組み合わせを管理しながら複数のパラメータを適切な値に調整することが可能となるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態にかかるメモリ制御システムを適用した機器の構成を示すブロック図である。
【図２】第１の実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。
【図３】第１の実施の形態にかかるメモリ制御システムによるヴェリファイ結果の一例を示す図である。
【図４】第１の実施の形態にかかるメモリ制御システムによるヴェリファイ結果の一例を示す図である。
【図５】第１の実施の形態にかかるメモリ制御システムによるヴェリファイ結果の一例を示す図である。
【図６】第２の実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。
【図７】第２の実施の形態にかかるメモリ制御システムによってメモリアクセス試験が実施されるパラメータの組み合わせを示す図である。
【図８】第３の実施の形態にかかるメモリ制御システムのパラメータ試験部の内部構成を示す図である。
【図９】第３の実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。
【図１０】第５の実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。
【図１１】メモリのヴェリファイ領域に行われた複数回の判定の総回数に対する複数回の判定の結果の中の合格となった数の比率と第５の実施の形態によって算出されるパラメータの設定値のステップ幅との関係を示す図である。
【図１２】第７の実施の形態にかかるメモリ制御システムを適用した機器の構成を示すブロック図である。
【図１３】第７の実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明にかかるメモリ制御システム、メモリ制御方法、メモリ制御プログラム及び記録媒体の実施の形態を詳細に説明する。
【００１５】
（第１の実施の形態）
図１は、本発明の第１の実施の形態にかかるメモリ制御システムを適用した機器の構成を示すブロック図である。
【００１６】
図１に示す機器は、制御装置１と、ダブルデータレート型メモリ（ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭ等）２と、を含んでいる。制御装置１は、メモリ制御システム１１と、メモリコントローラ１２と、を含んでいる。メモリコントローラ１２はメモリ２に接続されており、メモリ制御システム１１はメモリコントローラ１２を介してメモリ２へのアクセス（リード、ライト、ヴェリファイ（verify）等）を行う。
【００１７】
メモリ制御システム１１は、本発明のパラメータ管理手段としてのパラメータ管理部１１ａと、本発明のパラメータ試験手段としてのパラメータ試験部１１ｂと、本発明のパラメータ決定手段としてのパラメータ決定部１１ｃと、本発明のパラメータ設定手段としてのパラメータ設定部１１ｄと、を含んでいる。
【００１８】
メモリ制御システム１１は、ハードウェアで実現することもでき、ＣＰＵとプログラム（ソフトウェア）で実現することもできる。また、制御装置１は、メモリコントローラ内蔵型のＣＰＵ、種々の機器に利用される汎用の半導体集積回路であるノースブリッジ、ＡＳＩＣ等で実現することができる。
【００１９】
パラメータ管理部１１ａは、メモリコントローラ１２とメモリ２との間のメモリ動作を決定するメモリコントローラ１２側及び／又はメモリ２側の複数のパラメータが取り得る値の複数の組み合わせを管理する。
【００２０】
パラメータ試験部１１ｂは、パラメータ設定部１１ｄによって複数のパラメータに値が設定される都度、メモリコントローラ１２を介してデータのリード及び／又はライトをメモリ２に行うことでメモリアクセス試験を行い、その試験の判定結果を蓄積、管理する。
【００２１】
パラメータ決定部１１ｃは、パラメータ試験部１１ｂに蓄積された試験の判定結果に基づいて、複数のパラメータが取り得る複数の組み合わせの中の１組を選択、決定することで、複数のパラメータの好適（最適）な設定値を決定する。
【００２２】
パラメータ設定部１１ｄは、パラメータ管理部１１ａ及び／又はパラメータ決定部１１ｃからの情報に従い、メモリコントローラ１２に対して及び／又はメモリコントローラ１２を介してメモリ２に対して、複数の組み合わせの値を複数のパラメータに順次設定する。
【００２３】
メモリコントローラ１２は、メモリコントローラ１２側の１つ又は複数のパラメータを設定するための１つ又は複数のレジスタを有しており、メモリ２へ信号を送信する機能及びメモリ２から信号を受信する機能を備え、メモリ２とメモリ制御システム１１との間のインタフェースを担う。また、メモリコントローラ１２は、メモリ制御システム１１からの指示に応じて、メモリ２に１つ又は複数のパラメータ（例えば、ＯＤＴ（On Die Termination）、ＯＣＤ（Off-Chip Driver）等）を設定する。
【００２４】
図２は、本実施の形態にかかるメモリ制御システム１の動作の手順を示すフローチャートである。
【００２５】
なお、ここでは２個のパラメータａ，ｂを設定する場合について説明するが、パラメータが３個以上の場合であっても同様に設定することが可能である。また、パラメータａ，ｂは、メモリコントローラ１２側のパラメータ（例えば、データストローブ信号（ＤＱＳ）の遅延値等）であっても良いし、メモリ２側のパラメータ（例えば、ＯＤＴ、ＯＣＤ等）であっても良い。
【００２６】
図２を参照すると、まず、パラメータ設定部１１ｄが、パラメータ管理部１１ａから与えられる最小値をパラメータａ，ｂに設定する（ステップＳ２０１）。例えば、パラメータａに設定可能な値が１から８までの整数値である場合には、パラメータ管理部１１ａは、最小値「１」をパラメータ設定部１１ｄに与え、パラメータ設定部１１ｄは、パラメータ管理部１１ａから与えられる最小値「１」をパラメータａに設定する。また、例えば、パラメータｂに設定可能な値が１から７までの整数値である場合には、パラメータ管理部１１ａは、最小値「１」をパラメータ設定部１１ｄに与え、パラメータ設定部１１ｄは、パラメータ管理部１１ａから与えられる最小値「１」をパラメータｂに設定する。
【００２７】
次に、パラメータ試験部１１ｂが、メモリ２の特定の領域（ヴェリファイ領域）に対してヴェリファイを実施する（ステップＳ２０２）。すなわち、パラメータ試験部１１ｂが、特定のデータをメモリ２の特定の領域に書き込んだ後、メモリ２の当該領域からデータを読み出し、書き込んだデータと読み出したデータとが一致するか否かを判定する。なお、書き込む参照データのサイズは任意のサイズで良いが、データサイズが大きい方が信頼性が高くなる。
【００２８】
そして、パラメータ試験部１１ｂは、ステップＳ２０２にて実施されたヴェリファイの結果（ここでは、「ＯＫ」（合格）又は「ＮＧ」（不合格））を記憶する（ステップＳ２０３）。なお、ここでは、ヴェリファイの結果は、メモリ２の特定の領域に書き込んだデータとメモリ２の特定の領域から読み出したデータとが完全一致した場合に「ＯＫ」（合格）とされ、それ以外の場合に「ＮＧ」（不合格）とされる。
【００２９】
次に、パラメータ管理部１１ａが、パラメータａの設定値が設定可能な範囲の最大値（ＭＡＸ）であるか否かを判定する（ステップＳ２０４）。
【００３０】
そして、パラメータａの設定値が設定可能な範囲の最大値ではないと判定した場合（ステップＳ２０４：Ｎｏ）、パラメータ管理部１１ａは、パラメータａの設定値をインクリメントする（ステップＳ２０５）。その後、処理はステップＳ２０２に戻る。
【００３１】
また、パラメータａの設定値が設定可能な範囲の最大値であると判定した場合（ステップＳ２０４：Ｙｅｓ）、パラメータ管理部１１ａは、パラメータｂの設定値が設定可能な範囲の最大値（ＭＡＸ）であるか否かを判定する（ステップＳ２０６）。
【００３２】
そして、パラメータｂの設定値が設定可能な範囲の最大値ではないと判定した場合（ステップＳ２０６：Ｎｏ）、パラメータ管理部１１ａは、パラメータａを最小値に設定するとともに、パラメータｂの設定値をインクリメントする（ステップＳ２０７）。その後、処理はステップＳ２０２に戻る。
【００３３】
上記のステップＳ２０２〜ステップＳ２０７を繰り返すことで、パラメータａ，ｂの全ての組み合わせの試験を実施することが可能である。
【００３４】
また、パラメータｂの設定値が設定可能な範囲の最大値であると判定した場合（ステップＳ２０６：Ｙｅｓ）、パラメータ決定部１１ｃが、ステップＳ２０３で記憶されたヴェリファイ結果に基づいて、パラメータａ，ｂの好適（最適）な値を決定する（ステップＳ２０８）。なお、パラメータａ，ｂの好適（最適）な値の決定方法の例については、後述する。
【００３５】
そして、パラメータ設定部１１ｄが、ステップＳ２０８にて決定された値をパラメータａ，ｂに設定する（ステップＳ２０９）。
【００３６】
なお、本実施形態においては、パラメータａ，ｂに最小値を設定し、その後パラメータａ，ｂの値をインクリメントして最大値まで変化させることとしているが、パラメータａ，ｂの全ての組み合わせを網羅することが出来れば、他の方法を利用するようにしても良い。例えば、パラメータａ，ｂに最大値を設定し、その後パラメータａ，ｂの値をデクリメントして最小値まで変化させることとしても良い。
【００３７】
次に、ステップＳ２０８においてパラメータ決定部１１ｃが実施するパラメータａ，ｂの好適（最適）な値の決定方法の例について説明する。ここでは、パラメータａに設定可能な値が１から８までの整数値であり、パラメータｂに設定可能な値が１から７までの整数値であるものとする。
【００３８】
図３は、ステップＳ２０３において記憶されたヴェリファイ結果の一例を示す図である。図３において「○」が記載されているパラメータａ，ｂの組み合わせはヴェリファイが「ＯＫ」（合格）であったことを示し、それ以外（空欄）のパラメータａ，ｂの組み合わせはヴェリファイが「ＮＧ」（不合格）であったことを示す。
【００３９】
パラメータ決定部１１ｃは、図３中の各欄に関して、点数を算出する。例えば、パラメータ決定部１１ｃは、或る欄に関して、当該欄の上下左右方向に隣接する欄に「○」が記載されている場合には、当該欄に３点を加算する。また、パラメータ決定部１１ｃは、或る欄に関して、当該欄の上下左右方向に２個隣の欄に「○」が記載されている場合には、当該欄に１点を加算する。また、パラメータ決定部１１ｃは、或る欄に関して、当該欄の斜め方向に接する欄に「○」が記載されている場合には、当該欄に１点を加算する。
【００４０】
図４は、図３に示したヴェリファイ結果に対して上記した算出方法を実施することによって算出された点数を示す図である。例えば、（ａ，ｂ）＝（２，２）の欄に関して説明すると、当該欄の右方向に隣接する欄（（ａ，ｂ）＝（３，２）に対応）に「○」が記載されているので、パラメータ決定部１１ｃは、当該欄に３点を加算する。また、パラメータ決定部１１ｃは、当該欄の右斜め下方向に接する欄（（ａ，ｂ）＝（３，３）に対応）に「○」が記載されているので、当該欄に１点を加算する。その結果、当該欄の点数は４点となる。
【００４１】
パラメータ決定部１１ｃは、図４中の最も点数の高い欄に対応するパラメータａ，ｂの組み合わせが最もマージンがあり、好適（最適）な値であると判定する。図４においては、（ａ，ｂ）＝（５，５）の組み合わせが１８点で最も点数が高いので、パラメータ決定部１１ｃは、（ａ，ｂ）＝（５，５）の組み合わせが好適（最適）な値であると決定する。
【００４２】
なお、各パラメータに固有の係数をつけることで、パラメータに重み付けして点数を算出するようにしても良い。例えば、パラメータａの係数を２倍にする例について説明する。パラメータ決定部１１ｃは、或る欄に関して、当該欄のパラメータａ側（上下方向）に隣接する欄に「○」が記載されている場合には、当該欄に４点を加算する。また、パラメータ決定部１１ｃは、或る欄に関して、当該欄のパラメータａ側（上下方向）に２個隣の欄に「○」が記載されている場合には、当該欄に２点を加算する。また、パラメータ決定部１１ｃは、或る欄に関して、当該欄のパラメータｂ側（左右方向）に隣接する欄に「○」が記載されている場合には、当該欄に２点を加算する。また、パラメータ決定部１１ｃは、或る欄に関して、当該欄のパラメータｂ側（左右方向）に２個隣の欄に「○」が記載されている場合には、当該欄に１点を加算する。また、パラメータ決定部１１ｃは、或る欄に関して、当該欄の斜め方向に接する欄に「○」が記載されている場合には、当該欄に１点を加算する。
【００４３】
図５は、図３に示したヴェリファイ結果に対して上記した算出方法を実施することによって算出された点数を示す図である。例えば、（ａ，ｂ）＝（２，２）の欄に関して説明すると、当該欄の右方向に隣接する欄（（ａ，ｂ）＝（３，２）に対応）に「○」が記載されているので、パラメータ決定部１１ｃは、当該欄に２点を加算する。また、パラメータ決定部１１ｃは、当該欄の右斜め下方向に接する欄（（ａ，ｂ）＝（３，３）に対応）に「○」が記載されているので、当該欄に１点を加算する。その結果、当該欄の点数は３点となる。
【００４４】
パラメータ決定部１１ｃは、図５中の最も点数の高い欄に対応するパラメータａ，ｂの組み合わせが最もマージンがあり、好適（最適）な値であると判定する。図５においては、（ａ，ｂ）＝（５，５）の組み合わせが２０点で最も点数が高いので、パラメータ決定部１１ｃは、（ａ，ｂ）＝（５，５）の組み合わせが好適（最適）な値であると決定する。
【００４５】
以上説明したように、本実施形態によれば、メモリ動作を決定する複数のパラメータを網羅し、複数のパラメータの全ての組み合わせに関してメモリアクセス試験を実施し、メモリアクセス試験結果に基づいて、複数のパラメータを決定し、設定することができる。これにより、複数のパラメータを適切な値に調整することができる。
【００４６】
（第２の実施の形態）
第１の実施の形態においては、複数のパラメータの全ての組み合わせに関してメモリアクセス試験を実施することとしている。しかしながら、パラメータの組み合わせの数に応じて（比例して）、メモリアクセス試験時間が増大する。そこで、第２の実施の形態として、メモリアクセス試験時間を短縮する場合について説明する。
【００４７】
なお、本実施の形態の構成は、第１の実施の形態の構成（図１参照）と同様であるので、説明を省略する。
【００４８】
図６は、本実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。
【００４９】
なお、ここでは２個のパラメータａ，ｂを設定するものとし、パラメータａがデータストローブ信号（ＤＱＳ）信号又はライトデータ遅延に関するパラメータ（最初に試験（調整）を実施する重要なパラメータ）であり、パラメータｂがその他のパラメータであるものとする。また、本実施形態においては、パラメータが２個の場合について説明するが、パラメータが３個以上の場合であっても同様に設定することが可能である。その場合、重要なパラメータが複数あっても良い。
【００５０】
図６を参照すると、まず、パラメータ設定部１１ｄが、パラメータ管理部１１ａから与えられる最小値をパラメータａ，ｂに設定する（ステップＳ３０１）。
【００５１】
次に、パラメータ試験部１１ｂが、メモリ２の特定の領域に対してヴェリファイを実施する（ステップＳ３０２）。
【００５２】
そして、パラメータ試験部１１ｂは、ステップＳ３０２にて実施されたヴェリファイの結果（ここでは、「ＯＫ」又は「ＮＧ」）を記憶する（ステップＳ３０３）。
【００５３】
次に、パラメータ管理部１１ａが、パラメータａの設定値が設定可能な範囲の最大値（ＭＡＸ）であるか否かを判定する（ステップＳ３０４）。
【００５４】
そして、パラメータａの設定値が設定可能な範囲の最大値ではないと判定した場合（ステップＳ３０４：Ｎｏ）、パラメータ管理部１１ａは、パラメータａの設定値をインクリメントする（ステップＳ３０５）。その後、処理はステップＳ３０２に戻る。
【００５５】
また、パラメータａの設定値が設定可能な範囲の最大値であると判定した場合（ステップＳ３０４：Ｙｅｓ）、パラメータ管理部１１ａは、パラメータ試験部１１ｂに記憶されているヴェリファイ結果に基づいて、ヴェリファイ結果が「ＯＫ」であるパラメータａの範囲の下限設定値と上限設定値を算出する（ステップＳ３０６）。ここでは、ヴェリファイ結果が「ＯＫ」であるパラメータａの範囲の下限設定値をａ＿ｍｉｎとし、ヴェリファイ結果が「ＯＫ」であるパラメータａの範囲の上限設定値をａ＿ｍａｘとする。なお、この時点で、パラメータｂを最小値に固定したままパラメータａを設定可能な範囲内で一通り試験したことになる。また、後述するように、これ以降のステップでは、
ａ＿ｍｉｎ≦ａ≦ａ＿ｍａｘ
の範囲でパラメータａを設定する。
【００５６】
次に、パラメータ設定部１１ｄが、ステップＳ３０６にて算出された下限設定値ａ＿ｍｉｎをパラメータａに設定する（ステップＳ３０７）。
【００５７】
次に、パラメータ試験部１１ｂが、メモリ２の特定の領域に対してヴェリファイを実施する（ステップＳ３０８）。
【００５８】
そして、パラメータ試験部１１ｂは、ステップＳ３０８にて実施されたヴェリファイの結果（ここでは、「ＯＫ」又は「ＮＧ」）を記憶する（ステップＳ３０９）。
【００５９】
次に、パラメータ管理部１１ａが、パラメータａの設定値が上限設定値ａ＿ｍａｘであるか否かを判定する（ステップＳ３１０）。
【００６０】
そして、パラメータａの設定値が上限設定値ａ＿ｍａｘではないと判定した場合（ステップＳ３１０：Ｎｏ）、パラメータ管理部１１ａは、パラメータａの設定値をインクリメントする（ステップＳ３１１）。その後、処理はステップＳ３０８に戻る。
【００６１】
また、パラメータａの設定値が上限設定値ａ＿ｍａｘであると判定した場合（ステップＳ３１０：Ｙｅｓ）、パラメータ管理部１１ａは、パラメータｂの設定値が設定可能な範囲の最大値（ＭＡＸ）であるか否かを判定する（ステップＳ３１２）。
【００６２】
そして、パラメータｂの設定値が設定可能な範囲の最大値ではないと判定した場合（ステップＳ３１２：Ｎｏ）、パラメータ管理部１１ａは、パラメータａを下限設定値ａ＿ｍｉｎに設定するとともに、パラメータｂの設定値をインクリメントする（ステップＳ３１３）。その後、処理はステップＳ３０８に戻る。
【００６３】
また、パラメータｂの設定値が設定可能な範囲の最大値であると判定した場合（ステップＳ３１２：Ｙｅｓ）、パラメータ決定部１１ｃが、ステップＳ３０３及び／又はステップＳ３０９で記憶されたヴェリファイ結果に基づいて、パラメータａ，ｂの好適（最適）な値を決定する（ステップＳ３１４）。なお、パラメータａ，ｂの好適（最適）な値の決定方法として、先に説明した方法を利用することができる。
【００６４】
そして、パラメータ設定部１１ｄが、ステップＳ３１４にて決定された値をパラメータａ，ｂに設定する（ステップＳ３１５）。
【００６５】
ステップＳ３０８〜ステップＳ３１２を繰り返すことで、
ａ＿ｍｉｎ≦ａ≦ａ＿ｍａｘ
の範囲の全てのパラメータの組み合わせに関してメモリアクセス試験を実施することができる。なお、パラメータｂが最小値（本例では「１」）の場合のステップＳ３０２〜ステップＳ３０５では、下限設定値ａ＿ｍｉｎ及び上限設定値ａ＿ｍａｘを求めるために、
ａ＿ｍｉｎ≦ａ≦ａ＿ｍａｘ
の範囲外のパラメータの組み合わせに関してもメモリアクセス試験を実施する。
【００６６】
図７は、メモリアクセス試験を実施するパラメータの組み合わせを示す図である。パラメータｂが「１」のときには、下限設定値ａ＿ｍｉｎ及び上限設定値ａ＿ｍａｘを求めるために、パラメータａの設定可能な全範囲に関してメモリアクセス試験を実施する。パラメータｂが「２」以上のときには、パラメータａの
ａ＿ｍｉｎ≦ａ≦ａ＿ｍａｘ
の範囲に関してメモリアクセス試験を実施する。図７において、網掛け部分はメモリアクセス試験を実施しない範囲を表している。
【００６７】
なお、本実施形態においては、ステップＳ３０１にてパラメータｂに最小値（本例では「１」）を設定しているが、必ずしも最小値を設定しなくても良い。ただその場合には、ステップＳ３０４のＹｅｓ以降でステップＳ３０８よりも前にパラメータｂに最小値を設定すれば良い。
【００６８】
以上説明したように、本実施形態によれば、最初に試験（調整）を実施する重要なパラメータ（例えば、メモリ動作のリード又はライトアクセスに特に影響の大きいデータストローブ信号（ＤＱＳ）又はライトデータ遅延に関するパラメータ等）が取り得る設定可能な全範囲のメモリアクセス試験をその他のパラメータを固定したまま行い、その結果に応じて、以降のメモリアクセス試験対象のパラメータの組み合わせ数を減らすことができる。これにより、メモリアクセス試験時間を短縮することができ、好適（最適）なパラメータを決定する時間を短縮することができる。
【００６９】
（第３の実施の形態）
第１、第２の実施の形態においては、ヴェリファイ結果は、メモリ２のヴェリファイ対象領域に書き込んだデータとメモリ２のヴェリファイ対象領域から読み出したデータとが完全一致した場合のみ「ＯＫ」（合格）となる。このため、或る試験対象パラメータをインクリメントして行くと段々とデータ一致率が上がって行くような場合（つまり当該試験対象パラメータをインクリメントするほど段々とヴェリファイ結果が「ＯＫ」に近づいて行く場合）には、ヴェリファイ結果が「ＯＫ」（メモリ２のヴェリファイ対象領域に書き込んだデータとメモリ２のヴェリファイ対象領域から読み出したデータとが完全一致）にならない限り、その情報を検出出来ない。具体的には、或る試験対象パラメータを最小値からインクリメントして行ったときに、メモリ２のヴェリファイ対象領域に書き込んだデータとメモリ２のヴェリファイ対象領域から読み出したデータとのデータ一致率が０％から順次上昇して行ったが、当該試験対象パラメータを設定可能な全範囲内で変化させても、結局データ一致率が８０％までしか上がらないという場合が起こり得る。このような場合、第１、第２の実施の形態においては、ヴェリファイ結果が全て「ＮＧ」（不合格）という情報しか検出出来ない。しかしながら、上記のような場合、実際には、データ一致率が８０％となる設定値が最も好適なパラメータ設定値であると言うことができる。そこで、第３の実施の形態として、上記のようなデータ一致率の情報を利用する場合について説明する。
【００７０】
なお、本実施の形態の全体構成は、第１の実施の形態の構成（図１参照）と同様であるので、説明を省略する。
【００７１】
図８は、本実施の形態にかかるパラメータ試験部１１ｂの内部構成を示すブロック図である。図８に示すように、パラメータ試験部１１ｂは、本発明のメモリ領域ヴェリファイ手段としてのメモリ領域ヴェリファイ部２１と、本発明のヴェリファイ結果記憶手段としてのヴェリファイ結果記憶部２２と、本発明のメモリ領域試験結果記憶手段としてのメモリ領域試験結果記憶部２３と、を含んでいる。
【００７２】
図９は、本実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。
【００７３】
なお、本実施形態においては、２個のパラメータａ，ｂを設定する場合について説明するが、パラメータが３個以上の場合であっても同様に設定することが可能である。
【００７４】
図９を参照すると、まず、パラメータ設定部１１ｄが、パラメータ管理部１１ａから与えられる最小値をパラメータａ，ｂに設定する（ステップＳ４０１）。
【００７５】
次に、パラメータ試験部１１ｂのメモリ領域ヴェリファイ部２１が、メモリ２の特定の領域（ヴェリファイ対象領域）に対してヴェリファイを実施する（ステップＳ４０２）。なお、本実施形態においては、メモリ領域ヴェリファイ部２１は、メモリ２のヴェリファイ対象領域内のアドレスに対して特定のデータを書き込んだ後、メモリ２のヴェリファイ領域のアドレスからデータを読み出し、書き込んだデータと読み出したデータとが一致するか否かの判定をアドレスを変化させながら複数回繰り返すことでヴェリファイを実現する。また、パラメータ試験部１１ｂのヴェリファイ結果記憶部２２は、メモリ領域ヴェリファイ部２１によって行われる複数回の判定の結果を各回毎に記憶する。
【００７６】
そして、パラメータ試験部１１ｂのメモリ領域試験結果記憶部２３は、メモリ２の特定の領域に行われた複数回の判定の総回数に対するヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果の中の「ＯＫ」となった数の比率（Ｘ％）を算出する。更に、メモリ領域試験結果記憶部２３は、メモリ２の特定の領域に行われた複数回の判定の総回数に対するヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果の中の「ＯＫ」となった数の比率（Ｘ％）が所定の比率（例えば、８０％等）以上の場合に、メモリ２の特定の領域に対するヴェリファイ結果を「ＯＫ」として記憶する（ステップＳ４０３）。
【００７７】
次に、パラメータ管理部１１ａが、パラメータａの設定値が設定可能な範囲の最大値（ＭＡＸ）であるか否かを判定する（ステップＳ４０４）。
【００７８】
そして、パラメータａの設定値が設定可能な範囲の最大値ではないと判定した場合（ステップＳ４０４：Ｎｏ）、パラメータ管理部１１ａは、パラメータａの設定値をインクリメントする（ステップＳ４０５）。その後、処理はステップＳ４０２に戻る。
【００７９】
また、パラメータａの設定値が設定可能な範囲の最大値であると判定した場合（ステップＳ４０４：Ｙｅｓ）、パラメータ管理部１１ａは、パラメータｂの設定値が設定可能な範囲の最大値（ＭＡＸ）であるか否かを判定する（ステップＳ４０６）。
【００８０】
そして、パラメータｂの設定値が設定可能な範囲の最大値ではないと判定した場合（ステップＳ４０６：Ｎｏ）、パラメータ管理部１１ａは、パラメータａを最小値に設定するとともに、パラメータｂの設定値をインクリメントする（ステップＳ４０７）。その後、処理はステップＳ４０２に戻る。
【００８１】
上記のステップＳ４０２〜ステップＳ４０７を繰り返すことで、パラメータａ，ｂの全ての組み合わせの試験を実施することが可能である。
【００８２】
また、パラメータｂの設定値が設定可能な範囲の最大値であると判定した場合（ステップＳ４０６：Ｙｅｓ）、パラメータ決定部１１ｃが、パラメータ試験部１１ｂのメモリ領域試験結果記憶部２３に記憶されたヴェリファイ結果に基づいて、パラメータａ，ｂの好適（最適）な値を決定する（ステップＳ４０８）。
【００８３】
そして、パラメータ設定部１１ｄが、ステップＳ４０８にて決定された値をパラメータａ，ｂに設定する（ステップＳ４０９）。
【００８４】
以上説明したように、本実施形態によれば、ヴェリファイ結果記憶部２２が、メモリ領域ヴェリファイ部２１によって行われる複数回の判定の結果を各回毎に記憶し、メモリ領域試験結果記憶部２３が、メモリ２の特定の領域に行われた複数回の判定の総回数に対するヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果の中の「ＯＫ」となった数の比率（Ｘ％）が所定の比率以上の場合に、メモリ２の特定の領域に対するヴェリファイ結果を「ＯＫ」として記憶する。従って、メモリ２の特定の領域に書き込んだデータとメモリ２の特定の領域から読み出したデータとが完全一致しない場合であっても、好適な値をパラメータに設定することができる。
【００８５】
また、本実施形態によれば、試験対象パラメータ以外のパラメータが原因でヴェリファイ結果が「ＯＫ」（完全一致）にならない場合であっても、好適な値を試験対象パラメータに設定することができる。例えば、設定すべきパラメータがパラメータａ，ｂ，ｃの３個有り、先にパラメータａ，ｂの２個を調整（設定）し、その後、パラメータｃを調整（設定）する場合について検討する。このような場合、パラメータａ，ｂの２個を設定しようとする時点ではパラメータｃが未調整であるため、パラメータａ，ｂをいくら変化させてもヴェリファイ結果が「ＯＫ」（完全一致）にならないケースが考えられる。しかしながら、このようなケースであっても、パラメータａ，ｂを変化させることで、メモリ２に書き込んだデータとメモリ２から読み出したデータとの一致率は変化するので、本実施形態によれば、好適な値をパラメータａ，ｂに設定することができる。
【００８６】
（第４の実施の形態）
第３の実施の形態においては、ヴェリファイでライト及びリードされるデータ総量が多いほど、メモリアクセス試験に時間がかかる。一般に、ヴェリファイは、メモリの特定の領域（ヴェリファイ領域）内のアドレスに対して特定の単位のデータ（例えば、１ワード等）を書き込んだ後、メモリの特定の領域のアドレスからデータを読み出し、書き込んだデータと読み出したデータとが一致するか否かの判定をアドレスをインクリメントさせながら複数回繰り返すことで実現される。従って、一般に、ヴェリファイでライト及びリードされるデータ総量は、メモリ２の特定の領域（ヴェリファイ領域）の容量に等しくなる。しかしながら、メモリ２の特定の領域（ヴェリファイ領域）の容量に等しいデータのライト及びリードを行うこととすると、メモリアクセス試験に時間がかかることになる。そこで、第４の実施の形態として、メモリアクセス試験時間を短縮する場合について説明する。
【００８７】
なお、本実施の形態の構成は、第３の実施の形態の構成（図１及び図８参照）と同様であるので、説明を省略する。
【００８８】
本実施の形態において、メモリ領域ヴェリファイ部２１（図８参照）は、メモリ２の特定の領域（ヴェリファイ領域）内のアドレスに対して特定のデータを書き込んだ後、メモリ２の特定の領域のアドレスからデータを読み出し、書き込んだデータと読み出したデータとが一致するか否かの判定をアドレスを１ずつインクリメントさせながら繰り返し行う。ヴェリファイ結果記憶部２２（図８参照）は、メモリ領域ヴェリファイ部２１によって実施される複数回の判定の結果を各回毎に記憶する。
【００８９】
そして、メモリ領域ヴェリファイ部２１は、ヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果を参照し、所定の回数（例えば、８回等）連続して判定の結果が「ＯＫ」となった場合には、次（例えば、９回目等）から、所定の単位のデータのライト及びリード並びに判定を、アドレスを２ずつインクリメントしながら、繰り返し行う。
【００９０】
その後、更に、メモリ領域ヴェリファイ部２１は、ヴェリファイ結果記憶部２２に記憶されている複数回の判定結果を参照し、所定の回数（例えば、８回等）連続して判定の結果が「ＯＫ」となった場合には、次から、所定の単位のデータのライト及びリード並びに判定を、アドレスを４ずつインクリメントしながら、繰り返し行う。
【００９１】
上記のように所定の回数連続して判定の結果が「ＯＫ」となった場合には、ヴェリファイ領域の全部に判定を行わなくても、メモリアクセス試験の精度は落ちないと考えられる。
【００９２】
そこで、所定の回数連続して判定の結果が「ＯＫ」となった場合に、アドレスをインクリメントする幅を増やすことにより、ヴェリファイでライト及びリードされるデータ総量を減らすことができる。
【００９３】
以上説明したように、本実施形態によれば、メモリ領域ヴェリファイ部２１が、ヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果に基づいて、所定の単位のデータのライト及びリードを行うアドレスを決定する。これにより、ヴェリファイでライト及びリードされるデータ総量を減らすことができ、メモリアクセス試験の時間を短縮することができ、好適（最適）なパラメータを決定する時間を短縮することができる。
【００９４】
（第５の実施の形態）
第３の実施の形態においては、パラメータの組み合わせの数が多いほどメモリアクセス試験時間がかかる。そこで、第５の実施の形態として、メモリアクセス試験時間を短縮する場合について説明する。
【００９５】
なお、本実施の形態の構成は、第３の実施の形態の構成（図１及び図８参照）と同様であるので、説明を省略する。
【００９６】
図１０は、本実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。
【００９７】
なお、本実施形態においては、２個のパラメータａ，ｂを設定するものとし、パラメータａのみ次の設定値を試験結果に応じて決定することとしているが、パラメータａ，ｂの両方の次の設定値を試験結果に応じて決定することも可能である。また、本実施形態においては、パラメータが２個の場合について説明するが、パラメータが３個以上の場合であっても同様に設定することが可能である。
【００９８】
図１０を参照すると、まず、パラメータ設定部１１ｄが、パラメータ管理部１１ａから与えられる最小値をパラメータａ，ｂに設定する（ステップＳ５０１）。
【００９９】
次に、パラメータ試験部１１ｂのメモリ領域ヴェリファイ部２１が、メモリ２の特定の領域（ヴェリファイ対象領域）に対してヴェリファイを実施する（ステップＳ５０２）。なお、パラメータ試験部１１ｂのヴェリファイ結果記憶部２２は、メモリ領域ヴェリファイ部２１によって行われる複数回の判定の結果を各回毎に記憶する。
【０１００】
そして、パラメータ試験部１１ｂのメモリ領域試験結果記憶部２３は、メモリ２の特定の領域に行われた複数回の判定の総回数に対するヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果の中の「ＯＫ」となった数の比率（Ｘ％）を算出する。さらに、メモリ領域試験結果記憶部２３は、メモリ２の特定の領域に行われた複数回の判定の総回数に対するヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果の中の「ＯＫ」となった数の比率（Ｘ％）が所定の比率（例えば、８０％等）以上の場合に、メモリ２の特定の領域に対するヴェリファイ結果を「ＯＫ」として記憶する（ステップＳ５０３）。
【０１０１】
次に、パラメータ管理部１１ａが、パラメータａの設定値が設定可能な範囲の最大値（ＭＡＸ）であるか否かを判定する（ステップＳ５０４）。
【０１０２】
そして、パラメータａの設定値が設定可能な範囲の最大値ではないと判定した場合（ステップＳ５０４：Ｎｏ）、パラメータ管理部１１ａは、メモリ領域試験結果記憶部２３に記憶されているメモリ２の特定の領域に実施されたヴェリファイ回数に対するヴェリファイ結果記憶部２２に記憶されている１回のヴェリファイ単位毎のヴェリファイ結果が「ＯＫ」となった数の比率（Ｘ％）に基づいて、パラメータａの設定値のステップ幅（インクリメント幅）Ｄｅｇｒｅｅを
Ｄｅｇｒｅｅ＝（１１−Ｘ／１０）      ・・・（１）
により算出する。
【０１０３】
図１１は、メモリ２の特定の領域に行われた複数回の判定の総回数に対するヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果の中の「ＯＫ」となった数の比率（Ｘ％）と式（１）により算出されるパラメータａの設定値のステップ幅Ｄｅｇｒｅｅとの関係を示す図である。図１１に示すように、メモリ２の特定の領域に行われた複数回の判定の総回数に対するヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果の中の「ＯＫ」となった数の比率（Ｘ％）が０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは、
Ｄｅｇｒｅｅ＝（１１−０／１０）
＝（１１−０）
＝１１                    ・・・（２）
となる。
【０１０４】
また、比率（Ｘ％）が１０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは１０となり、比率（Ｘ％）が２０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは９となり、比率（Ｘ％）が３０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは８となり、比率（Ｘ％）が４０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは７となり、比率（Ｘ％）が５０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは６となる。
【０１０５】
また、比率（Ｘ％）が６０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは５となり、比率（Ｘ％）が７０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは４となり、比率（Ｘ％）が８０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは３となり、比率（Ｘ％）が９０％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは２となり、比率（Ｘ％）が１００％の場合には、パラメータａの設定値のステップ幅Ｄｅｇｒｅｅは１となる。
【０１０６】
パラメータ管理部１１ａは、パラメータａの設定値を上記のようにして算出したステップ幅Ｄｅｇｒｅｅだけ増加させる（ステップＳ５０５）。その後、処理はステップＳ５０２に戻る。
【０１０７】
また、パラメータａの設定値が設定可能な範囲の最大値であると判定した場合（ステップＳ５０４：Ｙｅｓ）、パラメータ管理部１１ａは、パラメータｂの設定値が設定可能な範囲の最大値（ＭＡＸ）であるか否かを判定する（ステップＳ５０６）。
【０１０８】
そして、パラメータｂの設定値が設定可能な範囲の最大値ではないと判定した場合（ステップＳ５０６：Ｎｏ）、パラメータ管理部１１ａは、パラメータａを最小値に設定するとともに、パラメータｂの設定値をインクリメントする（ステップＳ５０７）。その後、処理はステップＳ５０２に戻る。
【０１０９】
また、パラメータｂの設定値が設定可能な範囲の最大値であると判定した場合（ステップＳ５０６：Ｙｅｓ）、パラメータ決定部１１ｃが、パラメータ試験部１１ｂのメモリ領域試験結果記憶部２３に記憶されたヴェリファイ結果に基づいて、パラメータａ，ｂの好適（最適）な値を決定する（ステップＳ５０８）。
【０１１０】
そして、パラメータ設定部１１ｄが、ステップＳ５０８にて決定された値をパラメータａ，ｂに設定する（ステップＳ５０９）。
【０１１１】
以上説明したように、本実施形態によれば、メモリ領域試験結果記憶部２３が、メモリ２の特定の領域に行われた複数回の判定の総回数に対するヴェリファイ結果記憶部２２に記憶されている複数回の判定の結果の中の「ＯＫ」となった数の比率（Ｘ％）を算出して記憶し、パラメータ管理部１１ａが、当該比率（Ｘ％）に基づいて、パラメータａの設定値のステップ幅（インクリメント幅）を変える。これにより、メモリアクセス試験の精度を落とすことなく、メモリアクセス試験を行うパラメータの組み合わせの数を減らすことができる。従って、メモリアクセス試験時間を短縮することができ、好適（最適）なパラメータを決定する時間を短縮することができる。
【０１１２】
（第６の実施の形態）
制御装置１側のパラメータを設定しても、メモリ２側のパラメータ（例えば、ＯＤＴ、ＯＣＤ等）に起因するメモリアクセス不良があった場合、パラメータの調整（設定）そのものが成功しないことがある。
【０１１３】
そこで、パラメータ設定部１１ｄが、メモリコントローラ１２を介してメモリ２にアクセスし、メモリ２側のパラメータ（例えば、ＯＤＴ、ＯＣＤ等）を設定する。
【０１１４】
以上説明したように、本実施形態によれば、制御装置１側及びメモリ２側の各パラメータ（リード、ライト、その他）を網羅し、メモリ２側も含めた好適（最適）なパラメータ調整（設定）を行うことができる。
【０１１５】
（第７の実施の形態）
第１乃至第６の実施の形態においては、パラメータを調整した結果を残していないため、メモリ制御システムの次回立ち上げ時（起動時又は再起動時）には、パラメータを再度調整する必要がある。そこで、第７の実施の形態として、メモリ制御システムの次回起動時又は再起動時にパラメータを再度調整する必要をなくす場合について説明する。
【０１１６】
図１２は、本発明の第７の実施の形態にかかるメモリ制御システムを適用した機器の構成を示すブロック図である。
【０１１７】
図１２に示す機器は、制御装置３１と、ダブルデータレート型メモリ２と、を含んでいる。制御装置３１は、メモリ制御システム４１と、メモリコントローラ１２と、を含んでいる。メモリ制御システム４１はメモリコントローラ１２を介してメモリ２へのアクセス（リード、ライト、ヴェリファイ等）を行う。
【０１１８】
メモリ制御システム４１は、上述した第１乃至第６の実施の形態におけるメモリ制御システム１１とは、本発明の設定値記憶手段としての設定値記憶部１１ｅ、不揮発性メモリ１１ｆ、本発明のパラメータ設定履歴判定手段としてのパラメータ設定履歴判定部１１ｇが追加されている点で異なる。以下の説明では、上述した第１乃至第６の実施の形態と同一の構成要素には同一の符号を付してその説明を省略している。
【０１１９】
図１３は、本実施の形態にかかるメモリ制御システムの動作の手順を示すフローチャートである。本実施の形態にかかるメモリ制御システムは、システム立ち上げ時（起動時又は再起動時）に図１３に示す手順を実行する。
【０１２０】
図１３を参照すると、パラメータ設定履歴判断部１１ｇが、不揮発性メモリ１１ｆ内の好適（最適）なパラメータが既に決定されたことを表す設定値有無フラグをチェックする（ステップＳ６０１）。なお、設定値有無フラグがセットされる場合については、後で説明する。
【０１２１】
パラメータ設定履歴判断部１１ｇが、設定値フラグがセットされていないと判定した場合（ステップＳ６０１：Ｎｏ）、パラメータ管理部１１ａ、パラメータ試験部１１ｂ、パラメータ決定部１１ｃ、パラメータ設定部１１ｄが、先に説明した手順（図２、図６、図９、図１０参照）を実行することにより、メモリアクセス試験を行い、好適（最適）なパラメータを決定し、設定する（ステップＳ６０２）。なお、設定値記憶部１１ｅは、好適（最適）なパラメータが決定、設定されたときに（図２のステップＳ２０９、図６のステップＳ３１５、図９のステップＳ４０９、図１０のステップＳ５０９参照）、決定、設定されたパラメータを不揮発性メモリ１１ｆに書き込むとともに、設定値有無フラグをセットする。
【０１２２】
また、パラメータ設定履歴判断部１１ｇが、設定値フラグがセットされていると判定した場合（ステップＳ６０１：Ｙｅｓ）、パラメータ設定部１１ｄが、不揮発性メモリ１１ｆに記憶されている好適（最適）なパラメータを設定する（ステップＳ６０３）。
【０１２３】
以上説明したように、本実施形態によれば、一度調整したパラメータ設定値を不揮発性メモリ１１ｆに記憶し、次の起動時又は再起動時には既に行われた調整結果を再利用することができる。これにより、メモリ制御システム４１の次回起動時又は再起動時にパラメータを再度調整する必要をなくすことができる。
【産業上の利用可能性】
【０１２４】
以上のように、本発明にかかるメモリ制御システム、メモリ制御方法、メモリ制御プログラム及び記録媒体は、メモリとメモリコントローラとの間のメモリ動作を決定する複数のパラメータを設定する技術に有用である。
【符号の説明】
【０１２５】
１  制御装置
２  メモリ
１１  メモリ制御システム
１１ａ  パラメータ管理部
１１ｂ  パラメータ試験部
１１ｃ  パラメータ決定部
１１ｄ  パラメータ設定部
１１ｅ  設定値記憶部
１１ｆ  不揮発性メモリ
１１ｇ  パラメータ設定履歴判定部
１２  メモリコントローラ
２１  メモリ領域ヴェリファイ部
２２  ヴェリファイ結果記憶部
２３  メモリ領域試験結果記憶部
３１  制御装置
４１  メモリ制御システム
【図１】
2010160724.tif 000003
【図２】
2010160724.tif 000004
【図３】
2010160724.tif 000005
【図４】
2010160724.tif 000006
【図５】
2010160724.tif 000007
【図６】
2010160724.tif 000008
【図７】
2010160724.tif 000009
【図８】
2010160724.tif 000010
【図９】
2010160724.tif 000011
【図１０】
2010160724.tif 000012
【図１１】
2010160724.tif 000013
【図１２】
2010160724.tif 000014
【図１３】
2010160724.tif 000015