(57)【特許請求の範囲】
【請求項１】
複数のセルを書き込み単位としてデータを書き込まれる不揮発性のメモリと、
ホスト・デバイスからの論理アドレスを割り当てられた書き込みデータを前記メモリに書き込む要求に対して前記書き込みデータの分割された部分である書き込みデータ部分の送信を前記ホスト・デバイスに対して前記書き込みデータ部分のサイズを指定しながら要求するコントローラと、
を具備し、
前記コントローラは、前記書き込みデータ部分を受信すると、
前記書き込みデータ部分の複数の部分のそれぞれについての複数の付加的データを用意し、
前記書き込みデータ部分および前記複数の付加的データを前記メモリに書き込み、
前記書き込みデータ部分の前記複数の部分の各々は同じ固定のサイズを有し、
前記複数の付加的データの各々は同じ固定のサイズを有し、
前記書き込みデータ部分は前記書き込みデータ部分のサイズと前記複数の付加的データのサイズとの和が前記書き込み単位のサイズ以下のサイズのうちで最大となるように決定された第１サイズを有するか、前記書き込みデータ部分は前記第１サイズの整数倍のサイズを有する、
ことを特徴とするメモリ・デバイス。
【請求項２】
前記複数の付加的データの各々が、前記書き込みデータ部分の前記複数の部分のうちの対応する１つのための管理データおよび誤り訂正符号の少なくとも一方を含み、
前記コントローラが、前記誤り訂正符号を生成する誤り訂正符号回路を具備し、
前記誤り訂正符号回路が、訂正単位ごとに誤り訂正符号を生成し、
前記訂正単位のサイズが、前記書き込みデータ部分の前記複数の部分の各々のサイズと等しい、
ことを特徴とする請求項１に記載のメモリ・デバイス。
【請求項３】
前記書き込み単位のサイズから前記書き込みデータ部分および前記複数の付加的データのサイズを減じた部分のサイズが、前記訂正単位と前記訂正単位のための付加的データのサイズ以下である、
ことを特徴とする請求項２に記載のメモリ・デバイス。
【請求項４】
前記メモリ・デバイスが、
前記コントローラの機能の一部と前記メモリのメモリ領域の一部とを各々が含む第１ロジカル・ユニットおよび第２ロジカル・ユニットを含み、
前記第１、第２ロジカル・ユニットは相互に独立して、対応する自身のメモリ領域にデータを書き込み、かつ前記転送の要求を行う、
ことを特徴とする請求項１に記載のメモリ・デバイス。
【請求項５】
前記コントローラが、前記書き込みデータの分割された部分である複数の第２書き込みデータ部分のうちの先頭の第２書き込みデータ部分を第２サイズとし、前記複数の第２書き込みデータ部分のうちの前記先頭の第２書き込みデータ部分に続きかつ最後の第２書き込みデータ部分を除く１つまたは複数の第２書き込みデータ部分を前記第２サイズ以上の第３サイズとし、前記最後の第２書き込みデータ部分を前記第３サイズ以下の第４サイズとして、前記複数の第２書き込みデータ部分の転送を要求する、
ことを特徴とする請求項１に記載のメモリ・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はメモリ・デバイスに関する。
【背景技術】
【０００２】
データを保持するメディアとして種々のものが存在する。そのようなメディアとして、例えばクライアント・サーバ・モデルに基づいたメモリ・デバイスがある。クライアント・サーバ・モデルに基づいた、メモリ・デバイスおよびホスト・デバイスからなるメモリ・システムでは、別のメモリ・システムと異なる点がある。例えば、クライアント・サーバ・モデルに基づくメモリ・デバイスおよびホスト・デバイスの役割分担は、クライアント・サーバ・モデルに基づかないメモリ・デバイスおよびホスト・デバイスの役割分担と異なる。したがって、ホスト・デバイスとメモリ・デバイスとの間の通信内容も、クライアント・サーバ・モデルに基づくシステムと基づかないシステムとで異なる。
【０００３】
メモリ・システムは特定の規格に則っていることがある。例えば、クライアント・サーバ・モデルに基づくメモリ・システムとして、例えば、ＵＦＳ（Universal Flash Storage）メモリ・デバイスおよびホスト・デバイスが挙げられる。規格で定められている点については、メモリ・システムは仕様に則っていなければならない。しかしながら、規格で定められていない点も存在し、このような点については、メモリ・システムの設計者が定めることができる。このように自由度が存在する事項については、メモリ・システムの特性に適する形で好ましい性能が実現されるように、決定されるべきである。このような自由度を伴った事項に対して適切な決定を行なって、より高い性能を実現できるメモリ・デバイスを提供する要望がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００７／１１６４７６号パンフレット
【非特許文献】
【０００５】
【非特許文献１】JEDEC SOLID STATE TECHNOLOGY ASSOCIATION、JEDEC STANDARD（JESD220）、２０１１年２月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
より高い性能を実現できるメモリ・デバイスを提供しようとするものである。
【課題を解決するための手段】
【０００７】
実施形態の一実施形態によるメモリ・デバイスは、複数のセルを書き込み単位としてデータを書き込まれる不揮発性のメモリと、コントローラを含む。コントローラは、ホスト・デバイスからの論理アドレスを割り当てられた書き込みデータをメモリに書き込む要求に対して前記書き込みデータの分割された部分である書き込みデータ部分の送信を前記ホスト・デバイスに対して前記書き込みデータ部分のサイズを指定しながら要求する。コントローラは、前記書き込みデータ部分を受信すると、前記書き込みデータ部分の複数の部分のそれぞれについての複数の付加的データを用意し、前記書き込みデータ部分および前記複数の付加的データを前記メモリに書き込む。前記書き込みデータ部分の前記複数の部分の各々は同じ固定のサイズを有する。前記複数の付加的データの各々は同じ固定のサイズを有する。前記書き込みデータ部分は前記書き込みデータ部分のサイズと前記複数の付加的データのサイズとの和が前記書き込み単位のサイズ以下のサイズのうちで最大となるように決定された第１サイズを有するか、前記書き込みデータ部分は前記第１サイズの整数倍のサイズを有する。
【図面の簡単な説明】
【０００８】
【図１】メモリ・デバイスとホスト・デバイスとの間のデータ書き込みの際の通信の例を示している。
【図２】参考例のクライアント・サーバ・モデルに基づくメモリ・デバイスとホスト・デバイスとの間のデータ書き込みの際の通信の例を示している。
【図３】第１実施形態に係るメモリ・デバイスのハードウェア上の構成を示している。
【図４】メモリを例示する回路図。
【図５】メモリ空間の構成を例示する図。
【図６】メモリ・デバイスが封止された形態の例を示している。
【図７】第１実施形態に係るメモリ・デバイスの機能ブロックを示している。
【図８】パケットの例を示している。
【図９】論理アドレスと物理ブロックの変換テーブルの例を示している。
【図１０】第１実施形態に係るＬＵをより詳細に示す機能ブロック図である。
【図１１】第１実施形態に係るデータ書き込み時の通信の様子を示している。
【図１２】書き込みコマンドを例示している。
【図１３】転送要求のための通信内容を例示している。
【図１４】データ転送のための通信内容を例示している
【図１５】第２実施形態に係るデータ書き込み時の通信の様子を示している。
【図１６】第３実施形態に係るデータ書き込み時の通信の前半部の様子を示している。
【図１７】第３実施形態に係るデータ書き込み時の通信の後半部の様子を示している。
【図１８】第１実施形態に係る１ページ中のデータの中身を例示している。
【発明を実施するための形態】
【０００９】
実施形態の説明に先立ち、参考例について簡単に説明する。参考例として、クライアント・サーバ・モデルに基づくメモリ・システムおよび基づかないメモリ・システムについて説明する。クライアント・サーバ・モデルに基づかないメモリ・デバイスとして、ＳＤＴＭカードおよびｅＭＭＣを例に取る。
【００１０】
図１は、メモリ・デバイス（ＳＤＴＭカードまたはｅＭＭＣ）とホスト・デバイスとの間のデータ書き込みの際の通信の例を示している。図１に示されているように、ホスト・デバイスは書き込みコマンドを発行することにより、書き込みを開始する。書き込みコマンドは、書き込みデータに割り当てられた論理アドレスを含んでいる。論理アドレスは、書き込みデータの開始位置に対応する。メモリ・デバイスは、書き込みコマンドを受け取ると、レスポンスを返す。ホスト・デバイスは、レスポンスを受け取ると、メモリ・デバイスに書き込まれるべきデータ（書き込みデータ）を転送する。書き込みデータは、複数の書き込みデータ部分に分割されて転送される。書き込みデータ部分の大きさは、ＳＤＴＭカードまたはｅＭＭＣの規格に基づいて予め定められている。メモリ・デバイスは、データを受け取れる間は、レディー／ビジー信号を用いてレディー状態を通知する。メモリ・デバイスは、受け取ったデータを逐次、メモリ・デバイス内のメモリに書き込む。一方、例えばメモリ・デバイスのバッファが一杯になる等の理由でメモリ・デバイスがデータを受け取れなくなると、メモリ・デバイスは、ホスト・デバイスにビジー状態を通知する。メモリ・デバイスのビジー状態の間は、ホスト・デバイスはデータの転送を中断する。ビジー状態が解除されると、ホスト・デバイスはさらなる書き込みデータ部分データを送信する。このようにして、書き込みデータの全体が送信されると、メモリ・デバイスは、書き込み停止コマンドを送信する。メモリ・デバイスは、書き込み停止コマンドを受け取るとレスポンスを返し、書き込みは終了する。
【００１１】
このように、データの書き込みの位置はホスト・デバイスにより指定され、書き込みデータ部分の大きさも規格により定められている。すなわち、参考例のメモリ・システムでは、ホスト・デバイスがデータ転送の主導権を有しており、ホスト・デバイスが、メモリ・デバイスに指示を出し、メモリ・デバイスはその指示に従う。メモリ・デバイスが有する自由度は小さい。
【００１２】
図２は、クライアント・サーバ・モデルに基づくメモリ・デバイスとホスト・デバイスとの間のデータ書き込みの際の通信の例を示している。図２に示されているように、ホスト・デバイスは書き込みコマンドを発行することにより、書き込みを開始する。書き込みコマンドは、書き込みの位置を指定する論理アドレスおよび、この書き込みコマンドの対象の書き込みデータのサイズの情報を含んでいる。書き込みコマンドを受け取ると、メモリ・デバイスは、書き込みデータの転送要求の内容を決定する。転送要求には、書き込みデータのうちのメモリ・デバイスがホスト・デバイスからの転送を望む部分の大きさおよびオフセット・アドレスが含まれることになっている。オフセット・アドレスは、メモリ・デバイスが転送を望む部分の位置を特定するためのものである。ホスト・デバイスは、転送要求を受け取ると、要求されたデータ部分をメモリ・デバイスに転送する。メモリ・デバイスは、受け取ったデータ部分をメモリに書き込むことと、別のデータ部分の転送要求を送信することと、を実行する。この書き込みと転送要求は、書き込みデータ全体が書き込まれるまで継続する。書き込みデータ全体の書き込みの成功または失敗に応じて、メモリ・デバイスはホスト・デバイスに相応するレスポンスを送信する。
【００１３】
このように、図２の例では、メモリ・デバイスが書き込みデータ部分を決定し、転送要求を送信する。この書き込みにおいて、規格によって定められている事項と定められていない事項がある。例えば、メモリ・デバイスによる転送要求内のオフセット・アドレスがシーケンシャルであるかランダムであるかはホスト・デバイスにおいて任意に設定され、オフセット・アドレスの選択は、この設定に従わなければならない。一方、例えば、転送要求によって指定されるデータ部分の大きさは、仕様において定められていない場合がある。
【００１４】
以下に、このような知見に基づいて構成された実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１５】
（第１実施形態）
図３は、第１実施形態に係るメモリ・デバイスを概略的に示している。図３は、メモリ・デバイスのハードウェア上の構成を示している。図３に示されているように、メモリ・デバイス（半導体記憶装置）１は、ホスト・デバイス（以下、単にホストと称する場合がある）２と通信できるように構成されている。メモリ・デバイス１とホスト２は、少なくとも、ホスト２からの書き込み要求に対して、メモリ・デバイス１が書き込みデータの部分のサイズおよび位置を指定できる方式で通信する。より具体的には、メモリ・デバイス１とホスト２は、クライアント・サーバ・モデルに基づいて通信する。メモリ・デバイス１は、ターゲットとして動作し、ホスト２はイニシエータとして動作する。さらに具体的な例として、メモリ・デバイス１はＵＦＳメモリ・デバイスであり、ホスト２はＵＦＳメモリ・デバイスをサポートするホストである。
【００１６】
メモリ・デバイス１は、少なくとも、不揮発性の半導体メモリ１１と、メモリ１１を制御するためのメモリ・コントローラ１２とを含んでいる。メモリ１１は、複数ビットからなる特定の書き込み単位でデータの書き込みおよび読み出しを行う。さらに、メモリ１１は、複数の書き込み単位からなる消去単位でデータを消去する。
【００１７】
例えば、メモリ１１は１つまたは複数のＮＡＮＤ型フラッシュ・メモリからなる。メモリ１１がＮＡＮＤ型フラッシュ・メモリである場合、メモリ１１は、ページ単位でデータの書き込みおよび読み出しを行う。ページは、図４に示すように、接続された複数のメモリ・セルの集合のメモリ空間からなり、固有の物理アドレスを割り当てられている。各メモリ・セルは、いわゆる積層ゲート構造のＭＯＳＦＥＴ（metal oxide semiconductor field effect transistor）ＭＴからなる。各セル・トランジスタＭＴは、浮遊ゲート電極ＦＧに蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じた情報を記憶する。セル・トランジスタＭＴが電流経路（ソース／ドレインＳＤ）同士を相互に直列接続されてＮＡＮＤストリングを構成し、ＮＡＮＤストリングの両端に選択トランジスタＳ１、Ｓ２が接続される。選択トランジスタＳ２の電流経路の他端はビット線ＢＬに接続され、選択トランジスタＳ１の電流経路の他端はソース線ＳＬに接続されている。
【００１８】
ワード線ＷＬ０乃至ＷＬ６３は、ＷＬ方向に延び、同じ行に属する複数のセル・トランジスタＭＴの制御ゲート電極ＣＧに接続される。セル・トランジスタＭＴは、ビット線ＢＬとワード線ＷＬとの各交点に設けられる。セレクト・ゲート線ＳＧＤは、ＷＬ方向に延び、ブロック内の全選択トランジスタＳ２に接続されている。セレクト・ゲート線ＳＧＳは、ＷＬ方向に延び、ブロック内の全選択トランジスタＳ１に接続されている。同じワード線ＷＬと接続されている複数のメモリ・セル・トランジスタＭＴは、ページを構成する。
【００１９】
メモリ１１がＮＡＮＤ型フラッシュ・メモリである場合、セル・トランジスタＭＴが２つ以上の閾値電圧の異なる状態を取り得る、つまり1つのメモリ・セルが多値（多ビット）を記憶できるようにメモリ１１が構成されていてもよい。そのような多値を記憶可能なメモリの場合、１つのワード線に複数ページが割り当てられる。
【００２０】
メモリ１１は、図５に示すように、複数のメモリ・セルからなるメモリ・セルアレイ９１と、メモリ・セルとの間でデータの入出力を行うページ・バッファ９２とを備えている。ページ・バッファ９２は、１ページ分のデータを保持する。メモリ１１へのデータの書き込みを行う場合、メモリ・コントローラ１２は、書き込みコマンドとともに、書き込み先を示すページアドレスと１ページ分の書き込みデータとをメモリ１１に送信する。メモリ１１は、メモリ・コントローラ１２から受信した書き込みデータをページ・バッファ９２に格納し、ページ・バッファ９２内の書き込みデータをページアドレスで指定されたメモリ・セルへと書き込む。このメモリ・セルへの書き込み動作を開始すると、メモリ１１はメモリ・コントローラ１２に対して動作中であることを示すビジー信号を出力する。引き続きデータを書き込む場合、ビジー信号がレディー信号に切り替わった後、次のページアドレスに対して上記と同様の動作を行う。
【００２１】
メモリ１１からのデータの読み出しを行う場合、メモリ・コントローラ１２は、読み出しコマンドとともに、読み出し先を示すページアドレスをメモリ１１に送信する。メモリ１１は、ページアドレスで指定されたメモリ・セルからページ・バッファ９２に１ページ分のデータを読み出す。このメモリ・セルからの読み出し動作を開始すると、メモリ１１はメモリ・コントローラ１２に対してビジー信号を出力する。そして、ビジー信号がレディー信号に切り替わった後、ページ・バッファ９２に格納された読み出しデータがメモリ・コントローラ１１に出力される。引き続きデータを読み出す場合、次のページアドレスに対して上記と同様の動作を行う。
【００２２】
また、メモリ１１がＮＡＮＤ型フラッシュ・メモリである場合、メモリ１１は、ブロック単位でデータの消去を行う。各ブロックは、連続する物理アドレスを有する複数のページからなる。以下の説明では、便宜上、書き込み単位をページとし、消去単位をブロックとする。しかしながら、メモリ１１は、必ずしもＮＡＮＤ型フラッシュ・メモリに限られない。
【００２３】
図３に戻る。メモリ・デバイス１は、Ｉ／Ｏ２１、コア・ロジック部２２、Ｉ／Ｏ２３を含んでいる。Ｉ／Ｏ２１は、メモリ・デバイス１がホスト２と接続するためのハードウェア上の構成を含んでいる。メモリ・デバイス１がＵＦＳメモリ・デバイスである場合、メモリ・デバイス１とホスト２との間の信号には、ＲＥＳＥＴ、ＲＥＦ＿ＣＬＫ、ＤＯＵＴ、ＤＯＵＴ＿ｃ、ＤＩＮ、ＤＩＮ＿ｃ、ＶＣＣ、ＶＣＣＱ、ＶＣＣＱ２、ＶＤＤｉ、ＶＤＤｉ２、ＶＤＤｉ３が含まれる。ＲＥＳＥＴ、ＲＥＦ＿ＣＬＫ、ＤＯＵＴ、ＤＯＵＴ＿ｃ、ＤＩＮ、ＤＩＮ＿ｃは、ホスト２とＩ／Ｏ２１との間で通信される。ＲＥＳＥＴは、ハードウェア・リセット信号である。ＲＥＦ＿ＣＬＫは、参照クロックである。ＤＯＵＴとＤＯＵＴ＿ｃは差動信号対を形成し、ホスト２からメモリ・デバイス１へ送信される信号である。ＤＩＮとＤＩＮ＿ｃは差動信号対を形成し、メモリ・デバイス１からホスト２へ送信される信号である。ＶＣＣ、ＶＣＣＱ、ＶＣＣＱ２は、メモリ１１およびコア・ロジック部２２に供給される電源電圧である。ＶＤＤｉ、ＶＤＤｉ２、ＶＤＤｉ３は、コア・ロジック部２２に供給され、コア・ロジック部２２内に電圧レギュレータが設けられる際の入力端子である。
【００２４】
コア・ロジック部２２は、メモリ・コントローラ１２のうちのＩ／Ｏを除く主要部分である。Ｉ／Ｏ２３は、メモリ・コントローラ１２がメモリ１１と接続するためのハードウェア上の構成を含んでいる。コア・ロジック部２２は、ホスト・インターフェース３１、バッファ３２、データ・バス３３、メモリ・インターフェース３４、バッファ３５、ＥＣＣ回路３６、制御バス４１、ＣＰＵ（central processing unit）４２、ＲＯＭ（read only memory）４３、ワークＲＡＭ（random access memory）４５、レジスタ４６を含んでいる。
【００２５】
Ｉ／Ｏ２１は、ホスト・インターフェース３１と接続されている。ホスト・インターフェース３１は、メモリ・デバイス１とホスト２が通信するのに必要な処理を行なう。より具体的には、ホスト・インターフェース３１は、メモリ・デバイス１とホスト２がともに準拠している通信プロトコルに則ってメモリ・デバイス１とホスト２との間の通信を担う。メモリ・デバイス１がＵＦＳメモリ・デバイスである場合、例えば、ホスト・インターフェース３１は、ＵＦＳインターフェースである。ＵＦＳインターフェースは、物理層についてはＭ−ＰＨＹ規格に則っており、リンク層についてはＵｎｉＰｒｏ規格に則っている。
【００２６】
ホスト・インターフェース３１は、バッファ３２と接続されている。バッファ３２は、ホスト２からメモリ・デバイス１に送信されたデータをホスト・インターフェース３１を介して受け取り、これを一時的に保持する。また、バッファ３２は、メモリ・デバイス１からホスト・インターフェース３１を介してホスト２へ送信されるデータを一時的に保持する。バッファ３２はデータ・バス３３と接続されている。
【００２７】
Ｉ／Ｏ２３は、メモリ・インターフェース３４と接続されている。メモリ・インターフェース３４は、メモリ・コントローラ１２がメモリ１１と通信するのに必要な処理を行なう。より具体的には、メモリ・インターフェース３４は、コア・ロジック部２２からの指示をメモリ１１が認識可能な形態で送信する。メモリ１１がＮＡＮＤ型フラッシュ・メモリである場合、メモリ・インターフェース３４は、ＮＡＮＤフラッシュ・インターフェースである。
【００２８】
メモリ・インターフェース３４は、バッファ３５と接続されている。バッファ３５は、メモリ１１からメモリ・コントローラ１２に送信されたデータをメモリ・インターフェース３４を介して受け取り、これを一時的に保持する。また、バッファ３５は、メモリ・コントローラ１２からメモリ１１にメモリ・インターフェース３４を介して送信される予定のデータを一時的に保持する。バッファ３５はデータ・バス３３と接続されている。メモリ・インターフェース３４およびバッファ３５は、ＥＣＣ（error correcting code）回路３６と接続されている。ＥＣＣ回路３６はまた、データ・バッファ３５と接続されている。ＥＣＣ回路３６は、ホスト２からの書き込みデータをデータ・バス３３を介して受け取り、書き込みデータにエラー訂正符号を付加し、エラー訂正符号を付された書き込みデータをバッファ３５に供給する。また、ＥＣＣ回路３６は、メモリ１１から供給されたデータをバッファ３５を介して受け取り、このデータに対してエラー訂正符号を用いてエラー訂正を行い、エラー訂正されたデータをデータ・バス３３に供給する。
【００２９】
制御バス４１には、ＣＰＵ４２、ＲＯＭ４３、ＲＡＭ４５、レジスタ４６が接続されている。ＣＰＵ４２、ＲＯＭ４３、ＲＡＭ４５、レジスタ４６は、制御バス４１を介して相互に通信する。ＣＰＵ４２は、メモリ・デバイス１の全体の動作を司る。ＣＰＵ４２は、ＲＯＭ４３に格納されている制御プログラム（命令）に従って所定の処理を実行する。ＣＰＵ４２は、制御プログラムに従ってホスト２から受けたコマンドに従ってメモリ１１に対する所定の処理を実行したりする。
【００３０】
ＲＯＭ４３は、ＣＰＵ４２により実行される制御プログラムなどを格納する。ＲＡＭ４５は、ＣＰＵ４２の作業エリアとして使用され、ＣＰＵ４２の作業に必要な変数等を一時的に記憶する。レジスタ４６は、メモリ・デバイス１の動作に必要な種々の値を保持する。また、レジスタ４６は、ホスト２が、メモリ・デバイス１を制御するのに必要な種々の値を保持する。
【００３１】
制御バス４１には、ホスト・インターフェース３１、バッファ３２、メモリ・インターフェース３４、バッファ３５が接続されている。ＣＰＵ４２は、制御プログラムやホスト２からの指示に基づいて、ホスト・インターフェース３１、バッファ３２、メモリ・インターフェース３４、バッファ３５を制御する。メモリ・コントローラ１２には、アナログ回路５１が設けられていてもよい。
【００３２】
メモリ・デバイス１は、例えば、プリント基板上に半田により実装される埋め込み型でも良いし、ホスト２に設けられたカード・スロットに対して脱着可能なリムーバブル型でもよい。図６は、封止された形態のメモリ・デバイス１の例を示している。図６に示されているように、プリント基板２０１上にチップ状の複数のメモリ１１が積層されている。各メモリ１１は、プリント基板２０１上の配線パターン（図示せず）にワイヤ２０２により接続されている。チップ状のメモリ・コントローラ１２も、プリント基板２０１上に置かれ、ワイヤ２０２により配線パターンに接続されている。プリント基板２０１の裏面には、図示せぬ外部端子（例えば、ＢＧＡ（ball grid array））が設けられている。外部端子には、図３に示した信号（ＲＥＳＥＴ、ＲＥＦ＿ＣＬＫ、ＤＯＵＴ、ＤＯＵＴ＿ｃ、ＤＩＮ、ＤＩＮ＿ｃ、ＶＣＣ、ＶＣＣＱ、ＶＣＣＱ２、ＶＤＤｉ、ＶＤＤｉ２、ＶＤＤｉ３が割り当てられ、この外部端子を介してメモリ・デバイス１外部のホスト２との間で信号が通信される。プリント基板２０１、メモリ１１、メモリ・コントローラ１２、ワイヤ２０２は、例えば樹脂製のパッケージ２０３により封止されている。
【００３３】
次に、図７に、メモリ・デバイス１の構成の別の視点を示す。より具体的には、図７は、メモリ・デバイス１の論理構成、すなわち機能ブロックを示している。各ブロックは、ハードウェア、コンピュータ・ソフトウェアのいずれかまたは両者を組み合わせたものとして実現されることが可能である。各機能ブロックが、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは、必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示のブロックがさらに細かい機能サブブロックに分割されていてもよい。どのブロックによって特定されるかによって実施形態が限定されるものではない。
【００３４】
メモリ・デバイス１は、ターゲット・ポート６１、ルータ６２、デバイス・マネージャ６３、デスクリプタ６４、アトリビュート６５、フラグ６６、複数のＬＵ（logical unit）６７を含んでいる。ターゲット・ポート６１は、メモリ・デバイス１がホスト２と通信可能に接続されるためのポートであり、例えばホスト・インターフェース３１に対応する。ルータ６２は、ホスト２から受信された通信（タスク、コマンド、データ、クエリー等）を宛先のＬＵ６７にルーティングする。ホスト２は、コマンドの処理またはタスク管理機能を、１つのＬＵ６７を宛先とする要求を通じて要求する。ＬＵ６７同士は、アドレス（例えばＬＵＮ（logical unit number））により相互に識別されることが可能である。ＬＵＮは、例えば、図８に示されているように、メモリ・デバイス１とホスト２との間の通信（パケット）に含められることが可能である。図８に示されているように、パケット１０１は、ＬＵＮ１０２と、実体部１０３を含んでいる。ＬＵＮ１０２は、例えばパケット１０１のヘッダに含められることが可能である。実体部１０３は、パケットの機能に固有の内容、例えばコマンド、データ、各種のパラメータ等を含んでいる。各パケットの宛先のＬＵ６７は、ＬＵＮにより一意に特定される。ＵＦＳメモリ・デバイスでは、メモリ・デバイス１とホスト２との間のパケットはいずれもヘッダを含んでおり、ヘッダ内にＬＵＮが記述されている。
【００３５】
ルータ６２は、ホスト２から受信された通信（タスク、コマンド、データ、クエリー）を、この通信中のＬＵＮに基づいて、宛先のＬＵ６７にルーティングする。また、ルータ６２は、複数のＬＵ６７からのホスト２宛ての通信を例えば時分割によって適当な順序でターゲット・ポート６１に送信する。ルータ６２は、例えばＣＰＵ４２、ＲＯＭ４３、レジスタ４６により実現される。すなわち、ＣＰＵ４２によって、ＲＯＭ４３中のプログラムが、レジスタ４６中の値を参照しながら実行されることを通じて実現される。
【００３６】
デバイス・マネージャ６３は、デバイス・レベルの動作およびコンフィギュレーションの管理を行なう。デバイス・レベルの管理には、例えば、メモリ・デバイス１の電力管理、スリープ等の制御等が含まれる。デバイス・レベルのコンフィギュレーションには、デスクリプタの組を保持すること等が含まれる。デバイス・マネージャ６３は、ホスト２からのメモリ・デバイス１のコンフィギュレーション情報の変更および出力要求であるクエリー要求のようなコマンドを処理する。デバイス・マネージャ６３は、例えばＣＰＵ４２、ＲＯＭ４３、レジスタ４６により実現される。すなわち、ＣＰＵ４２によって、ＲＯＭ４３中のプログラムが、レジスタ４６中の値を参照しながら実行されることを通じて実現される。
【００３７】
デスクリプタ６４、アトリビュート６５、フラグ６６は、例えばワークＲＡＭ４５中のデータとして実現される。デスクリプタ６４は、予め定義されたフォーマットのデータ構造を有し、メモリ・デバイス１についての何らかの特徴を記述するためのものである。デスクリプタ６４には、例えば、メモリ・デバイス１にアクセスするのに必要なデバイス・クラス、サブ・クラス、プロトコル等が含まれる。アトリビュート６５は、メモリ・デバイス１に与えられた設定を示す変更可能または読み出し専用のパラメータである。アトリビュート６５には、例えば、メモリ・デバイス１とホスト２との間で転送可能なデータの最大値等が含まれる。フラグ６６は、種々の項目についての択一的な論理値からなり、例えば「真」または「偽」、あるいは「０」または「１」等により表わされる。
【００３８】
各ＬＵ６７は、例えばメモリ１１、メモリ・インターフェース３４、バッファ３５、ＥＣＣ回路３６、ＣＰＵ４２、ＲＯＭ４３、レジスタ４６により実現される。各ＬＵ６７は、相互に独立して、ホスト２からの処理を実行する。したがって、各ＬＵ６７はメモリ１１、インターフェース２１、２３、バッファ３５、ＥＣＣ回路３６、ＣＰＵ４２、ＲＯＭ４３、レジスタ４６等の資源の一部を利用して実現される。各ＬＵは、上記のようにホスト２からは１つのＬＵを特定するＬＵＮによって相互に区別される。ホスト２からのコマンドは指定されたＬＵ６７によって実行される。
【００３９】
各ＬＵ６７は、デバイス・サーバ７１、タスク・マネージャ７２、メモリ領域７３を含んでいる。メモリ領域７３は、メモリ１１のメモリ領域のうちの一部から構成され、ホスト２からの書き込みデータを実際に格納する。デバイス・サーバ７１およびタスク・マネージャ７２は、例えばＣＰＵ４２、ＲＯＭ４３、レジスタ４６により実現される。すなわち、ＣＰＵ４２によって、ＲＯＭ４３中のプログラムが、レジスタ４６中の値を参照しながら実行されることを通じて実現される。デバイス・サーバ７１は、ホスト２から受信されたＬＵレベルの処理を要求するコマンドを解釈し、実行する。そのような処理には、例えば、データの書き込み、読み出し、消去等が含まれる。ＬＵ６７はメモリ領域７３を含んでいるので、デバイス・サーバ７１は、少なくともメモリ領域７３（メモリ１１）を制御する機能を有している。タスク・マネージャ７２は、複数のコマンド（タスク）の実行の順序を制御し、タスク管理機能を提供する。
【００４０】
上記のように、デバイス・サーバ７１は、メモリ１１の制御に関する処理を行なう。そのような処理には、論理アドレスと物理アドレスの変換が含まれる。論理アドレスは、ホスト２によって、ホスト２がメモリ・デバイス１に書き込むことを望むデータに割り当てられるアドレスである。物理アドレスは、上記のように、メモリ１１の書き込み領域（ページ）または消去領域（ブロック）を特定するためのアドレスである。デバイス・サーバ７１は、自身に対応するメモリ領域７３によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない、または無効なデータを保持している状態）であるかを管理することを含んでいる。その管理のために、デバイス・サーバ７１は、例えば論理アドレス・物理アドレス変換テーブル（以下、単に変換テーブルと称する場合がある）を保持している。
【００４１】
変換の例として、例えば、図９に示されているように、割り当てをブロックとすることができる。各ブロック中の各ページに対して、固定の論理アドレス・オフセットが割り当てられている。図９は、メモリ１１の書き込み単位の大きさが１６ｋＢであり、論理アドレスが５１２Ｂサイズのデータごとに割り当てられている例を示している。
【００４２】
次に、図１０および図１１を参照して、データ書き込みの際の動作について説明する。図１０は、第１実施形態に係るＬＵ６７をより詳細に示す機能ブロック図である。図１１は、第１実施形態に係るデータ書き込み時の通信の様子を示している。複数のＬＵ６７のうち、少なくとも１つ、典型的には全てが以下に図１０を参照して説明する構成を有している。図１０に示されているように、デバイス・サーバ７１は、管理部８１と、コマンド解析部８２と、転送要求生成部８３と、メモリ制御部８４を含んでいる。
【００４３】
管理部８１は、デバイス・サーバ７１の全体を管理する。コマンド解析部８２は、ホスト２からルータ６２を介してコマンドを受信する。コマンド解析部８２は、受信されたコマンドを解析する。コマンド制御部８２は、書き込みコマンドを受信すると、転送要求生成部８３に、転送要求の決定（生成）を要求する。この転送要求生成部８３への要求は、コマンド解析部８２が直接行なってもよいし、管理部８１により行われてもよい。転送要求生成部８３は、要求を受けると、書き込みコマンドに含まれている書き込みデータのサイズおよびアドレスに基づいて転送要求を生成する。メモリ制御部８４は、管理部８１の指示に従って、メモリ１１に対するあらゆる指示の発行を担う。
【００４４】
次に、図１１を参照して、データ書き込み時のシーケンスについて説明する。本例は、１つのＬＵ６７に対するデータ書き込み要求に関する。このため、各通信はいずれも、この１つのＬＵ６７とホスト２との間の通信（パケット）に相当する。
【００４５】
図１１に示されているように、書き込みコマンドがホスト２からメモリ・デバイス１に送信される。書き込みコマンドは、図１２に示されているように、少なくとも、ＬＵＮ１０２、書き込み指示１１１、アドレス１１２、書き込みデータ・サイズ１１３を含んでいる。アドレス１１２は、書き込みデータが書き込まれる位置（論理アドレス）である。書き込みデータ・サイズ１１３は、書き込みデータの全体のサイズを示す。
【００４６】
ＵＦＳメモリ・システムでは、データ、コマンド、クエリー等はいずれもパケットによって転送される。メモリ・デバイス１およびホスト２がＵＦＳメモリ・システムである場合、書き込みコマンドは、コマンド転送パケット（Command UPIU）に相当する。コマンド転送パケットはヘッダを含み、パケットの実体部にコマンド記述部が含まれており、コマンド記述部にＳＣＳＩ（small computer system interface）コマンドが格納されている。ＳＣＳＩコマンド中に、書き込みコマンド１１１、アドレス１１２、書き込みデータ・サイズ１１３が含まれている。
【００４７】
書き込みコマンドは、宛先のＬＵ６７中のコマンド解析部８２により受信される。受信されたコマンドが書き込みコマンドであると、コマンド解析部８２は、直接または管理部８１を介して転送要求生成部８３に転送要求の生成を要求する。生成要求を受け取ると、転送要求生成部８３は、メモリ１１の特性を考慮して、具体的には、書き込みデータの論理アドレスおよびサイズを考慮して、転送要求を生成する。より具体的には、まず、転送要求生成部８３は、書き込みデータの論理アドレスを参照して、書き込み要求が書き込み先のページの先頭からの書き込み要求に相当するかを検査する。本例では、論理アドレスは０ｘ００００であり、これは、ブロック（すなわちページ）の先頭からの書き込み要求に相当する。転送要求生成部８３は、このことを知得すると、書き込みデータのうちの、１ページのサイズに等しい部分の転送をホスト２に要求する。メモリ１１は、ページ単位でデータ書き込みを行なうので、書き込みデータのうちの１ページと同じサイズの部分（書き込みデータ部分）ごとにデータを受信すると、効率よくデータを書き込めるからである。逆に、例えばページの１．５倍のサイズなどであると、書き込みデータ部分のさらに一部をバッファに一時格納する必要が生じる等の理由により、データ書き込み効率が低下する可能性がある。このように、書き込み要求が書き込み先ページの先頭からの書き込みに相当するのであれば、転送要求生成部８３は、書き込みデータ全体の先頭からページ・サイズの部分の転送を要求する。より具体的には、本例に従うと、論理アドレスが０ｘ００００からの１６ｋＢサイズの書き込みデータ部分の転送要求が生成される。この転送要求は、図１１に示されているように、管理部８１、ルータ６２を介してホスト２に送信される。なお、書き込み要求がページの先頭からの書き込み要求に相当しない場合については、第２実施形態において説明する。
【００４８】
転送要求は、図１３に示されているように、ＬＵＮ（ヘッダ）１０２、転送データ・アドレス１２１、転送データ・サイズ１２２を含んでいる。転送データ・アドレス１２１は、ＬＵ６７が転送を要求する、書き込みデータ部分のオフセット・アドレスを示す。転送データ・サイズ１２２は、対応する書き込みデータ部分のサイズを示す。メモリ・デバイス１およびホスト２がＵＦＳメモリ・システムである場合、転送要求は、転送要求パケット（Ready To Transfer UPIU）に相当する。転送要求パケットは、パケットの実体部において、ＬＵ６７がデータ転送の準備ができたことを示すとともに、転送データ・アドレス１２１、転送データ・サイズ１２２を含んでいる。
【００４９】
図１１に示されているように、ホスト２は、転送要求を受信すると、この転送要求に応じた書き込みデータ部分を送信する。データ転送は、図１４に示されているように、ＬＵＮ（ヘッダ）１０２、データ１３１を含んでいる。メモリ・デバイス１およびホスト２がＵＦＳメモリ・システムである場合、データ転送は、ホスト・データ転送パケット（Data Out UPIU）により行なわれる。ホスト・データ転送パケットは、パケットの実体部において、転送すべきデータを含んでいる。
【００５０】
ホスト２からの書き込みデータ部分は、メモリ・デバイス２において、より具体的には、対応する転送要求を発行したＬＵ６７によって受信される。受信された書き込みデータ部分は、メモリ制御部８４の制御によってメモリ領域７３の適切な位置に書き込まれる。
【００５１】
次いで、転送要求生成部８３は、次の転送要求を生成する。この転送要求は、書き込みデータ全体のうちの最初の書き込みデータ部分に続くページ・サイズの部分の転送を要求する。この２番目の書き込みデータ部分は、論理アドレスが０ｘ００２０からの１６ｋＢサイズの書き込みデータ部分に相当する。転送要求はホスト２に送信される。次いで、対応するデータ部分が、１番目のデータ部分を参照して説明したのと同様の手順でメモリ領域７３に書き込まれる。
【００５２】
以下、同様の処理が繰り返される。すなわち、転送要求生成部８３は、２番目の書き込みデータ部分に続く論理アドレス０ｘ００４０からの１６ｋＢサイズの３番目の書き込みデータ部分の転送の要求を生成する。これに応じて、対応するデータ部分が、メモリ領域７３に書き込まれる。さらに、転送要求生成部８３は、３番目の書き込みデータ部分に続く論理アドレス０ｘ００６０からの１６ｋＢサイズの最後の書き込みデータ部分の転送の要求を生成する。これに応じて、対応するデータ部分が、メモリ領域７３に書き込まれる。最後の書き込みデータ部分の大きさも１６ｋＢである。書き込みデータのサイズがページ・サイズの整数倍であり、かつ書き込み要求がページの先頭からの書き込み要求に相当していたからである。最後の書き込みデータ部分の転送要求の送信および書き込みが終了すると、対応するＬＵ６７のデバイス・サーバ（より具体的には管理部８１）は、書き込み成功の旨のレスポンスをホスト２に送信する。こうして、データ書き込みが完了する。
【００５３】
以上説明したように、第１実施形態に係るメモリ・デバイス１は、ホスト２からのデータ書き込み要求に対して転送されるべき各書き込みデータ部分の大きさを決定する権限を有しており、かつページ・サイズの書き込みデータ部分の転送を要求する。このため、１度に転送される書き込みデータ部分は、ページ・サイズを有するとともにその先頭および終端が書き込み先のページの先頭および終端と一致する。すると、メモリ・デバイス２は、受信された書き込みデータ部分をメモリ１１に書き込むのと並行して次の書き込みデータ部分を受信できる。データの書き込み中はメモリはビジー状態となるが、メモリ１１は書き込みデータを受け取れることに基づく。このような書き込みシーケンスにより、メモリ１１は効率よく書き込みを行なえる。
【００５４】
また、データを書き込む部分にデータが既に記憶されているかにかかわらず、一度データが書き込まれたページに対してそのデータを消去せずに再度データを書き込むことが禁止されているメモリにおいては、メモリのページのサイズ以上の単位で論理アドレスと物理アドレスとの変換を行う場合、ページの部分的な書き込みが生じないようにホスト２から書き込みデータ部分が転送されないと、書き込み効率が低下する。例えば、論理アドレスと物理アドレスの変換において、０ｘ００００から０ｘ００１Ｆまでの論理アドレスがメモリ１１(ページサイズ：１６ｋＢ)の第１ページの物理アドレスに対応し、０ｘ００２０から０ｘ００３Ｆまでの論理アドレスがメモリ１１の第２ページの物理アドレスに対応しているとする。ここで、論理アドレス０ｘ００１０からの１６ｋＢサイズの書き込みデータ部分がホストから転送されると、論理アドレス０ｘ００１０から０ｘ００１Ｆまでのデータが第１ページの半分に記憶され、論理アドレス０ｘ００２０から０ｘ００２Ｆまでのデータが第２ページの半分に記憶される。この後、メモリ・デバイスは、論理アドレス０ｘ００００から８ｋＢサイズの書き込みデータ部分をホストから受信すると、第１ページへの再書き込みが禁止されているため、第１ページに記憶された論理アドレス０ｘ００１０から０ｘ００１Ｆまでのデータを読み出して、ホストから受信した論理アドレス０ｘ００００から０ｘ０００Ｆまでの書き込みデータ部分とともに、新たな第３ページに記憶しなければならない。この第３ページへの書き込み後、０ｘ００００から０ｘ００１Ｆまでの論理アドレスはメモリ１１の第３ページの物理アドレスに対応付けられる。このように、ページの部分的な書き込みを行うと、ページの未書き込み部分に対する書き込み要求をホストから受けたときに、メモリ・デバイスは、既書き込みデータを新たなページにコピーしなければならない。また、論理アドレスと物理アドレスとの変換をメモリのブロック単位で行う場合は、ブロック単位で、既書き込みデータを新たなブロックにコピーしなければならないため、書き込み効率の低下はより顕著となる。
【００５５】
一方、第１実施形態に係るメモリ・デバイス１がホスト２に転送を要求する書き込みデータ部分は、ページ・サイズを有するとともに、その論理アドレスの先頭がページの先頭の物理アドレスに対応し、終端がページの終端の物理アドレスに対応している。このため、ページの部分的な書き込みが生じず、既書き込みデータのコピーに伴う書き込み効率の低下を回避できる。
【００５６】
また、上記のようにＥＣＣ回路３６は、書き込みデータにエラー訂正符号を付加する。具体的には、ＥＣＣ回路３６は、受け取った書き込みデータ部分を、ＥＣＣ回路３６の特性等に基づいて特定の大きさの部分（実データ部分と称する）に分割する。そして、ＥＣＣ回路３６は実データ部分ごとにＥＣＣを生成し、対応する実データ部分に付加する。すなわち、実データ部分は、ＥＣＣのための処理単位である。実データ部分、対応するＥＣＣ、および対応する管理データの組は例えばフレームなどと呼ばれる。ＥＣＣ回路３６からは、フレームが出力される。書き込みデータの宛先のＬＵに対応するデバイス・サーバ７１は、このフレームを対象とする受信済みのデータ書き込み要求に基づいて、ＥＣＣ回路３６からのフレームをバッファ３５に蓄積する。バッファ３５に蓄積されたフレームの個数が適当な数に達すると、対応するデバイス・サーバ７１は、複数フレームの組を対応するメモリ領域７３に書き込む。
【００５７】
ここで、メモリ・デバイス１は、フレームの大きさおよび種々の必要な管理データの大きさを考慮して、書き込みデータ部分の大きさを決定する。具体的には、メモリ・デバイス１は、書き込みデータ部分とこれに対応する全ての付加的データ（ＥＣＣ、管理データ）とを合わせたサイズがページ以下で最大となるように決定されたサイズの書き込みデータ部分を要求する。図１８は、第１実施形態に係るメモリ・デバイス１による１ページ中のデータの中身を例示している。すなわち、メモリ・デバイス１は、ページに書き込まれた結果、図１８に示されるように決定された大きさの書き込みデータ部分を要求する。図１８に示されるように、１フレームは、実データ部分３０１、対応する管理データ３０２、対応するＥＣＣ３０３からなる。図１８は、１０２４バイトの実データ部分３０１、２バイトの管理データ３０２、７６バイトのＥＣＣ３０３を例示している。さらに１ページごとに、管理データ３０６が含まれることになっている場合がある。管理データ３０６にもＥＣＣ３０７が付加される。管理データ３０６、ＥＣＣ３０７の大きさは、それぞれ例えば８バイト、７６バイトである。メモリ・デバイス１は、書き込みデータ部分の部分からなる複数の実データ部分３０１と第１付加的データ（例えばＥＣＣ３０３、３０７および管理データ３０２、３０６）とを合わせた大きさをページ・サイズから除いた未使用部３０８の大きさが、実データ部分３０１とその実データ部分に付加される第１付加的データ（例えばＥＣＣ３０３および管理データ３０２）の大きさより小さくなるように決定された大きさの書き込みデータ部分を要求する。このような大きさの書き込みデータ部分を用いることにより、ページを最大限に利用できる。
【００５８】
採用されるＥＣＣの方式により、ＥＣＣ処理単位に相当する実データ部分３０１の大きさは決まっている。同様に、管理データ３０２、ＥＣＣ３０３、管理データ３０７の大きさも決まっている。したがって、ページ・サイズ以下で最大の実データ部分３０１の個数は、ＥＣＣ処理単位の大きさにより定まる。このような個数の実データ部分３０１全体のサイズを最大総実データ部分サイズと称する場合がある。
【００５９】
（第２実施形態）
第２実施形態は、書き込み要求がページの先頭からの書き込み要求に相当しない場合に関する。第２実施形態に係るメモリ・デバイスは、第１実施形態と同じハードウェア構成（図３）および機能ブロック（図７）を有する。以下では、図１５を参照して、書き込みシーケンスについて第１実施形態と異なる点について説明する。一方、第２実施形態の説明で触れられていない点については、第１実施形態の記述が第２実施形態に全て適用されることに留意されたい。
【００６０】
図１５は、第２実施形態に係るデータ書き込み時の通信の様子を示している。図１５に示されているように、ホスト２による書き込み要求は、あるページの途中からの書き込みに相当する。このことは、図１５では、書き込みデータの論理アドレスが、０ｘ００１０であることを通じて表わされている（ここでは、論理アドレスと物理アドレスとの変換において、０ｘ００００から０ｘ００１Ｆまでの論理アドレスがメモリ１１の１ページの物理アドレスに対応している）。なお、書き込みデータのサイズは、６４ｋＢである。コマンド解析部８２は、受信した書き込みコマンドを解析して、書き込み要求がページの途中からの書き込みに相当することを認識する。すると、コマンド解析部８２は、書き込みデータの先頭から、書き込み先のページの終端までに相当するサイズの部分を１番目の書き込みデータ部分として要求する。すなわち、本例では、１番目の書き込みデータ部分は、書き込みデータの先頭から８ｋＢの部分からなり、より具体的には論理アドレス０ｘ００１０から始まり、８ｋＢサイズである。転送要求はホスト２により受信され、これに応じて、要求された書き込みデータ部分が、対応するデバイス・サーバ７１により受信される。次いで、書き込みデータ部分が、対応するメモリ領域７２に書き込まれる。
【００６１】
次に、転送要求生成部８３は、２番目の書き込みデータ部分の転送要求を生成する。１番目の書き込みデータ部分の終端は、書き込み先のページの終端に一致する。このため、これ以降の各書き込みデータ部分をページ・サイズとすることにより、各書き込みデータ部分の終端は、書き込み先のページの終端と一致する。すなわち、２番目の書き込みデータ部分は、論理アドレス０ｘ００２０から始まり、サイズが１６ｋＢである。このような書き込みデータ部分の転送要求がホスト２に送信され、対応する書き込みデータ部分がメモリ領域７２に書き込まれる。続いて、同様に、論理アドレス０ｘ００４０から始まる１６ｋＢサイズの３番目のデータ書き込み部分の転送要求がホスト２に送信され、対応する書き込みデータ部分がメモリ領域７２に書き込まれる。さらに、論理アドレス０ｘ００６０から始まり１６ｋＢサイズの４番目のデータ書き込み部分の転送要求がホスト２に送信され、対応する書き込みデータ部分がメモリ領域７２に書き込まれる。次に、書き込みデータのうちの残りの部分の転送要求およびメモリ領域７２への書き込みが行なわれる。本例では、最後の書き込みデータ部分は、論理アドレス０ｘ００８０から始まり８ｋＢサイズである。このデータ部分の転送要求がホスト２に送信され、対応する書き込みデータ部分がメモリ領域７２に書き込まれる。最後に、書き込み成功の旨のレスポンスがホスト２に送信される。
【００６２】
以上の書き込みを一般化すると以下のようになる。以下の「Ｎ（単位はバイト）」は、ページ・サイズである。ホスト２から、アドレスＹ（５１２バイト単位）からＸブロック（１ブロックは５１２バイト）分の書き込み要求を受信すると、Integer(Y*512/N)がInteger((Y+X-1)*512/N)より小さい場合（これは、同一ページ内に書き込みデータが収まらない場合にあたる）、メモリ・デバイスは、書き込みデータの先頭から ((Integer(Y*512/N)+1)*N)-Y*512バイト分を１番目の書き込みデータ部分として要求する。ここで、「Integer(P)」は（Ｐは任意の数値）、Ｐの整数部分を抽出する関数である。メモリ・デバイス１は、１番目の書き込みデータ部分をメモリ領域７２に書き込む。次いで、メモリ・デバイス１は、１番目の書き込みデータ部分に続く部分の先頭から連続する各次Ｎバイトの書き込みデータ部分のホスト２へ転送要求および転送された書き込みデータ部分の書き込みを、Integer((Y+X-1)*512/N)-Integer(Y*512/N)-1回行なう。最後に、メモリ・デバイス１は、残る(Y+X)*512-Integer((Y+X-1)*512/N)*Nバイトの書き込みデータ部分のホスト２への転送要求および転送された書き込みデータ部分の書き込みを行う。Integer(Y*512/N)がInteger((Y+X-1)*512/N)と同じ値の場合は（これは、同一ページ内で書き込みデータが収まる場合にあたる）、メモリ・デバイス１は、書き込みデータの先頭から X*512バイト分を書き込みデータ部分として要求し、転送されたデータの書き込みを行う。１ブロックが５１２バイトに関する説明であるが、上の説明は、値５１２をＭとして一般化されることが可能である。
【００６３】
以上、説明したように、第２実施形態に係るメモリ・デバイスでは、ページの途中からの書き込みに相当する要求を受け取ると、まず、書き込み先のページの終端までに相当するサイズの部分を１番目の書き込みデータ部分として要求する。その後は、メモリ・デバイスは、ページ・サイズの書き込みデータ部分の転送を要求する。この結果、ページの途中からのデータ書き込みに対応する要求であっても、各書き込みデータ部分はページ・サイズを有するとともにその先頭および終端が書き込み先のページの先頭および終端と一致する。この結果、第１実施形態と同じ原理により、メモリ１１は効率よく書き込みを行なえる。
【００６４】
第２実施形態でも、付加的データを考慮したサイズの書き込みデータ部分を使用できる。第２実施形態では、書き込み要求がページの途中からの書き込みに相当する。このため、コマンド解析部８２は、書き込みデータの先頭から書き込み先のページの終端までのサイズ以下で最大となるように決定されたサイズを有する１番目の書き込みデータ部分を要求する。２番目以降の書き込みデータ部分のサイズは、上記の最大総実データ部分のサイズと同じである。
【００６５】
（第３実施形態）
第３実施形態は、２つのＬＵへの並行したデータ書き込みに関する。第３実施形態に係
るメモリ・デバイスは、第１実施形態と同じハードウェア構成（図３）および機能ブロック（図７）を有する。以下では、図１６および図１７を参照して、書き込みシーケンスについて第１実施形態と異なる点について説明する。一方、第３実施形態の説明で触れられていない点については、第１実施形態の記述が第３実施形態に全て適用されることに留意されたい。
【００６６】
図１６および図１７は、第３実施形態に係るデータ書き込み時の通信の様子を示している。図１７は、図１６に続く部分である。図１６に示されているように、ホスト２は、論理アドレスが０ｘ００１０の書き込みデータをＬＵＮ０のＬＵ（第１ＬＵ）６７に書き込むことを要求するコマンドを第１ＬＵ６７に送信する。この書き込みコマンドは、第２実施形態と同じく、ページの途中からの書き込み要求に相当する。書き込みデータのサイズは、６４ｋＢである。次に、ホスト２は、論理アドレスが０ｘ０１１２の書き込みデータをＬＵＮ１のＬＵ（第２ＬＵ）６７に書き込むことを要求するコマンドを第２ＬＵ６７に送信する。この書き込みコマンドも、ページの途中からの書き込み要求に相当する。書き込みデータのサイズは、６４ｋＢである。以降の処理は、第１ＬＵ６７とホスト２との間の処理、および第２ＬＵ６７とホスト２との間の処理が並行して進行する。以下では、第１ＬＵ６７とホスト２との間の通信、および第２ＬＵ６７とホスト２との間の通信が交互に発生することを例に取る。しかしながら、このように交互に発生することは必須ではない。第１ＬＵ６７用の通信と第２ＬＵ６７用の通信の順序は、ルータ６２により制御される。
【００６７】
第１ＬＵ６７のコマンド解析部８２は、第２実施形態と同様に、受信した書き込みコマンドを解析して、書き込み要求がページの途中からの書き込み要求に相当することを認識する。すると、コマンド解析部８２は、書き込みデータの先頭から、書き込み先のページの終端までに相当するサイズの部分を１番目の書き込みデータ部分として要求する。すなわち、本例では、第１ＬＵ６７用の１番目の書き込みデータ部分は、書き込みデータの先頭から８ｋＢの部分からなり、より具体的には論理アドレス０ｘ００１０から始まり８ｋＢサイズである。転送要求はホスト２により受信され、これに応じて、要求された書き込みデータ部分が、対応するデバイス・サーバ７１により受信される。次いで、書き込みデータ部分が、第１ＬＵ６７中のメモリ領域７３に書き込まれる。
【００６８】
また、第２ＬＵ６７のコマンド解析部８２も、書き込み要求がページの途中からのデータ書き込みを要求していることを認識する。そして、コマンド解析部８２は、書き込みデータの先頭から、書き込み先のページの終端までに相当するサイズの部分を１番目の書き込みデータ部分として要求する。すなわち、本例では、第２ＬＵ６７用の１番目の書き込みデータ部分は、書き込みデータの先頭から７ｋＢの部分からなり、より具体的には論理アドレス０ｘ０１１２から始まり７ｋＢサイズである。転送要求はホスト２により受信され、これに応じて、要求された書き込みデータ部分が対応するデバイス・サーバ７１により受信される。次いで、書き込みデータ部分が、第２ＬＵ６７中のメモリ領域７３に書き込まれる。
【００６９】
第１ＬＵ６７のコマンド解析部８２は、１番目の書き込みデータ部分に続く論理アドレスすなわち０ｘ００２０から始まる１６ｋＢサイズの２番目の書き込みデータ部分の転送の要求を生成する。これに応じて、対応するデータ部分が、第１ＬＵ６７中のメモリ領域７３に書き込まれる。
【００７０】
第２ＬＵ６７のコマンド解析部８２は、１番目の書き込みデータ部分に続く論理アドレスすなわち０ｘ０１２０から始まる１６ｋＢサイズの２番目の書き込みデータ部分の転送の要求を生成する。これに応じて、対応するデータ部分が、第２ＬＵ６７中のメモリ領域７３に書き込まれる。
【００７１】
以下、同様にして、第１ＬＵ６７用の３番目の書き込みデータ部分、第２ＬＵ６７用の３番目の書き込みデータ部分、第１ＬＵ６７用の４番目の書き込みデータ部分、第２ＬＵ６７用の４番目の書き込みデータ部分について、この列挙の順序で、転送要求および書き込みの対が行なわれる。
【００７２】
次に、第１ＬＵ６７用の書き込みデータのうちの残りの部分、すなわち４番目の書き込みデータ部分に続く部分の転送要求およびメモリ１１への書き込みが行なわれる。本例では、最後の書き込みデータ部分は、論理アドレス０ｘ００８０から始まりサイズが８ｋＢである。このデータ部分の転送要求がホスト２に送信され、対応する書き込みデータ部分がメモリ領域７３に書き込まれる。
【００７３】
同様に、第２ＬＵ６７用の書き込みデータのうちの残りの部分、すなわち４番目の書き込みデータ部分に続く部分の転送要求およびメモリ１１への書き込みが行なわれる。本例では、最後の書き込みデータ部分は、論理アドレス０ｘ０１８０から始まりサイズが９ｋＢである。このデータ部分の転送要求がホスト２に送信され、対応する書き込みデータ部分がメモリ領域７３に書き込まれる。
【００７４】
最後に、第１ＬＵ６７への書き込み成功の旨のレスポンスが第１ＬＵ６７からホスト２に送信され、第２ＬＵ６７への書き込み成功の旨のレスポンスが第２ＬＵ６７からホスト２に送信される。
【００７５】
以上説明したように、第３実施形態に係るメモリ・デバイスは、ＬＵごとに、第２実施形態と同様に、ページの途中からの書き込みに相当する要求を受け取ると、まず、書き込み先のページの終端までに相当するサイズの部分を１番目の書き込みデータ部分として要求する。その後は、メモリ・デバイスは、ＬＵごとに、ページ・サイズの書き込みデータ部分の転送を要求する。このため、２つ以上のＬＵに対するデータ書き込み要求に対しても、第１および第２実施形態と同じ原理により、第１および第２実施形態と同じ利点を得られる。
【００７６】
第３実施形態においても、付加的データを考慮したサイズの書き込みデータ部分についての第１、第２実施形態用の記述が適用される。すなわち、各ＬＵについてのページの途中からの書き込みに相当する書き込み要求に対して、第２実施形態と同じ形で先頭の書き込みデータ部分を要求する。２番目以降の書き込みデータ部分のサイズは、上記の最大総実データ部分のサイズと同じである。
【００７７】
その他、各実施形態は、上記のものに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、この構成要件が削除された構成が実施形態として抽出され得る。
【００７８】
例えば、上記の実施形態では、メモリ・デバイス１がホスト２に転送を要求する書き込みデータ部分は、メモリ１１の１ページ分のサイズであるが、この書き込みデータ部分のサイズは１ページ分に限られず、ページ・サイズの整数倍であればよい。また、上記の実施形態では、書き込み要求がページの先頭からの書き込み要求に相当しない場合、書き込みデータの先頭から、書き込み先のページの終端までに相当するサイズの部分を１番目の書き込みデータ部分として要求しているが、その書き込み先のページの終端までに相当するサイズの部分と、それに続くページ・サイズ（または、ページ・サイズの整数倍）のデータとを合わせて、１番目の書き込みデータ部分として要求しても良い。
【００７９】
付加的データを考慮した場合も同じである。すなわち、書き込みデータ部分のサイズは、最大総実データ部分サイズの整数倍であってもよい。さらに、各ＬＵについてのページの途中からの書き込みに相当する書き込み要求に応答して、１番目の書き込みデータ部分は、書き込みデータの先頭から書き込み先のページの終端までのサイズ以下で最大となるように決定されたサイズと、それに続く１または複数の最大総実データ部分・サイズとの和であってもよい。
【符号の説明】
【００８０】
１…メモリ・デバイス、２…ホスト・デバイス、１１…メモリ、１２…コントローラ、２１…Ｉ／Ｏ、２２…コア・ロジック部、２３…Ｉ／Ｏ、３１…ホスト・インターフェース、３２…バッファ、３３…データ・バス、３４…メモリ・インターフェース、３５…バッファ、３６…ＥＣＣ回路、４１…制御バス、４２…ＣＰＵ、４３…ＲＯＭ、４５…ワークＲＡＭ、４６…レジスタ、５１…アナログ回路、６１…ターゲット・ポート、６２…タスク・ルータ、６３…デバイス・マネージャ、６４…デスクリプタ、６５…アトリビュート、６６…フラグ、６７…ＬＵ、７１…デバイス・サーバ、７２…タスク・マネージャ、８１…管理部、８２…コマンド解析部、８３…転送要求生成部、８４…メモリ制御部。
【図１】
0005677336.tif 000002
【図２】
0005677336.tif 000003
【図３】
0005677336.tif 000004
【図４】
0005677336.tif 000005
【図５】
0005677336.tif 000006
【図６】
0005677336.tif 000007
【図７】
0005677336.tif 000008
【図８】
0005677336.tif 000009
【図９】
0005677336.tif 000010
【図１０】
0005677336.tif 000011
【図１１】
0005677336.tif 000012
【図１２】
0005677336.tif 000013
【図１３】
0005677336.tif 000014
【図１４】
0005677336.tif 000015
【図１５】
0005677336.tif 000016
【図１６】
0005677336.tif 000017
【図１７】
0005677336.tif 000018
【図１８】
0005677336.tif 000019