(57)【要約】【課題】動作電圧が変化してもメモリデバイスやメモリデバイスを制御するメモリコントローラ間のデータの取り込みを最適なタイミングで行うよう制御するメモリアクセス制御装置を提供する。【解決手段】メモリアクセス制御装置は、メモリデバイスと、メモリコントローラとを備え、メモリコントローラは、動作電圧を変化させながら書き込み読出し動作が可能なライトストローブ信号とリードストローブ信号との遅延値の範囲をサーチするとともに、これら遅延値の範囲内から動作保証電圧範囲内において書き込み及び読み出し動作が可能なライトストローブ信号とリードストローブ信号の遅延値を設定する。【選択図】図１
2007249738.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのメモリデバイスと、
該メモリデバイスへのデータの書き込みを行うライトストローブ信号の遅延値及び前記メモリデバイスからのデータの読み出しを行うリードストローブ信号の遅延値を調整するメモリコントローラとを備え、
前記メモリコントローラは、動作電圧を少なくとも動作保証電圧範囲内で変化させながら、書き込み及び読み出し動作が可能な前記ライトストローブ信号及びリードストローブ信号の遅延値の範囲をサーチするとともに、前記遅延値の範囲内から動作保証電圧範囲内において書き込み及び読み出し動作が可能なライトストローブ信号とリードストローブ信号の遅延値を設定することを特徴とするメモリアクセス制御装置。
【請求項２】
さらに、前記メモリデバイスと前記メモリコントローラの動作電圧を供給する電源ＩＣと、
前記動作電圧のレベルを設定するＣＰＵとを備えたことを特徴とする請求項１記載のメモリアクセス制御装置。
【請求項３】
前記電源ＩＣは、前記動作電圧のレベルを前記ＣＰＵの指示により設定するレジスタを備えたことを特徴とする請求項２記載のメモリアクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス制御装置に関し、特に動作電圧が変化してもメモリやメモリを制御するメモリコントローラ間のデータの取り込みを最適なタイミングで行うよう制御するメモリアクセス制御装置に関する。
【背景技術】
【０００２】
従来、例えば、ＤＤＲ（ダブルデータレート）−ＳＤＲＡＭのようなメモリデバイスを搭載するシステムでは、メモリデバイスとメモリコントローラ間でのデータの取り込みは、ストローブ信号によりデータをラッチすることにより行わる。ところで、近年、メモリデバイスの動作周波数は数百ＭＨｚに達し、メモリデバイスやメモリコントローラがデータをラッチする際、データに対するストローブ信号のセットアップ・ホールドタイムといった時間軸上の余裕（マージン）が極めて小さくなりつつある。このため、メモリコントローラやメモリデバイス内での信号遅延はもちろん、配線基板上の信号遅延（ｆｌｉｇｈｔ  ｔｉｍｅ）もアクセス品質を保つうえで無視できなくなりつつある。
【０００３】
このような問題に対処するため、ストローブ信号を遅延させて入出力されるデータとストローブ信号の時間軸上の相対的な位置を最適に保つよう調整する機能を搭載したメモリコントローラが開発されている。メモリデバイスを搭載するシステムは、この機能を用い最も動作マージンが大きくなる遅延値をサーチし設定することによって、メモリデバイスの安定的な動作を実現している。
【０００４】
例えば、特許文献１には、ＤＤＲ−ＳＤＲＡＭにデータを読み書きするメモリシステムに対し、データストローブ信号を遅延させてディレイを調整するディレイ調整手段を備え、ある特定の値を特定のアドレスに書き込み、ディレイ調整手段のディレイ値を変更し、アドレスと同じアドレスへ読み込み、両者の値を比較して認識し、当該認識した読み込み可能範囲の中間値をディレイ調整手段に設定するメモリ制御部を備えたメモリ制御装置が開示されている。
【０００５】
また、特許文献２には、基準となる単一のクロックと、入力信号もしくは出力信号に対して複数の遅延を挿入可能な遅延回路と、挿入する遅延量を設定する遅延選択回路と、最適な遅延量を決定する最適遅延判定手段とを備え、入力もしくは出力、またはその両方について最適な遅延を挿入するメモリ制御装置が開示されている。
【特許文献１】特開２００３−９９３２１号公報
【特許文献２】特開２００５−７０９３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、メモリデバイスを搭載したシステムにおいては、外部的もしくは内部的な要因による一時的もしくは長期間にわたる経時的な変化によって、メモリコントローラやメモリデバイスに供給される電源電圧が一定の範囲で変動する場合がある。このような電圧変動はデータやストローブ信号間でのタイミングのずれ等その動作に影響を与え、場合によってはメモリデバイスをアクセス（書き込み、読み出し）する際の動作マージンを悪化させるといった事態を引き起こす。今日のように、メモリ動作の高速化のために信号振幅を小さくしているような場合にはその影響は特に顕著となる。
【０００７】
本発明の目的は、前記従来技術に基づく問題点を解消し、システムにおいて最適なストローブ信号の遅延値をサーチする際、同時に動作電圧を動作保証が可能な範囲で変化させ、その結果を考慮した上で、最適な遅延値の算出・設定を行うメモリアクセス制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のメモリアクセス制御装置は、少なくとも１つのメモリデバイスと、そのメモリデバイスへのデータの書き込みを行うライトストローブ信号の遅延値及び上記メモリデバイスからのデータの読み出しを行うリードストローブ信号の遅延値を調整するメモリコントローラとを備え、上記メモリコントローラは、動作電圧を少なくとも動作保証電圧範囲内で変化させながら、書き込み及び読み出し動作が可能な上記ライトストローブ信号及びリードストローブ信号の遅延値の範囲をサーチするとともに、上記遅延値の範囲内から動作保証電圧範囲内において書き込み及び読み出し動作が可能なライトストローブ信号とリードストローブ信号の遅延値を設定するものである。
【０００９】
ここで、本発明のメモリアクセス制御装置は、上記メモリデバイスと上記メモリコントローラの動作電圧を供給する電源ＩＣと、上記動作電圧のレベルを設定するＣＰＵとを備えることが好ましい。
【００１０】
また、上記電源ＩＣは、上記動作電圧のレベルを上記ＣＰＵの指示により設定するレジスタを備えることが好ましい。
【発明の効果】
【００１１】
本発明のメモリアクセス制御装置は、データを取り込むリードストローブ信号やライトストローブ信号の最適な遅延値をサーチする際、同時に動作電圧を動作保証が可能な範囲内で変化させ、その結果を考慮した上で最適な遅延値の算出・設定を行うものであるため、動作電圧の変動等環境が変化した場合であっても、メモリアクセスの際の動作マージンを十分確保することが可能となり、メモリデバイスを長期間にわたって安定的に動作させることが可能になる。
【発明を実施するための最良の形態】
【００１２】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のメモリアクセス制御装置について詳細に説明する。
【００１３】
図１は、本発明のメモリアクセス制御装置の内部構成を表す一実施形態の概略図である。図１に示すメモリアクセス制御装置１は、ＣＰＵ２、メモリコントローラ６、メモリデバイス８、電源ＩＣ１０を備えている。
【００１４】
メモリコントローラ６と電源ＩＣ１０はＣＰＵ２とＣＰＵバス４を介して接続されている。メモリデバイス８は、データバス２６、アドレスバス２４、ライトストローブ信号線２８、リードストローブ信号線３０によってメモリコントローラ６と接続されている。ただし、ライトストローブ信号線２８とリードストローブ信号線３０は物理的に１つの信号線であってもかまわない。
【００１５】
メモリコントローラ６内部には、ＣＰＵ２から指定されたアドレスをメモリデバイス８へ出力するためのアドレスラッチ回路１２と、読み出し書き込みの対象となるデータを一時的に格納するためのデータラッチ回路１４と、ＣＰＵ２から遅延量の指定を受けるためのレジスタ２０と、ライトストローブ信号の遅延値を調整するディレイライン１６と、リードストローブ信号の遅延値を調整するディレイライン１８とを備えている。
【００１６】
ＣＰＵ２はこのレジスタ２０に所定の値を設定することによって、ディレイライン１６とディレイライン１８を構成する遅延セル（図示せず）の段数を決定し、結果としてライトストローブ信号とリードストローブ信号に対して所定の遅延値を設定することが可能となる。
【００１７】
電源ＩＣ１０はメモリデバイス８及びメモリコントローラ６に電源電圧を供給する。電源ＩＣ１０には、出力する電源電圧をＣＰＵ２から指定できるようレジスタ２２が内蔵されている。ＣＰＵ２はこのレジスタ２２の値を変更することによって、メモリコントローラ６及びメモリデバイス８へ供給する電源電圧を変動させる。なお、電源ＩＣ１０からの出力は低電圧ダイオード等の外部素子から構成された回路により、所望の電圧が正確に出力されていることをＣＰＵ２から判定できるような構成になっていることが望ましい。
【００１８】
図２は、本発明のメモリアクセス制御装置１において、データの読み出し書き込みが可能なリードストローブ信号とライトストローブ信号の遅延値の範囲をサーチするためのプログラムの動作を示すフローチャートである。
【００１９】
図２では、ライトストローブ信号とリードストローブ信号に与えられる遅延量を連続的に変化させ、データの読み出し書き込みが可能なリードストローブ信号とライトストローブ信号の遅延値の範囲をサーチする様子を示している。動作は二重ループとなっており、ライトストローブ信号の遅延値とリードストローブ信号の遅延値について２次元サーチを行う。いま、メモリデバイス８の動作保証電圧が３Ｖ±１０％であると仮定して説明する。
【００２０】
まず、電源電圧の指定範囲内（動作保証電圧範囲内）で最小の電圧値２．７Ｖをレジスタ２２に指定するとともに、ライトストローブ信号の最小の遅延値をレジスタ２０に設定し（ステップ１００）、リードストローブ信号の最小の遅延値をレジスタ２０に設定する（ステップ１０２）。つぎに、ディレイライン１６により所定の値だけ遅延されたライトストローブ信号によりデータをメモリデバイス８の所定のアドレスに取り込む（書き込む）。そして、メモリデバイス８の同一アドレスに書き込まれたデータをディレイライン１８により遅延されたリードストローブ信号によりデータラッチ回路１４に取り込む（読み出す）（ステップ１０４）。
【００２１】
これら書き込み前のデータの値と読み出されたデータの値を比較し（ステップ１０６）、各々のデータの値が同じであれば、管理テーブル（図示せず）にデータの書き込み、読み出しが正常に終了したマークを記録し（ステップ１０８）、リードストローブ信号の遅延値を１ステップ分増加させる（ステップ１１０）。データの値が異なるものである（データの書き込み、読み出しが正常に終了しなかった）場合には、管理テーブルには記録せずステップ１１０に進む。
【００２２】
つぎに、リードストローブ信号の遅延値が指定の範囲か否か判定し（ステップ１１２）、リードストローブ信号の遅延値が指定の範囲を超えるまでステップ１０４からステップ１１２を繰り返す。
【００２３】
リードストローブ信号の遅延値が指定範囲外となった場合には、ライトストローブ信号の遅延値を１ステップ増加させ（ステップ１１４）、その遅延値が指定範囲内か否かを判定して（ステップ１１６）、範囲内であればステップ１０２に戻り、以降、指定範囲外となるまでステップ１０２からステップ１１６を繰り返す。
【００２４】
上述したプログラム動作を、例えば、電源電圧の中間値３．０Ｖ、最大の３．３Ｖについて行う。
【００２５】
図３は、低電圧（２．７Ｖ）動作時において、図２のフローチャートに従いプログラムを実行した場合に得られる、リードストローブ信号とライトストローブ信号の遅延値の範囲を星取表の形式で表した図である。リードストローブ信号に与えられる遅延値はＡ−Ｋの範囲で変化させ、ライトストローブ信号に与えられる遅延値についてはａ−ｋの範囲で変化させる。ここでは、Ａおよびａが指定範囲内での最小値であるものとする。図３では、読み出し書き込みに失敗した部分には×は、成功した部分は○で示されている。
【００２６】
図４は、同様に、中間電圧（３．０Ｖ）動作時において、図２のフローチャートに従いプログラムを実行した場合に得られる、リードストローブ信号とライトストローブ信号の遅延値の範囲を星取表の形式で表した図である。
【００２７】
図５は、同様に、高電圧（３．３Ｖ）動作時において、図２のフローチャートに従いプログラムを実行した場合に得られる、リードストローブ信号とライトストローブ信号の遅延値の範囲を星取表の形式で表した図である。
【００２８】
メモリデバイス８やメモリコントローラ６が、電源電圧の動作保証範囲内で正しくデータを書き込み、読み出しを行うためには、リードストローブ信号及びライトストローブ信号の遅延値が、図３〜図５で示される○の箇所の共通部分に設定されている必要がある。
【００２９】
図６は、図３〜図５に示す結果から、全ての電圧動作において読み出し書き込みが成功したリードストローブ信号とライトストローブ信号の遅延値の範囲の算出結果を星取表で表わした図である。
【００３０】
ところで、最適なストローブ信号の遅延値の判定を行う場合、遅延量のサーチ処理はメモリデバイス８を搭載したシステムの電源投入直後に行われることが望ましい。また、その際、メモリコントローラ６及びメモリデバイス８に供給する電源電圧が極力変動しないよう必要最小限のデバイスのみを動作させることが好ましい。
【００３１】
ＣＰＵ２はメモリデバイス８の初期化などの最小限の処理を行った後、サーチプログラムを起動し、図２に示すフローチャートに従っての遅延量のサーチを実行する。
【００３２】
まず、ＣＰＵ２は電源ＩＣ１０のレジスタ２２にアクセスを行い、電源ＩＣ１０がメモリコントローラ６及びメモリデバイス８が動作保証をしている最低電圧を出力するよう設定した状態でサーチ処理を行い、低電圧動作時の結果として図３に示す遅延値の範囲を得る。この結果から分かるように、リードストローブ信号への遅延値がＥ−Ｉ、ライトストローブ信号への遅延値ｅ−ｉの場合において、メモリは正常に動作することがわかる。
【００３３】
次に、ＣＰＵ２は電圧を動作保証範囲の中間電位に設定した状態で図２に示すフローチャートに従って遅延量のサーチ処理を実行し、中間電圧時の結果として図４に示す遅延値の範囲を得る。ここでは、リードストローブ信号への遅延値がＤ−Ｈ、ライトストローブ信号への遅延値ｄ−ｈの場合において、メモリは正常に動作することがわかる。
【００３４】
最後に、ＣＰＵ２は電圧を動作保証範囲の最高電圧に設定した状態で図２に示すフローチャートに従った遅延量のサーチ処理を実行し、高電圧時の結果として図５に示す遅延値の範囲を得る。ここでは、リードストローブ信号への遅延値がＣ−Ｇ、ライトストローブ信号への遅延値がｃ−ｇの場合において、メモリは正常に動作している。
【００３５】
サーチが終了すると、ＣＰＵ２は電源ＩＣ１０のレジスタ２２に電源ＩＣ１０の出力が動作保証範囲の中間電位になるように所定の値をセットする。
【００３６】
最適な遅延値は全電圧時において正常に動作した範囲から選択する。このため、ＣＰＵ２は図３〜図５に示す結果から、全動作電圧に共通の範囲として図６に示すような遅延値の範囲を算出する。この内容からメモリデバイス８は、リードストローブ信号への遅延値はＥ−Ｇ、ライトストローブ信号への遅延値はｅ−ｇの範囲において、正常に動作していることがわかる。この範囲内で最もマージンが確保できるのはこの範囲の中間に位置する値となる。即ち、リードストローブ信号への遅延値はＦ、ライトストローブ信号への遅延値はｆの場合であるため、ＣＰＵ２はこれらの値をメモリコントローラ６内のレジスタ２０に設定し、その後メモリコントローラ６はこの値を使用してメモリデバイス８にアクセスすることになる。これにより、外部もしくは内部要因により電源電圧が変動した場合でも、メモリコントローラ６は安定したアクセスに必要とされる動作マージンを確保することとなる。
【００３７】
本実施形態のメモリアクセス制御装置は、最適な遅延量をサーチする際、同時に動作電圧を動作保証が可能な範囲内で変化させ、その結果を考慮した上で最適な遅延値の算出を行うものであるため、環境が変化した際にも、メモリアクセスの際の動作マージンを十分確保することが可能となり、メモリデバイスを長期間にわたって安定的に動作させることが可能になる。
【００３８】
本発明は、基本的に以上のようなものである。
【００３９】
以上、本発明のメモリアクセス制御装置について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよい。
【図面の簡単な説明】
【００４０】
【図１】本発明のメモリアクセス制御装置の内部構成を表す一実施形態の概略図である。
【図２】本発明のメモリアクセス制御装置において、データの読み出し書き込みが可能な遅延値の範囲をサーチするためのプログラムの動作を示すフローチャートである。
【図３】低電圧動作時において、図２のフローチャートに従いプログラムを実行した場合に得られる、リードストローブ信号とライトストローブ信号の遅延値の範囲を星取表の形式で表した図である。
【図４】中間電圧動作時において、図２のフローチャートに従いプログラムを実行した場合に得られる、リードストローブ信号とライトストローブ信号の遅延値の範囲を星取表の形式で表した図である。
【図５】高電圧動作時において、図２のフローチャートに従いプログラムを実行した場合に得られる、リードストローブ信号とライトストローブ信号の遅延値の範囲を星取表の形式で表した図である。
【図６】図３〜図５に示す結果から、全ての電圧動作においてデータの読み出し書き込みが成功したリードストローブ信号とライトストローブ信号の遅延値の範囲の算出結果を星取表で表わした図である。
【符号の説明】
【００４１】
２  ＣＰＵ
４  ＣＰＵバス
６  メモリコントローラ
８  メモリデバイス
１０  電源ＩＣ
１２  アドレスラッチ回路
１４  データラッチ回路
１６、１８  ディレイライン
２０、２２  レジスタ
【図１】
2007249738.tif 000003
【図２】
2007249738.tif 000004
【図３】
2007249738.tif 000005
【図４】
2007249738.tif 000006
【図５】
2007249738.tif 000007
【図６】
2007249738.tif 000008