(57)【特許請求の範囲】
【請求項１】
メモリ装置からのデータ読出しを要求するリードコマンドを受け付けるコマンド受付部と、
前記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って前記メモリ装置に発行する第１のモードと、前記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に前記先行リクエストの完了から所定時間経過後に前記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを前記メモリ装置に発行する第２のモードとの何れかを前記メモリ装置の状態に応じて選択する制御部と、
前記制御部によって選択された前記第１または第２のモードに従って前記メモリ装置に前記リードリクエストまたは前記センスリクエストおよび前記データアウトリクエストを発行するリクエスト発行部と
を具備するメモリコントローラ。
【請求項２】
前記制御部は、
前記リードリクエストにより読み出されたデータを前記リードリクエストが発行されてから所定のセンス時間経過後に受信するよう制御し、
前記メモリ装置からの所定のステータス信号を受信した後に前記データアウトリクエストを発行するよう制御し、
前記センスリクエストにより読み出されたデータを前記データアウトリクエストが発行された直後に受信するよう制御する
請求項１記載のメモリコントローラ。
【請求項３】
前記制御部は、前記メモリ装置が所定のメモリアクセスを処理中である場合には前記第２のモードを選択し、前記メモリ装置が前記所定のメモリアクセスを処理中でない場合には前記第１のモードを選択する
請求項１記載のメモリコントローラ。
【請求項４】
前記制御部は、前記メモリ装置が所定のメモリアクセスを処理中で、かつ、前記第２のモードによる読出し処理中でない場合には前記第２のモードを選択し、それ以外の場合には前記第１のモードを選択する
請求項１記載のメモリコントローラ。
【請求項５】
前記所定のメモリアクセスは、前記メモリ装置における処理時間が非決定的な値を示すものである請求項４記載のメモリコントローラ。
【請求項６】
前記センスリクエストは、高精度なデータ読出しを指示するロングセンスリクエストであり、
前記制御部は、前記リードコマンドの読出し対象アドレスが所定の範囲にある場合には前記第１のモードを選択し、前記読出し対象アドレスが前記所定の範囲にない場合には前記第２のモードを選択する
請求項１記載のメモリコントローラ。
【請求項７】
前記リクエスト発行部は、前記第１のモードによる読出しの結果として訂正不可能なエラーが発生した場合にはさらに前記第２のモードによって前記センスリクエストおよび前記データアウトリクエストを発行する
請求項６記載のメモリコントローラ。
【請求項８】
前記リクエスト発行部は、前記第１のモードによる読出しの結果として所定のビット数を超えるエラーが検出された場合にはさらに前記第２のモードによって前記センスリクエストおよび前記データアウトリクエストを発行する
請求項６記載のメモリコントローラ。
【請求項９】
前記リクエスト発行部は、前記第１のモードによる読出しの結果としてアクセス異常が検出された場合にはさらに前記第２のモードによって前記センスリクエストおよび前記データアウトリクエストを発行する
請求項６記載のメモリコントローラ。
【請求項１０】
メモリ装置と、
前記メモリ装置からのデータ読出しを要求するリードコマンドを受け付けるコマンド受付部と、
前記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って前記メモリ装置に発行する第１のモードと、前記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に前記先行リクエストの完了から所定時間経過後に前記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを前記メモリ装置に発行する第２のモードとの何れかを前記メモリ装置の状態に応じて選択する制御部と、
前記制御部によって選択された前記第１または第２のモードに従って前記メモリ装置に前記リードリクエストまたは前記センスリクエストおよび前記データアウトリクエストを発行するリクエスト発行部と
を具備するメモリシステム。
【請求項１１】
前記メモリ装置は、前記センスリクエストが発行された際に前記先行リクエストの処理を中断させて前記センスリクエストの処理を行う
請求項１０記載のメモリシステム。
【請求項１２】
メモリ装置と、
前記メモリ装置からのデータ読出しを要求するリードコマンドを発行するホストコンピュータと、
前記リードコマンドを受け付けるコマンド受付部と、
前記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って前記メモリ装置に発行する第１のモードと、前記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に前記先行リクエストの完了から所定時間経過後に前記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを前記メモリ装置に発行する第２のモードとの何れかを前記メモリ装置の状態に応じて選択する制御部と、
前記制御部によって選択された前記第１または第２のモードに従って前記メモリ装置に前記リードリクエストまたは前記センスリクエストおよび前記データアウトリクエストを発行するリクエスト発行部と
を具備する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、メモリシステムに関する。詳しくは、メモリ装置を制御するメモリコントローラ、メモリ装置を含むメモリシステムおよび情報処理システムに関する。
【背景技術】
【０００２】
近年、ＮＡＮＤフラッシュメモリ等に比べてより高速にデータ書換えが可能な不揮発性メモリとして、抵抗変化型メモリ（ＲｅＲＡＭ：Resistive RAM）が注目されている。ＲｅＲＡＭを用いたメモリ装置の特性として、そのメモリ装置の読出しは、非常に高速であり、読出し命令を発行後、一定の遅延時間で読出しを行うことができる（例えば、特許文献１参照。）。一方、そのメモリ装置の書込みは、読出しより遅延時間が大きく、しかも遅延時間が一定でない。これは、書込みが正常に行われたか否かのチェックと、正常に書き込まれていないビットに対する再書込みを、メモリ装置の内部で自動的に行うためである。一回で書込みが正常に行われていれば遅延時間は短く、再書込みを行うと遅延時間は長くなる。このような特徴をもつメモリ装置において、書込み命令の送信後に、メモリ装置の状態を示す信号を参照し、書込み完了を示す状態信号を受信した後に次の命令を送信する、といった制御方法を用いることが知られている（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２１５６６３号公報
【特許文献２】特開２０１２−０４３４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の従来技術では、書込み完了を示す状態信号を受信した後に次の命令を送信するように制御している。しかしながら、この場合、メモリ装置内部で書込み処理が終了してから、状態信号をコントローラに送信して、コントローラが受信するまでの間は、メモリ装置にアクセスが行われていない、いわゆる遅延オーバヘッドが生じてしまう。また、コントローラが状態信号を受信し、次の命令をメモリ装置に送信して、メモリ装置が受信するまでの間も同様である。
【０００５】
本技術はこのような状況に鑑みて生み出されたものであり、メモリ装置における遅延オーバヘッドを解消することを目的とする。
【課題を解決するための手段】
【０００６】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、メモリ装置からのデータ読出しを要求するリードコマンドを受け付けるコマンド受付部と、上記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って上記メモリ装置に発行する第１のモードと、上記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に上記先行リクエストの完了から所定時間経過後に上記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを上記メモリ装置に発行する第２のモードとの何れかを上記メモリ装置の状態に応じて選択する制御部と、上記制御部によって選択された上記第１または第２のモードに従って上記メモリ装置に上記リードリクエストまたは上記センスリクエストおよび上記データアウトリクエストを発行するリクエスト発行部とを具備するメモリコントローラである。これにより、リードコマンドに対するリクエストをメモリ装置の状態に応じて使い分けるという作用をもたらす。
【０００７】
また、この第１の側面において、上記制御部は、上記リードリクエストにより読み出されたデータを上記リードリクエストが発行されてから所定のセンス時間経過後に受信するよう制御し、上記メモリ装置からの所定のステータス信号を受信した後に上記データアウトリクエストを発行するよう制御し、上記センスリクエストにより読み出されたデータを上記データアウトリクエストが発行された直後に受信するよう制御するようにしてもよい。これにより、メモリ装置からの所定のステータス信号を契機としてオーバヘッドを生じることなくデータを取得するという作用をもたらす。
【０００８】
また、この第１の側面において、上記制御部は、上記メモリ装置が所定のメモリアクセスを処理中である場合には上記第２のモードを選択し、上記メモリ装置が上記所定のメモリアクセスを処理中でない場合には上記第１のモードを選択するようにしてもよい。これにより、メモリ装置のメモリアクセス処理の状態に応じて、リードコマンドに対するリクエストを使い分けるという作用をもたらす。
【０００９】
また、この第１の側面において、上記制御部は、上記メモリ装置が所定のメモリアクセスを処理中で、かつ、上記第２のモードによる読出し処理中でない場合には上記第２のモードを選択し、それ以外の場合には上記第１のモードを選択するようにしてもよい。これにより、メモリ装置において先行する２つのリクエストの処理の状態に応じて、リードコマンドに対するリクエストを使い分けるという作用をもたらす。
【００１０】
また、この第１の側面において、上記所定のメモリアクセスは、上記メモリ装置における処理時間が非決定的な値を示すものであってもよい。先行するメモリアクセスの処理時間が非決定的であっても、オーバヘッドを生じることなくデータを取得するという作用をもたらす。
【００１１】
また、この第１の側面において、上記センスリクエストは、高精度なデータ読出しを指示するロングセンスリクエストであり、上記制御部は、上記リードコマンドの読出し対象アドレスが所定の範囲にある場合には上記第１のモードを選択し、上記読出し対象アドレスが上記所定の範囲にない場合には上記第２のモードを選択するようにしてもよい。これにより、読出し対象アドレスの範囲に応じてリードコマンドに対するリクエストを使い分けるという作用をもたらす。
【００１２】
また、この第１の側面において、上記リクエスト発行部は、上記第１のモードによる読出しの結果として訂正不可能なエラーが発生した場合にはさらに上記第２のモードによって上記センスリクエストおよび上記データアウトリクエストを発行するようにしてもよい。これにより、訂正不可能なエラーが発生した場合において高精度なデータ読出しを行うという作用をもたらす。
【００１３】
また、この第１の側面において、上記リクエスト発行部は、上記第１のモードによる読出しの結果として所定のビット数を超えるエラーが検出された場合にはさらに上記第２のモードによって上記センスリクエストおよび上記データアウトリクエストを発行するようにしてもよい。これにより、所定のビット数を超えるエラーが検出された場合において高精度なデータ読出しを行うという作用をもたらす。
【００１４】
また、この第１の側面において、上記リクエスト発行部は、上記第１のモードによる読出しの結果としてアクセス異常が検出された場合にはさらに上記第２のモードによって上記センスリクエストおよび上記データアウトリクエストを発行するようにしてもよい。これにより、アクセス異常が検出された場合において高精度なデータ読出しを行うという作用をもたらす。
【００１５】
また、本技術の第２の側面は、メモリ装置と、上記メモリ装置からのデータ読出しを要求するリードコマンドを受け付けるコマンド受付部と、上記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って上記メモリ装置に発行する第１のモードと、上記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に上記先行リクエストの完了から所定時間経過後に上記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを上記メモリ装置に発行する第２のモードとの何れかを上記メモリ装置の状態に応じて選択する制御部と、上記制御部によって選択された上記第１または第２のモードに従って上記メモリ装置に上記リードリクエストまたは上記センスリクエストおよび上記データアウトリクエストを発行するリクエスト発行部とを具備するメモリシステムである。これにより、リードコマンドに対するメモリ装置へのリクエストを、メモリ装置の状態に応じて使い分けるという作用をもたらす。
【００１６】
また、この第２の側面において、上記メモリ装置は、上記センスリクエストが発行された際に上記先行リクエストの処理を中断させて上記センスリクエストの処理を行うようにしてもよい。これにより、センスリクエストの処理を優先して行うという作用をもたらす。
【００１７】
また、本技術の第３の側面は、メモリ装置と、上記メモリ装置からのデータ読出しを要求するリードコマンドを発行するホストコンピュータと、上記リードコマンドを受け付けるコマンド受付部と、上記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って上記メモリ装置に発行する第１のモードと、上記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に上記先行リクエストの完了から所定時間経過後に上記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを上記メモリ装置に発行する第２のモードとの何れかを上記メモリ装置の状態に応じて選択する制御部と、上記制御部によって選択された上記第１または第２のモードに従って上記メモリ装置に上記リードリクエストまたは上記センスリクエストおよび上記データアウトリクエストを発行するリクエスト発行部とを具備する情報処理システムである。これにより、ホストコンピュータから発行されたリードコマンドに対するリクエストを、メモリ装置の状態に応じて使い分けるという作用をもたらす。
【発明の効果】
【００１８】
本技術によれば、メモリ装置における遅延オーバヘッドを解消することができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１９】
【図１】本技術の実施の形態における情報処理システムの全体構成の一例を示す図である。
【図２】本技術の実施の形態におけるメモリコントローラ２００の構成の一例を示す図である。
【図３】本技術の第１の実施の形態におけるメモリコントローラ２００から発行されるリクエストの一例を示す図である。
【図４】本技術の第１の実施の形態におけるメモリコントローラ２００のライトコマンド処理の処理手順例を示す流れ図である。
【図５】本技術の第１の実施の形態におけるメモリコントローラ２００のリードコマンド処理の処理手順例を示す流れ図である。
【図６】本技術の第１の実施の形態における情報処理システムの動作タイミングの一例を示す図である。
【図７】第１の比較例の動作タイミングを示す図である。
【図８】第２の比較例の動作タイミングを示す図である。
【図９】本技術の第２の実施の形態におけるメモリコントローラ２００から発行されるリクエストの一例を示す図である。
【図１０】本技術の第２の実施の形態におけるメモリコントローラ２００のロングリードコマンド処理の処理手順例を示す流れ図である。
【図１１】本技術の第２の実施の形態におけるメモリコントローラ２００のリードコマンド処理の処理手順例を示す流れ図である。
【図１２】本技術の第２の実施の形態における情報処理システムの動作タイミングの一例を示す図である。
【図１３】本技術の第３の実施の形態におけるメモリ装置３００のセンスリクエスト処理の処理手順例を示す流れ図である。
【図１４】本技術の第３の実施の形態における情報処理システムの動作タイミングの一例を示す図である。
【図１５】本技術の第４の実施の形態におけるメモリ装置３００のセンスリクエスト処理の処理手順例を示す流れ図である。
【図１６】本技術の第４の実施の形態における情報処理システムの動作タイミングの一例を示す図である。
【図１７】本技術の第５の実施の形態におけるメモリコントローラ２００の構成の一例を示す図である。
【図１８】本技術の第５の実施の形態におけるメモリコントローラ２００のリードコマンド処理の処理手順例を示す流れ図である。
【発明を実施するための形態】
【００２０】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（先行ライトコマンドに続くリードコマンド処理の例）
２．第２の実施の形態（先行ロングリードコマンドに続くリードコマンド処理の例）
３．第３の実施の形態（先行ライトコマンドの処理を中断させる例）
４．第４の実施の形態（先行ロングリードコマンドの処理を中断させる例）
５．第５の実施の形態（アドレス範囲に応じて処理を行う例）
６．変形例
【００２１】
＜１．第１の実施の形態＞
［情報処理システムの構成］
図１は、本技術の実施の形態における情報処理システムの全体構成の一例を示す図である。この情報処理システムは、ホストコンピュータ１００と、メモリコントローラ２００と、メモリ装置３００とから構成される。メモリコントローラ２００およびメモリ装置３００はメモリシステム４００を構成する。なお、この図および以降の図では、それぞれの実施の形態の説明に必要な回路構成と信号線のみを示しているが、メモリ装置３００として必要なその他の回路および信号線も備える。
【００２２】
ホストコンピュータ１００は、メモリシステム４００に対してデータのリード処理やライト処理等を要求するコマンドを発行するものである。このホストコンピュータ１００は、ホストコマンド／アドレス信号線１０８により、メモリコントローラ２００の動作を指示するコマンドとそのコマンドの操作対象を示すアドレスとをメモリコントローラ２００に送信する機能を有する。また、このホストコンピュータ１００は、ホストデータ信号線１０９により、メモリコントローラ２００と間のデータ送受信を行う機能を有する。
【００２３】
メモリコントローラ２００は、ホストコンピュータ１００と通信してコマンドを受信し、メモリ装置３００へのデータ書込みおよびメモリ装置３００からのデータ読出しを実行するものである。このメモリコントローラ２００は、メモリリクエスト／アドレス信号線２０８により、メモリ装置３００の動作を指示するリクエストとそのリクエストの操作対象を示すアドレスとをメモリ装置３００に送信する。また、このメモリコントローラ２００は、メモリデータ信号線２０９により、メモリコントローラ２００とのデータ送受信を行う。
【００２４】
メモリ装置３００は、メモリコントローラ２００から信号線２０８および２０９を介して要求されたリクエストに応じて、データのリード処理またはライト処理等を行うものである。また、このメモリ装置３００は、ステータス信号線２０７を介して、メモリ装置３００の状態をメモリコントローラ２００に通知する。このメモリ装置３００は、データを記憶するメモリセルアレイ３１０と、一時的にデータを保持するデータラッチ３２０と、制御部３３０とを備える。なお、ここではメモリ装置３００として、不揮発性メモリのうち抵抗変化型メモリ（ＲｅＲＡＭ）を例に挙げて説明する。
【００２５】
メモリセルアレイ３１０は、複数のメモリセルとメモリセルにアクセスを行う周辺回路とからなり、ビット毎に例えば２値の何れかの値を記憶するメモリセルが２次元状（マトリクス状）に多数配列されている。ここで、メモリセルには、例えばＲｅＲＡＭが用いられる。このメモリセルアレイ３１０が使用されているか否かを示すビジー信号は、信号線３１９を介して制御部３３０に出力される。
【００２６】
データラッチ３２０は、信号線２０９に受信したデータ、または、メモリセルアレイ３１０から読み出したデータを一時的に格納する回路である。このデータラッチ３２０は、ライトデータの入力、メモリセルアレイ３１０への書込み（プログラム）、メモリセルアレイ３１０からの読出し（センス）、読出しデータの出力などに使用される。このデータラッチ３２０が使用されているか否かを示すビジー信号は、信号線３２９を介して制御部３３０に出力される。
【００２７】
制御部３３０は、信号線２０８に入力されるリクエストやアドレスを解釈し、データラッチ３２０やメモリセルアレイ３１０の制御を行う回路である。この制御部３３０は、メモリセルアレイ３１０から信号線３１９を介して出力されたビジー信号や、データラッチ３２０から信号線３２９を介して出力されたビジー信号を受けて、メモリ装置３００の動作制御のために使用する。
【００２８】
図２は、本技術の実施の形態におけるメモリコントローラ２００の構成の一例を示す図である。このメモリコントローラ２００は、制御部２１０と、コマンド受付部２２０と、リクエスト発行部２３０と、ステータスレジスタ２７０と、ホストインターフェース２０１と、メモリインターフェース２０３とを備える。
【００２９】
制御部２１０は、メモリコントローラ２００の各部を制御するものである。具体的な動作については後述する。コマンド受付部２２０は、ホストコンピュータ１００から発行されたコマンドを受け付けるものである。リクエスト発行部２３０は、ホストコンピュータ１００から受け付けたコマンドに対するリクエストをメモリ装置３００に発行するものである。ホストインターフェース２０１は、ホストコンピュータ１００との間のやりとりを行うインターフェースである。メモリインターフェース２０３は、メモリ装置３００との間のやりとりを行うインターフェースである。
【００３０】
ステータスレジスタ２７０は、メモリ装置３００からステータス信号線２０７を介して受信したステータス情報および対応するアドレスを保持するものである。例えば、メモリコントローラ２００がメモリ装置３００にライトリクエストを発行した後に、ライトが成功したか否を示すステータス情報をメモリ装置３００から受け取り、そのライト先のアドレスとともにステータスレジスタ２７０に保持する。このステータスレジスタ２７０に保持されている内容は、ホストコンピュータ１００からの要求に応じて、ホストコンピュータ１００に送信される。
【００３１】
［ホストコンピュータからメモリシステムに発行されるコマンド］
ホストコンピュータ１００は、メモリシステム４００に対して処理を要求するコマンドを発行する。メモリコントローラ２００は、ホストコンピュータ１００から発行されたコマンドを解釈して、メモリ装置３００に対して処理を要求するリクエストを発行する。ここでは、本技術の第１の実施の形態において想定するホストコンピュータ１００からのコマンドの例について説明する。
【００３２】
第１のコマンドは、データの書込みを要求するライトコマンドである。ライトコマンドおよびライトアドレスは、信号線１０８を介してメモリコントローラ２００に供給される。また、ライトデータは、信号線１０９を介してメモリコントローラ２００に供給される。このライトコマンドに対して、メモリコントローラ２００は、メモリ装置３００に対してライトデータを書き込むよう要求し、その結果をステータス情報としてステータスレジスタ２７０に保持する。
【００３３】
第２のコマンドは、データの読出しを要求するリードコマンドである。リードコマンドは、信号線１０８を介してメモリコントローラ２００に供給される。このリードコマンドに対して、メモリコントローラ２００は、メモリ装置３００に対してデータを読み出すよう要求し、読み出されたデータをリードデータとして信号線１０９を介してホストコンピュータ１００に出力する。
【００３４】
第３のコマンドは、ステータス情報を要求するステータス取得コマンドである。ステータス取得コマンドは、信号線１０８を介してメモリコントローラ２００に供給される。このステータス取得コマンドに対して、メモリコントローラ２００は、ステータスレジスタ２７０に保持されている内容を、信号線１０９を介してホストコンピュータ１００に出力する。例えば、ホストコンピュータ１００は、定期的にステータス取得コマンドを送信することによりライトコマンドの結果を取得して、特に書込み失敗となった処理について、ライトアドレスを振り替えてライトコマンドを再送するなどの手当てを行うことができる。
【００３５】
［メモリコントローラからメモリ装置に発行されるリクエスト］
図３は、本技術の第１の実施の形態におけるメモリコントローラ２００から発行されるリクエストの一例を示す図である。ここでは、メモリコントローラ２００からメモリ装置３００に発行されるリクエストの例として、４つのリクエストを示している。メモリコントローラ２００は、ホストコンピュータ１００から発行されたコマンドに応じて、以下のリクエストをメモリ装置３００に発行する。
【００３６】
第１のリクエストは、データの読出しおよび出力を要求するリードリクエストである。リードリクエストおよびリードアドレスは、信号線２０８を介してメモリ装置３００に供給される。メモリ装置３００は、メモリセルアレイ３１０から読み出されたデータを一旦データラッチ３２０に保持し、そのデータラッチ３２０に保持されたデータを、信号線２０９を介してメモリコントローラ２００に出力する。リードリクエストが入力されてから信号線２０９に出力が開始されるまでの時間は、予め定められた決定的（deterministic）な値である。ただし、先行するリクエストがメモリ装置３００において処理中である間は、新たにリードリクエストを受け付けることはできない。
【００３７】
第２のリクエストは、データの書込みを要求するライトリクエストである。ライトリクエストおよびライトアドレスは、信号線２０８を介してメモリ装置３００に供給される。また、ライトデータは、信号線２０９を介してメモリ装置３００に供給される。
【００３８】
メモリ装置３００は、ライトコマンドとともに受けたライトデータをデータラッチ３２０に保持する。そして、このデータラッチ３２０に保持されたデータに基づいて、ライトアドレスに対応するメモリセルアレイ３１０内のメモリセルに対して書込みを行う。そして、書込みを行ったメモリセルに対してデータ読出しを行い、書込みデータとの比較を行う。その結果、不一致となるビットがなければ信号線２０７を介してステータス情報としてＡＣＫ信号を返して、ライト動作を終了する。
【００３９】
一方、不一致となるビットがあれば、再度書込みを行う。その後、再び、書込みを行ったメモリセルに対してデータ読出しを行い、書込みデータとの比較を行う。その結果、不一致となるビットがなければ信号線２０７を介してステータス情報としてＡＣＫ（成功）信号を返して、ライト動作を終了する。依然として不一致となるビットがあれば、信号線２０７を介してステータス情報としてＮＡＫ（失敗）信号を返して、ライト動作を終了する。
【００４０】
ライトリクエストにおいてはこのような条件分岐を経るため、ライトリクエストが入力されてからＡＣＫ信号またはＮＡＫ信号が返されるまでの時間は、一定でない非決定的（non-deterministic）な値である。
【００４１】
第３のリクエストは、データの読出しを要求するセンスリクエストである。上述のリードリクエストでは、メモリセルアレイ３１０からの読出しに加えて、メモリコントローラ２００へのデータ出力をも要求していた。これに対し、このセンスリクエストでは、メモリセルアレイ３１０から読み出されたデータをデータラッチ３２０に保持するまでの動作を要求する。したがって、メモリセルアレイ３１０から読み出されたデータは、そのままでは外部に出力されない。
【００４２】
センスリクエストは他のコマンドと異なり、ライト処理中、すなわち先行するライトリクエストを受け付けてからＡＣＫ信号またはＮＡＫ信号が返されるまでの間であっても、メモリ装置３００は次のセンスリクエストを受け付けることができる。ただし、１回のライト処理中に受信できるのは１回のセンスリクエストのみである。
【００４３】
ライト処理中にセンスリクエストを受信した場合、メモリ装置３００はライト処理の完了を待ち、ＡＣＫ信号またはＮＡＫ信号を返すとともに、指定されたアドレスに対応するデータをアレイから読み出して、読み出したデータをデータラッチ３２０に保持する。センスリクエストが入力されてから、データラッチ３２０にデータの保持が完了するまでの時間は、ライト処理の完了を待つ間の時間が含まれるため、非決定的な値である。
【００４４】
一方、ライト処理中でないタイミングでセンスリクエストを受信した場合、メモリ装置３００は受信後すみやかに、指定されたアドレスに対応するデータをメモリセルアレイ３１０から読み出して、読み出したデータをデータラッチ３２０に保持する。この場合、データラッチ３２０にデータの保持が完了するまでの時間は、決定的な値である。
【００４５】
メモリ装置３００は、このセンスリクエストの結果、データラッチ３２０にデータの保持が完了する前に、信号線２０７を介してステータス情報としてＳｅｎＯＫ（センス完了）信号を返す。ＳｅｎＯＫ信号の具体的なタイミングについては後述する。
【００４６】
第４のリクエストは、データラッチ３２０に保持されているデータをメモリコントローラ２００に出力することを要求するデータアウトリクエストである。このデータアウトリクエストを受けたメモリ装置３００は、データラッチ３２０に保持されたデータを、信号線２０９を介してメモリコントローラ２００に出力する。データアウトリクエストが入力されてから、信号線２０９への出力が完了するまでの時間は、決定的な値である。また、このデータアウトリクエストはメモリセルアレイ３１０の制御を含まないため、アドレス入力は不要である。
【００４７】
［メモリコントローラの動作］
図４は、本技術の第１の実施の形態におけるメモリコントローラ２００のライトコマンド処理の処理手順例を示す流れ図である。メモリコントローラ２００は、ホストコンピュータ１００からライトコマンドを受信すると、以下の処理を開始する。
【００４８】
まず、メモリコントローラ２００は、メモリ装置３００にライトリクエストを送信可能な状態にあるか否かを確認する（ステップＳ９１１）。送信可能であれば（ステップＳ９１１：Ｙｅｓ）、メモリコントローラ２００はメモリ装置３００にライトリクエストを送信する（ステップＳ９１２）。一方、送信可能でなければ（ステップＳ９１１：Ｎｏ）、メモリコントローラ２００は所定時間待機する。上述のように、メモリ装置３００が先行するリクエストを処理している間は、新たにライトリクエストを受け付けることはできない。したがって、ここでは、いずれのリクエストについても処理を完了していることが、ライトリクエストを送信可能となる条件になる。
【００４９】
メモリコントローラ２００は、ライトリクエスト送信後、信号線２０７にＡＣＫ信号またはＮＡＫ信号が返されるまで（ステップＳ９１４：Ｎｏ）、待機する（ステップＳ９１６）。ＡＣＫ信号またはＮＡＫ信号が返されると（ステップＳ９１４：Ｙｅｓ）、メモリコントローラ２００は、そのステータス情報をステータスレジスタ２７０に保持して、ライトリクエストの処理は完了となる。なお、この場合、ステータスレジスタ２７０に保持されるのは、例えば、ライト先のアドレス、および、そのアドレスに対するライトリクエストの結果がＡＣＫ信号またはＮＡＫ信号であったかを示す情報である。
【００５０】
図５は、本技術の第１の実施の形態におけるメモリコントローラ２００のリードコマンド処理の処理手順例を示す流れ図である。メモリコントローラ２００は、ホストコンピュータ１００からリードコマンドを受信すると、以下の処理を開始する。
【００５１】
まず、メモリコントローラ２００は、現在の状態がライト処理中であるか、すなわちライトリクエストを送信してからＡＣＫ信号またはＮＡＫ信号が返されていない状態であるか否かを確認する（ステップＳ９２１）。
【００５２】
ライト処理中であれば（ステップＳ９２１：Ｙｅｓ）、センス処理中であるか、すなわちセンスリクエストを送信してからＳｅｎＯＫ信号がまだ返されていない状態であるか否かを確認する（ステップＳ９３１）。センス処理中であれば（ステップＳ９３１：Ｙｅｓ）、ステップＳ９２１に戻ってライト処理の完了を待機する（ステップＳ９３３）。センス処理中でなければ（ステップＳ９３１：Ｎｏ）、メモリコントローラ２００は、センスリクエストを送信し（ステップＳ９３２）、信号線２０７にＳｅｎＯＫ信号が返されるのを待つ（ステップＳ９３４：Ｎｏ、Ｓ９３６）。ＳｅｎＯＫ信号を受信すると（ステップＳ９３４：Ｙｅｓ）、メモリコントローラ２００は、データアウトリクエストをメモリ装置３００に送信する（ステップＳ９３５）。その後、データアウトリクエストに応答したリードデータを受信し（ステップＳ９３７）、その受信データをホストコンピュータ１００に送信する（ステップＳ９３８）。
【００５３】
一方、ステップＳ９２１においてライト処理中でないと判断された場合には（ステップＳ９２１：Ｎｏ）、メモリコントローラ２００は、リードリクエストを送信可能か、すなわち先行するリクエストが処理中か否かを確認する（ステップＳ９２２）。リードリクエストを送信可能でなければ（ステップＳ９２２：Ｎｏ）、送信可能になるまで待機する（ステップＳ９２５）。送信可能になると（ステップＳ９２２：Ｙｅｓ）、メモリコントローラ２００は、リードリクエストを送信して（ステップＳ９２３）、所定時間経過後に（ステップＳ９２４）、メモリ装置３００から出力されるリードデータを受信する（ステップＳ９３７）。そして、その受信データをホストコンピュータ１００に送信する（ステップＳ９３８）。
【００５４】
このように、メモリコントローラ２００は、リードコマンドを受信した際に、先行するライトコマンドの処理が完了していなければセンスリクエストとデータアウトリクエストを発行し、ライトコマンドの処理が完了していればリードリクエストを発行する。これにより、以下に示す動作タイミングから明らかなように、遅延オーバヘッドを解消することができる。
【００５５】
［動作タイミング］
図６は、本技術の第１の実施の形態における情報処理システムの動作タイミングの一例を示す図である。この例は、ライトコマンドの発行に続いて、２つのリードコマンドが発行された際のタイミングを示している。なお、参照符号として、ライトコマンドには５１０番代、先のリードコマンドには５２０番代、後のリードコマンドには５３０番代をそれぞれ付している。
【００５６】
メモリコントローラ２００は、最初にライトコマンド５１１を受信して、メモリ装置３００にライトリクエスト５１２とライトデータ５１３を送信する。メモリ装置３００は、これらを受信した後に、メモリセルアレイ３１０への書込みを開始する。
【００５７】
次に、メモリコントローラ２００は、リードコマンド５２１を受信する。このとき、メモリ装置３００がライトリクエスト５１２を処理中であるため（図５のステップＳ９２１：Ｙｅｓ）、メモリコントローラ２００はメモリ装置３００にセンスリクエスト５２２を送信する。
【００５８】
続いて、メモリコントローラ２００は、２つめのリードコマンド５３１を受信する。このとき、メモリ装置３００は依然としてライトリクエスト５１２を処理中であり、しかもリードコマンド５２１のために送信したセンスリクエスト５２２も完了していない。そのため、リードコマンド５３１については、ライトリクエスト５１２の完了まで処理を待機する（図５のステップＳ９３１：Ｙｅｓ）。
【００５９】
メモリ装置３００は、メモリセルアレイ３１０への書込み（プログラム５１６）の完了後、信号線２０７を通じてメモリコントローラ２００にＡＣＫ信号５１７を送信する。また、それとともに、先に受信していたセンスリクエスト５２２に基づいて、メモリセルアレイ３１０の読出し（センス５２３）を開始する。
【００６０】
ここで、上述のように、プログラム５１６の開始から完了までに要する時間Ｔｐｒｏｇｒａｍは非決定的な値であり、センス５２３の開始から完了までに要する時間Ｔｓｅｎｓｅは決定的な値である。
【００６１】
メモリコントローラ２００はＡＣＫ信号５１７を受信してステータスレジスタ２７０に保持する。また、待機中であったリードコマンド５３１の処理については、リードリクエストの送信が可能になるまで待機する（図５のステップＳ９２２：Ｎｏ）。
【００６２】
メモリ装置３００はセンス５２３の完了前に、信号線２０７にＳｅｎＯＫ信号５２５を送信する。メモリコントローラ２００は、ＳｅｎＯＫ信号５２５を受信した後に、データアウトリクエスト５２６をメモリ装置３００に送信し、リードデータ５２８をメモリ装置３００から受信する。
【００６３】
データアウトリクエスト５２６をメモリ装置３００が受信する時刻には、センス５２３が完了している必要がある。Ｔｓｅｎｓｅは決定的な値であり、ＳｅｎＯＫ信号５２５を送ってからデータアウトリクエスト５２６受信までに要する最小の応答時間も、回路の仕様によって予め決まる値である。そのため、メモリ装置３００は、センス５２３の開始後、Ｔｓｅｎｓｅからその応答時間を引いた時間だけ待ってＳｅｎＯＫ信号５２５を送信することにより、データアウトリクエスト５２６の受信時に確実にセンス５２３が完了するように制御することができる。
【００６４】
メモリコントローラ２００は、メモリ装置３００にデータアウトリクエスト５２６を送信した後、リードデータ５２８を受信する。
【００６５】
メモリ装置３００が次のリードリクエストを受信可能になると（図５のステップＳ９２２：Ｙｅｓ）、リードコマンド５３１の処理として、リードリクエスト５３２が送信される。
【００６６】
リードデータ５２８の受信開始から完了までに要する時間Ｔｄｏｕｔは、回路の仕様およびデータ転送サイズによって予め決まる決定的な値である。したがって、メモリコントローラ２００は、メモリ装置３００がリードデータ５２８を出力した後すぐにセンス５３３を開始できるようなタイミングで、リードリクエスト５３２を送信することができる。
【００６７】
メモリ装置３００はリードリクエスト５３２を受信した後にＴｓｅｎｓｅが経過するとリードデータ５３７を送信し、メモリコントローラ２００はこれを受信する。
【００６８】
このように、この例では、先行するライトコマンド５１１が処理中である場合に、リードコマンド５２１に対する処理として、メモリコントローラ２００がセンスリクエスト５２２およびデータアウトリクエスト５２６を発行する。これらセンスリクエスト５２２およびデータアウトリクエスト５２６は、いずれも処理に要する時間が決定的であるため、無駄なオーバヘッドを生じることなく制御を行うことができる。先行するライトコマンド５１１が処理中でなければ、非決定的な時間を要しないため、リードリクエストが送信される。すなわち、この第１の実施の形態では、リードコマンドに対する処理として、リードリクエストを用いる第１のモードと、センスリクエストおよびデータアウトリクエストを用いる第２のモードとを、メモリ装置３００の状態に応じて使い分けている。
【００６９】
これに対し、そのような使い分けを行わずに、常にセンスリクエストおよびデータアウトリクエストを使用してしまうと、無駄な信号のやりとりが生じてしまうという問題がある。以下では、比較例として、常にリードリクエストを送信する場合と、常にセンスリクエストおよびデータアウトリクエストを送信する場合とを示す。
【００７０】
図７は、第１の比較例の動作タイミングを示す図である。この第１の比較例では、リードコマンドを受信した際に、常にリードリクエストを送信することを想定している。
【００７１】
リードリクエストはセンスリクエストと異なり、メモリ装置３００がライト処理を行っている間は受け付けられない。メモリコントローラ２００は、メモリ装置３００のライト処理中にリードコマンド５２１を受信した際には、ライト処理の完了を待ってリードリクエスト５３２を発行する。このため、メモリ装置３００内部でプログラム５１６が完了してから、センス５２３が開始されるまでの間、メモリセルアレイ３１０およびデータラッチ３２０が使用されない期間がオーバヘッドとして生じる。その結果、この第１の比較例では、図６により説明した例よりも、リードコマンド５２１の処理に要する時間が長くなる。
【００７２】
図８は、第２の比較例の動作タイミングを示す図である。この第２の比較例では、リードコマンドを受信した際に、常にセンスリクエストおよびデータアウトリクエストを送信することを想定している。
【００７３】
この場合、リードコマンド５３１に対するリードデータ５３７が出力されるまでの時間は、図６の例と同様である。しかし、この第２の比較例では、リードコマンド５３１に対してセンスリクエスト５３０およびデータアウトリクエスト５３９を用いて処理するため、ＳｅｎＯＫ信号５３８およびデータアウトリクエスト５３９が信号線２０７および２０８に余計に流れてしまう。すなわち、この第２の比較例では、このような無駄な信号のやりとりが生じることにより、余計な電力を消費するおそれがある。
【００７４】
このように、本技術の第１の実施の形態では、リードコマンドに対する処理を、先行するライトリクエストの処理状態に応じて使い分ける。すなわち、リードコマンドに対する処理として、リードリクエストを用いる第１のモードと、センスリクエストおよびデータアウトリクエストを用いる第２のモードとを、メモリ装置３００の状態に応じて使い分ける。これにより、遅延オーバヘッドを解消するとともに、無駄な信号のやりとりを回避することができる。
【００７５】
＜２．第２の実施の形態＞
上述の第１の実施の形態では先行するコマンドがライトコマンドであることを想定していたが、この第２の実施の形態では先行するコマンドがロングリードコマンドであることを想定する。このロングリードコマンドは、メモリセルアレイ３１０から時間をかけて高精度に読み出すためのコマンドである。メモリコントローラ２００は、このロングリードコマンドを受けると、ロングセンスリクエストおよびデータアウトリクエストをメモリ装置３００に送信する。なお、この第２の実施の形態における情報処理システムの全体構成は、上述の第１の実施の形態と同様であるため、詳細な説明は省略する。
【００７６】
［メモリコントローラからメモリ装置に発行されるリクエスト］
図９は、本技術の第２の実施の形態におけるメモリコントローラ２００から発行されるリクエストの一例を示す図である。
【００７７】
この第２の実施の形態では、上述の第１の実施の形態と比べて、第５のリクエストとして、高精度なデータの読出しを要求するロングセンスリクエストが追加されている。このロングセンスリクエストは、センスリクエストの一種であり、さらに高精度にデータを読み出すためのリクエストである。このロングセンスリクエストは、センスリクエスト同様にメモリセルアレイ３１０から読み出されたデータをデータラッチ３２０に保持するものであるが、データラッチ３２０にデータの保持が完了するまでの時間は常に非決定的な値である。
【００７８】
［メモリコントローラの動作］
図１０は、本技術の第２の実施の形態におけるメモリコントローラ２００のロングリードコマンド処理の処理手順例を示す流れ図である。メモリコントローラ２００は、ホストコンピュータ１００からロングリードコマンドを受信すると、以下の処理を開始する。
【００７９】
まず、メモリコントローラ２００は、現在の状態がセンスまたはロングセンス処理中であるか、すなわちセンスリクエストまたはロングセンスリクエストを送信してからリードデータの受信が完了していない状態であるか否かを確認する（ステップＳ９４１）。センスまたはロングセンス処理中であれば（ステップＳ９４１：Ｙｅｓ）、メモリコントローラ２００は処理が終了するまで待機する（ステップＳ９４３）。センスまたはロングセンス処理が終了していれば（ステップＳ９４１：Ｎｏ）、メモリコントローラ２００はメモリ装置３００にロングセンスリクエストを送信する（ステップＳ９４２）。
【００８０】
メモリコントローラ２００は、ロングセンスリクエストの成功を示すＬｏｎｇＳｅｎＯＫ信号を受信するまで（ステップＳ９４４：Ｎｏ）、待機する（ステップＳ９４８）。メモリコントローラ２００は、信号線２０７を介してＬｏｎｇＳｅｎＯＫ信号を受信すると（ステップＳ９４４：Ｙｅｓ）、メモリ装置３００にデータアウトリクエストを送信する（ステップＳ９４５）。その後、データアウトリクエストに応答したリードデータを受信し（ステップＳ９４６）、その受信データをホストコンピュータ１００に送信する（ステップＳ９４７）。
【００８１】
図１１は、本技術の第２の実施の形態におけるメモリコントローラ２００のリードコマンド処理の処理手順例を示す流れ図である。メモリコントローラ２００は、ホストコンピュータ１００からリードコマンドを受信すると、以下の処理を開始する。
【００８２】
まず、メモリコントローラ２００は、現在の状態がロングセンス処理中であるか、すなわちロングセンスリクエストを送信してからリードデータの受信が完了していない状態であるか否かを確認する（ステップＳ９５１）。
【００８３】
ロングセンス処理中であれば（ステップＳ９５１：Ｙｅｓ）、センス処理中であるか、すなわちセンスリクエストを送信してからＳｅｎＯＫ信号がまだ返されていない状態であるか否かを確認する（ステップＳ９５２）。センス処理中であれば（ステップＳ９５２：Ｙｅｓ）、ステップＳ９５１に戻ってライト処理の完了を待機する（ステップＳ９５４）。センス処理中でなければ（ステップＳ９５２：Ｎｏ）、メモリコントローラ２００は、センスリクエストを送信し（ステップＳ９５３）、信号線２０７にＳｅｎＯＫ信号が返されるのを待つ（ステップＳ９５５：Ｎｏ、Ｓ９５７）。ＳｅｎＯＫ信号を受信すると（ステップＳ９５５：Ｙｅｓ）、メモリコントローラ２００は、データアウトリクエストをメモリ装置３００に送信する（ステップＳ９５６）。その後、データアウトリクエストに応答したリードデータを受信し（ステップＳ９６６）、その受信データをホストコンピュータ１００に送信する（ステップＳ９６７）。
【００８４】
一方、ステップＳ９５１においてロングセンス処理中でないと判断された場合には（ステップＳ９５１：Ｎｏ）、メモリコントローラ２００は、リードリクエストを送信可能か、すなわち先行するリクエストが処理中か否かを確認する（ステップＳ９６２）。リードリクエストを送信可能でなければ（ステップＳ９６２：Ｎｏ）、送信可能になるまで待機する（ステップＳ９６５）。送信可能になると（ステップＳ９６２：Ｙｅｓ）、メモリコントローラ２００は、リードリクエストを送信して（ステップＳ９６３）、所定時間経過後に（ステップＳ９６４）、メモリ装置３００から出力されるリードデータを受信する（ステップＳ９６６）。そして、その受信データをホストコンピュータ１００に送信する（ステップＳ９６７）。
【００８５】
このように、メモリコントローラ２００は、リードコマンドを受信した際に、先行するロングリードコマンドの処理が完了していなければセンスリクエストとデータアウトリクエストを発行する。一方、ロングリードコマンドの処理が完了していればリードリクエストを発行する。これにより、以下に示す動作タイミングから明らかなように、遅延オーバヘッドを解消することができる。
【００８６】
［動作タイミング］
図１２は、本技術の第２の実施の形態における情報処理システムの動作タイミングの一例を示す図である。この例は、ロングリードコマンドの発行に続いて、２つのリードコマンドが発行された際のタイミングを示している。なお、参照符号として、ロングリードコマンドには５４０番代、先のリードコマンドには５５０番代、後のリードコマンドには５６０番代をそれぞれ付している。
【００８７】
メモリコントローラ２００は、ロングリードコマンド５４１を受信すると、メモリ装置３００にロングセンスリクエスト５４２を発行する。これにより、メモリ装置３００内部でロングセンス５４３の処理が開始される。
【００８８】
続いて、メモリコントローラ２００は、リードコマンド５５１を受信するが、このとき、先行するロングセンスリクエスト５４２の処理が完了していないことから（図１１のステップＳ９５１：Ｙｅｓ）、センスリクエスト５５２をメモリ装置３００に発行する。
【００８９】
メモリ装置３００は、ロングセンスリクエスト５４２に対応するロングセンス５４３の処理が終了すると、続けてセンスリクエスト５５２に対応するセンス５５３の処理を開始する。メモリ装置３００は、センス５５３の処理中に、信号線２０７を介してＬｏｎｇＳｅｎＯＫ信号５４５をメモリコントローラ２００に返す。
【００９０】
メモリコントローラ２００は、ＬｏｎｇＳｅｎＯＫ信号５４５を受信すると、メモリ装置３００にデータアウトリクエスト５４６を発行し、ロングセンスリクエスト５４２により読み出したリードデータ５４８を受信する。
【００９１】
メモリ装置３００は、メモリコントローラ２００がＬｏｎｇＳｅｎＯＫ信号５４５の受信を完了してからＴｄｏｕｔ後にＳｅｎＯＫ信号５５５を受信完了するようなタイミングで、信号線２０７を介してＳｅｎＯＫ信号５５５をメモリコントローラ２００に送信する。
【００９２】
メモリコントローラ２００は、ＳｅｎＯＫ信号５５５を受けて、データアウト５５６を発行し、センスリクエスト５５２により読み出したリードデータ５５８を受信する。
【００９３】
続いて、メモリコントローラ２００は、２つめのリードコマンド５６１を受信する。このとき、メモリ装置３００は依然としてロングセンスリクエスト５４２を処理中であり、しかもリードコマンド５５１のために送信したセンスリクエスト５５２も完了していない。そのため、リードコマンド５６１については、ロングセンスリクエスト５４２の完了まで処理を待機する（図１１のステップＳ９５２：Ｙｅｓ）。メモリ装置３００が次のリードリクエストを受信可能になると（図１１のステップＳ９６２：Ｙｅｓ）、リードコマンド５６１の処理として、リードリクエスト５６２が発行される。リードリクエスト５６２が発行可能になるのは、この例ではデータアウトリクエスト５５６がメモリ装置３００に発行された後である。
【００９４】
データアウトリクエスト５５６は、決定的な時間で完了する処理であるため、センス５５３で読み出したリードデータ５５８の受信完了直後にセンス５６３が開始されるように、リードデータ５５８の受信中にリードリクエスト５６２を送信すればよい。
【００９５】
このように、本技術の第２の実施の形態では、リードコマンドに対する処理を、先行するロングセンスリクエストの処理状態に応じて使い分ける。すなわち、リードコマンドに対する処理として、リードリクエストを用いる第１のモードと、センスリクエストおよびデータアウトリクエストを用いる第２のモードとを、メモリ装置３００の状態に応じて使い分ける。これにより、遅延オーバヘッドを解消するとともに、無駄な信号のやりとりを回避することができる。
【００９６】
＜３．第３の実施の形態＞
上述の第１の実施の形態では、ライトリクエスト処理中のメモリ装置３００がセンスリクエストを受信した場合、メモリ装置３００内部ではプログラムの完了後にセンスが開始される。これに対し、この第３の実施の形態では、実行中のプログラムを中断させてセンスを開始することを想定する。なお、この第３の実施の形態における情報処理システムの全体構成は、上述の第１の実施の形態と同様であるため、詳細な説明は省略する。また、メモリコントローラ２００の動作については、上述の第１の実施の形態と同様であるため、第１の実施の形態の動作を参照する。
【００９７】
［メモリコントローラからメモリ装置に発行されるリクエスト］
メモリコントローラ２００からメモリ装置３００に発行されるリクエストは、上述の第１の実施の形態におけるリクエストと同様である。すなわち、この第３の実施の形態では、リードリクエスト、ライトリクエスト、センスリクエスト、および、データアウトリクエストの４つを想定する。
【００９８】
［メモリの動作］
図１３は、本技術の第３の実施の形態におけるメモリ装置３００のセンスリクエスト処理の処理手順例を示す流れ図である。メモリ装置３００は、メモリコントローラ２００からセンスリクエストを受信すると、以下の処理を開始する。
【００９９】
メモリ装置３００は、ライトリクエストの処理中でなければ（ステップＳ９７１：Ｎｏ）、センス処理を開始する（ステップＳ９７７）。そして、所定時間経過後、信号線２０７を介してＳｅｎＯＫ信号をメモリコントローラ２００に送信する（ステップＳ９７８）。
【０１００】
ライトリクエストの処理中である場合（ステップＳ９７１：Ｙｅｓ）、プログラムの処理が中断可能であるか否かを判断する（ステップＳ９７２）。中断可能であれば（ステップＳ９７２：Ｙｅｓ）、プログラムの中断処理を行い（ステップＳ９７３）、その後、信号線２０７に中断を示すＳＵＳ信号を送信する（ステップＳ９７４）。
【０１０１】
一方、センスリクエストの受信直前またはセンスリクエストの受信と同時にプログラムが完了した場合や、センスリクエストの受信時にプログラムが完了直前である場合などは、プログラムを中断することができない。このような場合は（ステップＳ９７２：Ｎｏ）、メモリ装置３００は、プログラムの完了を待った後（ステップＳ９７５）、信号線２０７にＡＣＫ信号またはＮＡＫ信号を送信する（ステップＳ９７６）。
【０１０２】
メモリ装置３００は、ＳＵＳ信号、ＡＣＫ信号またはＮＡＫ信号のいずれかを信号線２０７に送信すると同時に、センス処理を開始する（ステップＳ９７７）。そして、所定時間経過後、信号線２０７を介してＳｅｎＯＫ信号をメモリコントローラ２００に送信する（ステップＳ９７８）。
【０１０３】
［動作タイミング］
図１４は、本技術の第３の実施の形態における情報処理システムの動作タイミングの一例を示す図である。この例は、ライトコマンドの発行に続いて、２つのリードコマンドが発行された際のタイミングを示している。なお、参照符号として、ライトコマンドには５７０番代、先のリードコマンドには５８０番代、後のリードコマンドには５９０番代をそれぞれ付している。
【０１０４】
メモリコントローラ２００は、ライトコマンド５７１を受信して、メモリ装置３００にライトリクエスト５７２およびライトデータ５７３を送信する。これにより、メモリ装置３００内部でプログラム５７６が開始される。
【０１０５】
続いて、メモリコントローラ２００は、リードコマンド５８１を受信するが、このとき、先行するライトコマンド５７１が完了していないことから（図５のステップＳ９２１：Ｙｅｓ）、メモリコントローラ２００はセンスリクエスト５８２をメモリ装置３００に発行する。
【０１０６】
メモリ装置３００はセンスリクエスト５８２を受信すると、プログラム５７６の中断を試みる。この例では中断が可能であった場合を示している。プログラム５７６を中断するためには、メモリセルアレイ３１０に制御電圧を印加するアナログ回路が定常状態になるのを待つ必要があるため、瞬時には完了せず、非決定的な時間Ｔｓｕｓを要する。このアナログ回路はメモリセルアレイ３１０の内部にあり、制御部３３０がその動作を制御している。
【０１０７】
プログラム５７６の中断に成功すると、メモリ装置３００は信号線２０７を介してＳＵＳ信号５７７を返すとともに、センスリクエスト５８２の処理としてセンス５８３を開始する。また、メモリ装置３００は、センス５８３の処理中に、信号線２０７を介して、ＳｅｎＯＫ信号５８５をメモリコントローラ２００に返す。
【０１０８】
メモリコントローラ２００は、ＳｅｎＯＫ信号５８５を受信した後、データアウトリクエスト５８６をメモリ装置３００に発行して、センスリクエスト５８２で読み出したリードデータ５８８を受信する。
【０１０９】
センスリクエスト５８２の処理中にリードコマンド５９１を受信した場合、メモリコントローラ２００は、メモリ装置３００にリードリクエスト５９２を発行する。リードリクエスト５９２が発行可能になるのは、この例ではデータアウトリクエスト５８６がメモリ装置３００に発行された後である。データアウトリクエスト５８６は決定的な時間で完了する処理である。したがって、センスリクエスト５８２によって読み出したリードデータ５８８の受信完了直後に、リードリクエスト５９２に対するセンス５９３の処理が開始されるように、リードデータ５８８の受信中にリードリクエスト５９２を送信すればよい。
【０１１０】
このように、本技術の第３の実施の形態では、メモリ装置３００におけるプログラム処理を中断させてセンス処理を行うことにより、リードデータをより高速に読み出すことができる。
【０１１１】
＜４．第４の実施の形態＞
上述の第２の実施の形態では、ロングセンスリクエスト処理中のメモリ装置３００がセンスリクエストを受信した場合、メモリ装置３００内部ではロングセンスの完了後にセンスが開始される。これに対し、この第４の実施の形態では、実行中のロングセンスを中断させてセンスを開始することを想定する。なお、この第４の実施の形態における情報処理システムの全体構成は、上述の第２の実施の形態と同様であるため、詳細な説明は省略する。また、メモリコントローラ２００の動作については、上述の第２の実施の形態と同様であるため、第２の実施の形態の動作を参照する。
【０１１２】
［メモリコントローラからメモリ装置に発行されるリクエスト］
メモリコントローラ２００からメモリ装置３００に発行されるリクエストは、上述の第２の実施の形態におけるリクエストと同様である。すなわち、この第４の実施の形態では、リードリクエスト、ライトリクエスト、センスリクエスト、データアウトリクエスト、および、ロングセンスリクエストの５つを想定する。
【０１１３】
［メモリの動作］
図１５は、本技術の第４の実施の形態におけるメモリ装置３００のセンスリクエスト処理の処理手順例を示す流れ図である。メモリ装置３００は、メモリコントローラ２００からセンスリクエストを受信すると、以下の処理を開始する。
【０１１４】
メモリ装置３００は、ロングセンスリクエストの処理中でなければ（ステップＳ９８１：Ｎｏ）、センス処理を開始する（ステップＳ９８７）。そして、所定時間経過後、信号線２０７を介してＳｅｎＯＫ信号をメモリコントローラ２００に送信する（ステップＳ９８８）。
【０１１５】
ロングセンスリクエストの処理中である場合（ステップＳ９８１：Ｙｅｓ）、ロングセンスの処理が中断可能であるか否かを判断する（ステップＳ９８２）。中断可能であれば（ステップＳ９８２：Ｙｅｓ）、ロングセンスの中断処理を行い（ステップＳ９８３）、その後、信号線２０７に中断を示すＳＵＳ信号を送信する（ステップＳ９８４）。
【０１１６】
一方、センスリクエストの受信直前またはセンスリクエストの受信と同時にロングセンスが完了した場合や、センスリクエストの受信時にロングセンスが完了直前である場合などは、ロングセンスを中断することができない。このような場合は（ステップＳ９８２：Ｎｏ）、メモリ装置３００は、プログラムの完了を待った後（ステップＳ９８５）、信号線２０７にＬｏｎｇＳｅｎｓｅＯＫ信号を送信する（ステップＳ９８６）。
【０１１７】
メモリ装置３００は、ＳＵＳ信号またはＬｏｎｇＳｅｎｓｅＯＫ信号のいずれかを信号線２０７に送信すると同時に、センス処理を開始する（ステップＳ９８７）。そして、所定時間経過後、信号線２０７を介してＳｅｎＯＫ信号をメモリコントローラ２００に送信する（ステップＳ９８８）。
【０１１８】
［動作タイミング］
図１６は、本技術の第４の実施の形態における情報処理システムの動作タイミングの一例を示す図である。この例は、ロングリードコマンドの発行に続いて、２つのリードコマンドが発行された際のタイミングを示している。なお、参照符号として、ロングリードコマンドには６１０番代、先のリードコマンドには６２０番代、後のリードコマンドには６３０番代をそれぞれ付している。
【０１１９】
メモリコントローラ２００は、ロングリードコマンド６１１を受信して、メモリ装置３００にロングセンスリクエスト６１２を送信する。これにより、メモリ装置３００内部でロングセンス６１３が開始される。
【０１２０】
続いて、メモリコントローラ２００は、リードコマンド６２１を受信するが、このとき、先行するロングリードコマンド６１１が完了していないことから（図１１のステップＳ９５１：Ｙｅｓ）、メモリコントローラ２００はセンスリクエスト６２２をメモリ装置３００に発行する。
【０１２１】
メモリ装置３００はセンスリクエスト６２２を受信すると、ロングセンス６１３の中断を試みる。この例では中断が可能であった場合を示している。ロングセンス６１３を中断するためには、メモリセルアレイ３１０に制御電圧を印加するアナログ回路が定常状態になるのを待つ必要があるため、瞬時には完了せず、非決定的な時間Ｔｓｕｓを要する。このアナログ回路はメモリセルアレイ３１０の内部にあり、制御部３３０がその動作を制御している。
【０１２２】
プログラム５７６の中断に成功すると、メモリ装置３００は信号線２０７を介してＳＵＳ信号６１５を返すとともに、センスリクエスト６２２の処理としてセンス６２３を開始する。また、メモリ装置３００は、センス６２３の処理中に、信号線２０７を介して、ＳｅｎＯＫ信号６２５をメモリコントローラ２００に返す。
【０１２３】
メモリコントローラ２００は、ＳｅｎＯＫ信号６２５を受信した後、データアウトリクエスト６２６をメモリ装置３００に発行して、センスリクエスト６２２で読み出したリードデータ６２８を受信する。
【０１２４】
センスリクエスト６２２の処理中にリードコマンド６３１を受信した場合、メモリコントローラ２００は、メモリ装置３００にリードリクエスト６３２を発行する。リードリクエスト６３２が発行可能になるのは、この例ではデータアウトリクエスト６２６がメモリ装置３００に発行された後である。データアウトリクエスト６２６は決定的な時間で完了する処理である。したがって、センスリクエスト６２２によって読み出したリードデータ６２８の受信完了直後に、リードリクエスト６３２に対するセンス６３３の処理が開始されるように、リードデータ６２８の受信中にリードリクエスト６３２を送信すればよい。
【０１２５】
このように、本技術の第４の実施の形態では、メモリ装置３００におけるロングセンス処理を中断させてセンス処理を行うことにより、リードデータをより高速に読み出すことができる。
【０１２６】
＜５．第５の実施の形態＞
上述の第１乃至４の実施の形態では、メモリ装置３００の状態に応じて、メモリコントローラ２００から発行するリクエストを使い分けていた。これに対して、メモリ装置３００上のアドレスの範囲に応じてリクエストを使い分けることも考えられる。例えば、メモリセルアレイ３１０のうちドライバに近い位置に配置されたセルと遠い位置に配置されたセルとでは特性が異なることがある。以下の第５の実施の形態では、リードコマンドを受けたメモリコントローラ２００が、メモリ装置３００上のアドレスの範囲に応じて、リードリクエストまたはロングセンスリクエストを発行する例を想定する。
【０１２７】
［情報処理システムの構成］
図１７は、本技術の第５の実施の形態におけるメモリコントローラ２００の構成の一例を示す図である。この第５の実施の形態におけるメモリコントローラ２００は、基本的には上述の第１乃至４の実施の形態と同様の構成を備えるが、アドレス判定部２４０およびエラー処理部２５０をさらに備える点において異なっている。なお、情報処理システムの全体構成は、上述の第１乃至４の実施の形態と同様である。
【０１２８】
アドレス判定部２４０は、ホストコンピュータ１００から発行されたリードコマンドについて、その読出し対象アドレスがメモリ装置３００上の所定のアドレス範囲内にあるか否かを判定するものである。所定のアドレス範囲内であれば、メモリコントローラ２００は通常のリードリクエストをメモリ装置３００に発行する。一方、所定のアドレス範囲内になければ、メモリコントローラ２００は高精度な読出しを行うためにロングセンスリクエストをメモリ装置３００に発行する。ここでは、所定のアドレス範囲内であれば信頼性が高く、所定のアドレス範囲内になければ信頼性が低くなるという例を想定している。例えば、アドレスの下８ビットが８ｈ'００から８ｈ'ｄｆの範囲内であればリードリクエストを発行し、アドレスの下８ビットが８ｈ'ｅ０から８ｈ'ｆｆであればロングセンスリクエストを発行することが想定される。
【０１２９】
エラー処理部２５０は、メモリ装置３００に書込みを行う際にエラー訂正符号（ＥＣＣ：Error Correction Code）を生成し、メモリ装置３００から読み出したデータに対してエラー検出処理およびエラー訂正処理を行うものである。
【０１３０】
［メモリコントローラからメモリ装置に発行されるリクエスト］
この第５の実施の形態では、図９に示した第２の実施の形態のリクエストのうち、センスリクエストを省いたものを想定する。すなわち、この第５の実施の形態では、リードリクエスト、ライトリクエスト、データアウトリクエスト、および、ロングセンスリクエストの４つを想定する。
【０１３１】
［メモリコントローラの動作］
図１８は、本技術の第５の実施の形態におけるメモリコントローラ２００のリードコマンド処理の処理手順例を示す流れ図である。メモリコントローラ２００は、ホストコンピュータ１００からリードコマンドを受信すると、以下の処理を開始する。
【０１３２】
メモリコントローラ２００は、まず、リードコマンドが示す読出し対象アドレスが、所定の範囲にあるか否かを調べる（ステップＳ９９０）。所定の範囲にあれば（ステップＳ９９０：Ｙｅｓ）、メモリコントローラ２００はリードリクエストをメモリ装置３００に発行する（ステップＳ９９１）。リードリクエストの送信後、遅延時間Ｔｓｅｎｓｅが経過すると、リードデータがメモリ装置３００から出力される。メモリコントローラ２００はメモリ装置３００から出力されたリードデータを受信する（ステップＳ９９２）。
【０１３３】
リードデータを受信したメモリコントローラ２００は、エラー処理部２５０においてリードデータのエラー検出処理およびエラー訂正処理を行う（ステップＳ９９３）。このとき、エラーが検出されず、または、エラーが検出されても訂正が可能であれば、得られた正しいリードデータをホストコンピュータ１００に送信する（ステップＳ９９９）。
【０１３４】
一方、エラーが検出されて、エラー訂正も不可能であれば、正しいリードデータが得られていないことになる。そこで、メモリコントローラ２００は同じ読出し対象アドレスに対して、ロングセンスリクエストを送信する（ステップＳ９９４）。ロングセンス処理においては通常のセンス処理よりも長い時間をかけて高精度なデータ読出しを行うため、リードリクエストでは訂正不可能であったデータでも、訂正可能なリードデータを得られる可能性がある。
【０１３５】
その後、メモリコントローラ２００は、信号線２０７にＬｏｎｇＳｅｎＯＫ信号が返されるのを待って（ステップＳ９９５：Ｎｏ、Ｓ９９６）、データアウトリクエストを送信する（ステップＳ９９７）。メモリコントローラ２００は、データアウトリクエストに対するリードデータを受信して（ステップＳ９９８）、そのリードデータをホストコンピュータ１００に送信する（ステップＳ９９９）。
【０１３６】
このように、本技術の第５の実施の形態では、リードコマンドに対する処理を、メモリ装置３００における読出し対象アドレスの範囲に応じて使い分ける。すなわち、ステータス情報のやりとりが不要で高速なリードリクエストと、ステータス情報のやりとりが必要だが高精度なロングセンスリクエストとを使い分けることにより、高速性と読出し不良の低減とを両立させることができる。
【０１３７】
［変形例］
この第５の実施の形態では、アドレスが所定の範囲であること、および、エラー訂正が不可能であることの両者を考慮して、ロングセンスリクエストを使用するか否かの判断を行っていたが、一方を省略していずれか一方のみで判断を行ってもよい。
【０１３８】
また、エラー訂正処理を行わずにエラー検出処理のみを行い、所定のビット数を超えるエラー（ビット誤り）が検出された際にロングセンスリクエストを使用するようにしてもよい。
【０１３９】
また、エラー検出処理またはエラー訂正処理は、メモリコントローラ２００ではなくメモリ装置３００が行うようにしてもよい。この場合、メモリ装置３００は、リードデータを送信する前に、信号線２０７を介してエラー訂正または訂正不可が生じた旨を送信し、メモリコントローラ２００はそれを受信してロングセンスリクエストを使用するか否かを判断する。なお、この場合、図１８の処理手順例において、ステップＳ９９２とＳ９９３の順番が入れ替わることになる。
【０１４０】
また、リードリクエストによる読出し時に、メモリ装置３００がエラー検出処理またはエラー訂正処理以外のメモリアクセス異常を検出した場合に、ロングセンスリクエストを使用するようにしてもよい。これに該当する場合として、例えば、読出しパルスが所定の電圧に達しなかった等が想定される。
【０１４１】
＜６．変形例＞
［ＳｅｎＯＫ信号に関する変形例］
上述の第１乃至５の実施の形態においては、メモリ装置３００が信号線２０７にＳｅｎＯＫ信号を送信し、メモリコントローラ２００がそれを受信してデータアウトリクエストを送信することを想定した。これに対して、メモリ装置３００からのＳｅｎＯＫ信号を利用することなく、メモリコントローラ２００がデータアウトリクエストを送信することも考えられる。
【０１４２】
例えば、第１の実施の形態の図６の例において、メモリ装置３００はセンス５２３の処理の開始と同時にＡＣＫ信号５１７を送信している。メモリコントローラ２００は、ライトリクエストの送信後、ＡＣＫ信号５１７の受信前にセンスリクエスト５２２を送信している。その後、メモリ装置３００はＡＣＫ信号５１７の送信と同時にセンス５２３を開始していることが分かる。また、センス５２３は決定的な時間Ｔｓｅｎｓｅで完了する。すなわち、ＡＣＫ信号５１７の送信からＴｓｅｎｓｅ経過後にメモリ装置３００がリードデータ５２８の送信を開始するように、メモリコントローラ２００がデータアウトリクエスト５２６を送信すればよい。
【０１４３】
同様に、第２の実施の形態の図１２の例において、メモリコントローラ２００はＬｏｎｇＳｅｎＯＫ信号５４５の受信によって、メモリ装置３００がセンス５５３の処理を開始したことを知ることができる。したがって、ＳｅｎＯＫ信号５５５を受信しなくても、同様のタイミングでデータアウトリクエスト５５６の送信を行うことができる。具体的には、ＬｏｎｇＳｅｎＯＫ信号を受信してデータアウトリクエスト５４６を送信し、Ｔｄｏｕｔ経過したタイミングでデータアウトリクエスト５５６を送信すればよい。
【０１４４】
第３および第４の実施の形態においても同様である。ＳＵＳ信号の送信からＴｓｅｎｓｅ経過後に、メモリ装置３００がリードデータの送信を開始するように、メモリコントローラ２００がデータアウトリクエストを送信すればよい。
【０１４５】
［マルチバンク構成による変形例］
上述の第１乃至５の実施の形態においては、メモリ装置３００はメモリセルアレイ３１０およびデータラッチ３２０をそれぞれ１組ずつ備える構成を想定したが、それぞれ複数組を備えるマルチバンク構成を想定してもよい。この場合、第１乃至５の実施の形態のタイミング図により示した制約や判断は、各組毎に適用される。例えば、センス処理を開始するためにプログラム処理の完了を待つという制約は、同じ組についてのみ適用される。また、ライト処理中か否か、または、センス処理中か否かなどの判断も、同じ組についてのみ適用される。したがって、例えば、一方のメモリセルアレイ３１０およびデータラッチ３２０の組に書込みを行う間、書込みの完了を待たずに、他方のメモリセルアレイ３１０およびデータラッチ３２０の組から読出しを開始することが可能である。
【０１４６】
［不揮発性メモリの種類による変形例］
上述の第１乃至５の実施の形態においては、ＲｅＲＡＭを例に挙げて説明したが、本技術の実施の形態は、ＮＡＮＤフラッシュ、ＮＯＲフラッシュ、ＰＣＭ、ＭＲＡＭ、ＳＴＴ−ＲＡＭ等、他の不揮発性メモリにも適用することができる。
【０１４７】
［各実施の形態の組合せ］
上述の第１乃至５の実施の形態はそれぞれ複数を適宜組み合わせて用いることができる。
【０１４８】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１４９】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disc）、メモリカード、ブルーレイディスク（Blu-ray（登録商標）Disc）等を用いることができる。
【０１５０】
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
【０１５１】
なお、本技術は以下のような構成もとることができる。
（１）メモリ装置からのデータ読出しを要求するリードコマンドを受け付けるコマンド受付部と、
前記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って前記メモリ装置に発行する第１のモードと、前記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に前記先行リクエストの完了から所定時間経過後に前記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを前記メモリ装置に発行する第２のモードとの何れかを前記メモリ装置の状態に応じて選択する制御部と、
前記制御部によって選択された前記第１または第２のモードに従って前記メモリ装置に前記リードリクエストまたは前記センスリクエストおよび前記データアウトリクエストを発行するリクエスト発行部と
を具備するメモリコントローラ。
（２）前記制御部は、
前記リードリクエストにより読み出されたデータを前記リードリクエストが発行されてから所定のセンス時間経過後に受信するよう制御し、
前記メモリ装置からの所定のステータス信号を受信した後に前記データアウトリクエストを発行するよう制御し、
前記センスリクエストにより読み出されたデータを前記データアウトリクエストが発行された直後に受信するよう制御する
前記（１）に記載のメモリコントローラ。
（３）前記制御部は、前記メモリ装置が所定のメモリアクセスを処理中である場合には前記第２のモードを選択し、前記メモリ装置が前記所定のメモリアクセスを処理中でない場合には前記第１のモードを選択する
前記（１）または（２）に記載のメモリコントローラ。
（４）前記制御部は、前記メモリ装置が所定のメモリアクセスを処理中で、かつ、前記第２のモードによる読出し処理中でない場合には前記第２のモードを選択し、それ以外の場合には前記第１のモードを選択する
前記（１）または（２）に記載のメモリコントローラ。
（５）前記所定のメモリアクセスは、前記メモリ装置における処理時間が非決定的な値を示すものである前記（１）から（４）のいずれかに記載のメモリコントローラ。
（６）前記センスリクエストは、高精度なデータ読出しを指示するロングセンスリクエストであり、
前記制御部は、前記リードコマンドの読出し対象アドレスが所定の範囲にある場合には前記第１のモードを選択し、前記読出し対象アドレスが前記所定の範囲にない場合には前記第２のモードを選択する
前記（１）に記載のメモリコントローラ。
（７）前記リクエスト発行部は、前記第１のモードによる読出しの結果として訂正不可能なエラーが発生した場合にはさらに前記第２のモードによって前記センスリクエストおよび前記データアウトリクエストを発行する
前記（６）に記載のメモリコントローラ。
（８）前記リクエスト発行部は、前記第１のモードによる読出しの結果として所定のビット数を超えるエラーが検出された場合にはさらに前記第２のモードによって前記センスリクエストおよび前記データアウトリクエストを発行する
前記（６）に記載のメモリコントローラ。
（９）前記リクエスト発行部は、前記第１のモードによる読出しの結果としてアクセス異常が検出された場合にはさらに前記第２のモードによって前記センスリクエストおよび前記データアウトリクエストを発行する
前記（６）に記載のメモリコントローラ。
（１０）メモリ装置と、
前記メモリ装置からのデータ読出しを要求するリードコマンドを受け付けるコマンド受付部と、
前記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って前記メモリ装置に発行する第１のモードと、前記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に前記先行リクエストの完了から所定時間経過後に前記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを前記メモリ装置に発行する第２のモードとの何れかを前記メモリ装置の状態に応じて選択する制御部と、
前記制御部によって選択された前記第１または第２のモードに従って前記メモリ装置に前記リードリクエストまたは前記センスリクエストおよび前記データアウトリクエストを発行するリクエスト発行部と
を具備するメモリシステム。
（１１）前記メモリ装置は、前記センスリクエストが発行された際に前記先行リクエストの処理を中断させて前記センスリクエストの処理を行う
前記（１０）に記載のメモリシステム。
（１２）メモリ装置と、
前記メモリ装置からのデータ読出しを要求するリードコマンドを発行するホストコンピュータと、
前記リードコマンドを受け付けるコマンド受付部と、
前記メモリ装置のメモリセルアレイからのデータ読出しおよび読み出されたデータの出力を要求するリードリクエストを先行リクエストの完了を待って前記メモリ装置に発行する第１のモードと、前記メモリセルアレイからのデータ読出しを要求するセンスリクエストを発行した後に前記先行リクエストの完了から所定時間経過後に前記センスリクエストにより読み出されたデータの出力を要求するデータアウトリクエストを前記メモリ装置に発行する第２のモードとの何れかを前記メモリ装置の状態に応じて選択する制御部と、
前記制御部によって選択された前記第１または第２のモードに従って前記メモリ装置に前記リードリクエストまたは前記センスリクエストおよび前記データアウトリクエストを発行するリクエスト発行部と
を具備する情報処理システム。
【符号の説明】
【０１５２】
１００  ホストコンピュータ
２００  メモリコントローラ
２０１  ホストインターフェース
２０３  メモリインターフェース
２１０  制御部
２２０  コマンド受付部
２３０  リクエスト発行部
２４０  アドレス判定部
２５０  エラー処理部
２７０  ステータスレジスタ
３００  メモリ装置
３１０  メモリセルアレイ
３２０  データラッチ
３３０  制御部
４００  メモリシステム
【図１】
0006493062.tif 000002
【図２】
0006493062.tif 000003
【図３】
0006493062.tif 000004
【図４】
0006493062.tif 000005
【図５】
0006493062.tif 000006
【図６】
0006493062.tif 000007
【図７】
0006493062.tif 000008
【図８】
0006493062.tif 000009
【図９】
0006493062.tif 000010
【図１０】
0006493062.tif 000011
【図１１】
0006493062.tif 000012
【図１２】
0006493062.tif 000013
【図１３】
0006493062.tif 000014
【図１４】
0006493062.tif 000015
【図１５】
0006493062.tif 000016
【図１６】
0006493062.tif 000017
【図１７】
0006493062.tif 000018
【図１８】
0006493062.tif 000019