(57)【要約】【課題】データの信頼性を確保したままライト／リード動作の高速化を実現する。【解決手段】本発明に係るメモリコントローラは、上位装置との間でライト／リードデータの入出力を行なうと共に、ライトストローブ信号を生成するデータ制御回路と、ライト動作においてデータ制御回路により生成される、ライトストローブ信号のタイミングをメモリアクセス単位毎に調整し、各メモリアクセス単位がライトデータを取り込むタイミングを指定するライトストローブ調整信号を生成する第１処理と、リード動作においてメモリデバイスにより生成される、リードストローブ信号のタイミングをメモリアクセス単位毎に調整し、データ制御部が各メモリアクセス単位から読み出されたリードデータを読み出すタイミングを指定するリードストローブ調整信号を生成する第２処理のうち、少なくとも一方の処理を実行する調整回路と、を有する。【選択図】図３
2012059184.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ素子から構成されるライト／リードアクセス単位である、二以上のメモリアクセス単位を有するメモリデバイスを制御するメモリコントローラであって、
上位装置との間でライト／リードデータの入出力を行なうと共に、ライトストローブ信号を生成するデータ制御回路と、
ライト動作において前記データ制御回路により生成される、前記ライトストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、各メモリアクセス単位がライトデータを取り込むタイミングを指定するライトストローブ調整信号を生成する第１処理と、
リード動作において前記メモリデバイスにより生成される、リードストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、前記データ制御部が各メモリアクセス単位から読み出されたリードデータを読み出すタイミングを指定するリードストローブ調整信号を生成する第２処理のうち、少なくとも一方の処理を実行する調整回路と、を有する、メモリコントローラ。
【請求項２】
前記調整回路は、
前記ライトストローブ信号のタイミングを調整し、前記第１メモリアクセス単位におけるライトデータを取り込むタイミングを指定する第１メモリアクセス単位ストローブ調整信号を生成する第１メモリアクセス単位ライトストロ−ブ調整信号生成回路と、
前記ライトストローブ信号のタイミングを調整し、前記第２メモリアクセス単位におけるライトデータを取り込むタイミングを指定する第２メモリアクセス単位ライトストローブ調整信号を生成する第２メモリアクセス単位ライトストロ−ブ調整信号生成回路と、を有する
請求項１に記載のメモリコントローラ。
【請求項３】
前記調整回路は、
前記リードストローブ信号のタイミングを調整し、前記データ制御回路が前記第１メモリアクセス単位からのリードデータを読み出すタイミングを指定する第１メモリアクセス単位リードストローブ調整信号を生成する第１メモリアクセス単位リードストローブ調整信号生成回路と、
前記リードストローブ信号のタイミングを調整し、前記データ制御回路が前記第２メモリアクセス単位からのリードデータを読み出すタイミングを指定する第２メモリアクセス単位リードストローブ調整信号を生成する第２メモリアクセス単位リードストローブ調整信号生成回路と、を有する
請求項１又は２に記載のメモリコントローラ。
【請求項４】
前記調整回路は、前記ライトストローブ信号のタイミングを選択的に調整可能に構成され、
第１タイミングに調整された前記第１メモリアクセス単位ライトストローブ調整信号を生成して前記第１メモリアクセス単位に供給し、
第２タイミングに調整された前記第２メモリアクセス単位ライトストローブ調整信号を生成して前記第２メモリアクセス単位に供給する
請求項１に記載のメモリコントローラ。
【請求項５】
前記調整回路は、前記リードストローブ信号のタイミングを選択的に調整可能に構成され、
第１タイミングに調整された前記第１メモリアクセス単位リードストローブ調整信号を生成して前記第１メモリアクセス単位に供給し、
第２タイミングに調整された前記第２メモリアクセス単位リードストローブ調整信号を生成して前記第２メモリアクセス単位に供給する
請求項１又は４に記載のメモリコントローラ。
【請求項６】
前記調整回路は、前記メモリ素子毎に、ライト／リードデータ信号のタイミングを調整するデータ調整信号を生成するデータ調整信号生成回路を有する
請求項１乃至５のうちいずれか１項に記載のメモリコントローラ。
【請求項７】
前記第１メモリアクセス単位ライトストローブ信号は、前記第１メモリアクセス単位に入力されるクロックのタイミングに基づいて生成され、
前記第２メモリアクセス単位ライトストローブ信号は、前記第２メモリアクセス単位に入力されるクロックのタイミングに基づいて生成される
請求項２又は４に記載のメモリコントローラ。
【請求項８】
前記第１及び第２メモリアクセス単位は、メモリのランクである、請求項１乃至７のうちいずれか１項に記載のメモリコントローラ。
【請求項９】
メモリデバイスと、請求項１乃至８のうちいずれか１項に記載のメモリコントローラを備えたメモリシステム。
【請求項１０】
複数のメモリ素子から構成されるアクセス単位によってリード／ライト動作を行うメモリデバイスの制御方法であって、
上位装置との間でライト／リードデータの入出力を行なうと共に、ライトストローブ信号を生成し、
ライト動作において前記データ制御回路により生成される、前記ライトストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、各メモリアクセス単位がライトデータを取り込むタイミングを指定するライトストローブ調整信号を生成する第１処理と、
リード動作において前記メモリデバイスにより生成される、リードストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、前記データ制御部が各メモリアクセス単位から読み出されたリードデータを読み出すタイミングを指定するリードストローブ調整信号を生成する第２処理のうち、少なくとも一方の処理を実行するメモリデバイスの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、これを備えたメモリシステム及びメモリデバイスの制御方法に関する。
【背景技術】
【０００２】
従来より、メモリデバイスへライト／リードするアクセス単位が、複数のメモリ素子を含むランクにより構成されるメモリシステムが知られている。このようなメモリシステムにおいては、メモリコントローラと複数のランクのメモリ素子同士がワイアード接続される。
【０００３】
本願発明に関連する技術として、特許文献１乃至３がある。特許文献１（特開２００３−６０４８８号公報）には、信号を伝播させる複数の伝送路毎に、調整した複数の遅延回路を設け、伝送路選択信号によって複数の遅延回路を切り替えることで、データ信号の遅延調整を行なう回路が開示されている。
【０００４】
特許文献２（特開２００７−１２２４５号公報）には、メモリ装置が第１ランクに配置されるのか、第２ランクに配置されるかによって、ＯＤＴ動作されるタイミングを異なるように調整する装置が開示されている。
【０００５】
また、特許文献３（特開２００９−２１７３４４号公報）には、データ及びストローブ信号のタイミング調整に用いるタイミング調整用データを、遅延調整用記憶部に記憶させ、タイミング調整用データを読み出すタイミングを変えながら、データの読み出しが可能な読み出しタイミングを選択設定するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−６０４８８号公報
【特許文献２】特開２００７−１２２４５号公報
【特許文献３】特開２００９−２１７３４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のメモリコントローラを含むメモリシステムでは、ライト／リードのタイミングを指定するストローブ信号が複数のランクに対して共通であった。しかしながら、近年では、ランク単位で制御を行うメモリコントローラにおいては、データ転送速度は年々向上しており、従来では考慮されていなかったランク間の遅延バラつきが、今後の高速データ転送の阻害要因になってくる。この問題点について、図１及び図２を用いて説明する。図１及び図２は、メモリ素子の入力ポイントで見たタイミングチャートである。
【０００８】
まず、図１で示すように、データ転送速度が遅い場合では、各ランク共通のストローブ信号のタイミング調整を行うだけで、各ランクのＳＥＴＵＰ／ＨＯＬＤを満足させることが可能であった。つまり、従来では、データ確定時間が、ランク間の遅延バラつきより十分大きかったため、ランク間の遅延バラつきは、問題にならなかった。
【０００９】
しかしながら、図２で示すように、データ転送速度が速い場合は、各ランク共通のストローブ信号のタイミング調整を行うだけでは、各ランクのＳＥＴＵＰ／ＨＯＬＤを満足することができない。つまり、各ランクにおけるデータ確定時間が小さくなると、ランク間の遅延バラつきが、データ転送の阻害要因となる。
【００１０】
特許文献１では、上述のように、メモリコントローラとメモリ素子間のデータ転送のタイミングを調整することができる回路が開示されている。しかしながら、特許文献１では、ランク間のデータ信号の遅延バラつきについては何ら考慮されていないため、上述したように、高速データ転送を行なう場合に各ランクのＳＥＴＵＰ／ＨＯＬＤを満足させることができない。そのため、特許文献１の回路では、データの信頼性を確保したまま、メモリアクセスの高速化を実現することができない。
【００１１】
また、特許文献１では、あくまでもメモリコントローラ側からメモリ素子への転送、つまりライト動作のみデータ転送のタイミングが調整されており、リード動作において、データ信号を調整する機能を有していない。そのため特許文献１では、リード動作におけるデータ転送の高速化を図ることができない。
【００１２】
また、特許文献２及び３についても同様に、ランク間のデータ信号の遅延バラつきについては、何ら考慮されていない。
【００１３】
本発明は、上記のような問題点に対してなされたものであり、データの信頼性を確保したまま、メモリアクセスの高速化を実現することができるメモリコントローラ及びこれを含むメモリシステム及びメモリデバイスの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係るメモリコントローラの一態様は、複数のメモリ素子から構成されるライト／リードアクセス単位である、二以上のメモリアクセス単位を有するメモリデバイスを制御するメモリコントローラである。この装置は、上位装置との間でライト／リードデータの入出力を行なうと共に、ライトストローブ信号を生成するデータ制御回路と、ライト動作において前記データ制御回路により生成される、前記ライトストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、各メモリアクセス単位がライトデータを取り込むタイミングを指定するライトストローブ調整信号を生成する第１処理と、リード動作において前記メモリデバイスにより生成される、リードストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、前記データ制御部が各メモリアクセス単位から読み出されたリードデータを読み出すタイミングを指定するリードストローブ調整信号を生成する第２処理のうち、少なくとも一方の処理を実行する調整回路と、を有することを特徴とする。
【００１５】
また、本発明に係るメモリデバイスの制御方法は、複数のメモリ素子から構成されるアクセス単位によってリード／ライト動作を行うメモリデバイスの制御方法であって、上位装置との間でライト／リードデータの入出力を行なうと共に、ライトストローブ信号を生成し、ライト動作において前記データ制御回路により生成される、前記ライトストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、各メモリアクセス単位がライトデータを取り込むタイミングを指定するライトストローブ調整信号を生成する第１処理と、リード動作において前記メモリデバイスにより生成される、リードストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、前記データ制御部が各メモリアクセス単位から読み出されたリードデータを読み出すタイミングを指定するリードストローブ調整信号を生成する第２処理のうち、少なくとも一方の処理を実行することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、データの信頼性を確保したまま、メモリアクセスの高速化を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】従来のメモリシステムにおいて、データ転送速度が遅い場合のメモリ素子の入力ポイントでみた入力信号のタイミングチャートである。
【図２】従来のメモリシステムにおいて、データ転送速度が速い場合のメモリ素子の入力ポイントでみた入力信号のタイミングチャートである。
【図３】本発明に係るメモリコントローラの概要を示すブロック図である。
【図４】本発明の実施の形態１に係るメモリコントローラを含むメモリシステムにおける、データ転送速度が速い場合のメモリ素子の入力ポイントでみた入力信号のタイミングチャートである。
【図５】本発明の実施の形態１に係るメモリコントローラを含むメモリシステムの構成を示すブロック図である。
【図６】本発明の実施の形態１に係るメモリコントローラの遅延回路の構成を示す図である。
【図７】本発明の実施の形態２に係るメモリコントローラを含むメモリシステムを示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、添付した図面を参照し、本発明の最良な実施の形態について説明する。はじめに、各実施の形態に係るメモリコントローラについて説明する前に、本発明に係るメモリコントローラの概要について説明する。図３は、本発明に係るメモリコントローラの概要を示すブロック図である。メモリコントローラ１１は、図示しない上位装置とメモリデバイス５との間を中継する装置である。メモリコントローラ１１は、ＣＰＵ等の上位装置側に設けられていてもよく、また、メモリデバイス５側に設けられていてもよい。
【００１９】
本願発明の１つの特徴は、ライト／リード動作のタイミングを指定するライト／リードストローブ信号を、メモリアクセス単位毎にタイミング調整した点にある。なお、メモリコントローラ１１とメモリデバイス５間では、ストローブ信号の他にもライト／リードデータも入出力されているが、図３では、説明のため、ライト／リードデータの入出力については省略している。
【００２０】
メモリコントローラ１１の制御対象であるメモリデバイス５は、二以上のメモリアクセス単位により構成されている。１つのメモリアクセス単位は、複数のメモリ素子によって構成されている。メモリコントローラ１１は、上位装置のライト／リード要求に応じ、メモリデバイス５に対して実行されるライト／リード処理を、ライト／リードアクセス単位毎に制御する。ライト／リードアクセス単位は、メモリデバイス５のランクとして構成することができる。
【００２１】
メモリコントローラ１１は、データ制御回路４と、調整回路１２を備えている。データ制御回路４は、上位装置との間でライト／リードデータの入出力を行なう。また、データ制御回路４は、上位装置から入力されたライトデータを、メモリデバイス５が取り込むタイミングを指定するための、ライトストローブ信号を生成する。データ制御装置４によって生成されたライトストローブ信号は、調整回路１２に出力される。また、データ制御回路４は、メモリデバイス５によって生成されたリードストローブ信号により指定されるタイミングで、メモリデバイス５から読み出されたリードデータを取り込む。
【００２２】
調整回路１２は、ライト動作において使用される第１処理回路６と、リード動作において使用される第２処理回路７のうち、少なくとも一方を備えている。なお、図３では、説明のため、第１処理回路６及び第２処理回路７の両方を図示しているが、本発明はこれに限られず、いずれか一方のみを備えていればよい。
【００２３】
第１処理回路６は、ライト動作においてデータ制御回路４により生成される、ライトストローブ信号のタイミングをメモリアクセス単位毎に調整する。第１処理回路６は、入力されたライトストローブ信号を遅延調整することで、第１メモリアクセス単位がライトデータを取り込むタイミングを指定する第１メモリアクセス単位ライトストローブ信号を生成する。また、第１処理回路６は、入力されたライトストローブ信号を遅延調整することで、第２メモリアクセス単位がライトデータを取り込むタイミングを指定する第２メモリアクセス単位ライトストローブ信号を生成する。ここで、第１処理回路６によってタイミング調整される前のライトストローブ信号を、単にライトストローブ信号とし、調整された後の信号を、ライトストローブ調整信号と呼ぶこととする。
【００２４】
第１処理回路６によって生成された第１ライトストローブ調整信号は、図示しない制御信号（チップセレクト）によって有効となった第１メモリアクセス単位に供給される。同様に、第１処理回路６によって生成された第２ライトストローブ調整信号は、制御信号（チップセレクト）によって有効となった第２メモリアクセス単位に供給される。
【００２５】
第１メモリアクセス単位においては、入力された第１ライトストローブ調整信号のエッジタイミングで、上位装置から入力されたライトデータが取り込まれる。同様に、第２メモリアクセス単位においては、入力された第２ライトストローブ調整信号のエッジタイミングで、上位装置から入力されたライトデータが取り込まれる。
【００２６】
第２処理回路７は、リード動作においてメモリデバイス５により生成される、リードストローブ信号をメモリデバイス５より入力し、メモリアクセス単位毎にタイミング調整して、データ制御回路４に出力する。具体的には、第２処理回路７は、データ制御回路４が第１メモリアクセス単位から読み出されたリードデータを読み出すタイミングを指定する第１メモリアクセス単位リードストローブ信号を生成する。また、第２処理回路７は、データ制御回路４が第２メモリアクセス単位から読み出されたリードデータを読み出すタイミングを指定する第２メモリアクセス単位リードストローブ信号を生成する。ここで、第２処理回路７によってタイミング調整される前のリードストローブ信号を、単にリードストローブ信号とし、調整された後の信号を、リードストローブ調整信号と呼ぶこととする。
【００２７】
なお、第１処理回路６及び第２処理回路７におけるライト／ストローブ信号のタイミング調整は、各メモリアクセス単位に入力されるクロックに同期させるように調整すればよい。
【００２８】
データ制御回路４においては、調整回路２から入力された第１リードストローブ調整信号のエッジタイミングで、第１メモリアクセス単位から読み出されたリードデータを取り込む。また、データ制御回路４は、調整回路２から入力された第２リードストローブ調整信号のエッジタイミングで、第２メモリアクセス単位から読み出されたリードデータを取り込む。
【００２９】
このように、本発明に係るメモリコントローラでは、ライト／リードアクセス単位毎にライト／リードストローブ信号のタイミングを調整し、ライト／リードアクセス単位毎にライト／リードストローブ調整信号を生成する。これにより、ランク間に生じるデータ信号の遅延バラつきによって、ライト／リード処理の高速化が妨げられるのを防止することができる。
【００３０】
これを図２及び４を用いて、より具体的に説明する。図４は、本発明の実施の形態１に係るメモリコントローラを含むメモリシステムにおける、データ転送速度が速い場合のメモリ素子の入力ポイントでみた入力信号のタイミングチャートである。従来では、図２に示すように、第１ランク及び第２ランクに対し、共通の（ライト／リード）ストローブ信号が用いられていた。そのため、図２に示すように、データの取り込みタイミングを規定するストローブ信号は、立ち上がりエッジが第１ランクデータ及び第２ランクデータのいずれもが確定している間、すなわち、第１、２共通ウィンドウ内に存在する必要があった。しかしながら、図２に示すようにデータ転送速度が高速である場合には、各ランクのデータ確定時間は、十分なＳＥＴＵＰ／ＨＯＬＤ時間を確保できず、ライト／リードされたデータの信頼性が低くなるという問題があった。
【００３１】
これに対し、本発明に係るメモリコントローラ１１では、図４に示すように、第１ランク及び第２ランクのそれぞれに対し、自己のランクデータが確定している間のみを考慮して（ライト／リード）ストローブ調整信号のエッジのタイミングを調整すればよい。そのため、各ランクにおいて十分なＳＥＴＵＰ／ＨＯＬＤ時間を確保できる最適なタイミングにストローブ調整信号のタイミングを調整することができる。これにより、図４に示すような、データの転送レートが高い場合であっても、メモリデバイス５に記憶されたデータ及びリードデータの信頼性を維持することが可能となる。
【００３２】
また、メモリコントローラ１１では、ライト動作においてライトストローブ信号の遅延調整を行う第１処理回路６と、リード動作においてリードストローブ信号の遅延調整を行う第２処理回路７が設けられているため、ライト動作及びリード動作のいずれについても、データの信頼性を確保したまま、メモリアクセスの高速化を実現することができる。
【００３３】
実施の形態１．
次に、本発明の実施の形態１に係るメモリコントローラについて説明する。図５は、本発明の実施の形態１に係るメモリコントローラを含むメモリシステムの構成を示す図である。実施の形態１において、図３のデータ制御回路４、第１処理回路６、第２処理回路７、第１メモリアクセス単位、及び第２メモリアクセス単位は、図５のデータ制御回路４、ライトデータ調整回路２１、リードデータ調整回路２２、第１ランク及び第２にランクに相当する。実施の形態１において、調整回路２は、各ランクのメモリ素子a〜ｚによって共有される複数の調整回路２ａ〜２ｚにより構成されている。各調整回路２ａ〜２ｚでは、ライト／リードストローブ信号のタイミング調整が行われると共に、メモリ素子ａ〜ｚ毎にライト／リードデータのタイミング調整が行われている。
【００３４】
メモリコントローラ１の制御対象であるメモリデバイス５は、２つランク、すなわち、第１ランク及び第２ランクに接続されている。第１ランク及び第２ランクのそれぞれは、複数のメモリ素子ａ〜ｚにより構成されている。
【００３５】
メモリコントローラ１は、データ制御回路４、調整回路２及びアドレス／コマンド制御回路３を備えている。データ制御回路４は、前述のように、上位装置からライトデータを入力すると共に、メモリデバイス５から読み出されたライトデータを、上位装置に出力する。上位装置からのライト／リード要求に従って生成されたコマンド（ＣＭＤ）／アドレス（ＡＤ）信号を伝送する伝送路は、第１ランク及び第２ランクの全てのメモリ素子ａ〜ｚに接続されている。コマンド（ＣＭＤ）／アドレス（ＡＤ）信号は、アドレス／コマンド制御回路３により、全てのメモリ素子ａ〜ｚに分配されている。
【００３６】
クロック（ＣＬＫ）／チップセレクト（ＣＳ）信号を伝送する伝送路は、各ランク内のメモリ素子ａ〜ｚに接続されている。クロック（ＣＬＫ）／チップセレクト（ＣＳ）信号は、ランク単位にアドレス／コマンド制御回路３から出力されている。ストローブ信号（ＤＱＳ）及びデータ信号（ＤＱ）は、双方向信号である。ストローブ信号（ＤＱＳ）及びデータ信号（ＤＱ）を伝送する伝送路は、各ランクのメモリ素子ａ〜ｚ同士でワイアード接続され、メモリコントローラ１と接続されている。なお、前述では、調整回路２によって調整されたストローブ信号を、ストローブ調整信号とすると説明したが、図５において図示されるストローブ信号（ＤＱＳ）及びデータ信号（ＤＱ）は、調整回路２によって調整される前後のストローブ信号及びデータ信号を含むものとする。
【００３７】
アドレス／コマンド制御回路３は、上位装置から発行されるライト要求又はリード要求を受信すると、メモリ素子ａ〜ｚに対し、ライトコマンド又はリードコマンド、及びアドレスを発行すると共に、メモリアクセスするランクに対して、チップセレクト（ＣＳ）を発行する。
【００３８】
データ制御回路４は、ライト動作時には、ライトデータを上位装置より受付け、調整回路２へライトデータを発行する。データ制御回路４は、リード動作時には、調整回路２より発行されるランク単位のリードデータを、同じく調整回路２より発行されるランク単位に調整された、第１リードストローブ調整信号又は第２リードストローブ調整信号のエッジタイミングで取り込み、取り込んだリードデータを上位装置へ送信する。
【００３９】
調整回路２は、メモリ素子ａ〜ｚ毎に設けられた調整回路２ａ〜２ｚを有している。調整回路２ａ〜２ｚは、第１ランクと第２ランクとで共有される。例えば、調整回路２ａは、第１ランクのメモリ素子ａと第２ランクのメモリ素子ａとで共有され、調整回路２ｚは、第１ランクのメモリ素子ｚと第２ランクのメモリ素子ｚとで共有されている。各調整回路２ａ〜２ｚは、ライトデータ調整回路２１と、リードデータ調整回路２２から構成される。
【００４０】
ライトデータ調整回路２１は、ライト処理時に、データ制御回路４からメモリデバイス５へ伝送される、ライトデータ（ＤＱ）とライトストローブ信号（ＤＱＳ）のタイミングを調整し、メモリデバイス５の各メモリ素子ａ〜ｚに出力する。ライトデータ調整回路２１は、第１ランクライトストローブ調整回路２１１、第２ランクライトストローブ調整回路２１２、第１ランクライトデータ調整回路２１３、第２ランクライトデータ調整回路２１４及びセレクタ２１５、２１６を備えている。
【００４１】
第１ランクライトストローブ調整回路２１１は、データ制御回路４によって生成されるライトストローブ信号を、第１ランクのメモリ素子ａ〜ｚがライトデータを取り込むための最適なタイミングに遅延調整する。第１ランクライトストローブ調整回路２１１には、第１ランクのメモリ素子ａ〜ｚが、ライトデータを取り込める遅延値に設定されたライト遅延調整信号ＷＤ１が入力されている。第１ランクライトストローブ調整回路２１１は、ライト遅延調整信号ＷＤ１に基づいて調整された信号を、第１ライトストローブ調整信号としてセレクタ２１５に出力する。なお、各調整回路２ａ〜２ｚの第１ランクライトストローブ調整回路２１１によって生成される第１ライトストローブ調整信号は、共通のタイミングに調整されている。換言すれば、各調整回路２ａ〜２ｚの第１ランクライトストローブ調整回路２１１に入力されるライト遅延調整信号ＷＤ１は共通である。
【００４２】
第２ランクライトストローブ調整回路２１２は、データ制御回路４によって生成されるライトストローブ信号を、第２ランクのメモリ素子ａ〜ｚが、ライトデータを取り込むための最適なタイミングに調整する。第２ランクライトストローブ調整回路２１２には、第２ランクのメモリ素子ａ〜ｚが、ライトデータを取り込める遅延値に設定されたライト遅延調整信号ＷＤ２が入力されている。第１ランクライトストローブ調整回路２１２は、ライト遅延調整信号ＷＤ２に基づいて調整された信号を、第２ランクライトストローブ調整信号としてセレクタ２１５に出力する。なお、各調整回路２ａ〜２ｚの第２ランクライトストローブ調整回路２１２によって生成される第２ランクライトストローブ調整信号は、共通のタイミングに調整されている。換言すれば、各調整回路２ａ〜２ｚの第２ランクライトストローブ調整回路２１２に入力されるライト遅延調整信号ＷＤ２は共通である。
【００４３】
セレクタ２１５は、第１ランクライトストローブ調整回路２１１によって生成された第１ランクライトストローブ調整信号と、第２ランクライトストローブ調整回路２１２によって生成された第２ランクライトストローブ調整信号を入力し、アドレス／コマンド制御回路３から入力されるライトランク有効信号ＷＲに応じて、第１ライトストローブ調整信号又は第２ライトストローブ調整信号を選択し、ストローブ信号（ＤＱＳ）としてメモリデバイス５に出力する。ここで、ライトランク有効信号ＷＲとは、ライト動作において、チップセレクト（ＣＳ）により有効となる第１ランク又は第２ランクのいずれかを指定する信号である。
【００４４】
第１ランクライトデータ調整回路２１３は、データ制御回路４から入力されたライトデータ信号を、第１ランクのメモリ素子ａ〜ｚに、ライトデータを書き込むための最適なタイミングに遅延調整する。第１ランクライトデータ調整回路２１３には、第１ランクの各メモリ素子ａ〜ｚが、ライトデータを取り込める遅延値に設定されたライト遅延調整信号ＷＤ３が入力されている。第１ランクライトデータ調整回路２１３は、ライト遅延調整信号ＷＤ３により調整された信号を、第１ランクライトデータ調整信号ａ〜ｚとして各メモリ素子ａ〜ｚに出力する。
【００４５】
ライト遅延調整信号ＷＤ３は、ライトデータ信号の遅延時間を、ライト可能な時間に設定する信号である。ライト遅延調整信号ＷＤ３は、所定のデータをメモリ素子に書き込み、メモリ素子から返されたデータが、書き込みデータと一致するか否かを判定することにより、ライトデータ信号を適切な遅延時間に設定できるように、設定される。第１ランクライトデータ調整信号ａ〜ｚは、メモリ素子ａ〜ｚ毎に設定され、メモリ素子ａ〜ｚ毎にライト可能な最適なタイミングに調整される。換言すれば、各調整回路２ａ〜２ｚの第１ランクライトデータ調整回路２１３に入力されるライト遅延調整信号ＷＤ３は、各メモリ素子ａ〜ｚに応じて異なる値に設定される。
【００４６】
第２ランクライトデータ調整回路２１４は、データ制御回路４から入力されたライトデータ信号を、第２ランクのメモリ素子ａ〜ｚに、ライトデータを書き込むための最適なタイミングに遅延調整する。第２ランクライトデータ調整回路２１４には、第２ランクのメモリ素子ａ〜ｚが、ライトデータを取り込める遅延値に設定されたライト遅延調整信号ＷＤ４が入力されている。なお、ライト遅延調整信号ＷＤ４は、ライト遅延調整信号ＷＤ３と同様の方法で設定される。第２ランクライトデータ調整回路２１４は、遅延調整信号により調整された第２ランクライトデータ調整信号ａ〜ｚを各メモリ素子ａ〜ｚに出力する。各調整回路２ａ〜２ｚの第２ランクライトデータ調整回路２１４によって生成される第２ランクライトデータ調整信号ａ〜ｚは、メモリ素子ａ〜ｚ毎に設定され、メモリ素子ａ〜ｚ毎にライト可能な最適なタイミングに調整される。換言すれば、各調整回路２ａ〜２ｚの第２ランクライトデータ調整回路２１４に入力されるライト遅延調整信号ＷＤ４は、各メモリ素子ａ〜ｚに応じて異なる値に設定される。
【００４７】
セレクタ２１６は、第１ランクライトデータ調整回路２１３によって生成された第１ランクライトデータ調整信号と、第２ランクライトデータ調整回路２１４によって生成された第２ランクライトデータ調整信号を入力し、アドレス／コマンド制御回路３から入力されるライトランク有効信号ＷＲに応じて、第１ランクライトデータ調整信号又は第２ランクライトデータ調整信号を選択し、メモリデバイス５に出力する。
【００４８】
リードデータ調整回路２２は、第１ランクリードストローブ調整回路２２１、第２ランクリードストローブ調整回路２２２、第１ランクリードデータ調整回路２２３、第２ランクリードデータ調整回路２２４及びセレクタ２２５、２２６を備えている。
【００４９】
第１ランクリードストローブ調整回路２２１は、メモリデバイス５によって生成されるリードストローブ信号を、データ制御回路４が第１ランクからのリードデータを読み出すのに最適なタイミングに遅延調整する。第１ランクリードストローブ調整回路２２１には、データ制御装置４が第１ランクから読み出されたリードデータを取り込める遅延値に設定されたリード遅延調整信号ＲＤ１が入力されている。第１ランクリードストローブ調整回路２２１は、リード遅延調整信号ＲＤ１により調整された信号を、第１ランクリードストローブ調整信号としてセレクタ２２５に出力する。なお、第１ランクリードストローブ調整回路２２１によって生成される、第１ランクリードストローブ調整信号は、第１ランクの各メモリ素子ａ〜ｚにおいて共通のタイミングに調整されている。換言すれば、各調整回路２ａ〜２ｚの第１ランクリードストローブ調整回路２２１に入力されるリード遅延調整信号ＲＤ１は共通である。
【００５０】
第２ランクリードストローブ調整回路２２２は、メモリデバイス５によって生成されるリードストローブ信号を、第２ランクから出力されたリードデータを、データ制御回路４が読み出すのに最適なタイミングに遅延調整する。第２ランクリードストローブ調整回路２２２には、データ制御装置４が第２ランクから読み出されたリードデータを取り込める遅延値に設定されたリード遅延調整信号ＲＤ２が入力されている。第２ランクリードストローブ調整回路２２２は、ライト遅延調整信号ＲＤ２により調整された信号を、第２リードストローブ調整信号としてセレクタ２２５に出力する。なお、第２ランクリードストローブ調整回路２２２によって生成される、第２ランクリードストローブ調整信号は、第２ランクの各メモリ素子ａ〜ｚにおいて共通のタイミングに調整されている。換言すれば、各調整回路２ａ〜２ｚの第２ランクリードストローブ調整回路２２２に入力されるリード遅延調整信号ＲＤ２は共通である。
【００５１】
セレクタ２２５は、第１ランクリードストローブ調整回路２２１によって生成された第１ランクリードストローブ調整信号と、第２ランクリードストローブ調整回路２２２によって生成された第２ランクリードストローブ調整信号を入力し、アドレス／コマンド制御回路３から入力されるリードランク有効信号ＲＲに応じて、第１ランクリードストローブ調整信号又は第２ランクリードストローブ調整信号を、データ制御装置４に出力する。ここで、リードランク有効信号ＲＲとは、リード動作において、チップセレクト（ＣＳ）により有効となる第１ランク又は第２ランクのいずれかを指定する信号である。
【００５２】
メモリ素子ａ〜ｚから発行されたリードデータ信号（ＤＱ）は、ランク単位に用意された調整回路（第１ランクリードデータ調整回路２２３、第２ランクリードデータ調整回路２２４）に分配される。第１ランクリードデータ調整回路２２３及び第２ランクリードデータ調整回路２２４は、リード遅延調整信号ＲＤ３、４に基づいて、リードデータ信号（ＤＱ）を遅延調整する。なお、リード遅延調整信号ＲＤ３、４は、ライト遅延調整信号ＷＤ３、４と同様に、入力値と期待値を比較することにより、予め最適なタイミングに遅延調整することができる信号に設定されている。
【００５３】
第１ランクリードデータ調整回路２２３は、メモリデバイス５から入力されたリードデータ信号を、データ制御回路４がリードデータを読み出すための最適なタイミングに遅延調整する。第１ランクリードデータ調整回路２２３は、調整された信号を、第２リードデータ調整信号ａ〜ｚとしてデータ制御回路４に出力する。第１リードデータ調整信号ａ〜ｚは、メモリ素子ａ〜ｚ毎に設定され、各メモリ素子ａ〜ｚ毎にリード可能な最適なタイミングに調整される。換言すれば、各調整回路２ａ〜２ｚの第１ランクリードデータ調整回路２２３に入力されるリード遅延調整信号ＲＤ３は、各メモリ素子ａ〜ｚに応じて異なる値に設定される。
【００５４】
第２ランクリード調整回路２２４は、メモリデバイス５から入力されたリードデータ信号を、データ制御回路４がリードデータを読み出すための最適なタイミングに遅延調整する。第２ランクリードデータ調整回路２２４は、調整された信号を第２リードデータ調整信号ａ〜ｚとしてデータ制御回路４に出力する。第２リードデータ調整信号ａ〜ｚは、メモリ素子ａ〜ｚ毎に設定され、各メモリ素子ａ〜ｚ毎にリード可能な最適なタイミングに調整される。換言すれば、各調整回路２ａ〜２ｚの第２ランクリードデータ調整回路２２４に入力されるリード遅延調整信号ＲＤ４は、各メモリ素子ａ〜ｚに応じて異なる値に設定される。
【００５５】
セレクタ２２６は、第１ランクリードデータ調整回路２２３によって生成された第１リードデータ調整信号と、第２ランクリードデータ調整回路２２４によって生成された第２リードデータ調整信号を入力し、アドレス／コマンド制御回路３から入力されるリードランク有効信号ＲＲに応じて、第１リードデータ調整信号又は第２リードデータ調整信号を、データ制御回路４に出力する。
【００５６】
次に、調整回路２の構成について説明する。図６は、本発明の実施の形態１に係るメモリコントローラ１の調整回路２の構成例を示す図である。図６に示すように、調整回路２は、複数の遅延ゲートが直列に接続されている。また、各遅延ゲート間からは、分岐した複数の信号線がセレクタに入力されている。各調整回路の出力、つまり遅延量は、セレクト信号により選択された遅延ゲート段数により決定される。このセレクト信号が、ライト遅延調整信号ＷＤ１〜４、及びリード遅延調整信号ＲＤ１〜４である。なお、調整回路２の構成は、これに限られるものではなく、任意の回路構成を用いることができる。
【００５７】
次に、このように構成されたメモリコントローラ１及びこれを含むメモリシステムの動作について説明する。
【００５８】
［ライト動作］
本発明の実施の形態１に係るメモリコントローラ１及びこれを含むメモリシステムのライト動作について、図５を用いて説明する。上位装置からランク１へのライト要求及びライトデータがメモリコントローラ１に発行されると、アドレス／コマンド制御回路３は、第１ランクのメモリ素子a〜ｚに対し、チップセレクト信号（ＣＳ）、ライトコマンド、及びアドレスを発行する。一般的なメモリ素子（例えば、ＤＤＲ−ＳＤＲＡＭ：Double-Data-Rate Synchronous Dynamic Random Access Memory）においては、ライトデータについては、ライトコマンドに対し十分な時間経過した後に発行すればよい。すわなち、データ制御回路４は、メモリ素子の仕様を満足するだけの時間経過した後に、遅延調整回路２ａ〜２ｚに対しストローブ信号およびライトデータを送出すればよい。
【００５９】
アドレス／コマンド制御回路３は、このタイミングで、ライトランク有効信号ＷＲを調整回路２ａ〜２ｚに発行する。ここで、第１ランクへライト動作を行う場合には、アドレス／コマンド制御回路３は、ライトデータ調整回路２１内のセレクタ２１５および２１６に対し、第１ランク側の調整回路（第１ランクライトストローブ調整回路２１１、第１ランクライトデータ調整回路２１３）を選択するよう、ライトランク有効信号ＷＲを発行する。
【００６０】
これにより、セレクタ２１５からは、第１ランクのメモリ素子ａ〜ｚに対し、第１ランクライトストローブ調整信号が送出される。一方、セレクタ２１６からは、第１ランクのメモリ素子ａ〜ｚに対し、第２ランクライトデータ調整信号が送出される。この時、第１ランクライトストローブ調整回路２１１及び第１ランクライトデータ調整回路２１３に入力されるライト遅延調整信号ＷＲ１、ＷＲ３は、予め第１ランクのメモリ素子ａ〜ｚに対しライトできる様に設定しておく。
【００６１】
第１ランクのメモリ素子ａ〜ｚでは、調整回路２から入力された第１ランクライトストローブ調整信号（ＤＱＳ）のエッジのタイミングで、遅延調整がされた各メモリ素子に入力される第１ランクライトデータ調整信号が取り込まれる。
【００６２】
一方、第２ランクへライト動作を行う場合には、アドレス／コマンド制御回路３は、ライトデータ調整回路２１内のセレクタ２１５および２１６に対し、第２ランク側の調整回路（第２ランクライトストローブ調整回路２１２、第２ランクライトデータ調整回路２１４）を選択するよう、ライトランク有効信号ＷＲを発行する。
【００６３】
これにより、セレクタ２１５からは、第２ランクのメモリ素子ａ〜ｚに対し、第２ランクライトストローブ調整信号（ＤＱＳ）が送出される。一方、セレクタ２１６からは、第２ランクのメモリ素子ａ〜ｚに対し、第２ランクライトデータ調整信号（ＤＱ）が送出される。この時、第２ランクライトストローブ調整回路２１２及び第２ランクライトデータ調整回路２１４に入力されるライト遅延調整信号ＷＲ２、４は、予め第２ランクのメモリ素子ａ〜ｚに対しライトできる様に設定しておく。
【００６４】
第２ランクのメモリ素子ａ〜ｚでは、調整回路２から入力された第２ランクライトストローブ調整信号（ＤＱＳ）のエッジのタイミングで、遅延調整がされた各メモリ素子に入力される、第２ランクライトデータ調整信号が取り込まれる。
【００６５】
これにより、メモリデバイス５では、第１ランクの最適タイミングで、ライトデータを取り込むことができると共に、第２ランクの最適タイミングで、ライトデータを取り込むことができる。
【００６６】
［リード動作］
次に、本発明の実施の形態１に係るメモリコントローラ１及びこれを含むメモリシステムのリード動作について説明する。上位装置からリード要求がメモリコントローラ１に発行されると、アドレス／コマンド制御回路３は、第１ランクのメモリ素子ａ〜ｚに対し、チップセレクト信号（ＣＳ）、リードコマンド及びアドレスを発行する。一般的なメモリ素子（例えば、ＤＤＲ−ＳＤＲＡＭ）において、リードデータは、リードコマンドに対し十分な時間経過した後に発行される。そのため、アドレス／コマンド制御回路３は、このタイミングで、リードランク有効信号を調整回路２ａ〜２ｚに対して発行すればよい。
【００６７】
ここで、第１ランクへリード動作を行う場合には、アドレス／コマンド制御回路３は、ライトデータ調整回路２２内のセレクタ２２５および２２６に対し、第１ランク側の調整回路（第１ランクリードストローブ調整回路２２１、第１ランクリードデータ調整回路２２３）を選択するよう、リードランク有効信号ＲＲを発行する。これにより、セレクタ２２５からは、データ制御回路４に対し、第１ランクリードストローブ調整信号（ＤＱＳ）が送出される。一方、セレクタ２２６からは、データ制御回路４に対し、第１ランクライトデータ調整信号（ＤＱ）が送出される。この時、第１ランクリードストローブ調整回路２２１、第１ランクリードデータ調整回路２２３に入力されるリード遅延調整信号ＲＤ１、３は、予め第１ランクのメモリ素子ａ〜ｚからのリードデータをデータ制御装置４がリードできる様に設定しておく。
【００６８】
第２ランクへリード動作を行う場合には、アドレス／コマンド制御回路３は、リードデータ調整回路２２内のセレクタ２２５および２２６に対し、第２ランク側の調整回路（第２ランクリードストローブ調整回路２２２、第２ランクリードデータ調整回路２２４）を選択するよう、リードランク有効信号ＲＲを発行する。これにより、セレクタ２２５からは、データ制御回路４に対し、第２ランクリードストローブ調整信号（ＤＱＳ）が送出される。一方、セレクタ２２６からは、データ制御回路４に対し、第２ランクリードデータ調整信号（ＤＱ）が送出される。この時、第２ランクリードストローブ調整回路２２２、第２ランクリードデータ調整回路２２４に入力されるリード遅延調整信号ＲＤ２、４は、予め第２ランクのメモリ素子ａ〜ｚからのリードデータを、データ制御装置４がリードできる様に設定しておく。
【００６９】
第１ランクへの読み出し動作において、データ制御回路４は、調整回路２より入力された第１リードデータ調整信号を、同じく調整回路２より入力された第１ランクリードストローブ調整信号によって指定されたタイミングで取り込む。一方、第２ランクへの読み出し動作においては、データ制御回路４は、調整回路２により入力された第２リードデータ調整信号を、同じく調整回路２より入力された第２リードストローブ調整信号によって指定されたタイミングで取り込む。
【００７０】
これにより、データ制御回路４では、第１ランクの最適タイミングで、第１ランクから読み出されたリードデータを取り込むことができると共に、第２ランクの最適タイミングで、第２ランクから読み出されたリードデータを取り込むことができる。データ制御回路４は、このように第１ランク及び第２ランクから読み出したデータを、上位装置に出力する。
【００７１】
このように、本実施の形態１に係るメモリコントローラ１は、年々高速化するメモリインタフェースのデータ転送において、ランク毎に調整回路（２１１〜２１４、２２１〜２２４）を具備することにより、ランク間の遅延バラつきを抑えることができ、高速データ転送を実現することができる。具体的には、図４に示すように、第１ランク及び第２ランクのそれぞれに対し、自己のランクデータが確定している間のみを考慮してランク毎にストローブ調整信号のエッジのタイミングを調整することができる。これにより、各ランクにおいて十分なＳＥＴＵＰ／ＨＯＬＤを確保できる最適なタイミングに、ストローブ調整信号のタイミングを調整することができる。これにより、図４に示すような、データの転送レートが高い場合であっても、メモリデバイス５に記憶されたデータ及びリードデータの信頼性を維持することができる。
【００７２】
実施の形態２．
次に、本発明の実施の形態２に係るメモリコンロトーラ及びこれを含むメモリシステムについて説明する。図７は、本発明の実施の形態２にかかるメモリコントローラ８及びこれを含むメモリシステムの構成を示すブロック図である。なお、実施の形態２の基本的な構成については、実施の形態１と同様である。ここで、実施の形態１に係るメモリコントローラ１は、ストローブ信号及びデータ信号を調整するライト／リードストローブ信号調整回路及びライト／リードデータ信号調整回路がランク毎に、それぞれ設けられていた。
【００７３】
これに対し、実施の形態２に係るメモリコントローラ８は、ライト／リードストローブ信号調整回路及びライト／リードデータ信号調整回路が、複数のランクにおいて共通に設けられている。なお、アドレス／コマンド制御回路３、データ制御回路４及びメモリデバイス５については、実施の形態１と略同一であるため、同一符号を付すことによりその説明を省略する。また、図７においても、図示されるストローブ信号（ＤＱＳ）及びデータ信号（ＤＱ）は、調整回路９によって調整される前後のストローブ信号及びデータ信号を含むものとする。
【００７４】
図７に示すように、本発明に係るメモリコントローラ８は、調整回路９を備えている。調整回路９は、メモリ素子ａ〜ｚに対応する調整回路９ａ〜９ｚを備えている。調整回路９は、ライトデータ調整回路９１及びリードデータ調整回路９２を備えている。ライトデータ調整回路９１は、図３の第１処理回路６に相当し、リードデータ調整回路９２は、図３の第２処理回路７に相当する。ライトデータ調整回路９１は、ライトストローブ調整回路９１１、ライトデータ調整回路９１２、及びセレクタ９１３、９１４を備えている。
【００７５】
ライトストローブ調整回路９１１には、第１ランクに対して生成されたライト遅延調整信号ＷＤ１と、第２ランクに対して生成されたライト遅延調整信号ＷＤ２が、セレクタ９１３を介して入力されている。セレクタ９１３は、アドレス／コマンド制御回路３から入力されるライトランク有効信号ＷＲに応じて、第１ランクに対して生成されたライト遅延調整信号ＷＤ１又は第２ランクに対して生成されたライト遅延調整信号ＷＤ２を選択して、ライトストローブ調整回路９１１に出力する。
【００７６】
ライトストローブ調整回路９１１は、セレクタ９１３から第１ランクに対して生成されたライト遅延調整信号ＷＤ１を入力すると、このライト遅延調整信号ＷＤ１に基づいてストローブ信号（ＤＱＳ）を遅延調整し、第１ランクのメモリ素子ａ〜ｚに対して、第１ライトストローブ調整信号を出力する。同様に、ライトストローブ調整回路９１１は、セレクタ９１３から第２ランクに対して生成されたライト遅延調整信号ＷＤ２を入力すると、このライト遅延調整信号ＷＤ２に基づいてストローブ信号（ＤＱＳ）を遅延調整し、第２ランクのメモリ素子ａ〜ｚに対して、第２ライトストローブ調整信号を出力する。なお、ライト遅延調整信号ＷＤ１は、第１ランクのメモリ素子ａ〜ｚで共通な値に設定され、ライト遅延調整信号ＷＤ２は、第２ランクのメモリ素子ａ〜ｚで共通な値に設定されている。
【００７７】
ライトデータ調整回路９１２には、データ制御回路４から、第１ランク又は第２ランクに書き込まれるライトデータ信号が入力される。ライトデータ調整回路９１２には、第１ランクに対して生成されたライト遅延調整信号ＷＤ３と、第２ランクに対して生成されたライト遅延調整信号ＷＤ４がセレクタ９１４を介して入力されている。セレクタ９１４は、アドレス／コマンド制御回路３から入力されるライトランク有効信号ＷＲに応じて、第１ランクに対して生成されたライト遅延調整信号ＷＤ３又は第２ランクに対して生成されたライト遅延調整信号ＷＤ４を選択し、ライトデータ調整回路９１２に出力する。なお、ライト遅延調整信号ＷＤ３、４は、各ランクのメモリ素子ａ〜ｚ毎に、異なる最適な遅延時間に調整されている。
【００７８】
リードデータ調整回路９２は、リードストローブ調整回路９２１、リードデータ調整回路９２２、セレクタ９２３、９２４を備えている。リードストローブ調整回路９２１は、第１ランク又は第２ランクのメモリ素子ａ〜ｚからリードストローブ信号が入力される。リードストローブ調整回路９２１には、セレクタ９２３を介して、第１ランクに対して生成されたリード遅延調整信号ＲＤ１又は第２ランクに対して生成されたリード遅延調整信号ＲＤ２が入力されている。セレクタ９２３は、アドレス／コマンド制御回路３から入力されるリードランク有効信号ＲＲに応じて、第１ランクに対して生成されたリード遅延調整信号ＲＤ１又は第２ランクに対して生成されたリード遅延調整信号ＲＤ２を選択して、リードストローブ調整回路９２１に出力する。
【００７９】
同様に、リードデータ調整回路９２２は、第１ランク又は第２ランクのメモリ素子ａ〜ｚから出力されたリードデータ信号が入力される。リードデータ調整回路９２２には、セレクタ９２４を介して、第１ランクに対して生成されたリード遅延調整信号ＲＤ３又は第２ランクに対して生成されたリード遅延調整信号ＲＤ４が入力されている。セレクタ９２４は、アドレス／コマンド制御回路３から入力されるリードランク有効信号ＲＲに応じて、第１ランクに対して生成されたライト遅延調整信号ＲＤ３又は第２ランクに対して生成されたライト遅延調整信号ＲＤ４を選択して、リードデータ調整回路９２２に出力する。
【００８０】
このように、本発明の実施の形態２に係るメモリコントローラ８では、調整回路を各ランク間で共有することで、回路が小さく済むという利点がある。なお、データの信頼性を確保したままライト／リード動作の高速化を実現するという本願の効果については、実施の形態１と同様である。
【００８１】
なお、本発明は上記実施の形態１、２に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、各実施の形態の全体又は一部の構成は、任意に組合せて実施することができる。
【００８２】
また、上記の説明では、本願発明を装置の発明として説明したが、本発明は、メモリデバイスの制御方法としても実施することができる。具体的には、本発明は、複数のメモリ素子から構成されるアクセス単位によってリード／ライト動作を行うメモリデバイスの制御方法であって、上位装置との間でライト／リードデータの入出力を行なうと共に、ライトストローブ信号を生成し、ライト動作において前記データ制御回路により生成される、前記ライトストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、各メモリアクセス単位がライトデータを取り込むタイミングを指定するライトストローブ調整信号を生成する第１処理と、リード動作において前記メモリデバイスにより生成される、リードストローブ信号のタイミングを前記メモリアクセス単位毎に調整し、前記データ制御部が各メモリアクセス単位から読み出されたリードデータを読み出すタイミングを指定するリードストローブ調整信号を生成する第２処理のうち、少なくとも一方の処理を実行するメモリデバイスの制御方法として実施することができる。また、このメモリデバイスの制御方法は、コンピュータプログラムに格納することで実施することもできる。
【００８３】
なお、上記の実施の形態１、２においては、メモリデバイスが、第１ランク及び第２ランクにより構成されているが、本発明は限られるものでなく、３以上のランクを備えるように構成してもよい。
【００８４】
また、上記の説明では、ライト／リードストローブ調整信号は、ランク単位で異なる値に設定されるが、ストローブ調整信号は、メモリ素子毎に各メモリ素子の動作に対して最適化した値に設定するように構成することもできる。
【符号の説明】
【００８５】
２、２ａ〜２ｚ、９、９ａ〜９ｚ    調整回路
３    アドレス／コマンド制御回路
４    データ制御回路
５    メモリデバイス
６    第１処理回路
７    第２処理回路
１、８、１１    メモリコントローラ
２１、９１    ライトデータ調整回路
２２、９２    リードデータ調整回路
２１１    第１ランクライトストローブ調整回路
２１２    第２ランクライトストローブ調整回路
２１３    第１ランクライトデータ調整回路
２１４    第２ランクライトデータ調整回路
２１５、２１６、２２５、２２６、９１３、９１４、９２３、９２４    セレクタ
２２１    第１ランクリードストローブ調整回路
２２２    第２ランクリードストローブ調整回路
２２３    第１ランクリードデータ調整回路
２２４    第２ランクリードデータ調整回路
９１１    ライトストローブ調整回路
９１２    ライトデータ調整回路
９２１    リードストローブ調整回路
９２２    リードデータ調整回路
【図１】
2012059184.tif 000003
【図２】
2012059184.tif 000004
【図３】
2012059184.tif 000005
【図４】
2012059184.tif 000006
【図５】
2012059184.tif 000007
【図６】
2012059184.tif 000008
【図７】
2012059184.tif 000009