(57)【要約】【課題】ライト単位の一部についてビジー状態となっていても可能な限りライト処理を継続する。【解決手段】部分単位バッファは、メモリに対するライト単位を分割した部分単位のデータを少なくとも１つ保持する。リクエスト生成部は、メモリにおいてビジー状態を示す部分単位が存在する場合であっても当該部分単位のデータを部分単位バッファにおいて保持できる状態であればメモリに対するライト単位のライトリクエストを生成する。【選択図】図２
2014174659.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対するライト単位を分割した部分単位のデータを少なくとも１つ保持する部分単位バッファと、
前記部分単位の何れかについて前記メモリにおいてビジー状態を示す場合であっても当該部分単位のデータを前記部分単位バッファにおいて保持できる状態であれば前記メモリに対する前記ライト単位のライトリクエストを生成するリクエスト生成部と
を具備する記憶制御装置。
【請求項２】
前記ライトリクエストが生成された場合、前記メモリがビジー状態を示す前記部分単位のデータを前記部分単位バッファに保持させ、前記メモリがビジー状態を示さない前記部分単位のデータを前記メモリに転送するライト制御部をさらに具備する請求項１記載の記憶制御装置。
【請求項３】
前記ライト制御部は、ビジー状態が解消された前記部分単位について次のデータが前記部分単位バッファに保持されている場合にはそのデータを前記部分単位バッファから前記メモリに転送する請求項２記載の記憶制御装置。
【請求項４】
前記メモリにおいてビジー状態を示す前記部分単位が存在し、かつ、当該部分単位のデータを前記部分単位バッファにおいて保持できない状態である場合にはビジー状態である旨を示し、前記部分単位バッファに空きがあり、かつ、前記部分単位の何れも前記メモリにおいてビジー状態を示さない場合、または、前記メモリにおいてビジー状態を示す前記部分単位が存在しても当該部分単位のデータを前記部分単位バッファにおいて保持できる状態である場合にはレディ状態である旨を示す信号を生成する信号生成部をさらに具備し、
前記リクエスト生成部は、前記信号がレディ状態である旨を示す場合に前記ライト単位のライトリクエストを生成する
請求項１記載の記憶制御装置。
【請求項５】
前記部分単位バッファは、前記部分単位のデータを複数保持する請求項１記載の記憶制御装置。
【請求項６】
ライト単位を複数の部分単位に分割してデータを記憶するメモリセルアレイと、
前記部分単位のデータを少なくとも１つ保持する部分単位バッファと、
前記部分単位の何れかについて前記メモリセルアレイにおいてビジー状態を示す場合であっても当該部分単位のデータを前記部分単位バッファにおいて保持できる状態であれば前記メモリセルアレイに対する前記ライト単位のライトリクエストを生成するリクエスト生成部と、
前記ライトリクエストが生成された場合、ビジー状態を示す前記部分単位のデータを前記部分単位バッファに保持させ、ビジー状態を示さない前記部分単位のデータを前記メモリセルアレイに転送するライト制御部と
を具備する記憶装置。
【請求項７】
前記メモリセルアレイは、不揮発性メモリ素子からなるメモリセルを含む請求項６記載の記憶装置。
【請求項８】
ライト単位を複数の部分単位に分割してデータを記憶するメモリセルアレイと、
前記ライト単位のライトコマンドを発行するホストコンピュータと、
前記部分単位のデータを少なくとも１つ保持する部分単位バッファと、
前記ライトコマンドが発行された際に、前記部分単位の何れかについて前記メモリセルアレイにおいてビジー状態を示す場合であっても当該部分単位のデータを前記部分単位バッファにおいて保持できる状態であれば前記メモリセルアレイに対する前記ライト単位のライトリクエストを生成するリクエスト生成部と、
前記ライトリクエストが生成された場合、ビジー状態を示す前記部分単位のデータを前記部分単位バッファに保持させ、ビジー状態を示さない前記部分単位のデータを前記メモリセルアレイに転送するライト制御部と
を具備する情報処理システム。
【請求項９】
メモリのライト単位を分割した部分単位の何れかについて前記メモリにおいてビジー状態を示す場合であっても当該部分単位のデータを部分単位バッファにおいて保持できる状態であれば前記メモリに対する前記ライト単位のライトリクエストを生成するリクエスト生成手順と、
前記ライトリクエストが生成された場合、ビジー状態を示す前記部分単位のデータを前記部分単位バッファに保持させ、ビジー状態を示さない前記部分単位のデータを前記メモリに転送するライト制御手順と
を具備する記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、記憶制御装置に関する。詳しくは、メモリのための記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
情報処理システムにおいては、ワークメモリとしてＤＲＡＭ（Dynamic Random Access Memory）等が用いられる。このＤＲＡＭは、通常、揮発性メモリであり、電源の供給が停止するとその記憶内容は消失する。一方、近年、不揮発性メモリ（ＮＶＭ：Non-Volatile Memory）が用いられるようになっている。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ：Non-Volatile RAM）とに大別される。ここで、フラッシュメモリの代表例としては、ＮＡＮＤ型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ＲｅＲＡＭ（Resistance RAM）、ＰＣＲＡＭ（Phase-Change RAM）、ＭＲＡＭ（Magnetoresistive RAM）などが挙げられる。
【０００３】
不揮発性メモリはメモリセルへのデータライト処理において、メモリセルへデータのライトを行うライトステップと、そのメモリセルからデータを読み出してライトデータと比較してベリファイを行うベリファイステップとを想定している。メモリセルへのライト時に、ライトステップに続けてベリファイステップでデータを比較した結果、一致が確認されるまでこれらステップが繰り返される。メモリセルの特性はある範囲でのばらつきを持っており、この回数も同様なばらつきを持つことから、ライト時に発生するビジー時間は固定時間にはならない。したがって、不揮発性メモリのライトビジー時間は標準値（Typical値）と最大値（Max値）とで示されることが一般的である。標準値はライト時にベリファイが成功する平均的な回数によって決定され、最大値はライトステップとベリファイステップとを繰り返す最大回数によって決まる。もし、最大回数まで繰り返した場合には、ベリファイが成功しなかったメモリセルは不良セルとして判断されることもある。
【０００４】
このようなライト時間のばらつきがあることから、ライト時間の長いセルによって不揮発性メモリのライトパフォーマンスは低下する。不揮発性メモリではページと呼ばれるように同時に複数のメモリセルからなるライト単位に対してライトを行うことが一般的である。したがって、上述のばらつきによってページの中のごく一部のメモリセルのライト時間が長くなったとしても、そのメモリセルへのライトが完了するまで、次のページのライトを開始することはできず、結果としてライト処理全体のパフォーマンスは低下する。ページをライト単位とする不揮発性メモリのバンクを複数持つマルチバンク構成の不揮発性メモリにおいても同様である。ばらつきによってあるバンクのページライト時間が長くなったことにより、そのバンクのライトが完了するまでは既にライトが完了しているバンクは次のページのライト開始を待つ状態になり、結果として不揮発性メモリ全体のライトパフォーマンスが低下する。つまり、いずれの場合も、すでにライトが完了しているバンクのページは次のデータさえ受信すればライトを開始できる状態であるにもかかわらず、その次のデータ入力が全てのバンクのライト完了まで待つため、ライトパフォーマンス低下の原因となっている。
【０００５】
これに対し、ライトビジー時間中に不揮発性メモリ内部のバッファに対して、次のライトデータを転送することにより、データ転送時間が次のライト開始のオーバーヘッドとなることを防ぐ手法が提案されている（例えば、特許文献１参照。）。また、マルチバンク構成の場合にも、バンク毎にバッファを持つことによりライト開始のオーバーヘッドを小さくする手法が提案されている（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１９６９８９号公報
【特許文献２】特開２００７−０８０４７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ライトビジー時間中にバッファに転送する従来技術では、ライトビジーが長くなることによる速度低下は防げない。また、バンクごとにバッファを備える従来技術では、ライトビジーが長くなることによる速度低下に対しては、同様の効果しかない。また、この従来技術はバンクごとにページサイズのバッファが必要であり、ライト単位であるページのサイズが大きいほど、また不揮発性メモリ内のバンク数が多いほどバッファサイズが大きくなるという問題がある。
【０００８】
フラッシュメモリに代表される従来の不揮発性メモリでは、ビジー時間の標準値は数百μｓから数ｍｓのオーダーであり、ビジー時間の変化は標準値の倍数で変化するようなものではなく、より細かい時間の単位で変化するものである。そのため、ばらつき時間よりも標準値の時間が支配的であり、そのばらつきを吸収することによるパフォーマンス改善の効果はあまり大きくない。一方、新しい高速不揮発性メモリであるＮＶＲＡＭでは、ライトビジー時間が数十ｎｓから数μｓと短く、ビジー時間のばらつきもほぼ同じオーダーの時間であるため、ビジー時間のばらつきがライトパフォーマンスに与える影響が非常に大きい。また、ライト単位であるページサイズも小さく、高速なインターフェースを有することから、前述のようにページバッファを持つことで隠蔽できるビジー時間も非常に小さくなる。
【０００９】
本技術はこのような状況に鑑みて生み出されたものであり、ライト単位の一部についてビジー状態となっていても可能な限りライト処理を継続することを目的とする。
【課題を解決するための手段】
【００１０】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、メモリに対するライト単位を分割した部分単位のデータを少なくとも１つ保持する部分単位バッファと、上記部分単位の何れかについて上記メモリにおいてビジー状態を示す場合であっても当該部分単位のデータを上記部分単位バッファにおいて保持できる状態であれば上記メモリに対する上記ライト単位のライトリクエストを生成するリクエスト生成部とを具備する記憶制御装置およびその記憶制御方法である。これにより、ビジー状態を示す部分単位が存在する場合であっても、可能な限りライトリクエストを生成するという作用をもたらす。
【００１１】
また、この第１の側面において、上記ライトリクエストが生成された場合、上記メモリがビジー状態を示す上記部分単位のデータを上記部分単位バッファに保持させ、上記メモリがビジー状態を示さない上記部分単位のデータを上記メモリに転送するライト制御部をさらに具備するようにしてもよい。これにより、部分単位のビジー状態に応じてデータを振り分けるという作用をもたらす。
【００１２】
また、この第１の側面において、上記ライト制御部は、ビジー状態が解消された上記部分単位について次のデータが上記部分単位バッファに保持されている場合にはそのデータを上記部分単位バッファから上記メモリに転送するようにしてもよい。これにより、部分単位のビジー状態が解消されたことを契機として部分単位バッファからデータを転送するという作用をもたらす。
【００１３】
また、この第１の側面において、上記メモリにおいてビジー状態を示す上記部分単位が存在し、かつ、当該部分単位のデータを上記部分単位バッファにおいて保持できない状態である場合にはビジー状態である旨を示し、上記部分単位バッファに空きがあり、かつ、上記部分単位の何れも上記メモリにおいてビジー状態を示さない場合、または、上記メモリにおいてビジー状態を示す上記部分単位が存在しても当該部分単位のデータを上記部分単位バッファにおいて保持できる状態である場合にはレディ状態である旨を示す信号を生成する信号生成部をさらに具備し、上記リクエスト生成部は、上記信号がレディ状態である旨を示す場合に上記ライト単位のライトリクエストを生成するようにしてもよい。これにより、ビジー状態の有無を示す信号を利用してライトリクエストの生成を制御するという作用をもたらす。
【００１４】
また、本技術の第２の側面は、ライト単位を複数の部分単位に分割してデータを記憶するメモリセルアレイと、上記部分単位のデータを少なくとも１つ保持する部分単位バッファと、上記部分単位の何れかについて上記メモリセルアレイにおいてビジー状態を示す場合であっても当該部分単位のデータを上記部分単位バッファにおいて保持できる状態であれば上記メモリセルアレイに対する上記ライト単位のライトリクエストを生成するリクエスト生成部と、上記ライトリクエストが生成された場合、ビジー状態を示す上記部分単位のデータを上記部分単位バッファに保持させ、ビジー状態を示さない上記部分単位のデータを上記メモリセルアレイに転送するライト制御部とを具備する記憶装置である。これにより、ビジー状態を示す部分単位が存在する場合であっても、可能な限りライトリクエストを生成しておいて、部分単位のビジー状態に応じてデータを振り分けるという作用をもたらす。
【００１５】
また、この第２の側面において、上記メモリセルアレイは、不揮発性メモリ素子からなるメモリセルを含むようにしてもよい。
【００１６】
また、本技術の第３の側面は、ライト単位を複数の部分単位に分割してデータを記憶するメモリセルアレイと、上記ライト単位のライトコマンドを発行するホストコンピュータと、上記部分単位のデータを少なくとも１つ保持する部分単位バッファと、上記ライトコマンドが発行された際に、上記部分単位の何れかについて上記メモリセルアレイにおいてビジー状態を示す場合であっても当該部分単位のデータを上記部分単位バッファにおいて保持できる状態であれば上記メモリセルアレイに対する上記ライト単位のライトリクエストを生成するリクエスト生成部と、上記ライトリクエストが生成された場合、ビジー状態を示す上記部分単位のデータを上記部分単位バッファに保持させ、ビジー状態を示さない上記部分単位のデータを上記メモリセルアレイに転送するライト制御部とを具備する情報処理システムである。これにより、ライトコマンドが発行された際、ビジー状態を示す部分単位が存在する場合であっても、可能な限りライトリクエストを生成しておいて、部分単位のビジー状態に応じてデータを振り分けるという作用をもたらす。
【発明の効果】
【００１７】
本技術によれば、ライト単位の一部についてビジー状態となっていても可能な限りライト処理を継続することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１８】
【図１】本技術の実施の形態における情報処理システムの一構成例を示す図である。
【図２】本技術の実施の形態における機能構成例を示す図である。
【図３】本技術の第１の実施の形態におけるメモリ３００の構成例を示す図である。
【図４】本技術の第１の実施の形態におけるメモリ３００のページアドレスの配置例を示す図である。
【図５】本技術の第１の実施の形態における動作タイミング例を示す図である。
【図６】本技術の第１の実施の形態における効果の概要を示す図である。
【図７】本技術の第１の実施の形態におけるライトコマンド受信時の処理手順例を示す流れ図である。
【図８】本技術の第１の実施の形態におけるライトリクエスト処理の処理手順例を示す流れ図である。
【図９】本技術の第１の実施の形態におけるサブページバッファ３２０の解放処理の処理手順例を示す流れ図である。
【図１０】本技術の第２の実施の形態におけるメモリ３００の構成例を示す図である。
【図１１】本技術の第２の実施の形態におけるメモリ３００のページアドレスの配置例を示す図である。
【図１２】本技術の第２の実施の形態における動作タイミング例を示す図である。
【図１３】本技術の第２の実施の形態におけるライトコマンド受信時の処理手順例を示す流れ図である。
【図１４】本技術の第２の実施の形態におけるライトリクエスト処理の処理手順例を示す流れ図である。
【図１５】本技術の第２の実施の形態におけるページバッファ３２１の解放処理の処理手順例を示す流れ図である。
【図１６】本技術の第３の実施の形態におけるメモリ３００の構成例を示す図である。
【図１７】本技術の第３の実施の形態におけるビジー信号生成回路３５１の真理値表を示す図である。
【図１８】本技術の第３の実施の形態における動作タイミング例を示す図である。
【図１９】本技術の第３の実施の形態におけるライトコマンド受信時の処理手順例を示す流れ図である。
【図２０】本技術の第３の実施の形態におけるライトリクエスト処理の処理手順例を示す流れ図である。
【図２１】本技術の第３の実施の形態におけるページバッファ３２１の解放処理の処理手順例を示す流れ図である。
【図２２】本技術の第４の実施の形態におけるメモリ３００およびメモリコントローラ２００の構成例を示す図である。
【図２３】本技術の第５の実施の形態におけるメモリ３００の構成例を示す図である。
【図２４】本技術の第６の実施の形態におけるメモリ３００の構成例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。
【００２０】
［情報処理システムの構成］
図１は、本技術の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ１００と、メモリシステム４００とから構成される。メモリシステム４００は、メモリ３００と、メモリコントローラ２００とから構成される。
【００２１】
ホストコンピュータ１００は、メモリシステム４００に対してデータのリードやライトなどを要求するコマンドを発行するものである。この実施の形態では、主としてライトコマンドが発行されることに着目する。
【００２２】
メモリ３００は不揮発性メモリからなり、特に、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）を想定する。ＮＶＲＡＭの例としては、抵抗変化型のＲｅＲＡＭ、相変化型のＰＣＲＡＭ、磁気抵抗変化型のＭＲＡＭなどが挙げられる。
【００２３】
メモリコントローラ２００は、ホストコンピュータ１００からの要求に対して、メモリ３００の制御を行うものである。このメモリコントローラ２００において、ホストコンピュータ１００側とのインターフェース（Ｉ／Ｆ）をホストインターフェース２０１と称し、メモリ３００側とのインターフェースをメモリインターフェース２０２と称する。
【００２４】
図２は、本技術の実施の形態における機能構成例を示す図である。ここでは、メモリセルアレイ３１と、部分単位バッファ３２と、リクエスト生成部２１と、ライト制御部３５とが示されている。メモリセルアレイ３１はメモリ３００に配置される。部分単位バッファ３２、リクエスト生成部２１、および、ライト制御部３５は、メモリ３００またはメモリコントローラ２００に配置される。
【００２５】
メモリセルアレイ３１は、不揮発性メモリからなるメモリセルの集合であり、同時に１つのライト単位を書き込むことができるように構成される。この例では、メモリセルアレイ３１は４つの部分アレイ０乃至３に分割されており、ライト単位を４つに分割した部分単位のデータそれぞれが別々に書き込まれるようになっている。このメモリセルアレイ３１の部分アレイ０乃至３のビジー状態は、それぞれＢｕｓｙ０乃至３信号としてリクエスト生成部２１に供給される。
【００２６】
部分単位バッファ３２は、ライト単位を分割した部分単位のデータを保持するバッファである。メモリセルアレイ３１に対するライトリクエストが生成された際、ライト単位のうち一部の部分単位についてメモリセルアレイ３１がビジー状態を示す場合には、その部分単位のデータを部分単位バッファ３２に保持する。一方、メモリセルアレイ３１がレディ状態を示す部分単位のデータはメモリセルアレイ３１に転送される。この部分単位バッファ３２の保持状態はＢｕｆｓｔａｔ信号としてリクエスト生成部２１に供給される。
【００２７】
リクエスト生成部２１は、ホストコンピュータ１００からライトコマンドが発行された際、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号に基づいてメモリセルアレイ３１に対するライト単位のライトリクエストを生成するものである。このリクエスト生成部２１は、部分単位の何れかについてメモリセルアレイ３１においてビジー状態を示す場合であっても当該部分単位のデータを部分単位バッファ３２において保持できる状態であればライト単位のライトリクエストを生成する。すなわち、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態を示している場合には、ライトリクエストを生成しない。また、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号の少なくとも２つがビジー状態を示している場合も、ライトリクエストを生成しない。一方、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号のうちビジー状態を示すものが１つ以下である場合には、ライトリクエストを生成する。なお、ライトリクエストを生成しない場合には、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号が上述の条件を満たすまで待機することになる。なお、ここでは、部分単位バッファ３２の保持容量が１つの部分単位であることを想定している。
【００２８】
ライト制御部３５は、ライト単位のライトリクエストが生成されると、部分単位のデータを制御する。すなわち、ライト制御部３５は、メモリセルアレイ３１の部分アレイがビジー状態を示す部分単位のデータを部分単位バッファ３２に保持させる。また、メモリセルアレイ３１の部分アレイがレディ状態を示す部分単位のデータをメモリセルアレイ３１に転送する。そして、ライト制御部３５は、ビジー状態が解消された部分アレイに対応する部分単位について、次のデータが部分単位バッファ３２に保持されている場合にはそのデータを部分単位バッファ３２からメモリセルアレイ３１に転送する。
【００２９】
以下では、上述の情報処理システムおよびその機能構成を前提として、各実施の形態について説明する。各実施の形態の説明は以下の順序により行う。
１．第１の実施の形態（ページ単位のライトアクセスをサブページ単位に分割する例）
２．第２の実施の形態（バンクにまたがるライトアクセスをバンク毎に分割する例）
３．第３の実施の形態（メモリ内でビジー信号をまとめる例）
４．第４の実施の形態（ページバッファをメモリコントローラ側で管理する例）
５．第５の実施の形態（複数のページバッファを各バンクによって共有する例）
６．第６の実施の形態（ページバッファをバンクグループ毎に共有する例）
【００３０】
＜１．第１の実施の形態＞
［メモリの構成］
図３は、本技術の第１の実施の形態におけるメモリ３００の構成例を示す図である。このメモリ３００は、メモリセルアレイ３１０と、サブページバッファ３２０と、サブページアドレスバッファ３３０と、分配器３４０と、コントローラインターフェース回路３９０とを備える。
【００３１】
メモリセルアレイ３１０は、不揮発性メモリからなるメモリセルの集合であり、同時に１つのページを書き込むことができるように構成される。この例では、メモリセルアレイ３１０は、ページを４つに分割したサブページのデータそれぞれが別々に書き込まれるようになっている。このメモリセルアレイ３１０におけるサブページ毎のビジー状態は、それぞれＢｕｓｙ０乃至３信号としてコントローラインターフェース回路３９０に供給される。この第１の実施の形態は、このようなページを分割したサブページのライトビジー時間のばらつきに着目したものである。
【００３２】
サブページバッファ３２０は、サブページのデータを保持するバッファである。メモリセルアレイ３１０に対するライトリクエストが生成された際、ページ全体のうち一部のサブページについてメモリセルアレイ３１０がビジー状態を示す場合には、そのサブページのデータをサブページバッファ３２０に保持する。一方、メモリセルアレイ３１０がレディ状態を示すサブページのデータについては、メモリセルアレイ３１０に転送される。このサブページバッファ３２０の保持状態はＢｕｆｓｔａｔ信号としてコントローラインターフェース回路３９０に供給される。
【００３３】
サブページアドレスバッファ３３０は、サブページバッファ３２０に保持されているデータのメモリセルアレイ３１０上のアドレスを保持するバッファである。すなわち、このサブページアドレスバッファ３３０は、どのページのどのサブページのデータであるかを示す。
【００３４】
分配器３４０は、ライトリクエストに係るページに含まれるサブページのデータまたはサブページバッファ３２０に保持されるサブページのデータを、メモリセルアレイ３１０上の対応するサブページのアドレスに分配するものである。ライトリクエストに係るページに含まれるサブページのデータを分配する際には、ライトリクエストに係るアドレスが参照される。サブページバッファ３２０に保持されるサブページのデータを分配する際には、サブページアドレスバッファ３３０に保持されるアドレスが参照される。
【００３５】
コントローラインターフェース回路３９０は、メモリコントローラ２００との間のやりとりを司る回路である。このコントローラインターフェース回路３９０は、メモリコントローラ２００によって生成されたライトリクエストを、リクエスト／アドレス信号線（Ｒｑｔ／Ａｄｒ）およびデータ信号線（Ｄａｔａ）により受け取る。その前提として、メモリコントローラ２００は、ホストコンピュータ１００からライトコマンドが発行されると、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号に基づいてメモリセルアレイ３１０に対するライト単位のライトリクエストを生成する。すなわち、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態を示している場合には、ライトリクエストを生成しない。また、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号の少なくとも２つがビジー状態を示している場合も、ライトリクエストを生成しない。一方、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号のうちビジー状態を示すものが１つ以下である場合には、ライトリクエストを生成する。なお、ライトリクエストを生成しない場合には、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号が上述の条件を満たすまで待機することになる。また、コントローラインターフェース回路３９０は、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号をメモリコントローラ２００に伝達する。
【００３６】
また、コントローラインターフェース回路３９０は、ライト単位のライトリクエストがメモリコントローラ２００によって生成されると、サブページのデータを制御する。すなわち、メモリセルアレイ３１０においてビジー状態を示すサブページのデータをサブページバッファ３２０に保持させる。また、メモリセルアレイ３１０においてレディ状態を示すサブページのデータをメモリセルアレイ３１０に転送する。そして、コントローラインターフェース回路３９０は、ビジー状態が解消されたサブページについて、次のデータがサブページバッファ３２０に保持されている場合にはそのデータをサブページバッファ３２０からメモリセルアレイ３１０に転送する。
【００３７】
なお、上述の機能構成において、メモリセルアレイ３１は、メモリセルアレイ３１０の機能として実現される。また、部分単位バッファ３２は、サブページバッファ３２０の機能として実現される。また、リクエスト生成部２１は、メモリコントローラ２００の機能として実現される。また、ライト制御部３５は、コントローラインターフェース回路３９０および分配器３４０の機能として実現される。
【００３８】
図４は、本技術の第１の実施の形態におけるメモリ３００のページアドレスの配置例を示す図である。この第１の実施の形態におけるメモリ３００では、全てのメモリ空間はページを単位としてリニアなアドレス空間となっている。そして、このページを４つに分割したものがサブページとなる。
【００３９】
［動作タイミング］
図５は、本技術の第１の実施の形態における動作タイミング例を示す図である。Ｄａｔａ信号線において転送されるページデータＤａｔａ０はＰａｇｅ０、Ｄａｔａ１はＰａｇｅ１、Ｄａｔａ２はＰａｇｅ２というように、連続的にページ書込みが行われる動作を示している。メモリ３００は、ページデータを受信した後に全てのサブページで一斉にライト処理を開始し、全てのサブページのＢｕｓｙ０乃至３信号が、書込み動作中であることを示すビジー状態となる。
【００４０】
この例では、Ｄａｔａ０の書込みにおいてサブページ２のライトビジーが長くなるが、サブページバッファ３２０があるために、他のサブページの書込みが終わったタイミングで、メモリコントローラ２００から次のページデータＤａｔａ１がメモリ３００に対して転送される。このとき、Ｄａｔａ１に含まれるサブページ２のデータは、サブページバッファ３２０に保持され、その書込み先を示すアドレス情報はサブページアドレスバッファ３３０に保持される。その結果、Ｂｕｆｓｔａｔ信号は、サブページバッファ３２０がフル状態であることを示すＨｉｇｈ状態に変化する。
【００４１】
Ｄａｔａ０のサブページ２への書込みが終了すると、直ちにサブページバッファ３２０上に保持されていたＤａｔａ１のサブページデータを、メモリセルアレイ３１０のサブページ２の位置にアドレス情報とともに転送して、次のライト処理を開始する。その際、空になったサブページバッファ３２０の状態を示すＢｕｆｓｔａｔ信号はＬｏｗ状態に変化する。
【００４２】
Ｄａｔａ２の書込みでは、サブページ１のライトビジーが長くなるが、サブページバッファ３２０は空状態であるため、メモリコントローラ２００は次のページデータＤａｔａ３をメモリ３００に転送する。Ｄａｔａ３に含まれるサブページ１のデータは、サブページバッファ３２０に保持され、その書込み先を示すアドレス情報はサブページアドレスバッファ３３０に保持される。
【００４３】
図６は、本技術の第１の実施の形態における効果の概要を示す図である。なお、ここではメモリセルアレイ３１０やサブページバッファ３２０へのデータ転送時間は含まれていない。
【００４４】
ここでは、４つのサブページに分割された各ページに対して並列かつ連続に４回の書込みを行った場合を想定する。同図におけるａに示すように、従来の手法では、各書込みで１つのサブページのライトビジーが長くなっており、その書込み時間によって全体の書込みパフォーマンスが決まる。ここで、通常のビジー時間の２倍のビジー時間になると仮定すると、全部で８回分のビジー時間となる。一方、ライトビジーが長くなったサブページのデータをサブページバッファ３２０に受信できるとすれば、先に書込みの終わったサブページは次のページデータの書込みが可能となる。書込み時間が長くなるメモリセルが１つのサブページに集中することがないという前提では、同図におけるｂに示すように、６回分のビジー時間で書込みを完了することができ、パフォーマンスは改善する。
【００４５】
［処理手順］
図７は、本技術の第１の実施の形態におけるライトコマンド受信時の処理手順例を示す流れ図である。このライトコマンド受信時の処理は、メモリコントローラ２００によって実行される。ここでは、サブページバッファ３２０には１つのサブページのデータが保持可能であると想定している。
【００４６】
まず、ライトコマンドに係る先頭ページ番号が変数ｐに設定される（ステップＳ９１１）。この変数ｐには、１つのページに関する処理が終了するたびに１つずつ増加した値が設定されていく（ステップＳ９１６）。
【００４７】
メモリコントローラ２００は、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号を参照して、ライトリクエストを生成するか否かを判断する（ステップＳ９１２）。すなわち、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態を示している場合には、ライトリクエストを生成せずに待機するものと判断する。また、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号の少なくとも２つがビジー状態を示している場合も、ライトリクエストを生成せずに待機するものと判断する。一方、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号のうちビジー状態を示すものが１つ以下である場合には、ライトリクエストを生成するものと判断する。
【００４８】
ライトリクエストを生成せずに待機するものと判断された場合には（ステップＳ９１２：Ｎｏ）、ライトリクエスト生成の条件を満たすまで待機する。一方、ライトリクエストを生成するものと判断された場合には（ステップＳ９１２：Ｙｅｓ）、ページ単位のライトリクエストを生成する（ステップＳ９１３）。その際、ライトリクエストのパラメータも併せて転送される。そして、ページデータがメモリコントローラ２００からメモリインターフェース２０２を介してメモリ３００へ転送される（ステップＳ９１４）。
【００４９】
処理されたページの次のページもライトコマンドの対象である場合には（ステップＳ９１５：Ｙｅｓ）、変数ｐを１つ増加して（ステップＳ９１６）、次のページの処理を繰り返す。次のページがライトコマンドの対象でない場合には（ステップＳ９１５：Ｎｏ）、処理を終了する。
【００５０】
図８は、本技術の第１の実施の形態におけるライトリクエスト処理の処理手順例を示す流れ図である。このライトリクエストの処理は、コントローラインターフェース回路３９０および分配器３４０によって実行される。
【００５１】
ライトリクエストが生成されると、ライトリクエストに係る先頭サブページ番号が変数ｓに設定される（ステップＳ９２１）。ここでは、先頭サブページ番号として「０」を想定する。この変数ｓには、１つのサブページに関する処理が終了するたびに１つずつ増加した値が設定されていく（ステップＳ９２９）。
【００５２】
メモリセルアレイ３１０においてサブページｓがビジー状態でなければ（ステップＳ９２２：Ｎｏ）、メモリセルアレイ３１０にデータおよびアドレスが転送されて（ステップＳ９２３）、サブページｓのライト動作が開始される（ステップＳ９２４）。
【００５３】
一方、メモリセルアレイ３１０においてサブページｓがビジー状態である場合（ステップＳ９２２：Ｙｅｓ）、サブページバッファ３２０がフル状態か否かが判定される（ステップＳ９２５）。サブページバッファ３２０がフル状態であれば（ステップＳ９２５：Ｙｅｓ）、ステップＳ９２２以降の処理を繰り返す。サブページバッファ３２０がフル状態でなければ（ステップＳ９２５：Ｎｏ）、サブページバッファ３２０にデータを保持し、サブページアドレスバッファ３３０にサブページ番号ｓおよびアドレスを保持する（ステップＳ９２６）。そして、サブページバッファ３２０の空状態を解除してフル状態にする（ステップＳ９２７）。これにより、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態になる。
【００５４】
処理されたサブページの次のサブページもライトリクエストの対象である場合には（ステップＳ９２８：Ｙｅｓ）、変数ｓを１つ増加して（ステップＳ９２９）、次のサブページの処理を繰り返す。次のサブページがライトリクエストの対象でない場合には（ステップＳ９２８：Ｎｏ）、処理を終了する。
【００５５】
なお、ここでは便宜上、各サブページに関する処理を逐次的に行うように説明したが、各サブページに関する処理を並列に実行してもよい。
【００５６】
図９は、本技術の第１の実施の形態におけるサブページバッファ３２０の解放処理の処理手順例を示す流れ図である。このサブページバッファ３２０の解放処理は、コントローラインターフェース回路３９０および分配器３４０によって実行される。
【００５７】
メモリセルアレイ３１０において何れかのサブページのライト処理が完了すると、その完了したサブページのサブページ番号ｅが取得される（ステップＳ９３１）。そして、サブページバッファ３２０にサブページｅのデータが保持されている場合には（ステップＳ９３２：Ｙｅｓ）、以下の処理を実行する。
【００５８】
すなわち、サブページバッファ３２０からデータを転送し、サブページアドレスバッファ３３０からアドレスを転送する（ステップＳ９３３）。そして、サブページバッファ３２０のフル状態を解除して、空状態にする（ステップＳ９３４）。これにより、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態になる。その後、サブページｅについてメモリセルアレイ３１０においてライト処理が開始される（ステップＳ９３５）。
【００５９】
一方、サブページバッファ３２０にサブページｅのデータが保持されていない場合には（ステップＳ９３２：Ｎｏ）、処理を終了する。
【００６０】
このように、本技術の第１の実施の形態によれば、ライト対象ページの一部のサブページについてメモリセルアレイ３１０においてビジー状態となっていても、サブページバッファ３２０が利用可能である限りライト処理を継続することができる。
【００６１】
＜２．第２の実施の形態＞
［メモリの構成］
図１０は、本技術の第２の実施の形態におけるメモリ３００の構成例を示す図である。このメモリ３００は、メモリセルアレイ３１１と、ページバッファ３２１と、ページアドレスバッファ３３１と、分配器３４１と、コントローラインターフェース回路３９１とを備える。
【００６２】
メモリセルアレイ３１１は、不揮発性メモリからなるメモリセルの集合であり、同時に複数のページを書き込むことができるように構成される。この例では、メモリセルアレイ３１１は４つのバンクに分割されており、それぞれ１ページ分のデータが別々に書き込まれるようになっている。このメモリセルアレイ３１１におけるバンク毎のビジー状態は、それぞれＢｕｓｙ０乃至３信号としてコントローラインターフェース回路３９１に供給される。この第２の実施の形態は、このようなマルチバンク構成における各バンクのライトビジー時間のばらつきに着目したものである。
【００６３】
ページバッファ３２１は、ページのデータを保持するバッファである。メモリセルアレイ３１１に対するライトリクエストが生成された際、一部のバンクについてメモリセルアレイ３１１がビジー状態を示す場合には、そのバンクに対応するページのデータをページバッファ３２１に保持する。一方、メモリセルアレイ３１１がレディ状態を示すバンクに対応するページのデータについては、メモリセルアレイ３１１に転送される。このページバッファ３２１の保持状態はＢｕｆｓｔａｔ信号としてコントローラインターフェース回路３９１に供給される。
【００６４】
ページアドレスバッファ３３１は、ページバッファ３２１に保持されているデータのメモリセルアレイ３１１上のアドレスを保持するバッファである。すなわち、このページアドレスバッファ３３１は、どのページのデータであるかを示す。
【００６５】
分配器３４１は、ライトリクエストに係るページのデータまたはページバッファ３２１に保持されるページのデータを、メモリセルアレイ３１１上の対応するバンクのアドレスに分配するものである。ライトリクエストに係るページのデータを分配する際には、ライトリクエストに係るアドレスが参照される。ページバッファ３２１に保持されるページのデータを分配する際には、ページアドレスバッファ３３１に保持されるアドレスが参照される。
【００６６】
コントローラインターフェース回路３９１は、メモリコントローラ２００との間のやりとりを司る回路である。このコントローラインターフェース回路３９１は、メモリコントローラ２００によって生成されたライトリクエストを、リクエスト／アドレス信号線（Ｒｑｔ／Ａｄｒ）およびデータ信号線（Ｄａｔａ）により受け取る。その前提として、メモリコントローラ２００は、ホストコンピュータ１００からライトコマンドが発行されると、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号に基づいてメモリセルアレイ３１１に対するライト単位のライトリクエストを生成する。すなわち、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態を示している場合には、ライトリクエストを生成しない。また、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号の少なくとも２つがビジー状態を示している場合も、ライトリクエストを生成しない。一方、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号のうちビジー状態を示すものが１つ以下である場合には、ライトリクエストを生成する。なお、ライトリクエストを生成しない場合には、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号が上述の条件を満たすまで待機することになる。また、コントローラインターフェース回路３９１は、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号をメモリコントローラ２００に伝達する。
【００６７】
また、コントローラインターフェース回路３９１は、ライト単位のライトリクエストがメモリコントローラ２００によって生成されると、ライトリクエストに係るページのデータを制御する。すなわち、メモリセルアレイ３１１においてビジー状態を示すバンクに対応するページのデータをページバッファ３２１に保持させる。また、メモリセルアレイ３１１においてレディ状態を示すバンクに対応するページのデータをメモリセルアレイ３１１に転送する。そして、コントローラインターフェース回路３９１は、ビジー状態が解消されたバンクについて、次のデータがページバッファ３２１に保持されている場合にはそのデータをページバッファ３２１からメモリセルアレイ３１１に転送する。
【００６８】
なお、上述の機能構成において、メモリセルアレイ３１は、メモリセルアレイ３１１の機能として実現される。また、部分単位バッファ３２は、ページバッファ３２１の機能として実現される。また、リクエスト生成部２１は、メモリコントローラ２００の機能として実現される。また、ライト制御部３５は、コントローラインターフェース回路３９１および分配器３４１の機能として実現される。
【００６９】
図１１は、本技術の第２の実施の形態におけるメモリ３００のページアドレスの配置例を示す図である。この第２の実施の形態におけるメモリ３００は、各バンクのメモリ空間はページを共通単位としたアドレス空間を有しており、外部からはバンク０からバンク３の方向にページ列毎に繰り返すアドレス空間として把握される。このため、連続ページ書込みの際には、４ページのデータが並行して４つのバンクに書き込まれることにより高速化される。
【００７０】
また、それぞれのバンクにおいて共通するアドレス位置のページをページグループと称する。例えば、ページ０乃至３はページグループ０、ページ４乃至７はページグループ１、ページ８乃至１１はページグループ２となる。
【００７１】
［動作タイミング］
図１２は、本技術の第２の実施の形態における動作タイミング例を示す図である。Ｄａｔａ信号線において転送されるページデータＤａｔａ０はＢａｎｋ０、Ｄａｔａ１はＢａｎｋ１、Ｄａｔａ２はＢａｎｋ２、Ｄａｔａ３はＢａｎｋ３、そしてＤａｔａ４はＢａｎｋ０というように、連続的にページ書込みが行われる。全バンク分に相当する４ページ単位で書込みデータを受信した後に、４バンクのページについて一斉にライト処理が開始され、全てのサブページのＢｕｓｙ０乃至３信号が、書込み動作中であることを示すビジー状態となる。
【００７２】
この例では、ページデータＤａｔａ０乃至３の書込みでバンク２のＤａｔａ２のライトビジーが長くなるが、ページバッファ３２１があるために、他のバンクの書込みが終わったタイミングで、メモリコントローラ２００より次のページデータＤａｔａ４乃至７がメモリ３００に対して転送される。この時、バンク２の書込みページデータであるＤａｔａ６はページバッファ３２１に保持され、その書込み先であるバンク２とそのページアドレス情報はページアドレスバッファ３３１に保持される。その結果、Ｂｕｆｓｔａｔ信号は、ページバッファ３２１がフル状態であることを示すＨｉｇｈ状態に変化する。
【００７３】
ページデータＤａｔａ２の書込み中であるバンク２のライトビジーが終了すると、直ちにページバッファ３２１に保持されていた次のページデータＤａｔａ６をバンク２にページアドレス情報とともに転送して、次のライト処理を開始する。その際、空になったページバッファ３２１の状態を示すＢｕｆｓｔａｔ信号はＬｏｗ状態に変化する。
【００７４】
ページデータＤａｔａ８乃至１１の書込みではバンク１のＤａｔａ９のライトビジーが長くなるが、既にページバッファ３２１は空であるため、メモリコントローラ２００は次のページデータＤａｔａ１２乃至１５を転送する。書込み中であるバンク１の書込みページデータＤａｔａ１３はページバッファ３２１に保持され、その書込み先であるバンク１とそのページアドレス情報はページアドレスバッファ３３１に保持される。
【００７５】
［処理手順］
図１３は、本技術の第２の実施の形態におけるライトコマンド受信時の処理手順例を示す流れ図である。このライトコマンド受信時の処理は、メモリコントローラ２００によって実行される。ここでは、ページバッファ３２１には１つのページのデータが保持可能であると想定している。
【００７６】
まず、ライトコマンドに係る先頭ページグループ番号が変数ｐに設定され、ライト対象の先頭バンク番号である「０」が変数ｂに設定される（ステップＳ９４１）。変数ｂには、１つのバンクに関する処理が終了するたびに１つずつ増加した値が設定されていく（ステップＳ９４６）。また、変数ｐには、１つのページグループに関する処理が終了するたびに１つずつ増加した値が設定されていく（ステップＳ９４８）。
【００７７】
メモリコントローラ２００は、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号を参照して、ライトリクエストを生成するか否かを判断する（ステップＳ９４２）。すなわち、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態を示している場合には、ライトリクエストを生成せずに待機するものと判断する。また、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号の少なくとも２つがビジー状態を示している場合も、ライトリクエストを生成せずに待機するものと判断する。一方、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号のうちビジー状態を示すものが１つ以下である場合には、ライトリクエストを生成するものと判断する。
【００７８】
ライトリクエストを生成せずに待機するものと判断された場合には（ステップＳ９４２：Ｎｏ）、ライトリクエスト生成の条件を満たすまで待機する。一方、ライトリクエストを生成するものと判断された場合には（ステップＳ９４２：Ｙｅｓ）、ページ単位のライトリクエストを生成する（ステップＳ９４３）。その際、ライトリクエストのパラメータも併せて転送される。そして、ページデータが転送される（ステップＳ９４４）。
【００７９】
処理されたページの次のページも同じページグループ内にある場合には（ステップＳ９４５：Ｙｅｓ）、変数ｂを１つ増加して（ステップＳ９４６）、次のページの処理を繰り返す。次のページが同じページグループ内にない場合には（ステップＳ９４５：Ｎｏ）、次のページグループがライトコマンドの対象であるか否かが判断される（ステップＳ９４７）。
【００８０】
次のページグループがライトコマンドの対象である場合には（ステップＳ９４７：Ｙｅｓ）、変数ｐを１つ増加するとともに、変数ｂに先頭バンク番号である「０」を設定して（ステップＳ９４８）、次のページグループの処理を繰り返す。次のページグループがライトコマンドの対象でない場合には（ステップＳ９４７：Ｎｏ）、処理を終了する。
【００８１】
なお、ここでは便宜上、各バンクに関する処理を逐次的に行うように説明したが、各バンクに関する処理を並列に実行してもよい。
【００８２】
図１４は、本技術の第２の実施の形態におけるライトリクエスト処理の処理手順例を示す流れ図である。このライトリクエストの処理は、コントローラインターフェース回路３９１および分配器３４１によって実行される。
【００８３】
ライトリクエストが生成されると、ライトリクエストに係る先頭バンク番号が変数ｂに設定される（ステップＳ９５１）。ここでは、先頭バンク番号として「０」を想定する。この変数ｂには、１つのバンクに関する処理が終了するたびに１つずつ増加した値が設定されていく（ステップＳ９５９）。
【００８４】
メモリセルアレイ３１１におけるバンクｂがビジー状態でなければ（ステップＳ９５２：Ｎｏ）、メモリセルアレイ３１１にデータおよびアドレスが転送されて（ステップＳ９５３）、バンクｂのライト動作が開始される（ステップＳ９５４）。
【００８５】
一方、メモリセルアレイ３１１においてバンクｂがビジー状態である場合（ステップＳ９５２：Ｙｅｓ）、ページバッファ３２１がフル状態か否かが判定される（ステップＳ９５５）。ページバッファ３２１がフル状態であれば（ステップＳ９５５：Ｙｅｓ）、ステップＳ９５２以降の処理を繰り返す。ページバッファ３２１がフル状態でなければ（ステップＳ９５５：Ｎｏ）、ページバッファ３２１にデータを保持し、ページアドレスバッファ３３１にバンク番号ｂおよびアドレスを保持する（ステップＳ９５６）。そして、ページバッファ３２１の空状態を解除してフル状態にする（ステップＳ９５７）。これにより、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態になる。
【００８６】
処理されたバンクの次のバンクもライトリクエストの対象である場合には（ステップＳ９５８：Ｙｅｓ）、変数ｂを１つ増加して（ステップＳ９５９）、次のバンクの処理を繰り返す。次のバンクがライトリクエストの対象でない場合には（ステップＳ９５８：Ｎｏ）、処理を終了する。
【００８７】
なお、ここでは便宜上、各バンクに関する処理を逐次的に行うように説明したが、各バンクに関する処理を並列に実行してもよい。
【００８８】
図１５は、本技術の第２の実施の形態におけるページバッファ３２１の解放処理の処理手順例を示す流れ図である。このページバッファ３２１の解放処理は、コントローラインターフェース回路３９１および分配器３４１によって実行される。
【００８９】
メモリセルアレイ３１１において何れかのバンクのライト処理が完了すると、その完了したバンクのバンク番号ｅが取得される（ステップＳ９６１）。そして、ページバッファ３２１にバンクｅのデータが保持されている場合には（ステップＳ９６２：Ｙｅｓ）、以下の処理を実行する。
【００９０】
すなわち、ページバッファ３２１からデータを転送し、ページアドレスバッファ３３１からアドレスを転送する（ステップＳ９６３）。そして、ページバッファ３２１のフル状態を解除して、空状態にする（ステップＳ９６４）。これにより、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態になる。その後、バンクｅについてメモリセルアレイ３１１においてライト処理が開始される（ステップＳ９６５）。
【００９１】
一方、ページバッファ３２１にバンクｅのデータが保持されていない場合には（ステップＳ９６２：Ｎｏ）、処理を終了する。
【００９２】
このように、本技術の第２の実施の形態によれば、ライト対象の一部のページについてメモリセルアレイ３１１においてビジー状態となっていても、ページバッファ３２１が利用可能である限りライト処理を継続することができる。
【００９３】
＜３．第３の実施の形態＞
［メモリの構成］
図１６は、本技術の第３の実施の形態におけるメモリ３００の構成例を示す図である。このメモリ３００は、メモリセルアレイ３１１と、ページバッファ３２１と、ページアドレスバッファ３３１と、分配器３４１と、コントローラインターフェース回路３９２と、ビジー信号生成回路３５１とを備える。この第３の実施の形態のメモリ３００は、上述の第２の実施の形態とほぼ同様の構成を有するが、ビジー信号生成回路３５１を備える点で第２の実施の形態とは異なっている。
【００９４】
ビジー信号生成回路３５１は、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号に基づいて、ライトリクエストを生成する際に参照されるＢｕｓｙ信号を生成するものである。すなわち、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態を示している場合には、Ｂｕｓｙ信号をＨｉｇｈ状態（ビジー状態）にする。また、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号の少なくとも２つがビジー状態を示している場合も、Ｂｕｓｙ信号をＨｉｇｈ状態（ビジー状態）にする。一方、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号のうちビジー状態を示すものが１つ以下である場合には、Ｂｕｓｙ信号をＬｏｗ状態（レディ状態）にする。このＢｕｓｙ信号の真理値表を図１７に示す。
【００９５】
このビジー信号生成回路３５１によって生成されたＢｕｓｙ信号は、コントローラインターフェース回路３９２を介してメモリコントローラ２００に供給される。メモリコントローラ２００は、このＢｕｓｙ信号を参照して、次のページグループのライトリクエストを生成するか否かを判断する。すなわち、Ｂｕｓｙ信号がレディ状態であればライトリクエストを生成するが、Ｂｕｓｙ信号がビジー状態であればライトリクエストを生成しない。
【００９６】
第３の実施の形態ではビジー信号生成回路３５１を設けたことにより、第２の実施の形態においてＢｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号を４本の信号線により供給していたものを、１本の信号線で済ませることができる。すなわち、メモリインターフェース２０２の本数を削減することができる。
【００９７】
なお、上述の機能構成において、メモリセルアレイ３１は、メモリセルアレイ３１１の機能として実現される。また、部分単位バッファ３２は、ページバッファ３２１の機能として実現される。また、リクエスト生成部２１は、メモリコントローラ２００の機能として実現される。また、ライト制御部３５は、コントローラインターフェース回路３９２および分配器３４１の機能として実現される。
【００９８】
［動作タイミング］
図１８は、本技術の第３の実施の形態における動作タイミング例を示す図である。この第３の実施の形態では、ビジー信号生成回路３５１によって、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号からＢｕｓｙ信号を生成する。そのため、メモリコントローラ２００では、このＢｕｓｙ信号に基づいて、ライトリクエストを生成するか否かを判断する。
【００９９】
［処理手順］
図１９は、本技術の第３の実施の形態におけるライトコマンド受信時の処理手順例を示す流れ図である。このライトコマンド受信時の処理は、コントローラインターフェース回路３９２によって実行される。
【０１００】
まず、ライトコマンドに係る先頭ページ番号が変数ｐに設定される（ステップＳ９７１）。変数ｐには、１つのページに関する処理が終了するたびに１つずつ増加した値が設定されていく（ステップＳ９７６）。
【０１０１】
ビジー信号生成回路３５１は、Ｂｕｆｓｔａｔ信号およびＢｕｓｙ０乃至３信号を参照して、Ｂｕｓｙ信号を生成する。そして、メモリコントローラ２００は、Ｂｕｓｙ信号を参照して、ライトリクエストを生成するか否かを判断する（ステップＳ９７２）。すなわち、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態を示している場合には、Ｂｕｓｙ信号はビジー状態であり、ライトリクエストを生成せずに待機するものと判断する。また、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号の少なくとも２つがビジー状態を示している場合も、Ｂｕｓｙ信号はビジー状態であり、ライトリクエストを生成せずに待機するものと判断する。一方、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態を示していて、かつ、Ｂｕｓｙ０乃至３信号のうちビジー状態を示すものが１つ以下である場合には、Ｂｕｓｙ信号はレディ状態であり、ライトリクエストを生成するものと判断する。
【０１０２】
ライトリクエストを生成せずに待機するものと判断された場合には（ステップＳ９７２：Ｎｏ）、ライトリクエスト生成の条件を満たすまで待機する。一方、ライトリクエストを生成するものと判断された場合には（ステップＳ９７２：Ｙｅｓ）、ページ単位のライトリクエストを生成する（ステップＳ９７３）。その際、ライトリクエストのパラメータも併せて転送される。そして、ページデータが転送される（ステップＳ９７４）。
【０１０３】
処理されたページの次のページもライトコマンドの対象である場合には（ステップＳ９７５：Ｙｅｓ）、変数ｐを１つ増加して（ステップＳ９７６）、次のページの処理を繰り返す。次のページがライトコマンドの対象でない場合には（ステップＳ９７５：Ｎｏ）、処理を終了する。
【０１０４】
図２０は、本技術の第３の実施の形態におけるライトリクエスト処理の処理手順例を示す流れ図である。このライトリクエストの処理は、コントローラインターフェース回路３９２および分配器３４１によって実行される。
【０１０５】
ライトリクエストが生成されると、ライトリクエストに係る先頭バンク番号が変数ｂに設定される（ステップＳ９８１）。ここでは、先頭バンク番号として「０」を想定する。この変数ｂには、１つのバンクに関する処理が終了するたびに１つずつ増加した値が設定されていく（ステップＳ９８９）。
【０１０６】
メモリセルアレイ３１１におけるバンクｂがビジー状態でなければ（ステップＳ９８２：Ｎｏ）、メモリセルアレイ３１１にデータおよびアドレスが転送されて（ステップＳ９８３）、バンクｂのライト動作が開始される（ステップＳ９８４）。
【０１０７】
一方、メモリセルアレイ３１１においてバンクｂがビジー状態である場合（ステップＳ９８２：Ｙｅｓ）、ページバッファ３２１がフル状態か否かが判定される（ステップＳ９８５）。ページバッファ３２１がフル状態であれば（ステップＳ９８５：Ｙｅｓ）、ステップＳ９８２以降の処理を繰り返す。ページバッファ３２１がフル状態でなければ（ステップＳ９８５：Ｎｏ）、ページバッファ３２１にデータを保持し、ページアドレスバッファ３３１にバンク番号ｂおよびアドレスを保持する（ステップＳ９８６）。そして、ページバッファ３２１の空状態を解除してフル状態にする（ステップＳ９８７）。これにより、Ｂｕｆｓｔａｔ信号がｆｕｌｌ状態になる。
【０１０８】
処理されたバンクの次のバンクもライトリクエストの対象である場合には（ステップＳ９８８：Ｙｅｓ）、変数ｂを１つ増加して（ステップＳ９８９）、次のバンクの処理を繰り返す。次のバンクがライトリクエストの対象でない場合には（ステップＳ９８８：Ｎｏ）、処理を終了する。
【０１０９】
なお、ここでは便宜上、各バンクに関する処理を逐次的に行うように説明したが、各バンクに関する処理を並列に実行してもよい。
【０１１０】
図２１は、本技術の第３の実施の形態におけるページバッファ３２１の解放処理の処理手順例を示す流れ図である。このページバッファ３２１の解放処理は、コントローラインターフェース回路３９２および分配器３４１によって実行される。
【０１１１】
メモリセルアレイ３１１において何れかのバンクのライト処理が完了すると、その完了したバンクのバンク番号ｅが取得される（ステップＳ９９１）。そして、ページバッファ３２１にバンクｅのデータが保持されている場合には（ステップＳ９９２：Ｙｅｓ）、以下の処理を実行する。
【０１１２】
すなわち、ページバッファ３２１からデータを転送し、ページアドレスバッファ３３１からアドレスを転送する（ステップＳ９９３）。そして、ページバッファ３２１のフル状態を解除して、空状態にする（ステップＳ９９４）。これにより、Ｂｕｆｓｔａｔ信号がｅｍｐｔｙ状態になる。その後、バンクｅについてメモリセルアレイ３１１においてライト処理が開始される（ステップＳ９９５）。
【０１１３】
一方、ページバッファ３２１にバンクｅのデータが保持されていない場合には（ステップＳ９９２：Ｎｏ）、処理を終了する。
【０１１４】
このように、本技術の第３の実施の形態によれば、マルチバンク構成において、ビジー信号生成回路３５１を設けることにより、メモリインターフェース２０２の本数を削減することができる。
【０１１５】
＜４．第４の実施の形態＞
［メモリの構成］
図２２は、本技術の第４の実施の形態におけるメモリ３００およびメモリコントローラ２００の構成例を示す図である。この第４の実施の形態では、ページバッファ２２０と、ページアドレスバッファ２３０と、ビジー信号生成回路２５０とがメモリコントローラ２００に設けられている。それぞれの動作については、上述の第３の実施の形態と同様である。
【０１１６】
このように、本技術の第４の実施の形態によれば、メモリインターフェース２０２からＢｕｆｓｔａｔ信号の信号線を省いて、メモリインターフェース２０２の本数を削減することができる。
【０１１７】
＜５．第５の実施の形態＞
［メモリの構成］
図２３は、本技術の第５の実施の形態におけるメモリ３００の構成例を示す図である。このメモリ３００は、第２の実施の形態と同様に、メモリセルアレイ３１１と、分配器３４４と、コントローラインターフェース回路３９４とを備える。ただし、２つのページバッファＡ３２２およびＢ３２３と、それぞれに対応するページアドレスバッファＡ３３２およびＢ３３３とを備える点が異なる。
【０１１８】
この第５の実施の形態では、第２の実施の形態と比べて、ページバッファの容量を増やすことにより、バンクビジーに起因する処理の遅延を改善するものである。性能上必要となるページバッファの数は、その対象となるメモリのライトビジー時間のばらつき特性に依存する。この例では、４バンクのライト処理を行った場合に、２バンク以下のライトビジーが長くなることを前提とした構成となる。
【０１１９】
このように、本技術の第５の実施の形態によれば、ページバッファの容量を増やすことにより、バンクビジーに起因する処理の遅延を改善することができる。
【０１２０】
＜６．第６の実施の形態＞
［メモリの構成］
図２４は、本技術の第６の実施の形態におけるメモリ３００の構成例を示す図である。このメモリ３００は、メモリセルアレイを２つのメモリセルアレイ３１２および３１３に分割し、それぞれに対して、ページバッファＡ３２２およびＢ３２３と、ページアドレスバッファＡ３３２およびＢ３３３と、分配器３４２および３４３とを設けている。
【０１２１】
この第６の実施の形態では、第５の実施の形態と同様にページバッファの容量を増しているが、ページバッファに接続されるメモリセルアレイバンクを限定することにより、チップ上の配置を容易にする。
【０１２２】
このように、本技術の実施の形態によれば、部分単位バッファ３２（サブページバッファ３２０、ページバッファ３２１等）を設けることにより、ライト単位の一部についてビジー状態となっていても可能な限りライト処理を継続することができる。これにより、ビジー時間のランダムなばらつきが原因となって発生するライトパフォーマンスの低下を改善することができる。
【０１２３】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１２４】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disc）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【０１２５】
なお、本技術は以下のような構成もとることができる。
（１）メモリに対するライト単位を分割した部分単位のデータを少なくとも１つ保持する部分単位バッファと、
前記部分単位の何れかについて前記メモリにおいてビジー状態を示す場合であっても当該部分単位のデータを前記部分単位バッファにおいて保持できる状態であれば前記メモリに対する前記ライト単位のライトリクエストを生成するリクエスト生成部と
を具備する記憶制御装置。
（２）前記ライトリクエストが生成された場合、前記メモリがビジー状態を示す前記部分単位のデータを前記部分単位バッファに保持させ、前記メモリがビジー状態を示さない前記部分単位のデータを前記メモリに転送するライト制御部をさらに具備する前記（１）に記載の記憶制御装置。
（３）前記ライト制御部は、ビジー状態が解消された前記部分単位について次のデータが前記部分単位バッファに保持されている場合にはそのデータを前記部分単位バッファから前記メモリに転送する前記（２）に記載の記憶制御装置。
（４）前記メモリにおいてビジー状態を示す前記部分単位が存在し、かつ、当該部分単位のデータを前記部分単位バッファにおいて保持できない状態である場合にはビジー状態である旨を示し、前記部分単位バッファに空きがあり、かつ、前記部分単位の何れも前記メモリにおいてビジー状態を示さない場合、または、前記メモリにおいてビジー状態を示す前記部分単位が存在しても当該部分単位のデータを前記部分単位バッファにおいて保持できる状態である場合にはレディ状態である旨を示す信号を生成する信号生成部をさらに具備し、
前記リクエスト生成部は、前記信号がレディ状態である旨を示す場合に前記ライト単位のライトリクエストを生成する
前記（１）から（３）のいずれかに記載の記憶制御装置。
（５）前記部分単位バッファは、前記部分単位のデータを複数保持する前記（１）から（４）のいずれかに記載の記憶制御装置。
（６）ライト単位を複数の部分単位に分割してデータを記憶するメモリセルアレイと、
前記部分単位のデータを少なくとも１つ保持する部分単位バッファと、
前記部分単位の何れかについて前記メモリセルアレイにおいてビジー状態を示す場合であっても当該部分単位のデータを前記部分単位バッファにおいて保持できる状態であれば前記メモリセルアレイに対する前記ライト単位のライトリクエストを生成するリクエスト生成部と、
前記ライトリクエストが生成された場合、ビジー状態を示す前記部分単位のデータを前記部分単位バッファに保持させ、ビジー状態を示さない前記部分単位のデータを前記メモリセルアレイに転送するライト制御部と
を具備する記憶装置。
（７）前記メモリセルアレイは、不揮発性メモリ素子からなるメモリセルを含む前記（６）に記載の記憶装置。
（８）ライト単位を複数の部分単位に分割してデータを記憶するメモリセルアレイと、
前記ライト単位のライトコマンドを発行するホストコンピュータと、
前記部分単位のデータを少なくとも１つ保持する部分単位バッファと、
前記ライトコマンドが発行された際に、前記部分単位の何れかについて前記メモリセルアレイにおいてビジー状態を示す場合であっても当該部分単位のデータを前記部分単位バッファにおいて保持できる状態であれば前記メモリセルアレイに対する前記ライト単位のライトリクエストを生成するリクエスト生成部と、
前記ライトリクエストが生成された場合、ビジー状態を示す前記部分単位のデータを前記部分単位バッファに保持させ、ビジー状態を示さない前記部分単位のデータを前記メモリセルアレイに転送するライト制御部と
を具備する情報処理システム。
（９）メモリのライト単位を分割した部分単位の何れかについて前記メモリにおいてビジー状態を示す場合であっても当該部分単位のデータを部分単位バッファにおいて保持できる状態であれば前記メモリに対する前記ライト単位のライトリクエストを生成するリクエスト生成手順と、
前記ライトリクエストが生成された場合、ビジー状態を示す前記部分単位のデータを前記部分単位バッファに保持させ、ビジー状態を示さない前記部分単位のデータを前記メモリに転送するライト制御手順と
を具備する記憶制御方法。
【符号の説明】
【０１２６】
２１  リクエスト生成部
３１  メモリセルアレイ
３２  部分単位バッファ
３５  ライト制御部
１００  ホストコンピュータ
２００  メモリコントローラ
２０１  ホストインターフェース
２０２  メモリインターフェース
３００  メモリ
３１０〜３１２  メモリセルアレイ
３２０  サブページバッファ
２２０、３２１  ページバッファ
２３０、３３０  サブページアドレスバッファ
３３１  ページアドレスバッファ
３４０〜３４４  分配器
２５０、３５１  ビジー信号生成回路
３９０〜３９４  コントローラインターフェース回路
４００  メモリシステム
【図１】
2014174659.tif 000003
【図２】
2014174659.tif 000004
【図３】
2014174659.tif 000005
【図４】
2014174659.tif 000006
【図５】
2014174659.tif 000007
【図６】
2014174659.tif 000008
【図７】
2014174659.tif 000009
【図８】
2014174659.tif 000010
【図９】
2014174659.tif 000011
【図１０】
2014174659.tif 000012
【図１１】
2014174659.tif 000013
【図１２】
2014174659.tif 000014
【図１３】
2014174659.tif 000015
【図１４】
2014174659.tif 000016
【図１５】
2014174659.tif 000017
【図１６】
2014174659.tif 000018
【図１７】
2014174659.tif 000019
【図１８】
2014174659.tif 000020
【図１９】
2014174659.tif 000021
【図２０】
2014174659.tif 000022
【図２１】
2014174659.tif 000023
【図２２】
2014174659.tif 000024
【図２３】
2014174659.tif 000025
【図２４】
2014174659.tif 000026