(57)【要約】【課題】メモリのアクセスタイミングをウエイト挿入におけるよりも高精度に調節できるメモリ制御方法およびこれを実施する情報処理装置を提供する。【解決手段】読み出しタイミングが一定となるようにメモリ同期クロックとサンプリングクロックとの位相差を一定にした状態で、メモリ同期クロックの位相調節パラメータを変更しながら各パラメータによるメモリ同期クロックでメモリアクセスを行って、書き込みアクセスが成功したパラメータ範囲からメモリ同期クロックの位相調節パラメータの設定値を算出し、その算出した設定値にメモリ同期クロックの位相調節パラメータを設定した状態で、サンプリングクロックの位相調節パラメータを変更しながら各パラメータによるサンプリングクロックでメモリアクセスを行って、読み出しアクセスが成功したパラメータ範囲からサンプリングクロックの位相調節パラメータの設定値を算出する。【選択図】図１
2006338130.tif 000002
【特許請求の範囲】
【請求項１】
それぞれパラメータの設定によって位相調整可能なメモリ同期クロックおよび読み出しデータサンプリングクロックによりメモリを制御するにあたり、
読み出しタイミングが一定となるようにメモリ同期クロックと読み出しデータサンプリングクロックとの位相差を一定にした状態で、メモリ同期クロックの位相調節パラメータを変更しながら、各パラメータによるメモリ同期クロックでメモリアクセスを行って成否を判定することにより、書き込みアクセスが成功したパラメータ範囲を検出し、その検出したパラメータ範囲からメモリ同期クロックの位相調節パラメータの設定値を算出する工程と、
メモリ同期クロックの位相調節パラメータを上記算出した設定値とした状態で、読み出しデータのサンプリングクロックの位相調節パラメータを変更しながら、各パラメータによる読み出しデータサンプリングクロックでメモリアクセスを行って成否を判定することにより、読み出しアクセスが成功したパラメータ範囲を検出し、その検出したパラメータ範囲から読み出しデータサンプリングクロックの位相調節パラメータの設定値を算出する工程とを有し、
メモリ同期クロックの位相調節パラメータおよび読み出しデータサンプリングクロックの位相調節パラメータを、それぞれ上記算出した設定値としてメモリを制御することを特徴とするメモリ制御方法。
【請求項２】
上記メモリアクセスの成否判定は、メモリの一箇所または複数の番地にデータを書き込み後、その番地を読み出して期待値と比較することにより行うことを特徴とする請求項１に記載のメモリ制御方法。
【請求項３】
上記メモリアクセスの成否判定は、上記メモリコントローラに搭載されている誤り検出回路で行うことを特徴とする請求項１または２に記載のメモリ制御方法。
【請求項４】
上記メモリ同期クロックにおける位相調節パラメータの設定値および読み出しデータサンプリングクロックにおける位相調節パラメータの設定値は、それぞれ検出されたパラメータ範囲の中間値を算出することを特徴とする請求項１乃至３のいずれか一項に記載のメモリ制御方法。
【請求項５】
それぞれパラメータの設定によって位相調整可能なメモリ同期クロックおよび読み出しデータサンプリングクロックを生成するメモリコントローラと、
上記メモリコントローラによって制御されるメモリと、
上記メモリコントローラを制御してメモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータを算出して設定するパラメータ算出設定手段とを有し、
上記パラメータ算出設定手段は、上記メモリコントローラを制御して、読み出しタイミングが一定となるようにメモリ同期クロックと読み出しデータサンプリングクロックとの位相差を一定にした状態で、メモリ同期クロックの位相調節パラメータを変更しながら、各パラメータによるメモリ同期クロックでメモリアクセスを行って成否を判定することにより、書き込みアクセスが成功したパラメータ範囲を検出して、その検出したパラメータ範囲からメモリ同期クロックの位相調節パラメータの設定値を算出すると共に、メモリ同期クロックの位相調節パラメータを上記算出した設定値とした状態で、読み出しデータのサンプリングクロックの位相調節パラメータを変更しながら、各パラメータによる読み出しデータサンプリングクロックでメモリアクセスを行って成否を判定することにより、読み出しアクセスが成功したパラメータ範囲を検出して、その検出したパラメータ範囲から読み出しデータサンプリングクロックの位相調節パラメータの設定値を算出し、これら算出したメモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータの設定値を上記メモリコントローラに設定することを特徴とする情報処理装置。
【請求項６】
上記パラメータ算出設定手段は、装置の初期化処理時に起動させて、メモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータを算出して設定することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
コマンド入力手段を有し、該コマンド入力手段からのコマンド入力情報に基づいて、装置の再起動時に上記パラメータ算出設定手段を起動させて、メモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータを算出して設定することを特徴とする請求項５に記載の情報処理装置。
【請求項８】
上記パラメータ算出設定手段で検出した書き込みアクセスおよび読み出しアクセスが成功したパラメータ、並びに、算出したメモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータの設定値を表示する表示手段を有することを特徴とする請求項５乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
上記表示手段に表示された書き込みアクセスおよび読み出しアクセスが成功したパラメータからそれぞれ所望のパラメータを選択可能な選択手段と、該選択手段により選択されたパラメータを格納する記憶手段とを有し、装置の再起動時に上記記憶手段にパラメータが格納されているときは、当該パラメータを上記メモリコントローラに設定することを特徴とする請求項８に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリデバイスを有するメモリモジュールやメモリインタフェース等のメモリ制御方法およびこれを実施する情報処理装置に関するものである。
【背景技術】
【０００２】
近年、情報処理装置の高速化に伴って、メモリバスの更なる高速化が求められ、それに伴ってメモリアクセスタイミングの設計も複雑化している。
【０００３】
従来、メモリのアクセスタイミングを決定するにあたっては、メモリコントローラやメモリデバイスのマニュアルに記載されているタイミング規定値と、メモリコントローラおよびメモリデバイス間の伝送線路の特性とに基づいて、メモリコントローラに入力するパラメータの仮設定値を机上で計算し、その仮設定値のパラメータによるアクセスタイミングを実機にて波形測定器で観測して確認することにより、パラメータ設定値を決定するようにしている。
【０００４】
このため、メモリデバイスのアクセスクロックが変わったり、使用するメモリデバイスが変わったり、伝送線路の特性が変わったり、メモリデバイスの接続構成が変わったりした場合には、上記の作業を再度行う必要がある。
【０００５】
また、上記のようにして決定したパラメータ設定値では、アクセスタイミングが固定となるため、メモリの増設、交換が可能な情報処理装置においては、アクセスタイミングを満足するメモリを使う必要があり、使用可能なメモリが制限されてしまう。
【０００６】
このような問題を解決し得るものとして、例えば、ウエイト制御部を設け、ウエイト制御部に設定するウエイト数を変化させながらメモリアクセスを行って、装着されているメモリに適したウエイト数を検出し、その検出されたウエイト数を挿入してメモリをアクセスするメモリ制御方法が知られている（例えば、特許文献１参照）。
【特許文献１】特開平９−１０６３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の特許文献１に開示のウエイト挿入処理では、１ウエイト期間単位のウエイト挿入による調節となり、１ウエイト期間よりも細かなアクセスタイミングの調節ができないため、高精度の調節ができないと言う問題がある。
【０００８】
したがって、かかる事情に鑑みてなされた本発明の目的は、メモリのアクセスタイミングをウエイト挿入におけるよりも高精度に調節できるメモリ制御方法およびこれを実施する情報処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成する請求項１に係るメモリ制御方法の発明は、それぞれパラメータの設定によって位相調整可能なメモリ同期クロックおよび読み出しデータサンプリングクロックによりメモリを制御するにあたり、
読み出しタイミングが一定となるようにメモリ同期クロックと読み出しデータサンプリングクロックとの位相差を一定にした状態で、メモリ同期クロックの位相調節パラメータを変更しながら、各パラメータによるメモリ同期クロックでメモリアクセスを行って成否を判定することにより、書き込みアクセスが成功したパラメータ範囲を検出し、その検出したパラメータ範囲からメモリ同期クロックの位相調節パラメータの設定値を算出する工程と、
メモリ同期クロックの位相調節パラメータを上記算出した設定値とした状態で、読み出しデータのサンプリングクロックの位相調節パラメータを変更しながら、各パラメータによる読み出しデータサンプリングクロックでメモリアクセスを行って成否を判定することにより、読み出しアクセスが成功したパラメータ範囲を検出し、その検出したパラメータ範囲から読み出しデータサンプリングクロックの位相調節パラメータの設定値を算出する工程とを有し、
メモリ同期クロックの位相調節パラメータおよび読み出しデータサンプリングクロックの位相調節パラメータを、それぞれ上記算出した設定値としてメモリを制御することを特徴とするものである。
【００１０】
請求項２に係る発明は、請求項１に記載のメモリ制御方法において、上記メモリアクセスの成否判定は、メモリの一箇所または複数の番地にデータを書き込み後、その番地を読み出して期待値と比較することにより行うことを特徴とするものである。
【００１１】
請求項３に係る発明は、請求項１または２に記載のメモリ制御方法において、上記メモリアクセスの成否判定は、上記メモリコントローラに搭載されている誤り検出回路で行うことを特徴とするものである。
【００１２】
請求項４に係る発明は、請求項１乃至３のいずれか一項に記載のメモリ制御方法において、上記メモリ同期クロックにおける位相調節パラメータの設定値および読み出しデータサンプリングクロックにおける位相調節パラメータの設定値は、それぞれ検出されたパラメータ範囲の中間値を算出することを特徴とするものである。
【００１３】
さらに、上記目的を達成する請求項５に係る情報処理装置の発明は、それぞれパラメータの設定によって位相調整可能なメモリ同期クロックおよび読み出しデータサンプリングクロックを生成するメモリコントローラと、
上記メモリコントローラによって制御されるメモリと、
上記メモリコントローラを制御してメモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータを算出して設定するパラメータ算出設定手段とを有し、
上記パラメータ算出設定手段は、上記メモリコントローラを制御して、読み出しタイミングが一定となるようにメモリ同期クロックと読み出しデータサンプリングクロックとの位相差を一定にした状態で、メモリ同期クロックの位相調節パラメータを変更しながら、各パラメータによるメモリ同期クロックでメモリアクセスを行って成否を判定することにより、書き込みアクセスが成功したパラメータ範囲を検出して、その検出したパラメータ範囲からメモリ同期クロックの位相調節パラメータの設定値を算出すると共に、メモリ同期クロックの位相調節パラメータを上記算出した設定値とした状態で、読み出しデータのサンプリングクロックの位相調節パラメータを変更しながら、各パラメータによる読み出しデータサンプリングクロックでメモリアクセスを行って成否を判定することにより、読み出しアクセスが成功したパラメータ範囲を検出して、その検出したパラメータ範囲から読み出しデータサンプリングクロックの位相調節パラメータの設定値を算出し、これら算出したメモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータの設定値を上記メモリコントローラに設定することを特徴とするものである。
【００１４】
請求項６に係る発明は、請求項５に記載の情報処理装置において、上記パラメータ算出設定手段は、装置の初期化処理時に起動させて、メモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータを算出して設定することを特徴とするものである。
【００１５】
請求項７に係る発明は、請求項５に記載の情報処理装置において、コマンド入力手段を有し、該コマンド入力手段からのコマンド入力情報に基づいて、装置の再起動時に上記パラメータ算出設定手段を起動させて、メモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータを算出して設定することを特徴とするものである。
【００１６】
請求項８に係る発明は、請求項５乃至７のいずれか一項に記載の情報処理装置において、上記パラメータ算出設定手段で検出した書き込みアクセスおよび読み出しアクセスが成功したパラメータ、並びに、算出したメモリ同期クロックおよび読み出しデータサンプリングクロックのそれぞれの位相調節パラメータの設定値を表示する表示手段を有することを特徴とするものである。
【００１７】
請求項９に係る発明は、請求項８に記載の情報処理装置において、上記表示手段に表示された書き込みアクセスおよび読み出しアクセスが成功したパラメータからそれぞれ所望のパラメータを選択可能な選択手段と、該選択手段により選択されたパラメータを格納する記憶手段とを有し、装置の再起動時に上記記憶手段にパラメータが格納されているときは、当該パラメータを上記メモリコントローラに設定することを特徴とするものである。
【発明の効果】
【００１８】
本発明によると、メモリのアクセスタイミング設計に要する時間を短縮できると共に、予め決められたアクセスタイミングのメモリを使用する必要がなく、アクセスタイミングの異なるメモリへ交換を行っても、アクセスタイミングを最適に設定することができる。しかも、メモリ同期クロックおよび読み出しデータサンプリングクロックの位相を調整することによりアクセスタイミングを調節するので、高精度の調節が可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について、図を参照して説明する。
【００２０】
図１は、本発明の一実施の形態に係る情報処理装置の構成を示すブロック図である。図１において、パラメータ算出設定手段を構成するＣＰＵ１０はメモリコントローラ１１を内蔵しており、このメモリコントローラ１１はメモリモジュール１２と接続されている。また、ＣＰＵ１０は、不揮発性メモリ１３に接続されていると共に、信号中継装置１４を経て表示装置１５に接続されている。
【００２１】
メモリモジュール１２には、複数のメモリデバイス４０と誤り検出用デバイス４１とが搭載されている。
【００２２】
また、メモリコントローラ１１は、位相調整回路２０，２１、データ送信回路２２およびデータ受信回路２３を有していると共に、メモリアクセス時の誤りを検出する誤り検出回路２４を有している。
【００２３】
位相調節回路２０は、ＣＰＵ内部クロックをメモリ同期クロックとしてメモリバスへ出力するようになっており、そのメモリ同期クロックの位相は、内蔵するレジスタ６０に設定された位相調節パラメータにより調節されるようになっている。位相調節回路２１は、ＣＰＵ内部クロックを読み出しデータサンプリングクロックとしてデータ受信回路２３に入力するようになっており、その読み出しデータサンプリングクロックの位相は、内蔵するレジスタ６１に設定された位相調節パラメータにより調節されるようになっている。また、データ送信回路２２は、メモリモジュール１２へのデータをＣＰＵ内部クロックに同期してメモリバスへ出力し、データ受信回路２３は、位相調節回路２１からの読み出しデータサンプリングクロックに同期してメモリモジュール１２から入力されたデータをサンプリングするようになっている。
【００２４】
本実施の形態では、メモリ制御プログラムを含む初期化処理プログラムを不揮発性メモリ１３に格納し、この初期化処理プログラムを装置起動時にＣＰＵ１０により読み出してメモリコントローラ１１の初期化処理を実行することにより、位相調節回路２０のレジスタ６０にメモリ同期クロックの位相調節パラメータを設定すると共に、位相調節回路２１のレジスタ６１に読み出しデータサンプリングクロックの位相調節パラメータを設定する。なお、メモリ同期クロックの位相調節パラメータおよび読み出しデータサンプリングクロックの位相調節パラメータ以外のメモリアクセスに必要な設定処理については、メモリ制御処理の実行前に予め行っておく。
【００２５】
以下、本実施の形態の情報処理装置におけるメモリ制御方法について、図２および図３に示すフローチャートを参照して説明する。
【００２６】
図２はメモリ同期クロックの位相調節パラメータを算出するフローチャートであり、図３は読み出しデータサンプリングクロックの位相調節パラメータを算出するフローチャートである。なお、図２および図３において、Ａは、図１のレジスタ６０に設定してメモリ同期クロックの位相を調節するための位相調節パラメータを示しており、最小値Ａ_minから最大値Ａ_maxまで設定可能である。Ｂは、図１のレジスタ６１を設定して読み出しデータサンプリングクロックの位相を調節するための位相調節パラメータを示しており、最小値Ｂ_minから最大値Ｂ_maxまで設定可能である。Ｓは、メモリ同期クロックと読み出しデータサンプリングクロックとの位相差であり、Ｓ_min,Ｓ_maxは、位相差Ｓの取り得る値の最小値、最大値である。Ｘは、位相調節パラメータＡの変数であり、Ｙは位相調節パラメータＢの変数である。min_a、max_aは、メモリアクセスが成功する位相調節パラメータＡの範囲を求めるための変数であり、min_b、max_bはメモリアクセスが成功する位相調節パラメータＢの範囲を求めるための変数である。
【００２７】
メモリ同期クロックの位相調節パラメータＡを算出するにあたっては、図２に示すように、先ず、読み出しアクセスのタイミングを固定するために、メモリ同期クロックと読み出しデータサンプリングクロックとの位相差Ｓを、Ｓ_minに設定する（Ｓ１１）。次に、パラメータＡに設定可能な値の最小値から最大値までを順次設定して、そのつど指定番地に書き込みアクセス、読み出しアクセスを行い、期待値と比較することでメモリアクセスが成功する範囲を検出する（Ｓ１４〜Ｓ２４）。
【００２８】
ここで、メモリアクセスが成功する範囲が存在しない場合は、位相差Ｓを変化させて、再度、メモリアクセスが成功する範囲を検出する（Ｓ２５、Ｓ２６）。このように、一旦、位相差Ｓを固定することで、読み出しアクセスのタイミングを固定し、メモリアクセス成否を判定することにより書き込みアクセスが成功するパラメータＡの範囲が検出される。最後に、メモリアクセスが成功するパラメータＡの範囲(min_a,max_a)から、その中間値を算出してパラメータＡの設定値とする（Ｓ２７）。なお、位相差をＳ_maxまで変化させても、メモリアクセスが成功する範囲が全く存在しない場合には、エラー処理を行って処理を終了する（Ｓ１２、Ｓ２８、Ｓ２９）。
【００２９】
また、読み出しデータサンプリングクロックの位相調節パラメータＢを算出するにあたっては、図３に示すように、先ず、パラメータＢに設定可能な値の最小値から最大値までを順次設定して、そのつど指定番地に書き込みアクセス、読み出しアクセスを行い、期待値と比較することでアクセス可能な範囲を検出する（Ｓ５１〜Ｓ６２）。この際、設定するパラメータＡの値は、図２の処理フローで算出した値である（Ｓ５３）。このように、パラメータＡを固定しているので、メモリアクセス成否を判定することにより、読み出しアクセスが成功するパラメータＢの範囲が検出される。最後に、メモリアクセスが成功する範囲(min_b,max_b)から、その中間値を算出してパラメータＢの設定値とする（Ｓ６２）。
【００３０】
以上のようにして算出された位相調節パラメータＡおよびＢの設定値は、メモリコントローラ１１の対応するレジスタ６０および６１に設定して、メモリモジュール１２の初期化を行い、装置を起動する。
【００３１】
なお、本発明は、上記実施の形態に限定されるものではなく、幾多の変更または変形が可能である。例えば、上記実施の形態では、装置の初期化処理時に位相調節パラメータを算出して設定するようにしたが、ＣＰＵ１０にコマンド入力装置を接続し、固定のパラメータ設定にて装置を起動した後、コマンド入力装置からコマンドを入力することにより、次回の起動時に上述したようにして位相調節パラメータを算出設定することもできる。
【００３２】
また、コマンド入力装置から例えば図４に示すようなコマンドを入力して、メモリアクセスが成功した範囲のパラメータ値と、算出設定した値とを表示装置１５に表示し、その表示された設定範囲から設定値を手動で再設定して、次回の起動時にその手動設定された設定値でメモリを制御することもできる。
【００３３】
さらに、上記実施の形態では、指定番地にデータを書き込んだ後、その番地を読み出して期待値と比較することによりメモリアクセスの成否を判定するようにしたが、更にメモリコントローラ１１に搭載された誤り検出回路２４を用いて、メモリアクセスの成否判定に誤りが検出されないという条件を加えることもできる。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施の形態に係る情報処理装置の構成を示すブロック図である。
【図２】図１に示す情報処理装置におけるメモリ同期クロックの位相調節パラメータの算出手順を示すフローチャートである。
【図３】同じく、読み出しデータサンプリングクロックの位相調節パラメータの算出手順を示すフローチャートである。
【図４】本発明の変形例を説明するためのコマンド例である。
【符号の説明】
【００３５】
１０  ＣＰＵ
１１  メモリコントローラ
１２  メモリモジュール
１３  不揮発性メモリ
１４  信号中継装置
１５  表示装置
２０，２１    位相調節回路
２２  データ送信回路
２３  データ受信回路
２４  誤り検出回路
４０  メモリデバイス
４１  誤り検出用デバイス
６０，６１  レジスタ
【図１】
2006338130.tif 000003
【図２】
2006338130.tif 000004
【図３】
2006338130.tif 000005
【図４】
2006338130.tif 000006