(57)【特許請求の範囲】
【請求項１】
第１データ信号を出力するとともに当該第１データ信号を駆動するドライブ能力を変更可能なメモリデバイスに接続されたメモリインターフェース回路であって、
前記メモリデバイスにより出力された第１ストローブ信号を第１遅延量分遅延させることにより第１遅延ストローブ信号を生成する第１遅延部と、
前記第１遅延ストローブ信号で示されるタイミングで前記第１データ信号を第１ラッチデータ信号としてラッチする第１データラッチ部と、
前記第１データ信号を第２ラッチデータ信号としてラッチする第２データラッチ部と、
前記第１遅延量の値を順次変更する第１遅延制御部と、
前記第１データラッチ部が前記第１データ信号を前記第１ラッチデータ信号として正しくラッチできる前記第１遅延量の値の範囲の幅である第１遅延範囲幅を算出する第１範囲算出部と、
前記第１遅延範囲幅が広くなるように前記メモリデバイスの前記ドライブ能力を調整するドライブ能力設定部とを備える
メモリインターフェース回路。
【請求項２】
前記第２データラッチ部は、前記第２ラッチデータ信号を外部に出力する
請求項１記載のメモリインターフェース回路。
【請求項３】
前記メモリインターフェース回路は、さらに、
前記第１遅延制御部により変更された第１遅延量の値ごとに、前記第１ラッチデータ信号と前記第２ラッチデータ信号とが一致するか否かを判定する比較判定部を備え、
前記第１範囲算出部は、前記比較判定部による判定結果を用いて、前記第１ラッチデータ信号と前記第２ラッチデータ信号とが一致する前記第１遅延量の値の範囲の幅を前記第１遅延範囲幅として算出する
請求項１又は２記載のメモリインターフェース回路。
【請求項４】
前記メモリインターフェース回路は、さらに、
前記第１ストローブ信号を第２遅延量分遅延させることにより第２遅延ストローブ信号を生成する第２遅延部を備え、
前記第２データラッチ部は、前記第１データ信号を前記第２遅延ストローブ信号で示されるタイミングで前記第２ラッチデータ信号としてラッチし、
前記第１範囲算出部は、前記比較判定部による判定結果を用いて、前記第１ラッチデータ信号と前記第２ラッチデータ信号とが一致する前記第１遅延量の値の範囲である第１遅延範囲を判定し、
前記メモリインターフェース回路は、さらに、
前記第１遅延範囲内に前記第２遅延量の値を設定する第２遅延制御部を備える
請求項３記載のメモリインターフェース回路。
【請求項５】
前記ドライブ能力設定部は、
前記メモリデバイスの前記ドライブ能力を順次変更し、
変更した前記ドライブ能力ごとに、前記第１範囲算出部により算出された前記第１遅延範囲幅を格納し、格納した複数の第１遅延範囲幅のうち最も大きい第１遅延範囲幅のドライブ能力に前記メモリデバイスの前記ドライブ能力を調整する
請求項１〜４のいずれか１項に記載のメモリインターフェース回路。
【請求項６】
前記ドライブ能力設定部は、
前記メモリデバイスの前記ドライブ能力を第１方向に変更し、
変更したドライブ能力時の前記第１遅延範囲幅から、当該変更の直前のドライブ能力時の前記第１遅延範囲幅を減算した値が第１閾値未満になるまで、前記ドライブ能力を前記第１方向に変更する処理を繰り返し、
前記減算した値が前記第１閾値以上になった場合、前記メモリデバイスの前記ドライブ能力を前記第１方向と逆の第２方向に変更し、
変更したドライブ能力時の前記第１遅延範囲幅から、当該変更の直前のドライブ能力時の前記第１遅延範囲幅を減算した値が第２閾値未満になるまで、前記ドライブ能力を前記第２方向に変更する処理を繰り返し、
変更した前記ドライブ能力ごとに、前記第１範囲算出部により算出された前記第１遅延範囲幅を格納し、
格納した複数の第１遅延範囲幅のうち最も大きい第１遅延範囲幅のドライブ能力に前記メモリデバイスの前記ドライブ能力を調整する
請求項５記載のメモリインターフェース回路。
【請求項７】
前記メモリデバイスは、さらに、第２データ信号を出力するとともに、当該第２データ信号を駆動するドライブ能力を変更可能であり、
前記メモリインターフェース回路は、さらに、
前記第１ストローブ信号を第３遅延量分遅延させることにより第３遅延ストローブ信号を生成する第３遅延部と、
前記第３遅延ストローブ信号で示されるタイミングで前記第２データ信号を第３ラッチデータ信号としてラッチするとともに、当該第３ラッチデータ信号を外部に出力する第３データラッチ部とを備え、
前記第１データラッチ部は、さらに、前記第１遅延ストローブ信号で示されるタイミングで前記第２データ信号を第４ラッチデータ信号としてラッチし、
前記比較判定部は、さらに、前記第１遅延制御部により変更された第１遅延量の値ごとに、前記第４ラッチデータ信号と前記第３ラッチデータ信号とが一致するか否かを判定し、
前記第１範囲算出部は、さらに、前記比較判定部による判定結果を用いて、前記第４ラッチデータ信号と前記第３ラッチデータ信号とが一致する前記第１遅延量の値の範囲である第２遅延範囲を判定し、
前記メモリインターフェース回路は、さらに、
前記第２遅延範囲内に前記第３遅延量の値を設定する第２遅延制御部を備える
請求項４記載のメモリインターフェース回路。
【請求項８】
前記メモリインターフェース回路は、さらに、
前記第１データ信号及び前記第２データ信号の一方を選択し、選択した前記第１データ信号又は前記第２データ信号を選択データ信号として出力する第１選択部と、
前記第１選択部により前記第１データ信号が選択される場合、前記第２ラッチデータ信号を選択し、前記第１選択部により前記第２データ信号が選択される場合、前記第３ラッチデータ信号を選択し、選択した前記第２ラッチデータ信号又は前記第３ラッチデータ信号を選択ラッチデータ信号として出力する第２選択部とを備え、
前記第１データラッチ部は、前記選択データ信号を前記第１ラッチデータ信号又は前記第４ラッチデータ信号としてラッチし、
前記比較判定部は、前記第１遅延制御部により変更された第１遅延量の値ごとに、前記選択ラッチデータ信号と、前記第１ラッチデータ信号又は前記第４ラッチデータ信号とが一致するか否かを判定する
請求項７記載のメモリインターフェース回路。
【請求項９】
前記メモリデバイスは、さらに、第３データ信号及び第２ストローブ信号を出力するとともに、当該第３データ信号を駆動するドライブ能力を変更可能であり、
前記メモリインターフェース回路は、さらに、
前記第２ストローブ信号を第４遅延量分遅延させることにより第４遅延ストローブ信号を生成する第４遅延部と、
前記第４遅延ストローブ信号で示されるタイミングで前記第３データ信号を第５ラッチデータ信号としてラッチする第４データラッチ部と、
前記第３データ信号を第６ラッチデータ信号としてラッチするとともに、当該第６ラッチデータ信号を外部に出力する第５データラッチ部と、
前記第４遅延量の値を順次変更する第４遅延制御部と、
前記第４データラッチ部が前記第３データ信号を前記第５ラッチデータ信号として正しくラッチできる前記第４遅延量の値の範囲の幅である第２遅延範囲幅を算出する第２範囲算出部と、
前記第１遅延範囲幅の値と前記第２遅延範囲幅の値との間の値となる第３遅延範囲幅を生成する範囲演算部とを備え、
前記ドライブ能力設定部は、前記第３遅延範囲幅が広くなるように、前記メモリデバイスの前記ドライブ能力を調整する
請求項１〜８のいずれか１項に記載のメモリインターフェース回路。
【請求項１０】
前記第１データラッチ部は、前記第１遅延ストローブ信号の立下りエッジ及び立ち上がりエッジの両方で前記第１データ信号を前記第１ラッチデータ信号としてラッチする
請求項１〜９のいずれか１項に記載のメモリインターフェース回路。
【請求項１１】
第１データ信号を出力するとともに当該第１データ信号を駆動するドライブ能力を変更可能なメモリデバイスのドライブ能力を調整するメモリデバイスのドライブ能力調整方法であって、
前記メモリデバイスにより出力された第１ストローブ信号を第１遅延量分遅延させることにより第１遅延ストローブ信号を生成する第１遅延ステップと、
前記第１遅延ストローブ信号で示されるタイミングで前記第１データ信号を第１ラッチデータ信号としてラッチする第１データラッチステップと、
前記第１データ信号を第２ラッチデータ信号としてラッチする第２データラッチステップと、
前記第１遅延量の値を順次変更する第１遅延制御ステップと、
前記第１データラッチステップで前記第１データ信号を前記第１ラッチデータ信号として正しくラッチできる前記第１遅延量の値の範囲の幅である第１遅延範囲幅を算出する第１範囲算出ステップと、
前記第１遅延範囲幅が広くなるように、前記メモリデバイスの前記ドライブ能力を調整するドライブ能力設定ステップとを含む
メモリデバイスのドライブ能力調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリインターフェース回路、及びメモリデバイスのドライブ能力調整方法に関し、特に、第１データ信号及び第１ストローブ信号を出力するとともに、当該第１データ信号を駆動するドライブ能力を変更可能なメモリデバイスに接続されたメモリインターフェース回路に関する。
【背景技術】
【０００２】
近年のメモリシステムでは、処理の増大に伴って、例えばＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような、クロックに同期したデータの入出力が可能なメモリデバイスが用いられることが多い。これらのメモリデバイスでは、データストローブ信号（ＤＱＳ）の立ち上がり及び立ち下がりのエッジに同期して、データ（ＤＱ）の入出力が行われる。
【０００３】
特に、近年ではメモリデバイスの動作周波数の高速化に伴って、ストローブ信号に対するデータの有効期間は短くなる傾向にある。これにより、プロセス特性、温度変化、電圧変化、及びメモリデバイス実装時のインピーダンスマッチングに伴うデータとストローブ信号とのタイミング関係の変動を考慮した場合、安定したデータ入出力が困難になってきている。このような背景から、近年のメモリシステムには、ＺＱキャリブレーションと呼ばれるメモリデバイスのドライブ能力を調整する機能が実装されることが一般的になっている。
【０００４】
一方で、例えば、特許文献１記載のメモリシステムは、データ又はストローブ信号に対して、可変遅延素子を用いて遅延量を調整する可変遅延部を備える。これにより、特許文献１記載のメモリシステムは、データ信号及びストリーム信号のタイミング関係を適切なアクセスタイミングに調整することで、安定したデータ入出力を実現している。
【０００５】
これに加え、メモリデバイスのドライブ能力を調整することによって、安定したデータ入出力が可能な可変遅延素子の遅延量の取り得る範囲を大きくできる。例えば、上述したＺＱキャリブレーションのようなドライブ能力の調整機能を用いることにより、チップ毎に、メモリデバイス実装時のインピーダンスマッチングのばらつきを考慮したドライブ能力の調整が可能になる。これにより、メモリシステムは、より安定したデータ入出力が実現できる。
【０００６】
また、近年、メモリデバイスの動作周波数はますます高速化が進むため、データの確定時間はさらに短くなる。これにより、アクセスタイミングの調整は、より高精度に行う必要性が増している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−０７４６２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１記載の従来の遅延量の調整、及び上述したドライブ能力の調整は、通常動作を停止して行う必要がある。このため、温度変化又は電圧変化に伴うデータ信号とストローブ信号とのアクセスタイミングの変動が生じた場合は、いったん通常動作を停止して、キャリブレーション動作をやり直す必要がある。
【０００９】
よって、従来のメモリシステムでは、このキャリブレーション動作を行ってから次のキャリブレーション動作を行うまでの間のアクセスタイミングの変動を吸収することができない。このため、従来のメモリシステムでは、アクセスタイミングの変動量を通常動作中のアクセスタイミングばらつきとして、動作マージンの範囲内に収めなくてはならない。
【００１０】
また、メモリデバイスの動作周波数を高速化した場合、データの確定時間が増えるほど動作マージンとして確保できる時間は減少する。このため、通常動作中のアクセスタイミングばらつきを動作マージン内に収めることが困難になる。よって、アクセスタイミングばらつきを小さくするために遅延量、及びドライブ能力のそれぞれのキャリブレーション動作を頻繁に行うことが必要になる。
【００１１】
しかし、キャリブレーション動作を頻繁に行うと、そのキャリブレーション動作の間、通常動作が行うことができず処理が停止してしまうという問題が発生する。
【００１２】
本発明は上記従来の問題点を解決するものであり、通常動作中にドライブ能力のキャリブレーション動作を行うことができるメモリインターフェース回路を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明に係るメモリインターフェース回路は、第１データ信号を出力するとともに当該第１データ信号を駆動するドライブ能力を変更可能なメモリデバイスに接続されたメモリインターフェース回路であって、前記メモリデバイスにより出力された第１ストローブ信号を第１遅延量分遅延させることにより第１遅延ストローブ信号を生成する第１遅延部と、前記第１遅延ストローブ信号で示されるタイミングで前記第１データ信号を第１ラッチデータ信号としてラッチする第１データラッチ部と、前記第１データ信号を第２ラッチデータ信号としてラッチする第２データラッチ部と、前記第１遅延量の値を順次変更する第１遅延制御部と、前記第１データラッチ部が前記第１データ信号を前記第１ラッチデータ信号として正しくラッチできる前記第１遅延量の値の範囲の幅である第１遅延範囲幅を算出する第１範囲算出部と、前記第１遅延範囲幅が広くなるように前記メモリデバイスの前記ドライブ能力を調整するドライブ能力設定部とを備える。
【発明の効果】
【００１４】
本発明によれば、通常動作中にドライブ能力のキャリブレーション動作を行うことができるメモリインターフェース回路を提供できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１に係るメモリシステムのブロック図である。
【図２】本発明の実施の形態１に係る遅延範囲を示す図である。
【図３】本発明の実施の形態１に係るドライブ能力調整処理のフローチャートである。
【図４】本発明の実施の形態１に係るドライブ能力及びウィンドウ幅を示す図である。
【図５】本発明の実施の形態１に係るドライブ能力及びウィンドウ幅を示す図である。
【図６】本発明の実施の形態１に係るドライブ能力及びウィンドウ幅を示す図である。
【図７】本発明の実施の形態２に係るメモリシステムのブロック図である。
【図８】本発明の実施の形態３に係るメモリシステムのブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００１７】
（実施の形態１）
本発明の実施の形態１に係るメモリインターフェース回路は、外部にリードデータを出力するためのラッチ回路とは、別に監視用のラッチ回路を備える。また、本発明の実施の形態１に係るメモリインターフェース回路は、この監視用のラッチ回路がリードデータを正しくラッチできる遅延量の値の範囲の幅を算出し、当該幅が広くなるようにメモリデバイスのドライブ能力を調整する。
【００１８】
これにより、本発明の実施の形態１に係るメモリインターフェース回路は、通常動作中にドライブ能力のキャリブレーション動作を行うことができる。
【００１９】
まず、本発明の実施の形態１に係るメモリインターフェース回路１１４の構成を説明する。
【００２０】
図１は、本発明の実施の形態１に係るメモリシステム１００の構成を示すブロック図である。
【００２１】
図１に示すメモリシステム１００は、メモリデバイス１０１と、メモリインターフェース回路１１４とを含む。メモリデバイス１０１及びメモリインターフェース回路１１４は互いに、少なくともデータ信号線１０２とストローブ信号線１０３とコマンド信号線１１３とにより接続される。
【００２２】
メモリデバイス１０１は、ストローブ信号の立ち上がりエッジ又は立下りエッジのいずれか一方でデータをラッチ（保持）するＳＤＲ（Ｓｉｎｇｌｅ  Ｄａｔａ  Ｒａｔｅ）−ＳＤＲＡＭでもよく、また、ストローブ信号の立ち上がりエッジ及び立下りエッジの両方でデータをラッチするＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）−ＳＤＲＡＭでもよい。
【００２３】
以下では、簡明のため、ストローブ信号の立ち上がりエッジに関係する構成及び動作について説明する。
【００２４】
メモリデバイス１０１は、リードデータ１２３及びストローブ信号１２９を出力する。また、メモリデバイス１０１は、リードデータ１２３を駆動するドライブ能力を、外部からの設定により変更可能である。
【００２５】
メモリインターフェース回路１１４は、メモリデバイス１０１へライトデータ１２１を書き込む。また、メモリインターフェース回路１１４は、メモリデバイス１０１からリードデータ１２３を読み出し、読み出したリードデータ１２３を出力リードデータ１２２として外部に出力する。また、メモリインターフェース回路１１４は、通常動作中に、ストローブ信号１２９を遅延させる遅延量を調整することにより、リードデータ１２３とストローブ信号１２９とのタイミングを調整する機能を有する。さらに、メモリインターフェース回路１１４は、通常動作中に、メモリデバイス１０１のドライブ能力を調整する機能を有する。
【００２６】
データ信号線１０２は、メモリインターフェース回路１１４からメモリデバイス１０１に書き込むライトデータ１２１、及びメモリデバイス１０１から読み出すリードデータ１２３を転送するために使用される。このデータ信号線１０２は、一般的には双方向の信号線である。なお、図１ではデータ信号線１０２は１本であるが、データ信号線１０２が１本のストローブ信号線１０３に対応する複数のデータ信号線で構成されていても構わない。
【００２７】
ストローブ信号線１０３は、メモリインターフェース回路１１４からメモリデバイス１０１にライトデータ１２１を書き込む場合に、メモリインターフェース回路１１４からメモリデバイス１０１へのライトストローブ信号を出力するために使用される。また、ストローブ信号線１０３は、メモリインターフェース回路１１４がメモリデバイス１０１からリードデータ１２３を読み出す場合には、メモリデバイス１０１からメモリインターフェース回路１１４へリードストローブ信号１２９を出力するために使用される。このストローブ信号線１０３は、一般的には双方向の信号線である。なお、図１では、ライトストローブ信号を生成する回路については省略している。また、以下では、リードストローブ信号１２９を単にストローブ信号１２９とも記す。
【００２８】
コマンド信号線１１３は、一般に複数の信号線で構成され、ドライブ能力設定を含むメモリデバイス１０１の動作条件の設定に用いられる。また、コマンド信号線１１３は、一定の条件で動作条件設定に用いられていれば、メモリデバイス１０１のアドレス信号などその他の信号線と兼用されていても構わない。
【００２９】
メモリインターフェース回路１１４は、動的遅延キャリブレーション部１１５と、ドライブ能力設定部１１６とを備える。また、動的遅延キャリブレーション部１１５は、方向制御部１０４と、動作用データラッチ部１０５と、動作用遅延制御部１０６と、監視用データラッチ部１０７と、監視用遅延制御部１０８と、比較判定部１０９と、動作用遅延部１１７と、監視用遅延部１１８とを含む。ドライブ能力設定部１１６は、範囲算出部１１０と、ドライブ能力制御部１１１と、コマンド生成部１１２とを含む。
【００３０】
なお、メモリデバイス１０１にＤＤＲ−ＳＤＲＡＭを用いる場合は、メモリインターフェース回路１１４におけるこれらの構成要素を、１本のストローブ信号線１０３に対して、ストローブ信号１２９の立ち上がりエッジ及び立下りエッジのそれぞれに対応して２組設けてもよい。これにより、ストローブ信号１２９の立ち上がりエッジ及び立下りエッジのそれぞれについて独立にタイミング調整を行うことができる。
【００３１】
方向制御部１０４は、内部回路からライトデータ１２１をデータ信号線１０２へ転送するか、データ信号線１０２から動作用データラッチ部１０５及び監視用データラッチ部１０７へリードデータ１２３を転送するかを制御する。
【００３２】
内部回路は、メモリインターフェース回路１１４を介してメモリデバイス１０１を利用する回路である。本発明では内部回路の機能を限定しない。内部回路は、一例としてはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００３３】
動作用遅延部１１７は、メモリデバイス１０１がストローブ信号線１０３に出力したストローブ信号１２９を動作用遅延量分遅延させることにより、動作用ストローブ信号１２４を生成する。
【００３４】
監視用遅延部１１８は、メモリデバイス１０１がストローブ信号線１０３に出力したストローブ信号１２９を監視用遅延量分遅延させることにより、監視用ストローブ信号１２５を生成する。
【００３５】
動作用データラッチ部１０５は、方向制御部１０４を通じて伝わったリードデータ１２３を動作用ストローブ信号１２４で示されるタイミング（立ち上がりエッジ）でラッチする。また、動作用データラッチ部１０５は、ラッチしたリードデータ１２３を出力リードデータ１２２として、内部回路へ出力するとともに、当該出力リードデータ１２２を比較判定部１０９へ出力する。
【００３６】
監視用データラッチ部１０７は、方向制御部１０４を通じて伝わったリードデータ１２３を監視用ストローブ信号１２５で示されるタイミング（立ち上がりエッジ）でラッチする。また、監視用データラッチ部１０７は、ラッチしたリードデータ１２３を監視用データ１２６として、比較判定部１０９へ出力する。
【００３７】
監視用遅延制御部１０８は、監視用データラッチ部１０７が用いる監視用遅延量を設定する。
【００３８】
比較判定部１０９は、例えば、リード動作ごとに、動作用データラッチ部１０５がラッチした出力リードデータ１２２の値と、監視用データラッチ部１０７がラッチした監視用データ１２６の値とを比較する。例えば、比較判定部１０９は、当該二つのデータの値が一致しているか否かを判定する。
【００３９】
なお、データ信号線１０２が複数本である場合、動作用データラッチ部１０５及び監視用データラッチ部１０７は複数ビットで構成される。また、比較判定部１０９は複数ビットのデータを比較する。
【００４０】
範囲算出部１１０は、比較判定部１０９による判定結果を用いて、監視用データラッチ部１０７がリードデータ１２３を監視用データ１２６として正しくラッチできる監視用遅延量の値の範囲（以下、遅延範囲１２７）を算出する。言い換えると、遅延範囲１２７は、動作用データラッチ部１０５がリードデータ１２３を出力リードデータ１２２として正しくラッチできる動作用遅延量の値の範囲である。
【００４１】
図２は、遅延範囲１２７を示す図である。図２に示すように、遅延範囲１２７は、それ以下の遅延値になると正しくラッチできなくなる遅延値が小さい側の境界１４０と、それ以上の遅延値になるとラッチできなくなる遅延値が大きい側の境界１４１との間の遅延量の範囲である。
【００４２】
具体的には、監視用遅延制御部１０８は、監視用遅延量の値を、例えば、リードアクセス毎に、順次変更する。比較判定部１０９は、監視用遅延制御部１０８により変更された監視用遅延量の値ごとに、監視用データ１２６と出力リードデータ１２２とが一致するか否かを判定する。範囲算出部１１０は、監視用遅延量の値ごとの比較判定部１０９による判定結果を記憶する。また、範囲算出部１１０は、出力リードデータ１２２と監視用データ１２６とが一致する監視用遅延量の値の範囲を遅延範囲１２７として算出する。
【００４３】
なお、範囲算出部１１０は、出力リードデータ１２２と監視用データ１２６とが一致する監視用遅延量の値の範囲に対して、所定のマージンを加味した範囲を遅延範囲１２７として算出してもよい。例えば、遅延範囲１２７は、出力リードデータ１２２と監視用データ１２６とが一致する監視用遅延量の値の範囲に対して、予め定められた値分、内側の範囲であってもよい。
【００４４】
動作用遅延制御部１０６は、範囲算出部１１０により算出された遅延範囲１２７内に、動作用遅延部１１７が用いる動作用遅延量を設定する。具体的には、動作用遅延制御部１０６は、遅延範囲１２７を用いて動作用遅延量を算出する。例えば、動作用遅延制御部１０６は、遅延範囲１２７の境界に対して、所定のマージンを加えた遅延量を動作用遅延量として算出する。
【００４５】
このように、動的遅延キャリブレーション部１１５による一連の動作により、動作用データラッチ部１０５で出力リードデータ１２２をラッチすることで通常動作を継続しながら、監視用データラッチ部１０７で監視用データ１２６をラッチすることでリードデータ１２３を適切にラッチできる遅延量の境界を監視することができる。これにより、動的遅延キャリブレーション部１１５は、通常動作を中断することなく、遅延量のキャリブレーションを実現できる。
【００４６】
また、内部回路は動作用データラッチ部１０５でラッチした出力リードデータ１２２を用い、監視用データラッチ部１０７でラッチした監視用データ１２６は利用しない。よって、監視用データラッチ部１０７に遅延範囲１２７の境界付近の遅延値が設定されており、監視用データラッチ部１０７が仮に誤ったデータをラッチしたとしても内部回路の動作に影響を及ぼさない。
【００４７】
なお、ここでは、範囲算出部１１０は、リードデータ１２３を正しくラッチできる遅延量の範囲を算出しているが、範囲算出部１１０は、それ以下の遅延値になると正しくラッチできなくなる遅延値が小さい側の境界１４０と、それ以上の遅延値になるとラッチできなくなる遅延値が大きい側の境界１４１とのうち一方の境界のみを算出してもよい。この場合、動作用遅延制御部１０６は、範囲算出部１１０により算出された境界に対して、所定のマージンを加えた遅延量を動作用遅延量として算出すればよい。
【００４８】
また、上記のように遅延範囲１２７を算出する場合に、動的遅延キャリブレーション部１１５は、遅延値が小さい側の境界と大きい側の境界とを独立に監視する２組の監視用データラッチ部１０７と監視用遅延制御部１０８と監視用遅延部１１８とを備えてもよい。
【００４９】
これらの動作に加えて、範囲算出部１１０は、算出した遅延範囲１２７の幅を示すウィンドウ幅１２８を算出する。
【００５０】
ドライブ能力設定部１１６は、ウィンドウ幅１２８が広くなるように、メモリデバイス１０１のドライブ能力を調整する。
【００５１】
具体的には、ドライブ能力設定部１１６は、メモリデバイス１０１のドライブ能力を順次変更する。また、ドライブ能力設定部１１６は、変更したドライブ能力ごとに、範囲算出部１１０により算出されたウィンドウ幅１２８を格納する。また、ドライブ能力設定部１１６は、格納した複数のウィンドウ幅１２８のうち最も大きいウィンドウ幅１２８のドライブ能力にメモリデバイス１０１のドライブ能力を調整する。
【００５２】
ドライブ能力制御部１１１は、範囲算出部１１０により算出されたウィンドウ幅１２８と、メモリデバイス１０１に設定されているドライブ能力との関係を記憶する。また、ドライブ能力制御部１１１は、更新するドライブ能力の設定値をコマンド生成部１１２に送る。
【００５３】
コマンド生成部１１２は、ドライブ能力制御部１１１から送られたドライブ能力設定値に基づいてメモリデバイス１０１にコマンド信号線１１３を通じてドライブ能力設定コマンドを発行する。
【００５４】
なお、リードデータ１２３、ストローブ信号１２９及びウィンドウ幅１２８は、それぞれ、本発明の第１データ信号、第１ストローブ信号及び第１遅延範囲幅に相当する。また、監視用遅延部１１８、監視用遅延量、監視用ストローブ信号１２５、監視用データラッチ部１０７、監視用データ１２６及び監視用遅延制御部１０８は、それぞれ、本発明の第１遅延部、第１遅延量、第１遅延ストローブ信号、第１データラッチ部、第１ラッチデータ及び第１遅延制御部に相当する。また、動作用遅延部１１７、動作用遅延量、動作用ストローブ信号１２４、動作用データラッチ部１０５、出力リードデータ１２２及び動作用遅延制御部１０６は、本発明の第２遅延部、第２遅延量、第２遅延ストローブ信号、第２データラッチ部、第２ラッチデータ及び第２遅延制御部に相当する。
【００５５】
以下、本発明の実施の形態１に係るメモリシステム１００によるドライブ能力調整の動作を説明する。
【００５６】
図３は、メモリシステム１００によるドライブ能力調整の動作のフローチャートである。
【００５７】
まず、範囲算出部１１０は、ウィンドウ幅１２８を算出する（Ｓ１０１）。
次に、ドライブ能力制御部１１１は、範囲算出部１１０により算出されたウィンドウ幅１２８が基準ウィンドウ幅１３０以上であるか否かを判定する（Ｓ１０２）。ここで、基準ウィンドウ幅１３０とは、本装置を用いる際に、この値よりもウィンドウ幅１２８が狭くなると安定したアクセスができなくなるためドライブ能力の再調整が必要になるウィンドウ幅１２８を示す。この基準ウィンドウ幅１３０は、条件入力として外部より入力されてもよいし、メモリインターフェース回路１１４が備える処理部により生成されてもよいし、メモリインターフェース回路１１４が備える記憶部に記憶されていてもよい。例えば、基準ウィンドウ幅１３０は、ソフトウェアによって設定されたレジスタの値である。
【００５８】
また、ステップＳ１０１及びＳ１０２の処理は、ウィンドウ幅１２８が基準ウィンドウ幅１３０未満であると判定される（Ｓ１０２でＮｏ）まで、範囲算出部１１０によりウィンドウ幅１２８が算出される毎に繰り返される。
【００５９】
ステップＳ１０２において、ウィンドウ幅１２８が基準ウィンドウ幅１３０未満であると判定された場合（Ｓ１０２でＮｏ）、次に、ドライブ能力制御部１１１は、現在のウィンドウ幅１２８とドライブ能力値とを格納する（Ｓ１０３）。
【００６０】
図４は、ドライブ能力制御部１１１に格納されるウィンドウ幅１２８とドライブ能力値との一例を示す図である。ここではドライブ能力値６０２が４０ｍＡ、その時のウィンドウ幅１２８が１３ｄｉｇｉｔと格納されている。なお、ここでは、ドライブ能力値の単位として駆動電流値であるｍＡを用い、ウィンドウ幅１２８の単位として、監視用遅延部１１８における監視用遅延量の管理単位であるｄｉｇｉｔとを用いるが管理の単位については重要ではなくどのような単位で管理しても構わない。
【００６１】
ステップＳ１０４以降はドライブ能力のキャリブレーション動作である。
まず、ドライブ能力制御部１１１は、ドライブ能力値を１増やす方向に設定を変更する（Ｓ１０４）。これにより、コマンド生成部１１２は、メモリデバイス１０１のドライブ能力値を１増やす。なお、ここでは、一例として、ドライブ能力値を１増加している。これは、ドライブ能力値として駆動電流値を用いていた場合は、駆動電流値を１ｍＡ上げることを表す。ただし、これは一例に過ぎず、ドライブ能力値を１増加することに対応する駆動電流値の上げ幅は任意一定値でもよい。つまり、ドライブ能力制御部１１１は、ドライブ能力値をｎ（ｎは任意の自然数）増加してもよい。また、上述の通り、ドライブ能力値に対応する値は駆動電流値に限られるものではない。
【００６２】
ステップＳ１０４の動作により、メモリデバイス１０１のデータ信号線１０２のドライブ能力が変化し、リードデータ１２３を監視用ストローブ信号１２５でラッチすることができる遅延値の範囲（ウィンドウ）が変化する。次に、範囲算出部１１０は、ドライブ能力変更後のウィンドウ幅１２８を算出する（Ｓ１０５）。
【００６３】
この場合、ウィンドウ幅が狭くなる場合と広くなる場合が考えられるが、この変化は監視用データラッチ部１０７で感知される。よって、ドライブ能力値の変更量が十分に小さければ動作用データラッチ部１０５で誤ったデータがラッチされることはなく、通常動作を継続することができる。
【００６４】
次に、ドライブ能力制御部１１１は、ステップＳ１０４で変更された新たなドライブ能力値と、ステップＳ１０５で算出された新たなウィンドウ幅１２８とを格納する（Ｓ１０６）。
【００６５】
次に、ドライブ能力制御部１１１は、ステップＳ１０６で格納した新たなウィンドウ幅１２８とその前に格納したウィンドウ幅１２８とを比較することにより、ウィンドウ幅１２８が増加したか否かを判定する（Ｓ１０７）。ウィンドウ幅１２８が増加している場合（Ｓ１０７でＹｅｓ）、再度、ステップＳ１０４の処理が行われる。なお、ウィンドウ幅が増加しているか否かの判定基準は多様であり、ウィンドウ幅１２８が同じ場合、ウィンドウ幅１２８が微少に減少している場合、又は、ウィンドウ幅１２８が微少に増加している場合に、ドライブ能力制御部１１１は、ウィンドウ幅１２８が増加していると判定してもよい。
【００６６】
言い換えると、ドライブ能力制御部１１１は、ステップＳ１０６で格納した新たなウィンドウ幅１２８からその前に格納したウィンドウ幅１２８を減算し、減算結果が予め定められた閾値以上の場合、ウィンドウ幅１２８が増加していると判定し、減算結果が上記閾値未満である場合、ウィンドウ幅１２８が減少していると判定する。
【００６７】
図５は、上述のステップＳ１０４〜Ｓ１０７の動作を複数回繰り返し行った状態における、ドライブ能力制御部１１１に格納されるドライブ能力値とウィンドウ幅１２８との一例を示す図である。
【００６８】
ドライブ能力値６０２からスタートしてループ動作を行った結果、ドライブ能力値６０４まではドライブ能力値を増やすごとにウィンドウ幅１２８が増加している。しかし、ドライブ能力値６０６に増やした時点でウィンドウ幅１２８は減少している。
【００６９】
このように、ウィンドウ幅１２８が減少した場合（Ｓ１０７でＮｏ）、次に、ドライブ能力制御部１１１は、ドライブ能力値を１減らす方向に設定を変更する（Ｓ１０８）。その結果、ウィンドウ幅１２８が変化する。
【００７０】
次に、範囲算出部１１０は、ドライブ能力変更後のウィンドウ幅１２８を算出する（Ｓ１０９）。
【００７１】
次に、ドライブ能力制御部１１１は、ステップＳ１０８で変更した新たなドライブ能力値と、ステップＳ１０９で算出された新たなウィンドウ幅１２８とを格納する（Ｓ１１０）。
【００７２】
次に、ドライブ能力制御部１１１は、ステップＳ１１０で格納した新たなウィンドウ幅１２８とその前に格納したウィンドウ幅１２８とを比較することにより、ウィンドウ幅１２８が増加しているか否かを判定する（Ｓ１１１）。ウィンドウ幅１２８が増加している場合（Ｓ１１０でＹｅｓ）、再度、ステップＳ１０８の処理が行われる。なお、ウィンドウ幅が増加しているか否かの判定基準は多様であり、ウィンドウ幅１２８が同じ場合、ウィンドウ幅１２８が微少に減少している場合、又は、ウィンドウ幅１２８が微少に増加している場合に、ドライブ能力制御部１１１は、ウィンドウ幅１２８が増加していると判定してもよい。
【００７３】
言い換えると、ドライブ能力制御部１１１は、ステップＳ１０６で格納した新たなウィンドウ幅１２８からその前に格納したウィンドウ幅１２８を減算し、減算結果が予め定められた閾値以上の場合、ウィンドウ幅１２８が増加していると判定し、減算結果が上記閾値未満である場合、ウィンドウ幅１２８が減少していると判定する。
【００７４】
図５に示した例では、ドライブ能力値を６０６から減らす方向にステップＳ１０８〜Ｓ１１１の動作が繰り返されると、ドライブ能力値６０４からドライブ能力値６０８に更新された時点で、ウィンドウ幅１２８が縮小する。
【００７５】
このように、ウィンドウ幅１２８が減少した場合（Ｓ１１１でＮｏ）、次に、ドライブ能力制御部１１１は、格納するドライブ能力値とウィンドウ幅１２８とからウィンドウ幅１２８が最大になるドライブ能力値を、設定するドライブ能力値に決定する（Ｓ１１２）。図５に示す例では、ドライブ能力値６０４のウィンドウ幅１２８が最も大きいので、このドライブ能力値６０４が設定するドライブ能力値として決定される。
【００７６】
次に、コマンド生成部１１２は、ステップＳ１１２で決定された最適なドライブ能力値を設定するコマンドを生成することにより、メモリデバイス１０１のドライブ能力値を設定する（Ｓ１１３）。
【００７７】
以上により、ドライブ能力のキャリブレーション動作が完了する。また、ドライブ能力設定部１１６は、新たに設定したドライブ能力に応じて、ステップＳ１０１で用いる基準ウィンドウ幅１３０を更新する。例えば、ドライブ能力設定部１１６は、新たに設定したドライブ能力時のウィンドウ幅１２８、又は当該ウィンドウ幅１２８に所定の値を加算又は減算した値を、新たな基準ウィンドウ幅１３０として設定する。
【００７８】
なお、本実施の形態では、一例としてドライブ能力値を増やす動作（ステップＳ１０４〜Ｓ１０７）を行った後に、ドライブ能力値を減らす動作（ステップＳ１０８〜Ｓ１１１）を行っているが、ドライブ能力値を減らす動作を行った後にドライブ能力値を増やす動作を行ってもよい。
【００７９】
また、ここでは、ステップＳ１０３で格納したドライブ能力値よりステップＳ１１２で決定したドライブ能力値が大きい場合を例に用いて説明したが、ステップＳ１０３で格納したドライブ能力値がステップＳ１１２で決定されるドライブ能力値よりも小さな場合においても、同様に最適なドライブ能力値を探索できる。
【００８０】
図６は、この場合のドライブ能力制御部１１１に格納されるドライブ能力値とウィンドウ幅１２８との一例を示す図である。
【００８１】
例えば、図６に示すように、ステップＳ１０３でドライブ能力値８０２を格納した場合、ステップＳ１０４〜Ｓ１０７のループ動作の回数よりステップＳ１０８〜Ｓ１１１のループ動作の回数が多くなるため、ステップＳ１１２において、ドライブ能力値８０４のウィンドウ幅１２８が最適値として決定される。
【００８２】
以上より、本発明の実施の形態１に係るメモリインターフェース回路１１４は、通常動作用の回路（動作用遅延部１１７及び動作用データラッチ部１０５）とは別に、監視用の回路（監視用遅延部１１８及び監視用データラッチ部１０７）を備える。また、メモリインターフェース回路１１４は、この監視用の回路の遅延量を変更することにより、リードデータ１２３を正しくラッチできる遅延範囲１２７を算出する。さらに、メモリインターフェース回路１１４は、算出した遅延範囲１２７を用いて動作用遅延部１１７の遅延量を調整する。
【００８３】
これにより、メモリインターフェース回路１１４は、通常動作に影響を与えない監視用の回路を用いて、遅延量のキャリブレーションを行うことができる。よって、メモリインターフェース回路１１４は、通常動作を中断することなく、通常動作中に遅延量のキャリブレーションを行うことができる。
【００８４】
さらに、本発明の実施の形態１に係るメモリインターフェース回路１１４は、監視用の回路を用いて算出された遅延範囲１２７からウィンドウ幅１２８を算出する。また、メモリインターフェース回路１１４は、算出したウィンドウ幅１２８が広くなるように、メモリデバイス１０１のドライブ能力を調整する。
【００８５】
これにより、メモリインターフェース回路１１４は、通常動作に影響を与えない監視用の回路を用いて、メモリデバイス１０１のドライブ能力のキャリブレーションを行うことができる。よって、メモリインターフェース回路１１４は、メモリデバイス１０１のドライブ能力設定を、通常動作中も継続して調整することができる。
【００８６】
（実施の形態２）
本発明の実施の形態２では、データ信号線が複数の場合に対応したメモリインターフェース回路について説明する。
【００８７】
ここで、データ信号線が複数本である場合、上述した実施の形態１の構成では、遅延調整の精度は複数のデータ信号間のばらつき分悪くなる。これに対して、本発明の実施の形態２に係るメモリインターフェース回路は、複数のデータ信号のそれぞれに対して独立に遅延量を調整することにより、遅延調整の精度を向上できる。
【００８８】
図７は、本発明の実施の形態２に係るメモリシステム２００のブロック図である。なお、図１と同様の要素には同一の符号を付している。また、以下では、実施の形態１に係るメモリシステム１００との相違点を主に説明し、重複する説明は省略する。
【００８９】
本発明の実施の形態２に係るメモリシステム２００は、メモリデバイス２０１と、メモリインターフェース回路２１４とを含む。ここで、メモリデバイス２０１及びメモリインターフェース回路２１４は互いに、２本のデータ信号線１０２Ａ及び１０２Ｂにより接続される点が実施の形態１と異なる。
【００９０】
また、メモリインターフェース回路２１４の動的遅延キャリブレーション部２１５の構成が実施の形態１に係る動的遅延キャリブレーション部１１５の構成と異なる。具体的には、動的遅延キャリブレーション部２１５は、図１に示す動作用データラッチ部１０５と動作用遅延部１１７と動作用遅延制御部１０６との代わりに、動作用データラッチ部１０５Ａ及び１０５Ｂと動作用遅延部１１７Ａ及び１１７Ｂと動作用遅延制御部１０６Ａ及び１０６Ｂとを備える。また、動的遅延キャリブレーション部２１５は、さらに、制御部２５０と、選択部２５１及び２５２とを備える。また、範囲算出部２１０の機能が範囲算出部１１０の機能と異なる。
【００９１】
なお、図７では、図１に示す方向制御部１０４及びライトデータ１２１は省略しているが図１と同様の構成である。
【００９２】
動作用遅延部１１７Ａは、ストローブ信号１２９を第１動作用遅延量分遅延させることにより、動作用ストローブ信号１２４Ａを生成する。
【００９３】
動作用遅延部１１７Ｂは、ストローブ信号１２９を第２動作用遅延量分遅延させることにより、動作用ストローブ信号１２４Ｂを生成する。
【００９４】
動作用データラッチ部１０５Ａは、リードデータ１２３Ａを動作用ストローブ信号１２４Ａで示されるタイミング（立ち上がりエッジ）でラッチする。また、動作用データラッチ部１０５Ａは、ラッチしたリードデータ１２３Ａを出力リードデータ１２２Ａとして、内部回路へ出力する。
【００９５】
動作用データラッチ部１０５Ｂは、リードデータ１２３Ｂを動作用ストローブ信号１２４Ｂで示されるタイミング（立ち上がりエッジ）でラッチする。また、動作用データラッチ部１０５Ｂは、ラッチしたリードデータ１２３Ｂを出力リードデータ１２２Ｂとして、内部回路へ出力する。
【００９６】
制御部２５０は、制御信号２６０に応じて切替信号２６１を生成する。なお、制御信号２６０は条件入力として与えられる。例えば、制御信号２６０は、外部より入力されてもよいし、メモリインターフェース回路２１４が備える処理部により生成されてもよい。例えば、制御信号２６０は、リフレッシュ動作であるか否かを示す信号である。この場合、制御部２５０は、リフレッシュ動作ごとに切替信号２６１の論理値を反転させる。また、切替信号２６１は、リードデータ１２３Ａ（出力リードデータ１２２Ａ）及びリードデータ１２３Ｂ（出力リードデータ１２２Ｂ）の一方を選択するための信号である。
【００９７】
選択部２５２は、切替信号２６１の論理値に応じて、リードデータ１２３Ａ及び１２３Ｂの一方を選択し、選択したデータを選択リードデータ２６３として監視用データラッチ部１０７に出力する。
【００９８】
監視用データラッチ部１０７は、選択部２５２により出力される選択リードデータ２６３を監視用ストローブ信号１２５で示されるタイミング（立ち上がりエッジ）でラッチする。また、監視用データラッチ部１０７は、ラッチしたリードデータ１２３を監視用データ１２６として、比較判定部１０９へ出力する。
【００９９】
選択部２５１は、切替信号２６１の論理値に応じて、出力リードデータ１２２Ａ及び１２２Ｂの一方を選択し、選択したデータを選択出力リードデータ２６２として比較判定部１０９に出力する。また、選択部２５２によりリードデータ１２３Ａが選択される場合、選択部２５１は出力リードデータ１２２Ａを選択し、選択部２５２によりリードデータ１２３Ｂが選択される場合、選択部２５１は出力リードデータ１２２Ｂを選択する。
【０１００】
比較判定部１０９は、選択部２５１により出力された選択出力リードデータ２６２の値と、監視用データ１２６の値とを比較する。例えば、比較判定部１０９は、当該二つのデータの値が一致しているか否かを判定する。
【０１０１】
範囲算出部２１０は、切替信号２６１の論理値に応じて、比較判定部１０９による判定結果を用いて、遅延範囲１２７Ａ又は１２７Ｂを算出する。具体的には、範囲算出部２１０は、切替信号２６１によりリードデータ１２３Ａ（出力リードデータ１２２Ａ）を選択することが示される場合には、比較判定部１０９による判定結果を用いて、遅延範囲１２７Ａを算出する。また、範囲算出部２１０は、切替信号２６１によりリードデータ１２３Ｂ（出力リードデータ１２２Ｂ）を選択することが示される場合には、比較判定部１０９による判定結果を用いて、遅延範囲１２７Ｂを算出する。なお、範囲算出部２１０による遅延範囲１２７Ａ及び１２７Ｂの算出方法の詳細は、実施の形態１に係る範囲算出部１１０による遅延範囲１２７の算出方法と同様である。
【０１０２】
動作用遅延制御部１０６Ａは、範囲算出部２１０により算出された遅延範囲１２７Ａ内に、動作用遅延部１１７Ａが用いる第１動作用遅延量を設定する。
【０１０３】
動作用遅延制御部１０６Ｂは、範囲算出部２１０により算出された遅延範囲１２７Ｂ内に、動作用遅延部１１７Ｂが用いる第２動作用遅延量を設定する。
【０１０４】
なお、動作用遅延制御部１０６Ａ及び１０６Ｂの詳細な動作は、実施の形態１で説明した動作用遅延制御部１０６の動作と同様である。
【０１０５】
また、リードデータ１２３Ａ及び１２３Ｂは、それぞれ本発明の第１データ信号及び第２データ信号に相当する。また、遅延範囲１２７Ａ及び１２７Ｂは、それぞれ本発明の第１遅延範囲及び第２遅延範囲に相当する。また、動作用遅延部１１７Ａ及び１１７Ｂは、それぞれ本発明の第２遅延部及び第３遅延部に相当する。また、第１動作用遅延量及び第２動作遅延量は、それぞれ本発明の第２遅延量及び第３遅延量に相当する。また、動作用ストローブ信号１２４Ａ及び動作用ストローブ信号１２４Ｂは、それぞれ本発明の第２遅延ストローブ信号及び第３遅延ストローブ信号に相当する。また、動作用データラッチ部１０５Ａ及び１０５Ｂは、それぞれ本発明の第２データラッチ部及び第３データラッチ部に相当する、また、出力リードデータ１２２Ａ及び１２２Ｂは、それぞれ本発明の第２ラッチデータ信号及び第３ラッチデータ信号に相当する。また、監視用データ１２６は、本発明の第１ラッチデータ信号及び第４ラッチデータ信号に相当する。また、動作用遅延制御部１０６Ａ及び１０６Ｂは、本発明の第２遅延制御部及び第３遅延制御部に相当する。また、選択部２５２及び２５１は、それぞれ本発明の第１選択部及び第２選択部に相当する。また、選択リードデータ２６３及び選択出力リードデータ２６２は、それぞれ本発明の選択データ信号及び選択ラッチデータ信号に相当する。
【０１０６】
以上により、本発明の実施の形態２に係るメモリインターフェース回路２１４は、複数のリードデータ１２３Ａ及び１２３Ｂのそれぞれに対して遅延量を調整することにより、遅延調整の精度を向上できる。
【０１０７】
また、本発明の実施の形態２に係るメモリインターフェース回路２１４は、遅延値の観測対象である複数のリードデータ１２３Ａ及び１２３Ｂのそれぞれを、選択部２５１及び２５２で切り換えることで、複数の観測対象に対して監視用遅延部１１８と監視用データラッチ部１０７と監視用遅延制御部１０８と比較判定部１０９と範囲算出部２１０とを共用できる。このように、メモリインターフェース回路２１４は、観測対象を切り換える構成によって、半導体集積回路装置における実装面積を削減できる。
【０１０８】
なお、上記説明では、２本のデータ信号線１０２Ａ及び１０２Ｂを用いる例を説明したが、３本以上の場合にも、本発明を適用できる。
【０１０９】
（実施の形態３）
図８は、本発明の実施の形態３に係るメモリシステム３００のブロック図である。なお、図１と同様の要素には同一の符号を付している。また、以下では、実施の形態１に係るメモリシステム１００との相違点を主に説明し、重複する説明は省略する。
【０１１０】
本発明の実施の形態３に係るメモリシステム３００は、メモリデバイス３０１と、メモリインターフェース回路３１４とを含む。ここで、メモリデバイス２０１及びメモリインターフェース回路３１４は互いに、２本のデータ信号線１０２Ａ及び１０２Ｂと、２本のストローブ信号線１０３Ａ及び１０３Ｂにより接続される点が実施の形態１と異なる。
【０１１１】
メモリインターフェース回路３１４は、動的遅延キャリブレーション部１１５Ａ及び１１５Ｂと、ドライブ能力設定部１１６と、範囲演算部３７０とを備える。
【０１１２】
動的遅延キャリブレーション部１１５Ａ及び１１５Ｂは、それぞれ図１に示す動的遅延キャリブレーション部１１５と同様の処理部である。
【０１１３】
動的遅延キャリブレーション部１１５Ａには、メモリデバイス３０１によりデータ信号線１０２Ａに出力されたリードデータ１２３Ａと、ストローブ信号線１０３Ａに出力されたストローブ信号１２９Ａが入力される。また、動的遅延キャリブレーション部１１５Ｂには、メモリデバイス３０１によりデータ信号線１０２Ｂに出力されたリードデータ１２３Ｂと、ストローブ信号線１０３Ｂに出力されたストローブ信号１２９Ｂが入力される。なお、リードデータ１２３Ａ及びリードデータ１２３Ｂは、図１に示すリードデータ１２３に相当する。また、ストローブ信号１２９Ａ及び１２９Ｂは、図１に示すストローブ信号１２９に相当する。
【０１１４】
また、動的遅延キャリブレーション部１１５Ａはウィンドウ幅１２８Ａを生成し、動的遅延キャリブレーション部１１５Ｂはウィンドウ幅１２８Ｂを生成する。このウィンドウ幅１２８Ａ及び１２８Ｂは、図１に示すウィンドウ幅１２８に相当する。
【０１１５】
範囲演算部３７０は、ウィンドウ幅１２８Ａ及び１２８Ｂに基づき、ウィンドウ幅３７２を生成する。例えば、範囲演算部３７０は、ウィンドウ幅１２８Ａとウィンドウ幅１２８Ｂとの間の値となるウィンドウ幅３７２を生成する。具体的には、範囲演算部３７０は、ウィンドウ幅１２８Ａとウィンドウ幅１２８Ｂとの平均値を算出し、算出した平均値をウィンドウ幅３７２として出力する。なお、範囲演算部３７０は、ウィンドウ幅１２８Ａ及び１２８Ｂのうち小さい方、又は大きい方を選択し、選択したウィンドウ幅１２８Ａ又は１２８Ｂをウィンドウ幅３７２として出力してもよい。
【０１１６】
また、範囲演算部３７０は、このような複数種類の演算のうちいずれかを、制御信号３７１に応じて選択的に行なってもよい。
【０１１７】
ドライブ能力設定部１１６は、図１に示すウィンドウ幅１２８の代わりに、範囲演算部３７０により生成されたウィンドウ幅３７２を用いて、上述した実施の形態１と同様の処理を行う。
【０１１８】
なお、リードデータ１２３Ａ及び１２３Ｂは、それぞれ本発明の第１データ信号及び第３データ信号に相当する。また、ストローブ信号１２９Ａ及び１２９Ｂは、それぞれ本発明の第１ストローブ信号及び第２ストローブ信号に相当する。また、ウィンドウ幅１２８Ａ、１２８Ｂ及び３７２は、それぞれ本発明の第１遅延範囲幅、第２遅延範囲幅及び第３遅延範囲幅に相当する。また、動的遅延キャリブレーション部１１５Ａに含まれる、監視用遅延部１１８、監視用データラッチ部１０７、動作用データラッチ部１０５、監視用遅延制御部１０８及び範囲算出部１１０は、それぞれ、本発明の第１遅延部、第１データラッチ部、第２データラッチ部、第１遅延制御部及び第１範囲算出部に相当する。また、動的遅延キャリブレーション部１１５Ｂに含まれる、監視用遅延部１１８、監視用データラッチ部１０７、動作用データラッチ部１０５、監視用遅延制御部１０８及び範囲算出部１１０は、それぞれ、本発明の第４遅延部、第４データラッチ部、第５データラッチ部、第４遅延制御部及び第２範囲算出部に相当する。
【０１１９】
以上により、本発明の実施の形態３に係るメモリインターフェース回路３１４は、複数の動的遅延キャリブレーション部１１５Ａ及び１１５Ｂと、複数の動的遅延キャリブレーション部１１５Ａ及び１１５Ｂで生成されたウィンドウ幅１２８Ａ及び１２８Ｂを演算する範囲演算部３７０とを備える。これにより、メモリインターフェース回路３１４は、複数のリードデータ１２３Ａ及び１２３Ｂと複数のストローブ信号１２９Ａ及び１２９Ｂとに対するウィンドウ幅１２８Ａ及び１２８Ｂを同時に生成できる。
【０１２０】
ここで、半導体集積回路装置において複数のリードデータ１２３Ａ及び１２３Ｂと複数のストローブ信号１２９Ａ及び１２９Ｂについて、上述した実施の形態１に係るメモリインターフェース回路１１４を用いて時分割にウィンドウ幅を取得することは可能である。しかし、この場合、時間経過に伴う遅延値のばらつきとデータ信号相互の遅延値のばらつきを区別することができない。
【０１２１】
一方、実施の形態３に係るメモリインターフェース回路３１４は、ウィンドウ幅１２８Ａ及び１２８Ｂを同時に得ることができるため、データ信号相互の遅延値のばらつきのみを算出することができる。これにより、メモリインターフェース回路３１４は、複数のデータ信号に対して最適なドライブ能力をより高い精度で設定できる。
【０１２２】
なお、動的遅延キャリブレーション部１１５Ａ及び１１５Ｂに、実施の形態２で説明した動的遅延キャリブレーション部２１５を用いてもよい。
【０１２３】
また、上記実施の形態１〜３に係るメモリインターフェース回路１１４、２１４及び３１４に含まれる各処理部は典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部又はすべてを含むように１チップ化されてもよい。
【０１２４】
また、集積回路化はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１２５】
また、本発明の実施の形態１〜３に係る、メモリインターフェース回路１１４、２１４及び３１４の機能の一部又は全てを、ＣＰＵ等のプロセッサがプログラムを実行することにより実現してもよい。
【０１２６】
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【０１２７】
また、本発明は、上述したメモリインターフェース回路１１４、２１４及び３１４として実現できるだけでなく、メモリインターフェース回路１１４、２１４及び３１４に含まれる特徴的な手段をステップとするメモリデバイスのドライブ能力調整方法として実現してもよい。
【０１２８】
さらに、本発明は、このようなメモリインターフェース回路１１４、２１４及び３１４の機能の一部又は全てを実現する半導体集積回路（ＬＳＩ）として実現してもよい。
【０１２９】
また、本発明は、このようなメモリインターフェース回路１１４、２１４又は３１４と、メモリデバイス１０１、２０１又は３０１とを含むメモリシステム１００、２００又は３００として実現してもよい。
【０１３０】
また、上記実施の形態１〜３に係る、メモリインターフェース回路１１４、２１４又は３１４、及びその変形例の機能のうち少なくとも一部を組み合わせてもよい。
【０１３１】
また、上記で用いた数字は、すべて本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。さらに、ハイ／ローにより表される論理レベルは、本発明を具体的に説明するために例示するものであり、例示された論理レベルと異なる論理レベルの組み合わせにより、同等な結果を得ることも可能である。また、構成要素間の接続関係は、本発明を具体的に説明するために例示するものであり、本発明の機能を実現する接続関係はこれに限定されない。
【０１３２】
また、上記メモリインターフェース回路１１４、２１４又は３１４の構成は、本発明を具体的に説明するために例示するためのものであり、本発明に係るメモリインターフェース回路１１４、２１４又は３１４は、上記構成の全てを必ずしも備える必要はない。言い換えると、本発明に係るメモリインターフェース回路１１４、２１４又は３１４は、本発明の効果を実現できる最小限の構成のみを備えればよい。
【０１３３】
例えば、上記説明では、メモリインターフェース回路１１４、２１４及び３１４は、遅延量のキャリブレーション機能と、メモリデバイスのドライブ能力のキャリブレーション機能とを両方有しているが、一方のみを有してもよい。
【０１３４】
同様に、上記のメモリインターフェース回路１１４、２１４又は３１４によるメモリデバイスのドライブ能力調整方法は、本発明を具体的に説明するために例示するためのものであり、本発明に係るメモリインターフェース回路１１４、２１４又は３１４によるメモリデバイスのドライブ能力調整方法は、上記ステップの全てを必ずしも含む必要はない。言い換えると、本発明に係るメモリインターフェース回路１１４、２１４又は３１４によるメモリデバイスのドライブ能力調整方法は、本発明の効果を実現できる最小限のステップのみを含めばよい。また、上記のステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時（並列）に実行されてもよい。
【０１３５】
更に、本発明の主旨を逸脱しない限り、本実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本発明に含まれる。
【産業上の利用可能性】
【０１３６】
本発明は、メモリインターフェース回路に適用できる。また、本発明は、当該メモリインターフェース回路を搭載したＤＴＶ（デジタルテレビ）、ＤＶＤレコーダ、ＢＤレコーダ、デジタルスチルカメラ、デジタルビデオカメラ、及び携帯電話等に適用できる。
【符号の説明】
【０１３７】
１００、２００、３００  メモリシステム
１０１、２０１、３０１  メモリデバイス
１０２、１０２Ａ、１０２Ｂ  データ信号線
１０３、１０３Ａ、１０３Ｂ  ストローブ信号線
１０４  方向制御部
１０５、１０５Ａ、１０５Ｂ  動作用データラッチ部
１０６、１０６Ａ、１０６Ｂ  動作用遅延制御部
１０７  監視用データラッチ部
１０８  監視用遅延制御部
１０９  比較判定部
１１０、２１０  範囲算出部
１１１  ドライブ能力制御部
１１２  コマンド生成部
１１３  コマンド信号線
１１４、２１４、３１４  メモリインターフェース回路
１１５、１１５Ａ、１１５Ｂ、２１５  動的遅延キャリブレーション部
１１６  ドライブ能力設定部
１１７、１１７Ａ、１１７Ｂ  動作用遅延部
１１８  監視用遅延部
１２１  ライトデータ
１２２、１２２Ａ、１２２Ｂ  出力リードデータ
１２３、１２３Ａ、１２３Ｂ  リードデータ
１２４、１２４Ａ、１２４Ｂ  動作用ストローブ信号
１２５  監視用ストローブ信号
１２６  監視用データ
１２７、１２７Ａ、１２７Ｂ  遅延範囲
１２８、１２８Ａ、１２８Ｂ、３７２  ウィンドウ幅
１２９、１２９Ａ、１２９Ｂ  ストローブ信号
１３０  基準ウィンドウ幅
１４０、１４１  境界
２５０  制御部
２５１、２５２  選択部
２６０、３７１  制御信号
２６１  切替信号
２６２  選択出力リードデータ
２６３  選択リードデータ
３７０  範囲演算部
６０２、６０４、６０６、６０８、８０２、８０４  ドライブ能力値
【図１】
0005427564.tif 000002
【図２】
0005427564.tif 000003
【図３】
0005427564.tif 000004
【図４】
0005427564.tif 000005
【図５】
0005427564.tif 000006
【図６】
0005427564.tif 000007
【図７】
0005427564.tif 000008
【図８】
0005427564.tif 000009