(57)【要約】  データ送受信を安定して行うためのタイミング調整のためのデータ転送を行うと、本来のアプリケーション動作に必要なデータ転送を妨げてしまう。そこで、メモリ装置（１００）内にメモリセル（１０１）とは別にレジスタセット（１０２）を設け、メモリセル（１０１）へのアクセス不可期間にレジスタセット（１０２）へのアクセスを行い、タイミング調整を可能にする。これにより、アプリケーションの実行に影響を与えないで、タイミング調整ができる。
2010100685.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのメモリセルと、
少なくとも１つの記憶手段と、
入出力バッファと、
前記記憶手段および前記メモリセルのうちで、予め定められた選択信号が示す方と、前記入出力バッファとを接続するセレクタと、
当該メモリ装置へと発行された、前記記憶手段へのアクセスを行うコマンドを検出し、検出したことを示す検出信号を出力する特殊コマンド検出部と、
前記特殊コマンド検出部からの前記検出信号に応じて、一定期間前記セレクタが前記記憶手段を選択することを示す信号を、前記選択信号として前記セレクタに出力するデータパス管理部とを備えるメモリ装置。
【請求項２】
請求項１に記載のメモリ装置において、
前記特殊コマンド検出部は、前記記憶手段への読み出しコマンドを検出し、
前記記憶手段は、当該読み出しコマンドを検出したことを示す検出信号が前記特殊コマンド検出部により前記データパス管理部に出力された後、当該記憶手段が記憶するレジスタ値を出力し、
前記セレクタは、前記記憶手段から前記レジスタ値が出力された後、前記メモリセルを選択するメモリ装置。
【請求項３】
請求項１に記載のメモリ装置において、
前記特殊コマンド検出部は、前記記憶手段への書き込みコマンドを検出し、
前記記憶手段は、当該書き込みコマンドを検出したことを示す検出信号が前記特殊コマンド検出部によって前記データパス管理部に出力された後、当該メモリ装置の外部から入力されたデータを当該記憶手段に格納し、
前記セレクタは、前記記憶手段が外部から入力された前記データを格納した後、前記メモリセルを選択するメモリ装置。
【請求項４】
請求項２に記載のメモリ装置において、
前記記憶手段は、複数のレジスタを備えるレジスタセットであり、
前記特殊コマンド検出部は、前記検出した読み出しコマンドに含まれるアドレス情報を前記記憶手段に出力し、
前記記憶手段は、当該記憶手段へ出力される前記アドレス情報を基に、読み出しを行うレジスタを、前記複数のレジスタのなかから選択するメモリ装置。
【請求項５】
請求項３に記載のメモリ装置において、
前記記憶手段は、複数のレジスタを備えるレジスタセットであり、
前記特殊コマンド検出部は、前記検出した書き込みコマンドに含まれるアドレス情報を前記記憶手段に出力し、
前記記憶手段は、当該記憶手段へ出力される前記アドレス情報を基に、書き込みを行うレジスタを、前記複数のレジスタのなかから選択するメモリ装置。
【請求項６】
予め定められたメモリ装置に対して、当該メモリ装置が有する予め定められた記憶手段からのデータ読み出しを指示するリードコマンドを発行するコマンド発行部と、
前記メモリ装置が出力するストローブ信号を遅延すると共に、前記メモリ装置が備えるメモリセルに記憶された記憶データを、遅延されたストローブ信号を用いて当該メモリ装置から受信するデータ送受信部と、
前記メモリ装置の前記記憶手段から読み出されたデータと、予め保持している期待値データとを比較し、前記メモリセルに記憶された前記記憶データの受信に際して、当該比較の結果より特定される遅延時間だけ前記ストローブ信号を前記データ送受信部により遅延させる遅延制御部とを有するメモリ制御装置。
【請求項７】
請求項６に記載のメモリ制御装置であって、
前記遅延制御部は、
前記記憶手段が有する複数のレジスタのうちから１つのレジスタを選択するためのアドレス情報を前記リードコマンドに付加し、
さらに、前記期待値データを複数セット有し、前記メモリ装置から読み出されたデータと、前記複数セットの期待値データのうち、前記アドレス情報により選択されたレジスタに対応する期待値データとを比較するメモリ制御装置。
【請求項８】
請求項６記載のメモリ制御装置であって、
予め定められたメモリ装置とデータの送受信を行うデータ送受信部と、
前記メモリ装置に対して、前記メモリ装置が有する予め定められた記憶手段へのデータ書き込みを指示するライトコマンドを発行するコマンド発行部とを有するメモリ制御装置。
【請求項９】
請求項６に記載のメモリ制御装置であって、
前記メモリ装置のモードを検知するメモリ状態管理部と、
前記メモリ状態管理部から通知された前記メモリ装置のモードに基づき、前記コマンド発行部に対して前記メモリ装置へのコマンドの発行を指示するコマンド管理部とを有し、
前記コマンド管理部は、前記メモリ装置が前記メモリセルからのデータ入出力がないモード時に、前記記憶手段へのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示するメモリ制御装置。
【請求項１０】
請求項９に記載のメモリ制御装置であって、
前記コマンド管理部は、前記メモリ装置がリフレッシュモード時に、前記記憶手段へのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示するメモリ制御装置。
【請求項１１】
請求項９に記載のメモリ制御装置であって、
前記コマンド管理部は、前記メモリ装置がバンクコンフリクトによってデータバスが不使用である時に、前記記憶手段へのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示するメモリ制御装置。
【請求項１２】
請求項６記載のメモリ制御装置であって、
前記データ送受信部は、前記遅延制御部からの遅延値情報を基に、前記ストローブ信号を遅延させる遅延部を有し、遅延させた前記ストローブ信号で前記メモリ装置からのデータを受信するメモリ制御装置。
【請求項１３】
請求項１２に記載のメモリ制御装置であって、
前記遅延制御部は、
前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、
前記遅延させる値として、前記一致する範囲の上限値より大きな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致する場合、保持している遅延値の範囲を更新するメモリ制御装置。
【請求項１４】
請求項１２に記載のメモリ制御装置であって、
前記遅延制御部は、
前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、
前記遅延させる値として、前記一致する範囲の上限値より小さな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致しない場合、保持している遅延値の範囲を更新するメモリ制御装置。
【請求項１５】
請求項１２に記載のメモリ制御装置であって、
前記遅延制御部は、
前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、
前記遅延させる値として、前記一致する範囲の下限値より小さな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致する場合、保持している遅延値の範囲を更新するメモリ制御装置。
【請求項１６】
請求項１２に記載のメモリ制御装置であって、
前記遅延制御部は、
前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、
前記遅延させる値として、前記一致する範囲の下限値より大きな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致しない場合、保持している遅延値の範囲を更新するメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置を用いるシステムにおいて、高速化に伴うアクセスタイミングの調整を行うことが可能な、メモリ装置およびメモリ制御装置に関するものである。
【背景技術】
【０００２】
ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリ装置、およびメモリ装置とのデータ送受信を行うメモリ制御装置では、データ転送の高速化要求に対して、ソースシンクロナス方式でデータ転送を行う技術が用いられている。ソースシンクロナス方式では、データとともにストローブ信号を送受信する。【０００３】
ソースシンクロナス方式でデータ転送を行うシステムでは、例えば、メモリ制御装置がメモリ装置からのデータを受信する場合、データの有効期間をストローブ信号で受け取れるようにストローブ信号とデータのタイミングを調整する。【０００４】
このタイミング調整において、データ転送の高周波数化に伴い、ストローブ信号でデータを受け取る際に、安定してデータを受信するためのデータの有効範囲が小さくなる。さらに、プロセス特性、温度変化、電圧変化等の要因で、データとストローブ信号との関係が変動するため、上記のタイミング調整を柔軟に行う必要が生じている。【０００５】
このため、従来のデータ受信回路では、例えば、ストローブ信号を遅延素子で遅延させ、データとのタイミングを合わせる構成を採り、前記遅延素子での遅延量を可変制御できるようにしている。一般的に、データ転送を安定して行える遅延量を探索するために、メモリ装置にデータを書き込み、そのデータを読み出し、読み出したデータが書き込んだデータと一致するかどうかで、該当遅延量が、データ転送可能な遅延量かどうかを判断する。そして、この動作を繰り返すことで、安定してデータ転送が可能な遅延量の範囲（Window）を検出する。【０００６】
この遅延量の決定に際して、従来システムでは、システム別に一意に決定する方法や、固体別に、動作開始時に最適な遅延量探索を行って決定する方法などが採られてきた。しかし、データを安定して転送するための遅延量の範囲が、前記様々な要因で時系列でも変動するため、動作開始時に探索した遅延量では、安定してデータを送受信できない場合があり、問題となっている。【０００７】
このため、システムの動作中においても遅延量の探索を行うことで、安定してデータ転送が可能な遅延量を探索する必要があるが、遅延量の探索のためにメモリ装置へのデータ送受信が必要となり、本来、システムのアプリケーション動作に必要であったデータ送受信を妨げてしまうことになる。【０００８】
ある従来技術によれば、メモリ制御装置でのデータ受信回路で、通常のデータ受信時の遅延量で遅延させたストローブ信号とは別に、異なる遅延量で遅延させたストローブ信号を設ける。そして、それぞれのストローブ信号で受け取ったデータを、互いに比較することで、通常のデータ受信と、遅延量探索を同時に行うことを可能とし、システムのアプリケーション動作のデータ送受信を妨げることなく、遅延量探索を行っている（特許文献１参照）。【０００９】
なお、ここでは、ソースシンクロナス方式でのデータ転送を例に挙げた説明を行ったが、本発明はこれに限定するものではなく、遅延量の調整が必要なシステムすべてに当てはめることができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−３５０６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、上記のように、メモリ制御装置で、複数の遅延量で、１つのストローブ信号をそれぞれ遅延させて、データを受け取る構成を採る場合、それぞれのデータ受信経路での遅延特性を合わせることが困難であり、高速化に伴う遅延値探索の精度が落ちてしまう。また、データ受け取り回路を複数持つため、回路規模も大きくなってしまうという課題がある。【００１２】
本発明の目的は、リアルタイム性を必要とするアプリケーションの動作中においても、アプリケーション動作に必要なメモリ装置へのデータ転送を妨げることなく、安定したデータ転送を可能にする、精度の高い遅延量の探索を行うことの可能なメモリ装置およびメモリ制御装置を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明のメモリ装置では、少なくとも１つのメモリセルと、少なくとも１つの記憶手段（レジスタセット、ＳＲＡＭ）と、入出力バッファと、前記記憶手段および前記メモリセルのうちで、予め定められた選択信号が示す方と、前記入出力バッファとを接続するセレクタと、当該メモリ装置へと発行された、前記記憶手段へのアクセスを行うコマンドを検出し、検出したことを示す検出信号を出力する特殊コマンド検出部と、前記特殊コマンド検出部からの前記検出信号に応じて一定期間前記セレクタが前記記憶手段を選択することを示す信号を前記選択信号として前記セレクタに出力するデータパス管理部とを備える。【００１４】
ここで、記憶手段は、具体的には、例えばレジスタセットである。また、記憶手段は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）でもよい。【００１５】
つまり、メモリセルの他に、記憶手段（レジスタセット）を備える。これにより、メモリ装置のリフレッシュ動作など、メモリ装置の制御ルール上、データバスを使用できない期間に、遅延量探索のためのデータ転送を行うことができる。このため、本来のアプリケーション動作に必要なデータ転送を妨げずに、アプリケーションの動作中に遅延量探索を行うことができる。【００１６】
このメモリ装置では、次の構成が採られる。つまり、リフレッシュ動作など内部のメモリセルへのアクセスができないことに起因するメモリ制御上のルールから生じるデータバスの不使用期間を使えるようにするために、メモリセルとは別に記憶手段（レジスタセット）を持つ構成が採られる。この構成は、従来のメモリ制御のルール上、データバスが使用できなかった期間に、前記記憶手段（レジスタセット）とのアクセスをすることで、データバスを使用できるようにする構成である。【００１７】
また、本発明のメモリ制御装置は、予め定められたメモリ装置に対して、当該メモリ装置が有する予め定められた記憶手段からのデータ読み出しを指示するリードコマンドを発行するコマンド発行部と、前記メモリ装置が出力するストローブ信号を遅延すると共に、前記メモリ装置が備えるメモリセルに記憶された記憶データを、遅延されたストローブ信号を用いて当該メモリ装置から受信するデータ送受信部と、前記メモリ装置の前記記憶手段から読み出されたデータと、予め保持している期待値データとを比較し、前記メモリセルに記憶された前記記憶データの受信に際して、当該比較の結果より特定される遅延時間だけ前記ストローブ信号を前記データ送受信部により遅延させる遅延制御部とを有する。【００１８】
つまり、メモリ制御装置においても、従来のメモリ装置の制御ルールに加えて、記憶手段（レジスタセット）へのアクセスの制御ルールを解釈する。そして、従来の制御ルールではデータバスが使用できなかった期間を用いる。そして、記憶手段（レジスタセット）へのデータ送受信で遅延量の探索を行う機能を設ける。
【発明の効果】
【００１９】
本発明によれば、リアルタイム性を必要とするアプリケーションの実行へ影響することなく、高速なデータ転送を安定して行うためのタイミング調整を高精度で行うことができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、メモリ装置およびメモリ制御装置の構成例を示すブロック図である。
【図２】図２は、図１の構成例における動作例を示すフロー図である。
【図３】図３は、図１の構成例におけるレジスタリードの具体例を示すタイミング図である。
【図４】図４は、図１の構成例における動作例を示すフロー図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２２】
近年では次の問題がある。すなわち、メモリ装置とのデータ転送を高速に行うメモリ制御装置において、データ転送の高速化に伴い、データ送受信を安定して行うためのタイミング調整を、システムのアプリケーションの動作中にも行う必要がある。しかし、タイミング調整のためのデータ転送を行うと、本来のアプリケーション動作に必要なデータ転送を妨げてしまい、例えば、リアルタイム性の必要なアプリケーション動作の保証が困難になる。
【００２３】
そこで、以下の実施の形態では、メモリ装置１００（図１）内にメモリセル１０１とは別に、レジスタセット１０２を設ける。そして、メモリセル１０１へのアクセス不可期間に、レジスタセット１０２へのアクセスをメモリ制御装置１１０（図１）が行う。これにより、レジスタセット１０２とのデータ転送によって、タイミング調整をメモリ制御装置１１０が行うことが可能になる。これにより、リアルタイム性を必要とするアプリケーションの実行に影響を与えないで、高精度にタイミング調整できる。
【００２４】
以下、詳しく説明される。
【００２５】
＜第１の実施形態＞
図１は、メモリ装置１００およびメモリ制御装置１１０を示す図である。
【００２６】
図１において、メモリ装置１００は、メモリセル１０１、レジスタセット１０２、セレクタ１０３、入出力バッファ１０４、特殊コマンド検出部１０５、データパス管理部１０６を備える。なお、メモリ装置１００は、これらの構成要素以外の他の構成要素をさらに適宜備えてもよい。
【００２７】
メモリ装置１００は、通常、コマンドバスを通してメモリ制御装置１１０よりコマンドを受け取り、そのコマンドの内容に応じて、主にメモリセル１０１からのデータを、入出力バッファ１０４を通じて、メモリ制御装置１１０と送受信する。
【００２８】
特殊コマンド検出部１０５は、メモリ装置１００により受け取られる各コマンドのなかに、レジスタセット１０２へのアクセスをするための特殊コマンドを検出すると、検出したことを示す検出信号を、データパス管理部１０６に出力する。
【００２９】
データパス管理部１０６は、検出された特殊コマンドのコマンド内容に応じて、セレクタ１０３に対して、後で詳しく説明される選択信号を通知する。選択信号は、レジスタセット１０２と、メモリセル１０１とのうちから、一方を選択する信号である。
【００３０】
セレクタ１０３は、入出力バッファ１０４との接続を選択した装置に行わせる。具体的には、セレクタ１０３は、レジスタセット１０２とメモリセル１０１とのどちらかを選択して、選択した装置に、入出力バッファ１０４との接続を行わせる機能を持つ。すなわち、セレクタ１０３は、データパス管理部１０６からの通知（先述）により、レジスタセット１０２のパスと、メモリセル１０１のパスとの２つのパスから、どちらかのパスを選択する。そして、データパス管理部１０６は、レジスタセット１０２と、メモリセル１０１とのうちで、通知された選択信号により示される方（選択側）を選択し、入出力バッファ１０４と選択側とを、セレクタ１０３に接続させる。
【００３１】
なお、レジスタセット１０２は、複数のレジスタを持つことができる。そして、特殊コマンド検出部１０５は、検出した特殊コマンドのコマンド内に含まれるアドレス情報を、レジスタセット１０２に通知してもよい。そして、特殊コマンド検出部１０５は、この通知をすることで、レジスタセット１０２内の、通知するアドレス情報が示すアドレスのレジスタ、すなわち該当レジスタを選択して、選択したレジスタと入出力バッファ１０４との接続を行う。つまり、レジスタセット１０２とメモリセル１０１とのうちで前者が選択される際に、より具体的には、レジスタセット１０２の複数のレジスタからレジスタが選択される。
【００３２】
入出力バッファ１０４では、内部クロック信号によって同期して、メモリ制御装置１１０と、データ、およびストローブ信号をそれぞれ送受信する。このため、メモリセル１０１とセレクタ１０３とを通る、メモリ装置１００からメモリ制御装置１１０までの経路と、レジスタセット１０２とセレクタ１０３とを通るメモリ制御装置１１０までの経路との２つの経路のうちでの経路の差は、メモリ制御装置１１０からは認識できないようになっている。
【００３３】
一方、メモリ制御装置１１０は、データ送受信部１１１、遅延制御部１１２、メモリ状態管理部１１３、コマンド発行部１１４およびコマンド管理部１１５を備える。ここで、データ送受信部１１１は、遅延部１１６およびデータ受け取り回路１１７を備える。また、遅延制御部１１２は、データ比較部１１８、遅延値管理部１１９、期待値１２０およびアドレス情報付加部１２１を備える。
【００３４】
メモリ状態管理部１１３は、メモリ装置１００の制御ルールに従って、メモリ装置１００のメモリ状態を管理する。
【００３５】
コマンド管理部１１５は、メモリ状態管理部１１３からの情報に従って、メモリ装置１００へのコマンドをコマンド発行部１１４に出力する。つまり、コマンド管理部１１５は、コマンド発行部１１４にコマンドを出力することによって、コマンド発行部１１４によって、そのコマンドをメモリ装置１００に対して発行する。
【００３６】
コマンド発行部１１４は、コマンド管理部１１５から受け取ったコマンドを、メモリ装置１００に対して発行する。
【００３７】
データ送受信部１１１は、メモリ装置１００からのデータを受信する際、ストローブ信号を、遅延値管理部１１９からの遅延値情報に従って、遅延部１１６により遅延させる。そして、データ送受信部１１１は、データ受け取り回路１１７によって、その遅延されたストローブ信号で、メモリ装置１００からのデータを受け取る。
【００３８】
遅延制御部１１２は、データの比較を行い、その比較の結果を遅延値管理部１１９に通知する。具体的には、遅延制御部１１２は、データ送受信部１１１が、データ受け取り回路１１７によってメモリ装置１００から受け取った、予め定められたデータ（レジスタデータ）と、この遅延制御部１１２が有する期待値１２０とを比較する。そして、遅延制御部１１２は、さらに具体的には、データ比較部１１８により、この比較をする。そして、遅延制御部１１２は、その比較結果を遅延値管理部１１９に通知する。なお、遅延制御部１１２は、例えば、期待値１２０を記憶する期待値記憶部を備える。なお、符号「１２０」は、この期待値記憶部を指すと理解されてもよい。
【００３９】
遅延値管理部１１９は、通知された比較結果によって、現在出力している遅延値が、データ転送が可能な遅延値かを判断する。つまり、遅延値管理部１１９は、通知された比較結果が、同一であるとの比較結果である場合、現在の遅延値が、データ転送が可能な遅延値と判断する。そして、遅延値管理部１１９は、この判断の判断結果に基づき、遅延値情報（先述）を遅延部１１６へと出力する。
【００４０】
すなわち、遅延制御部１１２は、データ比較部１１８により、メモリ装置１００からのレジスタデータと、期待値１２０とが同一か否かを判断する。そして、遅延制御部１１２は、遅延値管理部１１９によって、この判断の判断結果に基づいて、出力する遅延値情報を特定し、遅延値管理部１１９によって、特定された遅延値情報を遅延部１１６へと出力する。
【００４１】
なお、図１に示す構成例は一例であって、本発明を限定するものではない。例えば、データ送受信部１１１の遅延部１１６は、２つの部分からなってもよい。すなわち、遅延部１１６は、例えば、ストローブ信号用の第１の遅延部だけでなく、データ信号用の第２の遅延部もあってもよく、データ受け取り回路１１７も、上述した説明の構成とは別の構成であってもよい。
【００４２】
図２は、図１の構成例における動作例を示すフロー図であり、以下、図２を用いて動作を説明する。
【００４３】
ステップＳａでは、システム１の動作が開始して、メモリ装置１００の初期化動作が完了した後、遅延制御部１１２が、データ受信が可能な遅延値の範囲の探索を開始する。なお、この探索では、レジスタセット１０２を用いての探索でもよいが、ここではメモリセル１０１を用いての探索の例を説明する。
【００４４】
遅延値管理部１１９は、期待値１２０と同じ値をメモリセル１０１に書き込むために、ライトコマンドをコマンド管理部１１５に発行する。
【００４５】
コマンド管理部１１５は、メモリ状態管理部１１３からの情報を元に、ライトコマンドを発行してもよいかを確認し、コマンド発行部１１４にライトコマンドを発行する。
【００４６】
コマンド発行部１１４は、コマンド管理部１１５から受け取ったライトコマンドをメモリ装置１００に発行する。
【００４７】
以下では、コマンド発行時におけるメモリ状態管理部１１３、コマンド発行部１１４、コマンド管理部１１５の動作の詳しい説明は省略する。
【００４８】
メモリ装置１００は、メモリ制御装置１１０から受け取ったライトコマンドを解釈し、入出力バッファ１０４を介してメモリ制御装置１１０から受け取った期待値データを、メモリセル１０１に格納する。
【００４９】
なお、このとき、データパス管理部１０６は、セレクタ１０３が通常はメモリセル１０１を選択するように通知を出しているものとする。
【００５０】
メモリセル１０１への期待値データの書き込みが完了すると、遅延値管理部１１９が遅延値を最小値に設定し、遅延制御部１１２がコマンド管理部１１５にリードコマンドを発行する。
【００５１】
メモリ装置１００は、メモリ制御装置１１０から受け取ったリードコマンドを解釈し、メモリセル１０１からデータを読み出し、入出力バッファ１０４を介して、期待値データを出力する。
【００５２】
データ送受信部１１１は、最小値である遅延値によって遅延部１１６でストローブ信号を遅延させ、データ受け取り回路１１７でデータを受け取る。
【００５３】
受け取ったデータがデータ比較部１１８で期待値１２０と比較され、その比較の結果が遅延値管理部１１９に通知される。
【００５４】
遅延値管理部１１９は比較結果が一致の場合は、その最小値の遅延値がデータ受信可能な遅延値だと判断し、比較結果が不一致の場合は、その最小値の遅延値がデータ受信不能だと判断する。
【００５５】
この動作を遅延値が最小値から最大値になるまで繰り返すことで、遅延値管理部１１９はデータ受信が可能な遅延値の範囲を知ることができる。
【００５６】
最後に検出した遅延値範囲のうち、中間値を、最も安定してデータ受信が可能な遅延値と判断し、遅延部１１６に対して、その中間値を遅延値管理部１１９は出力する。
【００５７】
なお、ステップＳａでの遅延値探索方法は、本実施の形態に限定されるものではなく、静的に設定された範囲であっても、別のアルゴリズムによる探索方法でもよい。また、最も安定してデータ受信が可能な遅延値と判断するのに、遅延値範囲の中間値ではなく、別の計算式で求めた値を使ってもよい。
【００５８】
ステップＳｂでは、通常のシステム動作をシステム１は行う。ここではメモリ装置１００へのメモリ制御装置１１０からのデータ送受信もシステム１により行われる。
【００５９】
ステップＳｃでは、遅延制御部１１２が、ある期間ごとに遅延値探索を行うべきタイミングを管理し、そのタイミングであるかどうかを判断する。そのタイミングではない場合は、ステップＳｂの通常動作をシステム１は継続し（ステップＳｃ：Ｎｏ）、そのタイミングである場合は、ステップＳｄに進む（ステップＳｃ：Ｙｅｓ）。
【００６０】
なお、このステップＳｃのより具体的な内容について、ここでは一例として、メモリ装置１００のリフレッシュ動作のタイミングを、遅延値探索を行うタイミングだと判断する場合を説明する。すなわち、例えば、このステップＳｃで、遅延制御部１１２は、メモリ状態管理部１１３からの情報により、メモリ装置１００がリフレッシュを開始したことを検知し、遅延値探索のタイミングだと判断する（ステップＳｃ：Ｙｅｓ）。
【００６１】
ステップＳｄでは、遅延値探索のためのリードコマンドを処理する時間があるかを例えば遅延制御部１１２が判断する。ここでの判断は、遅延値探索のためのリードコマンドを実行することにより、通常アプリケーションのデータ送受信に影響がないかを確認するために行う。ここで、本例では、リフレッシュを開始したことを検出してステップＳｄにきているため（ステップＳｃ：Ｙｅｓ）、リフレッシュ後の一定期間は通常アプリケーション用のデータ送受信がないことが予め判断できるので、通常アプリケーションに影響がないと判断することができる（ステップＳｄ：Ｙｅｓ）。
【００６２】
なお、ステップＳｃで、リフレッシュ以外で遅延値探索のタイミングを検出する場合は、通常アプリケーションに影響がある可能性があるので、その場合は影響がなくなるまでステップＳｅで通常動作を続けることになる（ステップＳｄ：Ｎｏ）。影響がないことが確認できた場合、ステップＳｆに進む（ステップＳｄ：Ｙｅｓ）。
【００６３】
ステップＳｆ以降では、遅延値探索を全遅延値で行うのではなく、現状把握している遅延値範囲（Window）における最小値付近と最大値付近のみのデータ受信を判定することで、Windowの最小値、最大値を更新していく方法を説明する。なお、ステップＳｆ以降の方法は、本説明に限定されるものではなく、全遅延値を探索してもよいし、別のアルゴリズムを用いてもよい。
【００６４】
ステップＳｆでは、遅延値管理部１１９は、現状把握しているWindowの最大値を遅延部１１６に出力する。
【００６５】
ステップＳｇでは、レジスタセット１０２からの期待値データの受信を行うために、メモリセル１０１へのリードコマンドとは異なる、特別なレジスタリードコマンドを、コマンド管理部１１５がコマンド発行部１１４によって発行する。例えば、遅延値管理部１１９がコマンド管理部１１５に発行させてもよい。なお、ここで、期待値１２０とレジスタセット１０２には遅延値調整に適したデータパターンが格納されているものとし、複数のデータパターンを用いてもよく、その場合は、アドレス情報付加部１２１がレジスタリードコマンドにアドレス情報を含めることで、データパターンを選択することができる。また、メモリ状態管理部１１３はメモリセル１０１へのリードコマンドに対する制御ルールとは別のレジスタセット１０２へのリードコマンドに対する制御ルールを把握している。
【００６６】
そして、このステップＳｇにおいて、レジスタリードコマンドを受け取ったメモリ装置１００は、特殊コマンド検出部１０５で、レジスタセット１０２へのリードコマンドだと解釈する。そして、特殊コマンド検出部１０５、この解釈の後に、レジスタセット１０２に対してアドレス情報と読み出し指示の通知を行い、また、データパス管理部１０６に、レジスタセット１０２を選択するように通知を行う。
【００６７】
そして、このステップＳｇにおいては、データパス管理部１０６は、レジスタセット１０２からデータが出力されるタイミングで、セレクタ１０３に対して、レジスタセット１０２を選択するよう指示を出し、セレクタ１０３はレジスタセット１０２を選択する。レジスタセット１０２から出力されたデータは入出力バッファ１０４を介して、メモリ制御装置１１０に出力される。
【００６８】
ステップＳｈでは、遅延部１１６は、Windowの最大値に設定された遅延値でストローブ信号を遅延させ、データ受け取り回路１１７がデータを受け取る。受け取ったデータをデータ比較部１１８が期待値１２０と比較し、その結果を遅延値管理部１１９に通知する。
【００６９】
遅延値管理部１１９は、比較結果が一致の場合は（ステップＳｈ：Ｙｅｓ）、ステップＳｉに進み、そのWindowの最大値がまだ有効であると判断し、さらに１つ大きな遅延値も有効であるかを次回で確認するために、把握しているWindowの最大値情報を１つだけ増やして、最大値情報を更新する。他方、遅延値管理部１１９は、比較結果が不一致の場合は（ステップＳｈ：Ｎｏ）、ステップＳｊに進み、そのWindowの最大値が無効であると判断し、１つ小さな値をWindowの最大値にするために最大値情報を１つだけ減らして、最大値情報を更新する。
【００７０】
ステップＳｋでは、更新された最大値情報と、別途把握している最小値情報を用いて、その中間値を現在最も安定してデータ受信ができる遅延値だと判断して、その中間値を遅延部１１６に遅延値管理部１１９が出力する。
【００７１】
ステップＳｌからステップＳｓまでは、ステップＳｄからステップＳｋの動作をWindowの最大値ではなく最小値に置き換えたもので、詳しい説明は割愛する。ただし、ステップＳｑ、ステップＳｒでは、Windowの最小値の更新であるので、比較結果が一致の場合は１だけ減らし、比較結果が不一致の場合は１だけ増やすものとする。
【００７２】
ステップＳｓの後、再度ステップＳｂに戻る。
【００７３】
次に図３では、図２におけるレジスタリードコマンド発行時（ステップＳｇ、ステップＳｏ参照）のタイミング図の例を示している。
【００７４】
タイミング(A)では、メモリ装置１００に対してリフレッシュコマンドをコマンド発行部１１４が発行する。そして、このタイミング(A)で、遅延制御部１１２は、図２のステップＳｃのWindow検出タイミングだと判断し（ステップＳｃ：Ｙｅｓ）、同時にステップＳｄの、レジスタリードが可能なタイミングだとの判断をする（ステップＳｄ：Ｙｅｓ）。
【００７５】
タイミング(B)では、コマンド発行部１１４がレジスタリードコマンドを発行し（ステップＳｇ）、その後、データパス管理部１０６からの出力信号が、メモリセル１０１を選択する信号から、レジスタセット１０２を選択する信号に切り替わる。
【００７６】
また、タイミング(C)で、遅延値管理部１１９は、遅延部１１６への遅延値を、Windowの最大値に設定する（ステップＳｆ）。
【００７７】
なお、前記データパス管理部１０６からの出力信号の切り替わりタイミングと、タイミング(C)は、本説明に限定されるものではなく、逆の順番であっても同タイミングであってもよい。
【００７８】
タイミング(D)で、受け取ったデータに対するデータ比較部１１８による比較の比較結果が、遅延値管理部１１９に到達し、この場合は一致だと通知される。比較結果としては、複数のデータを受け取り、これらすべてのデータが期待値と一致した場合に、一致したという比較結果を送るものとする。
【００７９】
なお、ここで、データの個数は本説明に限定されるものではない。またレジスタリードコマンドも複数回数発行して、そのすべての期待値比較をした結果を用いてもよい。レジスタセット１０２からの出力が終わったタイミングで、データパス管理部１０６は、その出力信号を、メモリセル１０１を選択する出力値の出力信号に戻す。
【００８０】
タイミング(E)で、遅延値管理部１１９は、一致という比較結果を受け取り、Windowの最大値情報を１つだけ増やす（図２のステップＳｉ）。ここでは、最初に0x40という数値を最大値として把握していたので、0x41に更新するものとする。
【００８１】
タイミング(F)では、この更新後に、遅延部１１６に対して、遅延値管理部１１９が、中間値である0x30を再設定する（ステップＳｋ）。なお、ここでは中間値を切り捨て方式で計算しているが、切り上げでもよい。もしくは、最大値を１つだけ増やしての中間値計算で、0x41が有効な遅延値かどうかがここでは判断できないため、切り上げよりも切り捨ての方が安全だと判断しての切り捨てを行ってもよい。
【００８２】
次に、まだレジスタリードコマンドを実行する余裕があると判断して、タイミング(G)でレジスタリードコマンドを発行する（ステップＳｏ）。データパス管理部１０６は、レジスタセット１０２を選択するように出力信号を変化させる。
【００８３】
タイミング(H)で、遅延値管理部１１９は、次はWindowの最小値を遅延部１１６に対して出力する（ステップＳｎ）。タイミング(I)で、今度は不一致の結果を受け取り、タイミング(J)で、最小値情報を１つだけ増やして0x20から0x21とする（ステップＳｒ）。その後、タイミング(K)で、遅延部１１６への遅延値を中間値の0x31に設定する（ステップＳｓ）。また、データパス管理部１０６は、レジスタセット１０２からのデータ出力が完了したタイミングでメモリセル１０１を選択するように出力信号を変化させる。
【００８４】
図３では、通常アプリケーションのリード動作（ステップＳｂ）の後にリフレッシュ動作、その後にリード動作をしている間に、レジスタリードコマンドを２回発行している（ステップＳｇ等）。そして、このレジスタリードコマンドは、もともとリフレッシュ動作のために空けざるを得なかったデータバスを使用しているため、通常アプリケーションの動作によるリード動作に影響を与えていない。
【００８５】
以上により、通常アプリケーションのデータ転送を妨げることなく、遅延値の探索を行うことで、アプリケーションの動作中にもWindowの変動を検出して、それに追従したタイミング調整を可能にすることで、常に安定してデータ送受信を行えることを説明した。
【００８６】
なお、図３で説明したタイミングは一例であり、本発明をこれに限定するものではない。レジスタリードコマンドはデータパターンを変えて数回実施してもよいし、１回だけでもよく、また最大値、最小値の判定を２回以上行ってもよい。また、今回は特別なレジスタリードコマンドを用いた例を示したが、特殊コマンド検出部１０５がリフレッシュコマンドをレジスタセット１０２へのリードコマンドだと解釈して、レジスタセット１０２からのデータをメモリ制御装置１１０に出力してもよい。その場合、特殊コマンド検出部１０５がリフレッシュコマンドをレジスタセット１０２へのリードコマンドだと解釈するかどうかをモード設定可能にしてもよいし、アドレス信号などで判別するようにしてもよい。
【００８７】
＜第２の実施形態＞
図４は、メモリ装置およびメモリ制御装置の一実施形態（第２の実施形態）を示している。本実施の形態では、図１の構成において、レジスタセット１０２へのデータ書き込みをする例を図４のタイミング図を用いて説明する。
【００８８】
遅延制御部１１２は、メモリ状態管理部１１３からの情報により、レジスタセット１０２へのデータ送信をするためのタイミングがあることを検出する。
【００８９】
タイミング(A)では、メモリ装置１００に対してリフレッシュコマンドをメモリ制御装置１１０が発行したことを検知して、一定期間は通常アプリケーションによるデータバスの使用がないとコマンド管理部１１５（遅延制御部１１２）が判断できる（図２のステップＳｃ参照）。
【００９０】
タイミング(B)では、レジスタセット１０２への特別なレジスタライトコマンドをコマンド管理部１１５がコマンド発行部１１４によってメモリ装置１００に対して発行する。例えば、遅延制御部１１２がコマンド管理部１１５に発行させる。また、この発行で書き込むデータは、期待値１２０から、該当するものを選択する。レジスタライトコマンドには、レジスタセット１０２に複数のレジスタが含まれる場合は、アドレス情報付加部１２１が、どのレジスタへ書き込むかを指定するためにアドレス情報を含めることができる。レジスタライトコマンドを特殊コマンド検出部１０５が検出した後、データパス管理部１０６の出力は、レジスタセット１０２を選択するように変更される。メモリ制御装置１１０から出力されたライトデータがレジスタセット１０２に格納された後、タイミング(D)で、データパス管理部１０６の出力はメモリセル１０１を選択するように戻る。
【００９１】
その後、タイミング(E)で、遅延制御部１１２は、レジスタセット１０２へのリードコマンドを発行できると判断して（ステップＳｄ参照）、レジスタリードコマンドを発行する。その後の期待値比較の説明は割愛するが、その後、レジスタセット１０２からの出力データが入出力バッファ１０４を介してメモリ制御装置１１０へ出力された時点で、データパス管理部１０６の出力はメモリセル１０１を選択するように変更される。その後、タイミング(F)で、通常アプリケーションによるリードコマンドがメモリ制御装置１１０によりメモリ装置１００へと発行され、メモリ装置１００のメモリセル１０１からのデータがメモリ制御装置１１０へとメモリ装置１００により出力される。
【００９２】
以上により、レジスタセット１０２へのデータ格納も、通常アプリケーションの動作を妨げることなく実施できることを説明した。レジスタセット１０２へのデータ書き込みにおいては、遅延値探索を行う際に、様々なデータパターンを用いたり、レジスタセット１０２の初期値以外のデータパターンで期待値比較を行いたいときに用いる。また、本説明では、通常アプリケーションの動作を妨げない範囲で、レジスタセット１０２へのアクセスをする場合を説明した。一方、コマンド管理部１１５が、メモリセル１０１とレジスタセット１０２とのアクセスが衝突しないように、メモリ状態管理部１１３の情報を見ながらコマンド発行を行ってもよい。このような発行を行うことで、通常アプリケーションよりも、遅延値探索のためのレジスタセット１０２へのアクセスを優先させることも可能である。
【００９３】
このようにして、第１の実施形態および第２の実施形態により、それぞれ、本発明を実施するための一実施形態であるメモリ装置（メモリ装置１００）が構成される。
【００９４】
この一実施形態のメモリ装置は、メモリセル（メモリセル１０１）を備える。メモリセルは、予め定められたアプリケーションが予め定められたメモリ制御装置（メモリ制御装置１１０）によって当該メモリ装置に記憶させる記憶データを記憶する。ここで、記憶される前記記憶データは、当該メモリ装置が前記メモリ制御装置に出力するストローブ信号が前記メモリ制御装置に用いられることにより、当該メモリ制御装置に受信される。そして、記憶される前記記憶データは、予め定められた送受信不能時（例えば、前記メモリ装置が、前記メモリセルからのデータ入出力をしないモードである時、前記メモリ装置にリフレッシュコマンドが発行された時、前記メモリ装置がリフレッシュモードの時、又は、バンクコンフリクトによってデータバスが不使用である時）には、当該メモリ装置による前記メモリ制御装置への送信と、前記メモリ制御装置から当該メモリ装置への受信とのうちの両方又は一方が不能なデータである。
【００９５】
なお、上記送受信不能時とは、例えば、メモリ装置についての規格により定められた時間であってもよい。また、上記メモリセルは、例えば、記憶する情報を表す電荷を蓄えるキャパシタ（コンデンサ）を備えるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のメモリセルであってもよい。ここで、このようなＤＲＡＭのメモリセルにおいては、キャパシタの電荷は漏れ電流によって次第に失われる。このため、このような、ＤＲＡＭのメモリセルにおいては、漏れ電流により失われた電荷を補充するため操作（リフレッシュ）が必要である。そして、このリフレッシュがされる間は、リフレッシュがされるメモリセルの記憶データの受信および送信が不能である。
【００９６】
そして、メモリ装置は、さらに、レジスタセット（レジスタセット１０２）を備える。レジスタセットは、レジスタデータを記憶する。そして、記憶されるレジスタデータは、前記送受信不能時に、前記メモリ制御装置に対して当該メモリ装置が送信可能なデータである。
【００９７】
そして、より具体的には、メモリ装置は、特殊コマンド検出部と、データパス管理部と、セレクタとを備える。そして、メモリ装置にメモリ制御装置が発行した特殊コマンドが特殊コマンド検出部により検出されて、この検出がされた場合に、データパス管理部およびセレクタがそれぞれ適切な動作をすることにより、レジスタデータがメモリ装置とメモリ制御装置との間で通信される（ステップＳｇ、Ｓｏ）。
【００９８】
なお、さらに詳細には、メモリ装置は、入出力バッファを備える。入出力バッファは、メモリ装置と、メモリ制御装置との間で通信されるデータ（メモリセルのデータ、および、レジスタデータ）が、適切に通信されるよう、通信されるデータのバッファリングを行う。
【００９９】
また、このようにして、本発明を実施する際の一実施形態であるメモリ制御装置（メモリ制御装置１１０）が構成される。このメモリ制御装置は、遅延部（遅延部１１６）と、データ受信部（データ送受信部１１１）と、判定部（データ比較部１１８）と、制御部（遅延制御部１１２、コマンド管理部１１５）とを備える。
【０１００】
遅延部は、予め定められたメモリ装置（メモリ装置１００）がこのメモリ制御装置に出力するストローブ信号を予め定められた遅延時間だけ遅延させる。
【０１０１】
データ受信部は、予め定められたアプリケーションが前記メモリ装置に記憶させた記憶データを、当該メモリ装置から、前記遅延部により遅延されたストローブ信号を用いて受信する。
【０１０２】
また、データ受信部は、前記メモリ装置が備える予め定められたメモリセル（メモリセル１０１）に記憶されたレジスタデータ（記憶された期待値１２０）を、当該メモリ装置から受信する。そして、より詳しくは、データ受信部は、前記メモリ装置の前記記憶データの、当該メモリ制御装置による受信および送信のうちの少なくとも一方が不能である予め定められた送受信不能時に、メモリ装置からレジスタデータを受信する（ステップＳｇ、Ｓｏ）。
【０１０３】
判定部は、前記メモリ装置に記憶されたレジスタデータの内容（期待値１２０）と、受信された前記レジスタデータとが同一か否かを判定する。判定部は、例えば、レジスタデータの内容を記憶する期待値記憶部から、記憶されたレジスタデータの内容を取得し、記憶された内容と、受信されたレジスタデータとの間での判定を行う。
【０１０４】
制御部は、前記判定部により、同じとの判定がされた場合には、前記アプリケーションの前記記憶データが前記データ受信部に受信される際における前記ストローブ信号を、前記遅延部により、第１の遅延時間だけ遅延させる。また、制御部は、同じではないとの判定がされた場合には、記憶データが受信される際に、第２の遅延時間だけ遅延部により遅延を行わせる。ここで、前記第１の遅延時間は、判定に際して受信された前記レジスタデータの受信の際の前記遅延時間（判定遅延時間）の予め定められた近傍の時間である。他方、前記第２の遅延時間は、この判定遅延時間の上記近傍には含まれない時間である。ここで、上記判定遅延時間の近傍は、例えば、判定遅延時間が一端（例えば最大の時間）であり、予め定められた他端（例えば最小の時間）である時間の範囲の中心値と、その判定遅延時間との間の範囲である。そして、第１の遅延時間は、上記中心値の時間であり、第２の遅延時間は、この中心値よりも、より上記他端に近い予め定められた時間である。このとき、第２の遅延時間は、判定遅延時間までの時間差が、第１の遅延時間から判定遅延時間までの時間差よりも大きい。
【０１０５】
こうして、上記メモリ装置および上記メモリ制御装置を備えるシステム（システム１）が構成される。
【０１０６】
このような実施の形態により、記憶データが受信される際の遅延時間が、上記第１の遅延時間と上記第２の遅延時間とから適切に制御部により選択される。これにより、記憶データが受信される際の遅延時間として、例えばメモリシステムの周囲の温度などに応じた、適切な遅延時間が選択される。そして、上記メモリ装置は上記メモリセルを備えている。これにより、このメモリセルを用いることで、上記送受信不能時に、判定に際して必要な通信が行われる。これにより、記憶データが受信される際の遅延時間として適切な遅延時間が選択される一方で、アプリケーションによるメモリ装置のアクセスが阻害されることを回避できる。これにより、適切な遅延時間を選択することと、アプリケーションによるアクセスの阻害を回避することとを両立できる。これにより、リアルタイム性を必要とするアプリケーションの実行へ影響することなく、遅延時間を高精度に調整できる。
【０１０７】
また、上記送受信不能時にまで上記メモリセルの記憶データが通信されるようにする必要がない。このため、例えばメモリセルを規格通りのありふれた構成にできる。これにより、ひいては、システムの構成を簡単にできる。
【０１０８】
上記のようにして、実施の形態１、２において、それぞれ、少なくとも１つのメモリセル（メモリセル１０１）と、少なくとも１つのレジスタセット（レジスタセット１０２、記憶部）と、入出力バッファ（入出力バッファ１０４）と、前記レジスタセットおよび前記メモリセルのうちで、予め定められた選択信号が示す方と、前記入出力バッファとを接続するセレクタ（セレクタ１０３）と、当該メモリ装置へと発行された、前記レジスタセットへのアクセスを行うコマンドを検出し、検出したことを示す検出信号を出力する特殊コマンド検出部（特殊コマンド検出部１０５）と、前記特殊コマンド検出部からの前記検出信号に応じて、前記セレクタが前記レジスタセットを一定期間選択することを示す信号を、前記選択信号として前記セレクタに出力するデータパス管理部（データパス管理部１０６）とを備えるメモリ装置が構成される。なお、データパス管理部は、例えば、一定期間上記信号の出力を継続し、セレクタは、その出力が継続する間は、レジスタセットを選択するものとしてもよい。
【０１０９】
これにより、レジスタセットを備えていて、送受信不能時にレジスタデータが送信できる。このため、送受信不能時にレジスタデータが送信されることにより、メモリセルに記憶される記憶データの受信に用いるストローブ信号の遅延時間の調整ができる。これにより、アプリケーションによる記憶データの通信を阻害することなく、遅延時間の調整ができる。
【０１１０】
ここで、先述のように、メモリセルは、例えばＳＤＲＡＭのメモリセルであり、上記送受信不能時には、当該メモリセルに記憶された記憶データの通信が不能である。そして、レジスタセットのデータ（レジスタデータ）は、このような送受信不能時に通信が可能なデータである。具体的には、上記特殊コマンド検出部により上記コマンドが検出されて、上記セレクタが、レジスタセットを入出力バッファに接続することにより、レジスタデータの通信が入出力バッファを介して行われる。
【０１１１】
そして、前記特殊コマンド検出部は、前記レジスタセットへの読み出しコマンドを検出し、前記レジスタセットは、当該読み出しコマンドを検出したことを示す検出信号が前記特殊コマンド検出部により前記データパス管理部に出力された後、当該レジスタセットが記憶するレジスタ値を出力し、前記セレクタは、前記レジスタセットから前記レジスタ値が出力された後、前記レジスタセットではない方、即ち前記メモリセルを選択することを特徴とするメモリ装置が構成される。
【０１１２】
そして、前記特殊コマンド検出部は、前記レジスタセットへの書き込みコマンドを検出し、前記レジスタセットは、当該書き込みコマンドを検出したことを示す検出信号が前記特殊コマンド検出部によって前記データパス管理部に出力された後、当該メモリ装置の外部から入力されたデータ（入力された期待値１２０）を当該レジスタセットに格納し、前記セレクタは、前記レジスタセットが外部から入力された前記データを格納した後、前記レジスタセットではない方、即ち前記メモリセルを選択することを特徴とするメモリ装置が構成される。
【０１１３】
そして、前記レジスタセットは、複数のレジスタを備え、前記特殊コマンド検出部は、前記検出したコマンドに含まれるアドレス情報（例えばレジスタの番号）を前記レジスタセットに出力し、前記レジスタセットは、当該レジスタセットによって出力される前記アドレス情報を基に、前記レジスタに対する読み出し、書き込みを行うレジスタを、前記複数のレジスタのなかから選択することを特徴とするメモリ装置が構成される。すなわち、前記レジスタセットは、当該アドレス情報により特定されるレジスタを、読み出し、書き込みを行うレジスタとして選択する。
【０１１４】
そして、予め定められたメモリ装置（メモリ装置１００）に対して、当該メモリ装置が有する予め定められたレジスタセット（レジスタセット１０２）からのデータ読み出しを指示するリードコマンドを発行するコマンド発行部（コマンド発行部１１４）と、前記メモリ装置が出力するストローブ信号を遅延部１１６によって遅延すると共に、前記メモリ装置が備えるメモリセルに記憶された記憶データを、遅延されたストローブ信号を用いて当該メモリ装置から受信するデータ送受信部と（データ送受信部１１１）と、前記メモリ装置の前記レジスタセットから読み出されたデータ（読み出されたレジスタデータ）と、予め保持している期待値データ（期待値１２０）とをデータ比較部１１８により比較し、前記メモリセルに記憶された前記記憶データの受信に際して、当該比較の結果より特定される遅延時間（上記第１の遅延時間又は、上記第２の遅延時間のうちの何れか）だけ前記ストローブ信号を前記データ送受信部の前記遅延部により遅延させる遅延制御部（遅延制御部１１２）とを有することを特徴とするメモリ制御装置が構成される。
【０１１５】
そして、前記遅延制御部は、前記レジスタセットが有する複数のレジスタのうちから１つのレジスタを選択するためのアドレス情報を前記リードコマンドに付加し、さらに、前記期待値データを複数セット有し、前記メモリ装置から読み出されたデータと、前記複数セットの期待値データのうち、前記アドレス情報により選択されたレジスタに対応する期待値データとを比較することを特徴とするメモリ制御装置が構成される。
【０１１６】
そして、予め定められたメモリ装置とデータの送受信を行うデータ送受信部と、前記メモリ装置に対して、前記メモリ装置が有する予め定められたレジスタセット（レジスタセット１０２）へのデータ書き込みを指示するライトコマンドを発行するコマンド発行部（コマンド発行部１１４）とを有することを特徴とするメモリ制御装置が構成される。コマンド発行部は、このコマンド発行部に対してコマンド管理部１１５が発行する、レジスタセットにアクセスをするためのコマンドを、コマンド管理部１１５から取得して、取得されたコマンドをメモリ装置に対して発行する。
【０１１７】
そして、前記メモリ装置のモードを検知するメモリ状態管理部（メモリ状態管理部１１３）と、前記メモリ状態管理部から通知された前記メモリ装置のモードに基づき、前記コマンド発行部に対して前記メモリ装置へのコマンドの発行を指示するコマンド管理部（コマンド管理部１１５）とを有し、前記コマンド管理部は、前記メモリ装置が前記メモリセルからのデータ入出力がないモード時に、前記レジスタセットへのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示することを特徴とするメモリ制御装置が構成される。
【０１１８】
そして、前記コマンド管理部は、前記メモリ装置がリフレッシュモード時に、前記レジスタセットへのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示することを特徴とするメモリ制御装置が構成される。
【０１１９】
そして、前記コマンド管理部は、前記メモリ装置がバンクコンフリクトによってデータバスが不使用である時に、前記レジスタセットへのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示することを特徴とするメモリ制御装置が構成される。
【０１２０】
なお、コマンド管理部は、例えば、現在が、上記した送受信不能時か否かを検知して、送受信不能時であると検知される場合にのみ、レジスタセットへのアクセスのコマンドを、コマンド発行部によって、メモリ装置に対して発行するものとしてもよい。
【０１２１】
そして、前記データ送受信部は、前記遅延制御部からの遅延値情報を基に、前記ストローブ信号を遅延させる遅延部を有し、前記遅延させたストローブ信号で前記メモリ装置からのデータを受信することを特徴とするメモリ制御装置が構成される。
【０１２２】
そして、前記遅延制御部は、前記メモリ装置から読み出されたデータ（レジスタデータ）と、予め保持している期待値データ（期待値１２０）とが一致する範囲の、前記ストローブ信号を遅延させる値を保持し（例えば、その範囲を特定する範囲値特定情報を保持し）、前記遅延させる値として、前記一致する範囲の上限値より大きな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致する場合、保持している遅延値の範囲を更新することを特徴とするメモリ制御装置が構成される。なお、ここで、範囲を更新するとは、例えば、保持される範囲を、更新前の範囲から、更新後の範囲へ変更することである。なお、ここで、更新後の範囲は、更新前の範囲に対して、さらに、データ（レジスタデータ）が読み出された際の遅延値の予め定められた近傍を加えた範囲である。
【０１２３】
そして、前記遅延制御部は、前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、前記遅延させる値として、前記一致する範囲の上限値より小さな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致しない場合、保持している遅延値の範囲を更新することを特徴とするメモリ制御装置が構成される。なお、ここで、この更新による更新後の範囲は、データ（レジスタデータ）が読み出された際の遅延値の予め定められた近傍が、更新前の範囲から除かれた範囲である。
【０１２４】
そして、前記遅延制御部は、前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、前記遅延させる値として、前記一致する範囲の下限値より小さな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致する場合、保持している遅延値の範囲を更新することを特徴とするメモリ制御装置が構成される。なお、ここで、更新後の範囲は、更新前の範囲に対して、さらに、データ（レジスタデータ）が読み出された際の遅延値の予め定められた近傍を加えた範囲である。
【０１２５】
そして、前記遅延制御部は、前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、前記遅延させる値として、前記一致する範囲の下限値より大きな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致しない場合、保持している遅延値の範囲を更新することを特徴とするメモリ制御装置が構成される。なお、ここで、この更新による更新後の範囲は、データ（レジスタデータ）が読み出された際の遅延値の予め定められた近傍が、更新前の範囲から除かれた範囲である。
【０１２６】
また、上記のメモリ装置の各部分を備える集積回路を構成してもよい。例えば、上記のメモリ装置は、集積回路として構成してもよい。同様に、上記のメモリ制御装置の各部分を備える集積回路を構成してもよい。また、上記の説明により、上記のメモリ装置および上記のメモリ制御装置が行う各工程を備えることで、ストローブ信号の遅延時間を制御する制御方法が示される。また、その各工程のうちで、上記のメモリ装置が行う部分のみを備えるメモリ装置の動作方法が示される。同様に、その各工程のうちで、上記のメモリ制御装置が行う部分のみを備えるメモリ制御装置の動作方法が示される。
【０１２７】
なお、上記の説明において、互いに離れた複数の箇所の技術事項により、それらの技術事項が組み合わせられた形態も示される。
【産業上の利用可能性】
【０１２８】
以上説明してきた通り、本発明に係るメモリ装置およびメモリ制御装置は、リアルタイム性を必要とするアプリケーションの実行中においてもデータ転送のためのタイミング調整を精度高く行うことができるので、システムＬＳＩ等に好適に利用できる。
【符号の説明】
【０１２９】
１００  メモリ装置
１０１  メモリセル
１０２  レジスタセット
１０３  セレクタ
１０４  入出力バッファ
１０５  特殊コマンド検出部
１０６  データパス管理部
１１０  メモリ制御装置
１１１  データ送受信部
１１２  遅延制御部
１１３  メモリ状態管理部
１１４  コマンド発行部
１１５  コマンド管理部
１１６  遅延部
１１７  データ受け取り回路
１１８  データ比較部
１１９  遅延値管理部
１２０  期待値
【図１】
2010100685.tif 000003
【図２】
2010100685.tif 000004
【図３】
2010100685.tif 000005
【図４】
2010100685.tif 000006
【手続補正書】
【提出日】平成22年8月5日(2010.8.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置を用いるシステムにおいて、高速化に伴うアクセスタイミングの調整を行うことが可能な、メモリ装置およびメモリ制御装置に関するものである。
【背景技術】
【０００２】
ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリ装置、およびメモリ装置とのデータ送受信を行うメモリ制御装置では、データ転送の高速化要求に対して、ソースシンクロナス方式でデータ転送を行う技術が用いられている。ソースシンクロナス方式では、データとともにストローブ信号を送受信する。
【０００３】
ソースシンクロナス方式でデータ転送を行うシステムでは、例えば、メモリ制御装置がメモリ装置からのデータを受信する場合、データの有効期間をストローブ信号で受け取れるようにストローブ信号とデータのタイミングを調整する。
【０００４】
このタイミング調整において、データ転送の高周波数化に伴い、ストローブ信号でデータを受け取る際に、安定してデータを受信するためのデータの有効範囲が小さくなる。さらに、プロセス特性、温度変化、電圧変化等の要因で、データとストローブ信号との関係が変動するため、上記のタイミング調整を柔軟に行う必要が生じている。
【０００５】
このため、従来のデータ受信回路では、例えば、ストローブ信号を遅延素子で遅延させ、データとのタイミングを合わせる構成を採り、前記遅延素子での遅延量を可変制御できるようにしている。一般的に、データ転送を安定して行える遅延量を探索するために、メモリ装置にデータを書き込み、そのデータを読み出し、読み出したデータが書き込んだデータと一致するかどうかで、該当遅延量が、データ転送可能な遅延量かどうかを判断する。そして、この動作を繰り返すことで、安定してデータ転送が可能な遅延量の範囲（Window）を検出する。
【０００６】
この遅延量の決定に際して、従来システムでは、システム別に一意に決定する方法や、固体別に、動作開始時に最適な遅延量探索を行って決定する方法などが採られてきた。しかし、データを安定して転送するための遅延量の範囲が、前記様々な要因で時系列でも変動するため、動作開始時に探索した遅延量では、安定してデータを送受信できない場合があり、問題となっている。
【０００７】
このため、システムの動作中においても遅延量の探索を行うことで、安定してデータ転送が可能な遅延量を探索する必要があるが、遅延量の探索のためにメモリ装置へのデータ送受信が必要となり、本来、システムのアプリケーション動作に必要であったデータ送受信を妨げてしまうことになる。
【０００８】
ある従来技術によれば、メモリ制御装置でのデータ受信回路で、通常のデータ受信時の遅延量で遅延させたストローブ信号とは別に、異なる遅延量で遅延させたストローブ信号を設ける。そして、それぞれのストローブ信号で受け取ったデータを、互いに比較することで、通常のデータ受信と、遅延量探索を同時に行うことを可能とし、システムのアプリケーション動作のデータ送受信を妨げることなく、遅延量探索を行っている（特許文献１参照）。
【０００９】
なお、ここでは、ソースシンクロナス方式でのデータ転送を例に挙げた説明を行ったが、本発明はこれに限定するものではなく、遅延量の調整が必要なシステムすべてに当てはめることができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−３５０６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、上記のように、メモリ制御装置で、複数の遅延量で、１つのストローブ信号をそれぞれ遅延させて、データを受け取る構成を採る場合、それぞれのデータ受信経路での遅延特性を合わせることが困難であり、高速化に伴う遅延値探索の精度が落ちてしまう。また、データ受け取り回路を複数持つため、回路規模も大きくなってしまうという課題がある。
【００１２】
本発明の目的は、リアルタイム性を必要とするアプリケーションの動作中においても、アプリケーション動作に必要なメモリ装置へのデータ転送を妨げることなく、安定したデータ転送を可能にする、精度の高い遅延量の探索を行うことの可能なメモリ装置およびメモリ制御装置を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明のメモリ装置では、少なくとも１つのメモリセルと、少なくとも１つの記憶手段（レジスタセット、ＳＲＡＭ）と、入出力バッファと、前記記憶手段および前記メモリセルのうちで、予め定められた選択信号が示す方と、前記入出力バッファとを接続するセレクタと、当該メモリ装置へと発行された、前記記憶手段へのアクセスを行うコマンドを検出し、検出したことを示す検出信号を出力する特殊コマンド検出部と、前記特殊コマンド検出部からの前記検出信号に応じて一定期間前記セレクタが前記記憶手段を選択することを示す信号を前記選択信号として前記セレクタに出力するデータパス管理部とを備える。
【００１４】
ここで、記憶手段は、具体的には、例えばレジスタセットである。また、記憶手段は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）でもよい。
【００１５】
つまり、メモリセルの他に、記憶手段（レジスタセット）を備える。これにより、メモリ装置のリフレッシュ動作など、メモリ装置の制御ルール上、データバスを使用できない期間に、遅延量探索のためのデータ転送を行うことができる。このため、本来のアプリケーション動作に必要なデータ転送を妨げずに、アプリケーションの動作中に遅延量探索を行うことができる。
【００１６】
このメモリ装置では、次の構成が採られる。つまり、リフレッシュ動作など内部のメモリセルへのアクセスができないことに起因するメモリ制御上のルールから生じるデータバスの不使用期間を使えるようにするために、メモリセルとは別に記憶手段（レジスタセット）を持つ構成が採られる。この構成は、従来のメモリ制御のルール上、データバスが使用できなかった期間に、前記記憶手段（レジスタセット）とのアクセスをすることで、データバスを使用できるようにする構成である。
【００１７】
また、本発明のメモリ制御装置は、予め定められたメモリ装置に対して、当該メモリ装置が有する予め定められた記憶手段からのデータ読み出しを指示するリードコマンドを発行するコマンド発行部と、前記メモリ装置が出力するストローブ信号を遅延すると共に、前記メモリ装置が備えるメモリセルに記憶された記憶データを、遅延されたストローブ信号を用いて当該メモリ装置から受信するデータ送受信部と、前記メモリ装置の前記記憶手段から読み出されたデータと、予め保持している期待値データとを比較し、前記メモリセルに記憶された前記記憶データの受信に際して、当該比較の結果より特定される遅延時間だけ前記ストローブ信号を前記データ送受信部により遅延させる遅延制御部とを有する。
【００１８】
つまり、メモリ制御装置においても、従来のメモリ装置の制御ルールに加えて、記憶手段（レジスタセット）へのアクセスの制御ルールを解釈する。そして、従来の制御ルールではデータバスが使用できなかった期間を用いる。そして、記憶手段（レジスタセット）へのデータ送受信で遅延量の探索を行う機能を設ける。
【発明の効果】
【００１９】
本発明によれば、リアルタイム性を必要とするアプリケーションの実行へ影響することなく、高速なデータ転送を安定して行うためのタイミング調整を高精度で行うことができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、メモリ装置およびメモリ制御装置の構成例を示すブロック図である。
【図２】図２は、図１の構成例における動作例を示すフロー図である。
【図３】図３は、図１の構成例におけるレジスタリードの具体例を示すタイミング図である。
【図４】図４は、図１の構成例における動作例を示すフロー図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２２】
近年では次の問題がある。すなわち、メモリ装置とのデータ転送を高速に行うメモリ制御装置において、データ転送の高速化に伴い、データ送受信を安定して行うためのタイミング調整を、システムのアプリケーションの動作中にも行う必要がある。しかし、タイミング調整のためのデータ転送を行うと、本来のアプリケーション動作に必要なデータ転送を妨げてしまい、例えば、リアルタイム性の必要なアプリケーション動作の保証が困難になる。
【００２３】
そこで、以下の実施の形態では、メモリ装置１００（図１）内にメモリセル１０１とは別に、レジスタセット１０２を設ける。そして、メモリセル１０１へのアクセス不可期間に、レジスタセット１０２へのアクセスをメモリ制御装置１１０（図１）が行う。これにより、レジスタセット１０２とのデータ転送によって、タイミング調整をメモリ制御装置１１０が行うことが可能になる。これにより、リアルタイム性を必要とするアプリケーションの実行に影響を与えないで、高精度にタイミング調整できる。
【００２４】
以下、詳しく説明される。
【００２５】
＜第１の実施形態＞
図１は、メモリ装置１００およびメモリ制御装置１１０を示す図である。
【００２６】
図１において、メモリ装置１００は、メモリセル１０１、レジスタセット１０２、セレクタ１０３、入出力バッファ１０４、特殊コマンド検出部１０５、データパス管理部１０６を備える。なお、メモリ装置１００は、これらの構成要素以外の他の構成要素をさらに適宜備えてもよい。
【００２７】
メモリ装置１００は、通常、コマンドバスを通してメモリ制御装置１１０よりコマンドを受け取り、そのコマンドの内容に応じて、主にメモリセル１０１からのデータを、入出力バッファ１０４を通じて、メモリ制御装置１１０と送受信する。
【００２８】
特殊コマンド検出部１０５は、メモリ装置１００により受け取られる各コマンドのなかに、レジスタセット１０２へのアクセスをするための特殊コマンドを検出すると、検出したことを示す検出信号を、データパス管理部１０６に出力する。
【００２９】
データパス管理部１０６は、検出された特殊コマンドのコマンド内容に応じて、セレクタ１０３に対して、後で詳しく説明される選択信号を通知する。選択信号は、レジスタセット１０２と、メモリセル１０１とのうちから、一方を選択する信号である。
【００３０】
セレクタ１０３は、入出力バッファ１０４との接続を選択した装置に行わせる。具体的には、セレクタ１０３は、レジスタセット１０２とメモリセル１０１とのどちらかを選択して、選択した装置に、入出力バッファ１０４との接続を行わせる機能を持つ。すなわち、セレクタ１０３は、データパス管理部１０６からの通知（先述）により、レジスタセット１０２のパスと、メモリセル１０１のパスとの２つのパスから、どちらかのパスを選択する。そして、データパス管理部１０６は、レジスタセット１０２と、メモリセル１０１とのうちで、通知された選択信号により示される方（選択側）を選択し、入出力バッファ１０４と選択側とを、セレクタ１０３に接続させる。
【００３１】
なお、レジスタセット１０２は、複数のレジスタを持つことができる。そして、特殊コマンド検出部１０５は、検出した特殊コマンドのコマンド内に含まれるアドレス情報を、レジスタセット１０２に通知してもよい。そして、特殊コマンド検出部１０５は、この通知をすることで、レジスタセット１０２内の、通知するアドレス情報が示すアドレスのレジスタ、すなわち該当レジスタを選択して、選択したレジスタと入出力バッファ１０４との接続を行う。つまり、レジスタセット１０２とメモリセル１０１とのうちで前者が選択される際に、より具体的には、レジスタセット１０２の複数のレジスタからレジスタが選択される。
【００３２】
入出力バッファ１０４では、内部クロック信号によって同期して、メモリ制御装置１１０と、データ、およびストローブ信号をそれぞれ送受信する。このため、メモリセル１０１とセレクタ１０３とを通る、メモリ装置１００からメモリ制御装置１１０までの経路と、レジスタセット１０２とセレクタ１０３とを通るメモリ制御装置１１０までの経路との２つの経路のうちでの経路の差は、メモリ制御装置１１０からは認識できないようになっている。
【００３３】
一方、メモリ制御装置１１０は、データ送受信部１１１、遅延制御部１１２、メモリ状態管理部１１３、コマンド発行部１１４およびコマンド管理部１１５を備える。ここで、データ送受信部１１１は、遅延部１１６およびデータ受け取り回路１１７を備える。また、遅延制御部１１２は、データ比較部１１８、遅延値管理部１１９、期待値１２０およびアドレス情報付加部１２１を備える。
【００３４】
メモリ状態管理部１１３は、メモリ装置１００の制御ルールに従って、メモリ装置１００のメモリ状態を管理する。
【００３５】
コマンド管理部１１５は、メモリ状態管理部１１３からの情報に従って、メモリ装置１００へのコマンドをコマンド発行部１１４に出力する。つまり、コマンド管理部１１５は、コマンド発行部１１４にコマンドを出力することによって、コマンド発行部１１４によって、そのコマンドをメモリ装置１００に対して発行する。
【００３６】
コマンド発行部１１４は、コマンド管理部１１５から受け取ったコマンドを、メモリ装置１００に対して発行する。
【００３７】
データ送受信部１１１は、メモリ装置１００からのデータを受信する際、ストローブ信号を、遅延値管理部１１９からの遅延値情報に従って、遅延部１１６により遅延させる。そして、データ送受信部１１１は、データ受け取り回路１１７によって、その遅延されたストローブ信号で、メモリ装置１００からのデータを受け取る。
【００３８】
遅延制御部１１２は、データの比較を行い、その比較の結果を遅延値管理部１１９に通知する。具体的には、遅延制御部１１２は、データ送受信部１１１が、データ受け取り回路１１７によってメモリ装置１００から受け取った、予め定められたデータ（レジスタデータ）と、この遅延制御部１１２が有する期待値１２０とを比較する。そして、遅延制御部１１２は、さらに具体的には、データ比較部１１８により、この比較をする。そして、遅延制御部１１２は、その比較結果を遅延値管理部１１９に通知する。なお、遅延制御部１１２は、例えば、期待値１２０を記憶する期待値記憶部を備える。なお、符号「１２０」は、この期待値記憶部を指すと理解されてもよい。
【００３９】
遅延値管理部１１９は、通知された比較結果によって、現在出力している遅延値が、データ転送が可能な遅延値かを判断する。つまり、遅延値管理部１１９は、通知された比較結果が、同一であるとの比較結果である場合、現在の遅延値が、データ転送が可能な遅延値と判断する。そして、遅延値管理部１１９は、この判断の判断結果に基づき、遅延値情報（先述）を遅延部１１６へと出力する。
【００４０】
すなわち、遅延制御部１１２は、データ比較部１１８により、メモリ装置１００からのレジスタデータと、期待値１２０とが同一か否かを判断する。そして、遅延制御部１１２は、遅延値管理部１１９によって、この判断の判断結果に基づいて、出力する遅延値情報を特定し、遅延値管理部１１９によって、特定された遅延値情報を遅延部１１６へと出力する。
【００４１】
なお、図１に示す構成例は一例であって、本発明を限定するものではない。例えば、データ送受信部１１１の遅延部１１６は、２つの部分からなってもよい。すなわち、遅延部１１６は、例えば、ストローブ信号用の第１の遅延部だけでなく、データ信号用の第２の遅延部もあってもよく、データ受け取り回路１１７も、上述した説明の構成とは別の構成であってもよい。
【００４２】
図２は、図１の構成例における動作例を示すフロー図であり、以下、図２を用いて動作を説明する。
【００４３】
ステップＳａでは、システム１の動作が開始して、メモリ装置１００の初期化動作が完了した後、遅延制御部１１２が、データ受信が可能な遅延値の範囲の探索を開始する。なお、この探索では、レジスタセット１０２を用いての探索でもよいが、ここではメモリセル１０１を用いての探索の例を説明する。
【００４４】
遅延値管理部１１９は、期待値１２０と同じ値をメモリセル１０１に書き込むために、ライトコマンドをコマンド管理部１１５に発行する。
【００４５】
コマンド管理部１１５は、メモリ状態管理部１１３からの情報を元に、ライトコマンドを発行してもよいかを確認し、コマンド発行部１１４にライトコマンドを発行する。
【００４６】
コマンド発行部１１４は、コマンド管理部１１５から受け取ったライトコマンドをメモリ装置１００に発行する。
【００４７】
以下では、コマンド発行時におけるメモリ状態管理部１１３、コマンド発行部１１４、コマンド管理部１１５の動作の詳しい説明は省略する。
【００４８】
メモリ装置１００は、メモリ制御装置１１０から受け取ったライトコマンドを解釈し、入出力バッファ１０４を介してメモリ制御装置１１０から受け取った期待値データを、メモリセル１０１に格納する。
【００４９】
なお、このとき、データパス管理部１０６は、セレクタ１０３が通常はメモリセル１０１を選択するように通知を出しているものとする。
【００５０】
メモリセル１０１への期待値データの書き込みが完了すると、遅延値管理部１１９が遅延値を最小値に設定し、遅延制御部１１２がコマンド管理部１１５にリードコマンドを発行する。
【００５１】
メモリ装置１００は、メモリ制御装置１１０から受け取ったリードコマンドを解釈し、メモリセル１０１からデータを読み出し、入出力バッファ１０４を介して、期待値データを出力する。
【００５２】
データ送受信部１１１は、最小値である遅延値によって遅延部１１６でストローブ信号を遅延させ、データ受け取り回路１１７でデータを受け取る。
【００５３】
受け取ったデータがデータ比較部１１８で期待値１２０と比較され、その比較の結果が遅延値管理部１１９に通知される。
【００５４】
遅延値管理部１１９は比較結果が一致の場合は、その最小値の遅延値がデータ受信可能な遅延値だと判断し、比較結果が不一致の場合は、その最小値の遅延値がデータ受信不能だと判断する。
【００５５】
この動作を遅延値が最小値から最大値になるまで繰り返すことで、遅延値管理部１１９はデータ受信が可能な遅延値の範囲を知ることができる。
【００５６】
最後に検出した遅延値範囲のうち、中間値を、最も安定してデータ受信が可能な遅延値と判断し、遅延部１１６に対して、その中間値を遅延値管理部１１９は出力する。
【００５７】
なお、ステップＳａでの遅延値探索方法は、本実施の形態に限定されるものではなく、静的に設定された範囲であっても、別のアルゴリズムによる探索方法でもよい。また、最も安定してデータ受信が可能な遅延値と判断するのに、遅延値範囲の中間値ではなく、別の計算式で求めた値を使ってもよい。
【００５８】
ステップＳｂでは、通常のシステム動作をシステム１は行う。ここではメモリ装置１００へのメモリ制御装置１１０からのデータ送受信もシステム１により行われる。
【００５９】
ステップＳｃでは、遅延制御部１１２が、ある期間ごとに遅延値探索を行うべきタイミングを管理し、そのタイミングであるかどうかを判断する。そのタイミングではない場合は、ステップＳｂの通常動作をシステム１は継続し（ステップＳｃ：Ｎｏ）、そのタイミングである場合は、ステップＳｄに進む（ステップＳｃ：Ｙｅｓ）。
【００６０】
なお、このステップＳｃのより具体的な内容について、ここでは一例として、メモリ装置１００のリフレッシュ動作のタイミングを、遅延値探索を行うタイミングだと判断する場合を説明する。すなわち、例えば、このステップＳｃで、遅延制御部１１２は、メモリ状態管理部１１３からの情報により、メモリ装置１００がリフレッシュを開始したことを検知し、遅延値探索のタイミングだと判断する（ステップＳｃ：Ｙｅｓ）。
【００６１】
ステップＳｄでは、遅延値探索のためのリードコマンドを処理する時間があるかを例えば遅延制御部１１２が判断する。ここでの判断は、遅延値探索のためのリードコマンドを実行することにより、通常アプリケーションのデータ送受信に影響がないかを確認するために行う。ここで、本例では、リフレッシュを開始したことを検出してステップＳｄにきているため（ステップＳｃ：Ｙｅｓ）、リフレッシュ後の一定期間は通常アプリケーション用のデータ送受信がないことが予め判断できるので、通常アプリケーションに影響がないと判断することができる（ステップＳｄ：Ｙｅｓ）。
【００６２】
なお、ステップＳｃで、リフレッシュ以外で遅延値探索のタイミングを検出する場合は、通常アプリケーションに影響がある可能性があるので、その場合は影響がなくなるまでステップＳｅで通常動作を続けることになる（ステップＳｄ：Ｎｏ）。影響がないことが確認できた場合、ステップＳｆに進む（ステップＳｄ：Ｙｅｓ）。
【００６３】
ステップＳｆ以降では、遅延値探索を全遅延値で行うのではなく、現状把握している遅延値範囲（Window）における最小値付近と最大値付近のみのデータ受信を判定することで、Windowの最小値、最大値を更新していく方法を説明する。なお、ステップＳｆ以降の方法は、本説明に限定されるものではなく、全遅延値を探索してもよいし、別のアルゴリズムを用いてもよい。
【００６４】
ステップＳｆでは、遅延値管理部１１９は、現状把握しているWindowの最大値を遅延部１１６に出力する。
【００６５】
ステップＳｇでは、レジスタセット１０２からの期待値データの受信を行うために、メモリセル１０１へのリードコマンドとは異なる、特別なレジスタリードコマンドを、コマンド管理部１１５がコマンド発行部１１４によって発行する。例えば、遅延値管理部１１９がコマンド管理部１１５に発行させてもよい。なお、ここで、期待値１２０とレジスタセット１０２には遅延値調整に適したデータパターンが格納されているものとし、複数のデータパターンを用いてもよく、その場合は、アドレス情報付加部１２１がレジスタリードコマンドにアドレス情報を含めることで、データパターンを選択することができる。また、メモリ状態管理部１１３はメモリセル１０１へのリードコマンドに対する制御ルールとは別のレジスタセット１０２へのリードコマンドに対する制御ルールを把握している。
【００６６】
そして、このステップＳｇにおいて、レジスタリードコマンドを受け取ったメモリ装置１００は、特殊コマンド検出部１０５で、レジスタセット１０２へのリードコマンドだと解釈する。そして、特殊コマンド検出部１０５、この解釈の後に、レジスタセット１０２に対してアドレス情報と読み出し指示の通知を行い、また、データパス管理部１０６に、レジスタセット１０２を選択するように通知を行う。
【００６７】
そして、このステップＳｇにおいては、データパス管理部１０６は、レジスタセット１０２からデータが出力されるタイミングで、セレクタ１０３に対して、レジスタセット１０２を選択するよう指示を出し、セレクタ１０３はレジスタセット１０２を選択する。レジスタセット１０２から出力されたデータは入出力バッファ１０４を介して、メモリ制御装置１１０に出力される。
【００６８】
ステップＳｈでは、遅延部１１６は、Windowの最大値に設定された遅延値でストローブ信号を遅延させ、データ受け取り回路１１７がデータを受け取る。受け取ったデータをデータ比較部１１８が期待値１２０と比較し、その結果を遅延値管理部１１９に通知する。
【００６９】
遅延値管理部１１９は、比較結果が一致の場合は（ステップＳｈ：Ｙｅｓ）、ステップＳｉに進み、そのWindowの最大値がまだ有効であると判断し、さらに１つ大きな遅延値も有効であるかを次回で確認するために、把握しているWindowの最大値情報を１つだけ増やして、最大値情報を更新する。他方、遅延値管理部１１９は、比較結果が不一致の場合は（ステップＳｈ：Ｎｏ）、ステップＳｊに進み、そのWindowの最大値が無効であると判断し、１つ小さな値をWindowの最大値にするために最大値情報を１つだけ減らして、最大値情報を更新する。
【００７０】
ステップＳｋでは、更新された最大値情報と、別途把握している最小値情報を用いて、その中間値を現在最も安定してデータ受信ができる遅延値だと判断して、その中間値を遅延部１１６に遅延値管理部１１９が出力する。
【００７１】
ステップＳｌからステップＳｓまでは、ステップＳｄからステップＳｋの動作をWindowの最大値ではなく最小値に置き換えたもので、詳しい説明は割愛する。ただし、ステップＳｑ、ステップＳｒでは、Windowの最小値の更新であるので、比較結果が一致の場合は１だけ減らし、比較結果が不一致の場合は１だけ増やすものとする。
【００７２】
ステップＳｓの後、再度ステップＳｂに戻る。
【００７３】
次に図３では、図２におけるレジスタリードコマンド発行時（ステップＳｇ、ステップＳｏ参照）のタイミング図の例を示している。
【００７４】
タイミング(A)では、メモリ装置１００に対してリフレッシュコマンドをコマンド発行部１１４が発行する。そして、このタイミング(A)で、遅延制御部１１２は、図２のステップＳｃのWindow検出タイミングだと判断し（ステップＳｃ：Ｙｅｓ）、同時にステップＳｄの、レジスタリードが可能なタイミングだとの判断をする（ステップＳｄ：Ｙｅｓ）。
【００７５】
タイミング(B)では、コマンド発行部１１４がレジスタリードコマンドを発行し（ステップＳｇ）、その後、データパス管理部１０６からの出力信号が、メモリセル１０１を選択する信号から、レジスタセット１０２を選択する信号に切り替わる。
【００７６】
また、タイミング(C)で、遅延値管理部１１９は、遅延部１１６への遅延値を、Windowの最大値に設定する（ステップＳｆ）。
【００７７】
なお、前記データパス管理部１０６からの出力信号の切り替わりタイミングと、タイミング(C)は、本説明に限定されるものではなく、逆の順番であっても同タイミングであってもよい。
【００７８】
タイミング(D)で、受け取ったデータに対するデータ比較部１１８による比較の比較結果が、遅延値管理部１１９に到達し、この場合は一致だと通知される。比較結果としては、複数のデータを受け取り、これらすべてのデータが期待値と一致した場合に、一致したという比較結果を送るものとする。
【００７９】
なお、ここで、データの個数は本説明に限定されるものではない。またレジスタリードコマンドも複数回数発行して、そのすべての期待値比較をした結果を用いてもよい。レジスタセット１０２からの出力が終わったタイミングで、データパス管理部１０６は、その出力信号を、メモリセル１０１を選択する出力値の出力信号に戻す。
【００８０】
タイミング(E)で、遅延値管理部１１９は、一致という比較結果を受け取り、Windowの最大値情報を１つだけ増やす（図２のステップＳｉ）。ここでは、最初に0x40という数値を最大値として把握していたので、0x41に更新するものとする。
【００８１】
タイミング(F)では、この更新後に、遅延部１１６に対して、遅延値管理部１１９が、中間値である0x30を再設定する（ステップＳｋ）。なお、ここでは中間値を切り捨て方式で計算しているが、切り上げでもよい。もしくは、最大値を１つだけ増やしての中間値計算で、0x41が有効な遅延値かどうかがここでは判断できないため、切り上げよりも切り捨ての方が安全だと判断しての切り捨てを行ってもよい。
【００８２】
次に、まだレジスタリードコマンドを実行する余裕があると判断して、タイミング(G)でレジスタリードコマンドを発行する（ステップＳｏ）。データパス管理部１０６は、レジスタセット１０２を選択するように出力信号を変化させる。
【００８３】
タイミング(H)で、遅延値管理部１１９は、次はWindowの最小値を遅延部１１６に対して出力する（ステップＳｎ）。タイミング(I)で、今度は不一致の結果を受け取り、タイミング(J)で、最小値情報を１つだけ増やして0x20から0x21とする（ステップＳｒ）。その後、タイミング(K)で、遅延部１１６への遅延値を中間値の0x31に設定する（ステップＳｓ）。また、データパス管理部１０６は、レジスタセット１０２からのデータ出力が完了したタイミングでメモリセル１０１を選択するように出力信号を変化させる。
【００８４】
図３では、通常アプリケーションのリード動作（ステップＳｂ）の後にリフレッシュ動作、その後にリード動作をしている間に、レジスタリードコマンドを２回発行している（ステップＳｇ等）。そして、このレジスタリードコマンドは、もともとリフレッシュ動作のために空けざるを得なかったデータバスを使用しているため、通常アプリケーションの動作によるリード動作に影響を与えていない。
【００８５】
以上により、通常アプリケーションのデータ転送を妨げることなく、遅延値の探索を行うことで、アプリケーションの動作中にもWindowの変動を検出して、それに追従したタイミング調整を可能にすることで、常に安定してデータ送受信を行えることを説明した。
【００８６】
なお、図３で説明したタイミングは一例であり、本発明をこれに限定するものではない。レジスタリードコマンドはデータパターンを変えて数回実施してもよいし、１回だけでもよく、また最大値、最小値の判定を２回以上行ってもよい。また、今回は特別なレジスタリードコマンドを用いた例を示したが、特殊コマンド検出部１０５がリフレッシュコマンドをレジスタセット１０２へのリードコマンドだと解釈して、レジスタセット１０２からのデータをメモリ制御装置１１０に出力してもよい。その場合、特殊コマンド検出部１０５がリフレッシュコマンドをレジスタセット１０２へのリードコマンドだと解釈するかどうかをモード設定可能にしてもよいし、アドレス信号などで判別するようにしてもよい。
【００８７】
＜第２の実施形態＞
図４は、メモリ装置およびメモリ制御装置の一実施形態（第２の実施形態）を示している。本実施の形態では、図１の構成において、レジスタセット１０２へのデータ書き込みをする例を図４のタイミング図を用いて説明する。
【００８８】
遅延制御部１１２は、メモリ状態管理部１１３からの情報により、レジスタセット１０２へのデータ送信をするためのタイミングがあることを検出する。
【００８９】
タイミング(A)では、メモリ装置１００に対してリフレッシュコマンドをメモリ制御装置１１０が発行したことを検知して、一定期間は通常アプリケーションによるデータバスの使用がないとコマンド管理部１１５（遅延制御部１１２）が判断できる（図２のステップＳｃ参照）。
【００９０】
タイミング(B)では、レジスタセット１０２への特別なレジスタライトコマンドをコマンド管理部１１５がコマンド発行部１１４によってメモリ装置１００に対して発行する。例えば、遅延制御部１１２がコマンド管理部１１５に発行させる。また、この発行で書き込むデータは、期待値１２０から、該当するものを選択する。レジスタライトコマンドには、レジスタセット１０２に複数のレジスタが含まれる場合は、アドレス情報付加部１２１が、どのレジスタへ書き込むかを指定するためにアドレス情報を含めることができる。レジスタライトコマンドを特殊コマンド検出部１０５が検出した後、データパス管理部１０６の出力は、レジスタセット１０２を選択するように変更される。メモリ制御装置１１０から出力されたライトデータがレジスタセット１０２に格納された後、タイミング(D)で、データパス管理部１０６の出力はメモリセル１０１を選択するように戻る。
【００９１】
その後、タイミング(E)で、遅延制御部１１２は、レジスタセット１０２へのリードコマンドを発行できると判断して（ステップＳｄ参照）、レジスタリードコマンドを発行する。その後の期待値比較の説明は割愛するが、その後、レジスタセット１０２からの出力データが入出力バッファ１０４を介してメモリ制御装置１１０へ出力された時点で、データパス管理部１０６の出力はメモリセル１０１を選択するように変更される。その後、タイミング(F)で、通常アプリケーションによるリードコマンドがメモリ制御装置１１０によりメモリ装置１００へと発行され、メモリ装置１００のメモリセル１０１からのデータがメモリ制御装置１１０へとメモリ装置１００により出力される。
【００９２】
以上により、レジスタセット１０２へのデータ格納も、通常アプリケーションの動作を妨げることなく実施できることを説明した。レジスタセット１０２へのデータ書き込みにおいては、遅延値探索を行う際に、様々なデータパターンを用いたり、レジスタセット１０２の初期値以外のデータパターンで期待値比較を行いたいときに用いる。また、本説明では、通常アプリケーションの動作を妨げない範囲で、レジスタセット１０２へのアクセスをする場合を説明した。一方、コマンド管理部１１５が、メモリセル１０１とレジスタセット１０２とのアクセスが衝突しないように、メモリ状態管理部１１３の情報を見ながらコマンド発行を行ってもよい。このような発行を行うことで、通常アプリケーションよりも、遅延値探索のためのレジスタセット１０２へのアクセスを優先させることも可能である。
【００９３】
このようにして、第１の実施形態および第２の実施形態により、それぞれ、本発明を実施するための一実施形態であるメモリ装置（メモリ装置１００）が構成される。
【００９４】
この一実施形態のメモリ装置は、メモリセル（メモリセル１０１）を備える。メモリセルは、予め定められたアプリケーションが予め定められたメモリ制御装置（メモリ制御装置１１０）によって当該メモリ装置に記憶させる記憶データを記憶する。ここで、記憶される前記記憶データは、当該メモリ装置が前記メモリ制御装置に出力するストローブ信号が前記メモリ制御装置に用いられることにより、当該メモリ制御装置に受信される。そして、記憶される前記記憶データは、予め定められた送受信不能時（例えば、前記メモリ装置が、前記メモリセルからのデータ入出力をしないモードである時、前記メモリ装置にリフレッシュコマンドが発行された時、前記メモリ装置がリフレッシュモードの時、又は、バンクコンフリクトによってデータバスが不使用である時）には、当該メモリ装置による前記メモリ制御装置への送信と、前記メモリ制御装置から当該メモリ装置への受信とのうちの両方又は一方が不能なデータである。
【００９５】
なお、上記送受信不能時とは、例えば、メモリ装置についての規格により定められた時間であってもよい。また、上記メモリセルは、例えば、記憶する情報を表す電荷を蓄えるキャパシタ（コンデンサ）を備えるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のメモリセルであってもよい。ここで、このようなＤＲＡＭのメモリセルにおいては、キャパシタの電荷は漏れ電流によって次第に失われる。このため、このような、ＤＲＡＭのメモリセルにおいては、漏れ電流により失われた電荷を補充するため操作（リフレッシュ）が必要である。そして、このリフレッシュがされる間は、リフレッシュがされるメモリセルの記憶データの受信および送信が不能である。
【００９６】
そして、メモリ装置は、さらに、レジスタセット（レジスタセット１０２）を備える。レジスタセットは、レジスタデータを記憶する。そして、記憶されるレジスタデータは、前記送受信不能時に、前記メモリ制御装置に対して当該メモリ装置が送信可能なデータである。
【００９７】
そして、より具体的には、メモリ装置は、特殊コマンド検出部と、データパス管理部と、セレクタとを備える。そして、メモリ装置にメモリ制御装置が発行した特殊コマンドが特殊コマンド検出部により検出されて、この検出がされた場合に、データパス管理部およびセレクタがそれぞれ適切な動作をすることにより、レジスタデータがメモリ装置とメモリ制御装置との間で通信される（ステップＳｇ、Ｓｏ）。
【００９８】
なお、さらに詳細には、メモリ装置は、入出力バッファを備える。入出力バッファは、メモリ装置と、メモリ制御装置との間で通信されるデータ（メモリセルのデータ、および、レジスタデータ）が、適切に通信されるよう、通信されるデータのバッファリングを行う。
【００９９】
また、このようにして、本発明を実施する際の一実施形態であるメモリ制御装置（メモリ制御装置１１０）が構成される。このメモリ制御装置は、遅延部（遅延部１１６）と、データ受信部（データ送受信部１１１）と、判定部（データ比較部１１８）と、制御部（遅延制御部１１２、コマンド管理部１１５）とを備える。
【０１００】
遅延部は、予め定められたメモリ装置（メモリ装置１００）がこのメモリ制御装置に出力するストローブ信号を予め定められた遅延時間だけ遅延させる。
【０１０１】
データ受信部は、予め定められたアプリケーションが前記メモリ装置に記憶させた記憶データを、当該メモリ装置から、前記遅延部により遅延されたストローブ信号を用いて受信する。
【０１０２】
また、データ受信部は、前記メモリ装置が備える予め定められたメモリセル（メモリセル１０１）に記憶されたレジスタデータ（記憶された期待値１２０）を、当該メモリ装置から受信する。そして、より詳しくは、データ受信部は、前記メモリ装置の前記記憶データの、当該メモリ制御装置による受信および送信のうちの少なくとも一方が不能である予め定められた送受信不能時に、メモリ装置からレジスタデータを受信する（ステップＳｇ、Ｓｏ）。
【０１０３】
判定部は、前記メモリ装置に記憶されたレジスタデータの内容（期待値１２０）と、受信された前記レジスタデータとが同一か否かを判定する。判定部は、例えば、レジスタデータの内容を記憶する期待値記憶部から、記憶されたレジスタデータの内容を取得し、記憶された内容と、受信されたレジスタデータとの間での判定を行う。
【０１０４】
制御部は、前記判定部により、同じとの判定がされた場合には、前記アプリケーションの前記記憶データが前記データ受信部に受信される際における前記ストローブ信号を、前記遅延部により、第１の遅延時間だけ遅延させる。また、制御部は、同じではないとの判定がされた場合には、記憶データが受信される際に、第２の遅延時間だけ遅延部により遅延を行わせる。ここで、前記第１の遅延時間は、判定に際して受信された前記レジスタデータの受信の際の前記遅延時間（判定遅延時間）の予め定められた近傍の時間である。他方、前記第２の遅延時間は、この判定遅延時間の上記近傍には含まれない時間である。ここで、上記判定遅延時間の近傍は、例えば、判定遅延時間が一端（例えば最大の時間）であり、予め定められた他端（例えば最小の時間）である時間の範囲の中心値と、その判定遅延時間との間の範囲である。そして、第１の遅延時間は、上記中心値の時間であり、第２の遅延時間は、この中心値よりも、より上記他端に近い予め定められた時間である。このとき、第２の遅延時間は、判定遅延時間までの時間差が、第１の遅延時間から判定遅延時間までの時間差よりも大きい。
【０１０５】
こうして、上記メモリ装置および上記メモリ制御装置を備えるシステム（システム１）が構成される。
【０１０６】
このような実施の形態により、記憶データが受信される際の遅延時間が、上記第１の遅延時間と上記第２の遅延時間とから適切に制御部により選択される。これにより、記憶データが受信される際の遅延時間として、例えばメモリシステムの周囲の温度などに応じた、適切な遅延時間が選択される。そして、上記メモリ装置は上記メモリセルを備えている。これにより、このメモリセルを用いることで、上記送受信不能時に、判定に際して必要な通信が行われる。これにより、記憶データが受信される際の遅延時間として適切な遅延時間が選択される一方で、アプリケーションによるメモリ装置のアクセスが阻害されることを回避できる。これにより、適切な遅延時間を選択することと、アプリケーションによるアクセスの阻害を回避することとを両立できる。これにより、リアルタイム性を必要とするアプリケーションの実行へ影響することなく、遅延時間を高精度に調整できる。
【０１０７】
また、上記送受信不能時にまで上記メモリセルの記憶データが通信されるようにする必要がない。このため、例えばメモリセルを規格通りのありふれた構成にできる。これにより、ひいては、システムの構成を簡単にできる。
【０１０８】
上記のようにして、実施の形態１、２において、それぞれ、少なくとも１つのメモリセル（メモリセル１０１）と、少なくとも１つのレジスタセット（レジスタセット１０２、記憶部）と、入出力バッファ（入出力バッファ１０４）と、前記レジスタセットおよび前記メモリセルのうちで、予め定められた選択信号が示す方と、前記入出力バッファとを接続するセレクタ（セレクタ１０３）と、当該メモリ装置へと発行された、前記レジスタセットへのアクセスを行うコマンドを検出し、検出したことを示す検出信号を出力する特殊コマンド検出部（特殊コマンド検出部１０５）と、前記特殊コマンド検出部からの前記検出信号に応じて、前記セレクタが前記レジスタセットを一定期間選択することを示す信号を、前記選択信号として前記セレクタに出力するデータパス管理部（データパス管理部１０６）とを備えるメモリ装置が構成される。なお、データパス管理部は、例えば、一定期間上記信号の出力を継続し、セレクタは、その出力が継続する間は、レジスタセットを選択するものとしてもよい。
【０１０９】
これにより、レジスタセットを備えていて、送受信不能時にレジスタデータが送信できる。このため、送受信不能時にレジスタデータが送信されることにより、メモリセルに記憶される記憶データの受信に用いるストローブ信号の遅延時間の調整ができる。これにより、アプリケーションによる記憶データの通信を阻害することなく、遅延時間の調整ができる。
【０１１０】
ここで、先述のように、メモリセルは、例えばＳＤＲＡＭのメモリセルであり、上記送受信不能時には、当該メモリセルに記憶された記憶データの通信が不能である。そして、レジスタセットのデータ（レジスタデータ）は、このような送受信不能時に通信が可能なデータである。具体的には、上記特殊コマンド検出部により上記コマンドが検出されて、上記セレクタが、レジスタセットを入出力バッファに接続することにより、レジスタデータの通信が入出力バッファを介して行われる。
【０１１１】
そして、前記特殊コマンド検出部は、前記レジスタセットへの読み出しコマンドを検出し、前記レジスタセットは、当該読み出しコマンドを検出したことを示す検出信号が前記特殊コマンド検出部により前記データパス管理部に出力された後、当該レジスタセットが記憶するレジスタ値を出力し、前記セレクタは、前記レジスタセットから前記レジスタ値が出力された後、前記レジスタセットではない方、即ち前記メモリセルを選択することを特徴とするメモリ装置が構成される。
【０１１２】
そして、前記特殊コマンド検出部は、前記レジスタセットへの書き込みコマンドを検出し、前記レジスタセットは、当該書き込みコマンドを検出したことを示す検出信号が前記特殊コマンド検出部によって前記データパス管理部に出力された後、当該メモリ装置の外部から入力されたデータ（入力された期待値１２０）を当該レジスタセットに格納し、前記セレクタは、前記レジスタセットが外部から入力された前記データを格納した後、前記レジスタセットではない方、即ち前記メモリセルを選択することを特徴とするメモリ装置が構成される。
【０１１３】
そして、前記レジスタセットは、複数のレジスタを備え、前記特殊コマンド検出部は、前記検出したコマンドに含まれるアドレス情報（例えばレジスタの番号）を前記レジスタセットに出力し、前記レジスタセットは、当該レジスタセットによって出力される前記アドレス情報を基に、前記レジスタに対する読み出し、書き込みを行うレジスタを、前記複数のレジスタのなかから選択することを特徴とするメモリ装置が構成される。すなわち、前記レジスタセットは、当該アドレス情報により特定されるレジスタを、読み出し、書き込みを行うレジスタとして選択する。
【０１１４】
そして、予め定められたメモリ装置（メモリ装置１００）に対して、当該メモリ装置が有する予め定められたレジスタセット（レジスタセット１０２）からのデータ読み出しを指示するリードコマンドを発行するコマンド発行部（コマンド発行部１１４）と、前記メモリ装置が出力するストローブ信号を遅延部１１６によって遅延すると共に、前記メモリ装置が備えるメモリセルに記憶された記憶データを、遅延されたストローブ信号を用いて当該メモリ装置から受信するデータ送受信部と（データ送受信部１１１）と、前記メモリ装置の前記レジスタセットから読み出されたデータ（読み出されたレジスタデータ）と、予め保持している期待値データ（期待値１２０）とをデータ比較部１１８により比較し、前記メモリセルに記憶された前記記憶データの受信に際して、当該比較の結果より特定される遅延時間（上記第１の遅延時間又は、上記第２の遅延時間のうちの何れか）だけ前記ストローブ信号を前記データ送受信部の前記遅延部により遅延させる遅延制御部（遅延制御部１１２）とを有することを特徴とするメモリ制御装置が構成される。
【０１１５】
そして、前記遅延制御部は、前記レジスタセットが有する複数のレジスタのうちから１つのレジスタを選択するためのアドレス情報を前記リードコマンドに付加し、さらに、前記期待値データを複数セット有し、前記メモリ装置から読み出されたデータと、前記複数セットの期待値データのうち、前記アドレス情報により選択されたレジスタに対応する期待値データとを比較することを特徴とするメモリ制御装置が構成される。
【０１１６】
そして、予め定められたメモリ装置とデータの送受信を行うデータ送受信部と、前記メモリ装置に対して、前記メモリ装置が有する予め定められたレジスタセット（レジスタセット１０２）へのデータ書き込みを指示するライトコマンドを発行するコマンド発行部（コマンド発行部１１４）とを有することを特徴とするメモリ制御装置が構成される。コマンド発行部は、このコマンド発行部に対してコマンド管理部１１５が発行する、レジスタセットにアクセスをするためのコマンドを、コマンド管理部１１５から取得して、取得されたコマンドをメモリ装置に対して発行する。
【０１１７】
そして、前記メモリ装置のモードを検知するメモリ状態管理部（メモリ状態管理部１１３）と、前記メモリ状態管理部から通知された前記メモリ装置のモードに基づき、前記コマンド発行部に対して前記メモリ装置へのコマンドの発行を指示するコマンド管理部（コマンド管理部１１５）とを有し、前記コマンド管理部は、前記メモリ装置が前記メモリセルからのデータ入出力がないモード時に、前記レジスタセットへのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示することを特徴とするメモリ制御装置が構成される。
【０１１８】
そして、前記コマンド管理部は、前記メモリ装置がリフレッシュモード時に、前記レジスタセットへのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示することを特徴とするメモリ制御装置が構成される。
【０１１９】
そして、前記コマンド管理部は、前記メモリ装置がバンクコンフリクトによってデータバスが不使用である時に、前記レジスタセットへのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示することを特徴とするメモリ制御装置が構成される。
【０１２０】
なお、コマンド管理部は、例えば、現在が、上記した送受信不能時か否かを検知して、送受信不能時であると検知される場合にのみ、レジスタセットへのアクセスのコマンドを、コマンド発行部によって、メモリ装置に対して発行するものとしてもよい。
【０１２１】
そして、前記データ送受信部は、前記遅延制御部からの遅延値情報を基に、前記ストローブ信号を遅延させる遅延部を有し、前記遅延させたストローブ信号で前記メモリ装置からのデータを受信することを特徴とするメモリ制御装置が構成される。
【０１２２】
そして、前記遅延制御部は、前記メモリ装置から読み出されたデータ（レジスタデータ）と、予め保持している期待値データ（期待値１２０）とが一致する範囲の、前記ストローブ信号を遅延させる値を保持し（例えば、その範囲を特定する範囲値特定情報を保持し）、前記遅延させる値として、前記一致する範囲の上限値より大きな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致する場合、保持している遅延値の範囲を更新することを特徴とするメモリ制御装置が構成される。なお、ここで、範囲を更新するとは、例えば、保持される範囲を、更新前の範囲から、更新後の範囲へ変更することである。なお、ここで、更新後の範囲は、更新前の範囲に対して、さらに、データ（レジスタデータ）が読み出された際の遅延値の予め定められた近傍を加えた範囲である。
【０１２３】
そして、前記遅延制御部は、前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、前記遅延させる値として、前記一致する範囲の上限値より小さな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致しない場合、保持している遅延値の範囲を更新することを特徴とするメモリ制御装置が構成される。なお、ここで、この更新による更新後の範囲は、データ（レジスタデータ）が読み出された際の遅延値の予め定められた近傍が、更新前の範囲から除かれた範囲である。
【０１２４】
そして、前記遅延制御部は、前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、前記遅延させる値として、前記一致する範囲の下限値より小さな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致する場合、保持している遅延値の範囲を更新することを特徴とするメモリ制御装置が構成される。なお、ここで、更新後の範囲は、更新前の範囲に対して、さらに、データ（レジスタデータ）が読み出された際の遅延値の予め定められた近傍を加えた範囲である。
【０１２５】
そして、前記遅延制御部は、前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、前記遅延させる値として、前記一致する範囲の下限値より大きな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致しない場合、保持している遅延値の範囲を更新することを特徴とするメモリ制御装置が構成される。なお、ここで、この更新による更新後の範囲は、データ（レジスタデータ）が読み出された際の遅延値の予め定められた近傍が、更新前の範囲から除かれた範囲である。
【０１２６】
また、上記のメモリ装置の各部分を備える集積回路を構成してもよい。例えば、上記のメモリ装置は、集積回路として構成してもよい。同様に、上記のメモリ制御装置の各部分を備える集積回路を構成してもよい。また、上記の説明により、上記のメモリ装置および上記のメモリ制御装置が行う各工程を備えることで、ストローブ信号の遅延時間を制御する制御方法が示される。また、その各工程のうちで、上記のメモリ装置が行う部分のみを備えるメモリ装置の動作方法が示される。同様に、その各工程のうちで、上記のメモリ制御装置が行う部分のみを備えるメモリ制御装置の動作方法が示される。
【０１２７】
なお、上記の説明において、互いに離れた複数の箇所の技術事項により、それらの技術事項が組み合わせられた形態も示される。
【産業上の利用可能性】
【０１２８】
以上説明してきた通り、本発明に係るメモリ装置およびメモリ制御装置は、リアルタイム性を必要とするアプリケーションの実行中においてもデータ転送のためのタイミング調整を精度高く行うことができるので、システムＬＳＩ等に好適に利用できる。
【符号の説明】
【０１２９】
１００  メモリ装置
１０１  メモリセル
１０２  レジスタセット
１０３  セレクタ
１０４  入出力バッファ
１０５  特殊コマンド検出部
１０６  データパス管理部
１１０  メモリ制御装置
１１１  データ送受信部
１１２  遅延制御部
１１３  メモリ状態管理部
１１４  コマンド発行部
１１５  コマンド管理部
１１６  遅延部
１１７  データ受け取り回路
１１８  データ比較部
１１９  遅延値管理部
１２０  期待値
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのメモリセルと、
少なくとも１つの記憶手段と、
入出力バッファと、
前記記憶手段および前記メモリセルのうちで、予め定められた選択信号が示す方と、前記入出力バッファとを接続するセレクタと、
当該メモリ装置へと発行された、前記記憶手段へのアクセスを行うコマンドを検出し、検出したことを示す検出信号を出力する特殊コマンド検出部と、
前記特殊コマンド検出部からの前記検出信号に応じて、一定期間前記セレクタが前記記憶手段を選択することを示す信号を、前記選択信号として前記セレクタに出力するデータパス管理部とを備えるメモリ装置。
【請求項２】
請求項１に記載のメモリ装置において、
前記特殊コマンド検出部は、前記記憶手段への読み出しコマンドを検出し、
前記記憶手段は、当該読み出しコマンドを検出したことを示す検出信号が前記特殊コマンド検出部により前記データパス管理部に出力された後、当該記憶手段が記憶するレジスタ値を出力し、
前記セレクタは、前記記憶手段から前記レジスタ値が出力された後、前記メモリセルを選択するメモリ装置。
【請求項３】
請求項１に記載のメモリ装置において、
前記特殊コマンド検出部は、前記記憶手段への書き込みコマンドを検出し、
前記記憶手段は、当該書き込みコマンドを検出したことを示す検出信号が前記特殊コマンド検出部によって前記データパス管理部に出力された後、当該メモリ装置の外部から入力されたデータを当該記憶手段に格納し、
前記セレクタは、前記記憶手段が外部から入力された前記データを格納した後、前記メモリセルを選択するメモリ装置。
【請求項４】
請求項２に記載のメモリ装置において、
前記記憶手段は、複数のレジスタを備えるレジスタセットであり、
前記特殊コマンド検出部は、前記検出した読み出しコマンドに含まれるアドレス情報を前記記憶手段に出力し、
前記記憶手段は、当該記憶手段へ出力される前記アドレス情報を基に、読み出しを行うレジスタを、前記複数のレジスタのなかから選択するメモリ装置。
【請求項５】
請求項３に記載のメモリ装置において、
前記記憶手段は、複数のレジスタを備えるレジスタセットであり、
前記特殊コマンド検出部は、前記検出した書き込みコマンドに含まれるアドレス情報を前記記憶手段に出力し、
前記記憶手段は、当該記憶手段へ出力される前記アドレス情報を基に、書き込みを行うレジスタを、前記複数のレジスタのなかから選択するメモリ装置。
【請求項６】
予め定められたメモリ装置に対して、当該メモリ装置が有する予め定められた記憶手段からのデータ読み出しを指示するリードコマンドを発行するコマンド発行部と、
前記メモリ装置が出力するストローブ信号を遅延すると共に、前記メモリ装置が備えるメモリセルに記憶された記憶データを、遅延されたストローブ信号を用いて当該メモリ装置から受信するデータ送受信部と、
前記メモリ装置の前記記憶手段から読み出されたデータと、予め保持している期待値データとを比較し、前記メモリセルに記憶された前記記憶データの受信に際して、当該比較の結果より特定される遅延時間だけ前記ストローブ信号を前記データ送受信部により遅延させる遅延制御部とを有するメモリ制御装置。
【請求項７】
請求項６に記載のメモリ制御装置であって、
前記遅延制御部は、
前記記憶手段が有する複数のレジスタのうちから１つのレジスタを選択するためのアドレス情報を前記リードコマンドに付加し、
さらに、前記期待値データを複数セット有し、前記メモリ装置から読み出されたデータと、前記複数セットの期待値データのうち、前記アドレス情報により選択されたレジスタに対応する期待値データとを比較するメモリ制御装置。
【請求項８】
請求項６記載のメモリ制御装置であって、
予め定められたメモリ装置とデータの送受信を行うデータ送受信部と、
前記メモリ装置に対して、前記メモリ装置が有する予め定められた記憶手段へのデータ書き込みを指示するライトコマンドを発行するコマンド発行部とを有するメモリ制御装置。
【請求項９】
請求項６に記載のメモリ制御装置であって、
前記メモリ装置のモードを検知するメモリ状態管理部と、
前記メモリ状態管理部から通知された前記メモリ装置のモードに基づき、前記コマンド発行部に対して前記メモリ装置へのコマンドの発行を指示するコマンド管理部とを有し、
前記コマンド管理部は、前記メモリ装置が前記メモリセルからのデータ入出力がないモード時に、前記記憶手段へのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示するメモリ制御装置。
【請求項１０】
請求項９に記載のメモリ制御装置であって、
前記コマンド管理部は、前記メモリ装置がリフレッシュモード時に、前記記憶手段へのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示するメモリ制御装置。
【請求項１１】
請求項９に記載のメモリ制御装置であって、
前記コマンド管理部は、前記メモリ装置がバンクコンフリクトによってデータバスが不使用である時に、前記記憶手段へのデータの読み出しまたは書き込みを指示するコマンドの発行を、前記コマンド発行部に指示するメモリ制御装置。
【請求項１２】
請求項６記載のメモリ制御装置であって、
前記データ送受信部は、前記遅延制御部からの遅延値情報を基に、前記ストローブ信号を遅延させる遅延部を有し、遅延させた前記ストローブ信号で前記メモリ装置からのデータを受信するメモリ制御装置。
【請求項１３】
請求項１２に記載のメモリ制御装置であって、
前記遅延制御部は、
前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、
前記遅延させる値として、前記一致する範囲の上限値より大きな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致する場合、保持している遅延値の範囲を更新するメモリ制御装置。
【請求項１４】
請求項１２に記載のメモリ制御装置であって、
前記遅延制御部は、
前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、
前記遅延させる値として、前記一致する範囲の上限値より小さな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致しない場合、保持している遅延値の範囲を更新するメモリ制御装置。
【請求項１５】
請求項１２に記載のメモリ制御装置であって、
前記遅延制御部は、
前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、
前記遅延させる値として、前記一致する範囲の下限値より小さな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致する場合、保持している遅延値の範囲を更新するメモリ制御装置。
【請求項１６】
請求項１２に記載のメモリ制御装置であって、
前記遅延制御部は、
前記メモリ装置から読み出されたデータと、予め保持している期待値データとが一致する範囲の、前記ストローブ信号を遅延させる値を保持し、
前記遅延させる値として、前記一致する範囲の下限値より大きな値を用いて前記リードコマンドを実行し、当該実行により前記メモリ装置から読み出されたデータと予め保持している前記期待値データとが一致しない場合、保持している遅延値の範囲を更新するメモリ制御装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010100685.tif 000007
【図２】
2010100685.tif 000008
【図３】
2010100685.tif 000009
【図４】
2010100685.tif 000010
【国際調査報告】
2010100685.tif 000011
2010100685.tif 000012
2010100685.tif 000013
2010100685.tif 000014