(57)【要約】      （修正有）【課題】規格で定められていない仕様について、より高い性能を実現できるメモリ・デバイスを提供する。【解決手段】メモリ・デバイスは、複数のセルからなる書き込み単位ごとにデータを書き込む不揮発性のメモリと、メモリを制御するコントローラを含む。コントローラは、メモリのメモリ空間を複数のパーティションに区切って管理し、ホスト・デバイスからの書き込みデータをメモリに書き込む要求に対して書き込みデータの分割された部分である書き込みデータ部分を送信することをそのサイズを指定してホスト・デバイスに要求することを定めた書き込み手順に従い、第１パーティションへのアクセスを要求する第１コマンドの処理の完了前に第２パーティションへのアクセスを要求する第２コマンドを受け付ける。書き込みデータ部分は該データ部分および付加的データの和のサイズが書き込み単位のサイズ以下で最大となるサイズの整数倍のサイズを有する。【選択図】図１０
2013077278.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルからなる書き込み単位ごとにデータを書き込む不揮発性のメモリと、
前記メモリを制御し、前記メモリのメモリ空間を複数のパーティションに区切って管理し、ホスト・デバイスからの書き込みデータを前記メモリに書き込む要求に対して前記書き込みデータの分割された部分である書き込みデータ部分を送信することをそのサイズを指定して前記ホスト・デバイスに要求することを定めた書き込み手順に従い、第１パーティションへのアクセスを要求する第１コマンドの処理の完了前に第２パーティションへのアクセスを要求する第２コマンドを受け付けるコントローラと、
を具備し、
前記書き込みデータ部分は当該書き込みデータ部分および対応する付加的データの和のサイズが前記書き込み単位のサイズ以下で最大となるように決定されたサイズの整数倍のサイズを有する、ことを特徴とするメモリ・デバイス。
【請求項２】
前記コントローラが、前記第１コマンドの処理の完了前に前記第２コマンドを受信すると、前記第１コマンドにより要求される処理の一部の実行と前記第２コマンドにより要求される処理の一部の実行とを代わる代わる実行する、
ことを特徴とする請求項１に記載のメモリ・デバイス。
【請求項３】
前記コントローラが、１つまたは複数のパーティションへのアクセスをそれぞれ要求する１つまたは複数の先行コマンドにより要求される処理の完了前に別のパーティションへのアクセスを要求する後続コマンドを受信すると、前記先行コマンドの各々により要求される処理の一部の実行と前記後続コマンドにより要求される処理の一部の実行とを、前記先行コマンドおよび前記後続コマンドの各々について均等に順番に実行する、
ことを特徴とする請求項２に記載のメモリ・デバイス。
【請求項４】
前記コントローラが、前記第１コマンドの処理の完了前に前記第２コマンドを受信すると、前記第１パーティションおよび前記第２パーティションの優先順位の低い方へのアクセスを要求する前記第１および第２コマンドの一方により要求される処理を行なわずに前記第１および第２コマンドの他方により要求される処理を完了させる、
ことを特徴とする請求項１に記載のメモリ・デバイス。
【請求項５】
前記コントローラが、前記第１パーティションへのアクセスを要求するコマンドの処理の完了前に前記第２パーティションへのアクセスを要求するコマンドを受け付ける第１モードと、前記第１パーティションへのアクセスを要求するコマンドの処理の完了前に前記第２パーティションへのアクセスを要求するコマンドを拒絶する第２モードと、のいずれかに設定される、
ことを特徴とする請求項１に記載のメモリ・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はメモリ・デバイスに関する。
【背景技術】
【０００２】
データを保持するメディアとして種々のものが存在する。そのようなメディアとして、例えばクライアント・サーバ・モデルに基づいたメモリ・デバイスがある。クライアント・サーバ・モデルに基づいた、メモリ・デバイスおよびホスト・デバイスからなるメモリ・システムでは、別のメモリ・システムと異なる点がある。例えば、クライアント・サーバ・モデルに基づくメモリ・デバイスおよびホスト・デバイスの役割分担は、クライアント・サーバ・モデルに基づかないメモリ・デバイスおよびホスト・デバイスの役割分担と異なる。したがって、ホスト・デバイスとメモリ・デバイスとの間の通信内容も、クライアント・サーバ・モデルに基づくシステムと基づかないシステムとで異なる。
【０００３】
メモリ・システムは特定の規格に則っていることがある。例えば、クライアント・サーバ・モデルに基づくメモリ・システムとして、例えば、ＵＦＳ（Universal Flash Storage）メモリ・デバイスおよびホスト・デバイスが挙げられる。規格で定められている点については、メモリ・システムは仕様に則っていなければならない。しかしながら、規格で定められていない点も存在し、このような点については、メモリ・システムの設計者が定めることができる。このように自由度が存在する事項については、メモリ・システムの特性に適する形で好ましい性能が実現されるように、決定されるべきである。このような自由度を伴った事項に対して適切な決定を行なって、より高い性能を実現できるメモリ・デバイスを提供する要望がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２０３４９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
より高い性能を実現できるメモリ・デバイスを提供しようとするものである。
【課題を解決するための手段】
【０００６】
実施形態の一実施形態によるメモリ・デバイスは、複数のセルからなる書き込み単位ごとにデータを書き込む不揮発性のメモリと、メモリを制御するコントローラを含む。コントローラは、メモリのメモリ空間を複数のパーティションに区切って管理し、ホスト・デバイスからの書き込みデータをメモリに書き込む要求に対して書き込みデータの分割された部分である書き込みデータ部分を送信することをそのサイズを指定してホスト・デバイスに要求することを定めた書き込み手順に従い、第１パーティションへのアクセスを要求する第１コマンドの処理の完了前に第２パーティションへのアクセスを要求する第２コマンドを受け付ける。書き込みデータ部分は当該書き込みデータ部分および対応する付加的データの和のサイズが書き込み単位のサイズ以下で最大となるように決定されたサイズの整数倍のサイズを有する。
【図面の簡単な説明】
【０００７】
【図１】参考例によるメモリ・システムの通信の様子を示している。
【図２】第１実施形態に係るメモリ・デバイスのハードウェア上の構成を示している。
【図３】メモリを例示する回路図。
【図４】メモリ空間の構成を例示する図。
【図５】メモリ・デバイスが封止された形態の例を示している。
【図６】第１実施形態に係るメモリ・デバイスの機能ブロックを示している。
【図７】パケットの例を示している。
【図８】論理アドレスと物理ブロックの変換テーブルの例を示している。
【図９】第１実施形態に係るルータをより詳細に示す機能ブロック図である。
【図１０】第１実施形態に係るデータ書き込み時の通信の様子を例示している。
【図１１】第１実施形態に係るデータ読み出し時の通信の様子を例示している。
【図１２】第２実施形態に係るデータ書き込み時の通信の様子を例示している。
【図１３】第２実施形態に係るデータ読み出し時の通信の様子を例示している。
【図１４】第１実施形態に係る１ページ中のデータの中身を例示している。
【発明を実施するための形態】
【０００８】
実施形態の説明に先立ち、クライアント・サーバ・モデルに基づくメモリ・システムの参考例について簡単に説明する。クライアント・サーバ・モデルに基づくメモリ・デバイスに複数のパーティションが設けられる場合がある。図１は、そのようなメモリ・デバイスとそのホスト・デバイスとの間の書き込みの際の通信の様子を例示している。
【０００９】
図１に示されているように、ホスト・デバイスは書き込みコマンドを発行することにより、書き込みを開始する。書き込みコマンドは、書き込まれるデータ（書き込みデータ）の論理アドレス、および書き込みデータのサイズの情報を含んでいる。この書き込みコマンドは、例としてメモリ・デバイスのパーティション１への書き込みを指示している。このメモリ・デバイスは、一般に、書き込みコマンドを受け取ると、書き込みデータの転送要求の内容を決定する。転送要求には、書き込みデータのうちのメモリ・デバイスがホスト・デバイスからの転送を望む部分の大きさおよびオフセット・アドレスが含まれることになっている。オフセット・アドレスは、メモリ・デバイスが転送を望む部分の位置を特定するためのものである。ホスト・デバイスは、転送要求を受け取ると、要求されたデータ部分をメモリ・デバイスに転送する。メモリ・デバイスは、受け取ったデータ部分をメモリに書き込むことと、さらなるデータ部分の転送要求を送信することと、を実行する。このような転送要求と書き込みは、書き込みデータ全体が書き込まれるまで継続する。書き込みデータ全体の書き込みの成功または失敗に応じて、メモリ・デバイスはホスト・デバイスに相応するレスポンスを送信する。
【００１０】
あるパーティションを指定する書き込みコマンドの発行からレスポンスの発行までの間は、メモリ・デバイスは、別のパーティションへの書き込みを受け付けない。このため、パーティション１以外のパーティションへの書き込みを望むホスト・デバイスは、パーティション１への書き込みの終了後に、例えばパーティション２への書き込みを指示する書き込みコマンドを発行する。この書き込みコマンドの発行を受けて、ホスト・デバイスおよびメモリ・デバイスは、上記と同様の手順で、パーティション２への書き込みを行なう。
【００１１】
このような、あるパーティションへの書き込みコマンドの発行からレスポンスの発行までの間は、別のパーティションへの書き込みを禁止するメモリ・デバイスには、例えばｅＭＭＣデバイスが知られている。
【００１２】
一方、複数のパーティションへの並行したアクセスを受け付けるメモリ・デバイスおよびホスト・デバイスが存在する。そのようなメモリ・システムとして、ＵＦＳメモリ・デバイスおよびホスト・デバイスが挙げられる。ＵＦＳの規格は、メモリ・デバイスおよびホスト・デバイスが複数パーティションへのアクセスをサポートすることを要求するのみで、そのようなアクセスの詳細を規定していない。このため、詳細の未規定事項については、メモリ・システムの特性を考慮して、適切に決定される必要がある。
【００１３】
以下に、このような知見に基づいて構成された実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１４】
（第１実施形態）
図２は、第１実施形態に係るメモリ・デバイスを概略的に示している。図２は、メモリ・デバイスのハードウェア上の構成を示している。図２に示されているように、メモリ・デバイス（半導体記憶装置）１は、ホスト・デバイス（以下、単にホストと称する場合がある）２と通信できるように構成されている。メモリ・デバイス１とホスト２は、少なくとも、ホスト２からの書き込み要求に対して、メモリ・デバイス１が書き込みデータの部分のサイズおよび位置を指定できる方式で通信する。より具体的には、メモリ・デバイス１とホスト２は、クライアント・サーバ・モデルに基づいて通信する。メモリ・デバイス１は、ターゲットとして動作し、ホスト２はイニシエータとして動作する。さらに具体的な例として、メモリ・デバイス１はＵＦＳメモリ・デバイスであり、ホスト２はＵＦＳメモリ・デバイスをサポートするホストである。
【００１５】
メモリ・デバイス１は、少なくとも、不揮発性の半導体メモリ１１と、メモリ１１を制御するためのメモリ・コントローラ１２とを含んでいる。メモリ１１は、複数ビットからなる特定の書き込み単位でデータの書き込みおよび読み出しを行う。さらに、メモリ１１は、複数の書き込み単位からなる消去単位でデータを消去する。
【００１６】
例えば、メモリ１１は１つまたは複数のＮＡＮＤ型フラッシュ・メモリからなる。メモリ１１がＮＡＮＤ型フラッシュ・メモリである場合、メモリ１１は、ページ単位でデータの書き込みおよび読み出しを行う。ページは、図３に示すように、接続された複数のメモリ・セルの集合のメモリ空間からなり、固有の物理アドレスを割り当てられている。各メモリ・セルは、いわゆる積層ゲート構造のＭＯＳＦＥＴ（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）により転送される。ホスト・データ転送パケットは、実体部において、転送すべき書き込みデータ部分を含んでいる。
【００５１】
ホスト２からの書き込みデータ部分は、対応する転送要求を発行した第１ＬＵ６７１によって受信される（データ転送１−１）。受信された書き込みデータ部分は、デバイス・サーバ７１の制御によってメモリ領域７３の適切な位置に書き込まれる。
【００５２】
次いで、第１ＬＵ６７１のデバイス・サーバ７１は、次の転送要求１−２を生成する。この転送要求１−２は、書き込みデータ全体のうちの最初の書き込みデータ部分に続くページ・サイズの部分の転送を要求する。この２番目の書き込みデータ部分は、論理アドレスが０ｘ００２０の１６ｋＢサイズの書き込みデータ部分に相当する。転送要求はホスト２に送信される（データ転送１−２）。次いで、対応するデータ部分が、１番目のデータ部分を参照して説明したのと同様の手順でメモリ領域７３に書き込まれる。
【００５３】
第１書き込みコマンドによる第１ＬＵ６７１への書き込みが完了する前に、第２ＬＵ６７２への書き込みを要求する第２書き込みコマンドが発行されたとする。第２書き込みコマンドの発行のタイミングは、図１０に示されているものには限られない。
【００５４】
第２書き込みコマンドは、例えば、論理アドレスが０ｘ１０００の３２ｋＢサイズのデータの書き込みを要求している。ルータ６２は、第１書き込みコマンドによる書き込みが完了する前に、第２書き込みコマンドを受け取ると、これを拒絶せずに処理する。具体的には、以下の規則に基づいて、ルータ６２は、２つの要求（第１、第２書き込みコマンド）を処理する。
【００５５】
上記のように、本実施形態では、ＬＵ６７同士の間に優先順位は定められていない。より具体的には、少なくとも、未完了の第１書き込みコマンドが対象とする第１ＬＵ６７１と、新たに受信された第２書き込みコマンドが対象とする第２ＬＵ６７２との間には優先順位は定められていない。この優先順位の情報は、優先順位保持部８２において保持されている。優先順位判断部８３は、優先順位保持部８２にアクセスして、優先順位の情報を取得する。次いで、優先順位判断部８３は、第１ＬＵ６７１と第２ＬＵ６７２との間に優先順位が定められていないことを知得し、この旨を分配・配列部８４に通知する。分配・配列部８４は、未完了の複数のＬＵ６７へのアクセス（本例では書き込み）要求に対して、これらの要求が対象とするＬＵ６７同士の間に優先順位が定められていない場合、当該複数の要求を並行して処理する。すなわち、複数の書き込み要求の各々を実行するための処理を、転送要求およびデータ転送を１組の処理として、組ごとに時分割に基づいて代わる代わる実行する。より具体的には、処理中の複数ＬＵ６７用の処理を、ＬＵ６７ごとに一回ずつ順番に処理する。例えば、本例のように、２つのＬＵ６７への並列の処理要求に対して、分配・配列部８４は、第１ＬＵ６７１、第２ＬＵ６７２、第１ＬＵ６７１、第２ＬＵ６７２…と交互に処理を行なう。３対以上のＬＵ６７への並列の処理要求についても同様である。
【００５６】
分配・配列部８４は、受信した第２書き込みコマンドを宛先である第２ＬＵ６７２に送信する。第２ＬＵ６７２のデバイス・サーバ７１は、第２書き込みコマンドを受け取ると、転送要求を生成する。転送要求の生成は、上記の第１書き込みコマンドについてのものと同じである。本例では、論理アドレスが０ｘ１０００の１６ｋＢサイズの書き込みデータ部分の転送要求２−１が生成される。転送要求２−１は、分配・配列部８４により受信され、次いでホスト２に送信される。次いで、分配・配列部８４は、対応するデータ部分をホスト２から受け取り、これを第２ＬＵ６７２に送信する（データ転送２−１）。第２ＬＵ６７２のデバイス・サーバ７１は、１番目のデータ部分を参照して説明したのと同様の手順で第２ＬＵ６７２のメモリ領域７３に書き込む。
【００５７】
第２ＬＵ６７１に関する処理が行なわれている間は、第１ＬＵ６７１に関する処理は停止される。例えば、分配・配列部８４は、第１ＬＵ６７１からの転送要求を受け取ったとしても、これを送出せずに一時的に保持する。実際の態様の一例として、図６の構成がソフトウェアで実現されている場合は、ソフトウェアは、第２書き込みコマンドを受け取ると、第２ＬＵ６７２に関する処理を実行し、第２ＬＵ６７２に関する１回目の処理（転送要求およびデータ転送）の終了後に、第１ＬＵ６７１に関する転送要求を生成する。
【００５８】
第２ＬＵ６７２に関するデータ転送２−１が終了すると、分配・配列部８４は、第１ＬＵ６７１からの転送要求１−３をホスト２に送信する。次いで、転送要求１−３に対応するデータ部分が第１ＬＵ６７１に書き込まれる（データ転送１−３）。
【００５９】
以下、同様の処理が繰り返される。すなわち、第１ＬＵ６７１に関する処理、第２ＬＵ６７２に関する処理、第１ＬＵ６７１に関する処理、…と繰り返される。各処理において、転送要求は、あるＬＵ６７についての直前のデータ部分に続く部分からページ・サイズのデータの転送を要求する。処理中の要求（書き込み要求）についての処理が完了すると、対応するＬＵ６７のデバイス・サーバ７１は、書き込み成功の旨のレスポンスをホスト２に送信する。図１０では、第２書き込みコマンドについては、転送要求およびデータ転送からなる処理が２回で終了している。全ての要求についての成功の旨のレスポンスが発行されると、処理は終了する。
【００６０】
ここまでの説明では、複数のＬＵ６７のための各処理が、１回ずつ順に実行される。しかしながら、例えば２回またはそれ以上の回数ずつ順に実行されてもよい。さらに、順番が、１周ごとに変化してもよい。例えば、１周目では、第１ＬＵ、第２ＬＵ、第３ＬＵの順番で、２周目では第１ＬＵ、第３ＬＵ、第２ＬＵの順番で実行される。すなわち、結果として、各データ転送が同じ大きさであるとして、複数のＬＵに関する処理要求が並存している間、各ＬＵに関する処理が均等に扱われる。均等な扱いをどのように実現するかは、本明細書に記載の種々の方法、および可能なあらゆる方法で、実現されることが可能である。
【００６１】
読み出しに関しても同様である。図１１は、第１実施形態に係るデータ読み出し時の通信の様子を例示している。データ読み出しを希望するホスト２は、図１０の書き込みコマンドに代えて、読み出しコマンドをメモリ・デバイス１に発行する。読み出しコマンドはいずれも、少なくとも、ＬＵＮ、読み出し指示、読み出しデータの論理アドレスを含んでいる。読み出しの場合は、ＬＵ６７は、読み出しコマンドを受け取ると、読み出しデータ全体のうちの適当な大きさに分割された部分を、部分ごとに順次、送出する。メモリ・デバイス１およびホスト２がＵＦＳメモリ・システムである場合、読み出しデータ部分は、デバイス・データ転送パケット（Data In UPIU）により転送される。デバイス・データ転送パケットは、実体部において、転送すべき読み出しデータ部分を含んでいる。ルータ６２は、読み出しデータ部分をホスト２に送信する。書き込みの場合と同じく、複数ＬＵ６７に関する要求の処理が並列に進行している間は、各ＬＵ６７に関する処理が均等に行なわれる。図の例では、第２読み出しコマンドの受信から、ＬＵ６７１からのデータ転送とＬＵ６７２からのデータ転送が交互に行なわれる。ある読み出しコマンドについての読み出しデータ全体の送出が完了すると、対応するＬＵ６７は、成功の旨のレスポンスをルータ６２を介してホスト２に送信する。読み出しについてここで説明した点以外については、書き込みと全く同様である。
【００６２】
以上説明したように、第１実施形態に係るメモリ・デバイスは、ある第１のコマンドの処理が完了する前に、別の第２のコマンドを受け付け可能に構成されている。さらに多くのコマンドの場合も同様で、一般化すると、ある１つまたは複数のコマンドの処理が完了する前に、さらなるコマンドを受け付け可能に構成されている。すなわち、複数ＬＵへのマルチ・アクセスが可能に構成されている。メモリ・デバイスは、処理未完了の複数のコマンドに対して、各コマンドにより要求される処理を複数部分に分割し、各部分を、各ＬＵについて代わる代わる順に実行する。こうして、複数ＬＵへの並行したアクセスが実現される。特に、ホストがマルチ・タスク・アプリケーションをサポートしている場合に、マルチ・タスク・アプリケーションにより並行動作のパフォーマンスを向上可能なメモリ・デバイスが提供される。
【００６３】
ここまでの説明では、マルチ・アクセスが常に許可されている例に関する。一方、例えば、マルチ・アクセスが許可されているモード（マルチ・アクセス許可モード）と禁止されているモード（マルチ・アクセス禁止モード）が設けられていてもよい。そのために、図９に示されているように、例えば、ルータ６２中にモード明示部８５が設けられる。モード明示部８５は、例えばＲＡＭ４４および／またはレジスタ４６により実現される。モード明示部８５には、メモリ・デバイス１がいずれのモードに設定されているかを示す情報が格納されている。モードの選択は、メモリ・デバイス１のユーザがホスト・デバイス２を通じて設定することができる。モードの選択は、例えばメモリ・デバイス１の初期設定時、または任意のタイミングで行なうことができる。ルータ６２中の例えば管理部８１は、ある第１のコマンドの処理が完了する前に別の第２のコマンドを受け取ると、モード明示部８５を参照し、結果を分配・配列部８４に通知する。マルチ・アクセスが許可されている場合、分配・配列部８４は、上記のように動作する。一方、マルチ・アクセスが禁止されている場合、分配・配列部８４は、２つ目のコマンドを拒絶する。具体的には、例えば、ルータ６２は、単に２つ目のコマンドを無視する。または、あるコマンドの処理中の別のコマンドを受け付け不能の旨をホスト２に通知する。この場合、ホスト２は、先のコマンドのための処理の完了後に、次のコマンドをメモリ・デバイス１に発行する。２つのモードの併用は、例えば、処理が、開始の順に完了することを望むユーザをサポートすることを可能にする。
【００６４】
また、上記のようにＥＣＣ回路３６は、書き込みデータにエラー訂正符号を付加する。具体的には、ＥＣＣ回路３６は、受け取った書き込みデータ部分を、ＥＣＣ回路３６の特性等に基づいて特定の大きさの部分（実データ部分と称する）に分割する。そして、ＥＣＣ回路３６は実データ部分ごとにＥＣＣを生成し、対応する実データ部分に付加する。すなわち、実データ部分は、ＥＣＣのための処理単位である。実データ部分、対応するＥＣＣ、および対応する管理データの組は例えばフレームなどと呼ばれる。ＥＣＣ回路３６からは、フレームが出力される。書き込みデータの宛先のＬＵに対応するデバイス・サーバ７１は、このフレームを対象とする受信済みのデータ書き込み要求に基づいて、ＥＣＣ回路３６からのフレームをバッファ３５に蓄積する。バッファ３５に蓄積されたフレームの個数が適当な数に達すると、対応するデバイス・サーバ７１は、複数フレームの組を対応するメモリ領域７３に書き込む。
【００６５】
ここで、メモリ・デバイス１は、フレームの大きさおよび種々の必要な管理データの大きさを考慮して、書き込みデータ部分の大きさを決定する。具体的には、メモリ・デバイス１は、書き込みデータ部分とこれに対応する全ての付加的データ（ＥＣＣ、管理データ）とを合わせたサイズがページ以下で最大となるように決定されたサイズの書き込みデータ部分を要求する。図１４は、第１実施形態に係るメモリ・デバイス１による１ページ中のデータの中身を例示している。すなわち、メモリ・デバイス１は、ページに書き込まれた結果、図１４に示されるように決定された大きさの書き込みデータ部分を要求する。図１４に示されるように、１フレームは、実データ部分３０１、対応する管理データ３０２、対応するＥＣＣ３０３からなる。図１４は、１０２４バイトの実データ部分３０１、２バイトの管理データ３０２、７６バイトのＥＣＣ３０３を例示している。さらに１ページごとに、管理データ３０６が含まれることになっている場合がある。管理データ３０６にもＥＣＣ３０７が付加される。管理データ３０６、ＥＣＣ３０７の大きさは、それぞれ例えば８バイト、７６バイトである。メモリ・デバイス１は、書き込みデータ部分の部分からなる複数の実データ部分３０１と第１付加的データ（例えばＥＣＣ３０３、３０７および管理データ３０２、３０６）とを合わせた大きさをページ・サイズから除いた未使用部３０８の大きさが、実データ部分３０１とその実データ部分に付加される第２付加的データ（例えばＥＣＣ３０３および管理データ３０２）の大きさより小さくなるように決定された大きさの書き込みデータ部分を要求する。このような大きさの書き込みデータ部分を用いることにより、ページを最大限に利用できる。
【００６６】
採用されるＥＣＣの方式により、ＥＣＣ処理単位に相当する実データ部分３０１の大きさは決まっている。同様に、管理データ３０２、ＥＣＣ３０３、管理データ３０７の大きさも決まっている。したがって、ページ・サイズ以下で最大の実データ部分３０１の個数は、ＥＣＣ処理単位の大きさにより定まる。
【００６７】
（第２実施形態）
第１実施形態では、複数ＬＵ６７に関する要求の処理がＬＵ６７間で平等に実行される。第２実施形態では、複数ＬＵ６７に関する要求の処理がＬＵ６７間で偏って実行される。第２実施形態に係るメモリ・デバイスは、第１実施形態と同じハードウェア構成（図２）および機能ブロック（図６）を有する。以下では、図１１を参照して、書き込みシーケンスについて第１実施形態と異なる点について説明する。一方、第２実施形態の説明で触れられていない点については、第１実施形態についての記述が第２実施形態に全て適用されることに留意されたい。
【００６８】
図１１の処理は、途中まで第１実施形態（図１０）と同じである。すなわち、第１書き込みコマンド、転送要求１−１、データ転送１−１、転送要求１−２、データ転送１−２までは第１実施形態と同様に進行する。
【００６９】
メモリ・デバイス１は、第１書き込みコマンドによる第１ＬＵ６７１への書き込みが完了する前に第２書き込みコマンドを受け取る。なお、以下の説明では、メモリ・デバイス１はマルチ・アクセス許可モードにある。第２書き込みコマンドは、例えば、論理アドレスが０ｘ１０００の３２ｋＢサイズのデータの書き込みを要求している。ルータ６２は、第１書き込みコマンドによる書き込みが完了する前に、第２書き込みコマンドを受け取ると、これを拒絶せずに処理する。具体的には、以下の規則に基づいて、ルータ６２は、複数の要求（第１、第２書き込みコマンド）を処理する。
【００７０】
優先順位判断部８３は、優先順位保持部８２にアクセスして、優先順位の情報を取得する。ここでは例として、第２ＬＵ６７２が第１ＬＵ６７１より高い優先順位を有しているとする。優先順位判断部８３は、第２ＬＵ６７２の優先順位が高いことを知得し、この旨を分配・配列部８４に通知する。分配・配列部８４は、最も高い優先順位を有するＬＵ６７に関する処理を最優先で集中的に行なって完了させる。本例では、第２ＬＵ６７２のデバイス・サーバ７１は、第２書き込みコマンドに続いて第２ＬＵ６７２からの転送要求２−１を送信し、対応するデータ部分を受け取り、第２ＬＵ６７２のメモリ領域７３に書き込む。引き続き、メモリ・デバイス２は、第２ＬＵ６７２に関する処理を行なう。すなわち、第２ＬＵ６７２のデバイス・サーバ７１は、転送要求２−２を送信し、対応するデータ部分を受け取り、第２ＬＵ６７２のメモリ領域７３に書き込む。この時点で、第２書き込みコマンドの処理が完了したので、第２ＬＵ６７２のデバイス・サーバ７１は、書き込み成功の旨のレスポンスをホスト２に送信する。
【００７１】
第２ＬＵ６７２に関する処理が行なわれている間は、第１ＬＵ６７１に関する処理は停止される。例えば、分配・配列部８４は、第１ＬＵ６７１からの転送要求を受け取ったとしても、これを送出せずに一時的に保持する。実際の態様の一例として、図６の構成がソフトウェアで実現されている場合は、ソフトウェアは、第２ＬＵ６７２のための処理の完了後、第１ＬＵ６７１のための処理を再開する。
【００７２】
以降、第１ＬＵ６７１のための処理が再開し、完了まで継続する。
【００７３】
３つ以上のＬＵに対する処理が並行する場合も上記の規則に則って実行される。すなわち、優先順位判断部８３は、複数の要求を処理中に、新たな要求を受け取ると、受信済みの要求が対象とする複数のＬＵ６７と新たな要求が対象とするＬＵ６７との優先順位を比較する。実際には、全ＬＵ６７に優先順位が設定されている場合、現在最高の優先順位のＬＵと新たな要求が対象とするＬＵとを比較すれば足りる。そして、最も高い優先順位を有するＬＵ６７のための処理を割込みで行なう。この割込み処理が完了すると、残りの複数の要求のうちで、最も高い優先順位のＬＵ６７を対象とする要求を処理する。こうして、全ての要求が完了するまで処理が継続する。さらに、第２実施形態が第１実施形態と組み合わされてもよい。すなわち、同じ優先順位を有する２つのＬＵに関する処理が第１実施形態のように実行されている間に、より高い優先順位を有する別のＬＵに関する要求に対して、この要求のための処理が最優先で実行される。完了後、先の２つのＬＵに関する処理が、第１実施形態のように継続する。
【００７４】
ここまでの説明では、最も高い優先順位を有するＬＵ６７に関する処理が、完了まで実行される。しかしながら、例えば優先順位に基づいて各ＬＵ６７に重みをつけて、各ＬＵ６７に関する処理が偏って扱われてもよい。例えば、あるＬＵに関する１回の処理と別のＬＵに関するより多い回数（例えば２回）処理とを１セットとして、セットが繰り返される。この例では、１セット中で２回の処理を享受するＬＵは、１回の処理を享受するＬＵよりも高い優先順位を有する。
【００７５】
本実施形態では、書き込みについての処理を例に説明した。しかしながら、第１実施形態と同じく、本実施形態も読み出しにも適用可能である。図１２は、第２実施形態に係るデータ読み出し時の通信の様子を例示している。メモリ・デバイス１は第１読み出しコマンドのための処理完了前に第２読み出しコマンドを受け取る。すると、メモリ・デバイス１は、第２読み出しコマンドのための処理のみを行なって完了させる。続いて、メモリ・デバイス１は、第１読み出しコマンドのための処理を再開する。読み出しについてここで説明した点以外については、書き込みと全く同様である。
【００７６】
以上説明したように、第２実施形態に係るメモリ・デバイスは、第１実施形態と同じく、ある１つまたは複数のコマンドの処理が完了する前に、さらなるコマンドを受け付け可能に構成されている。メモリ・デバイス１は、新たなコマンドを受け取る度に、例えば全コマンドが対象とするＬＵの優先順位に基づいて、最も高い優先順位を有するＬＵのための処理を優先的に処理する。優先的に処理される例として、当該ＬＵのための処理が集中的に実行されてもよいし、他の処理と並行的ではあるがより多い回数処理されてもよい。こうして、複数ＬＵへの並行したアクセスが実現される。
【００７７】
第２実施形態においても、第１実施形態と同じく、書き込みデータ部分のサイズを書き込みデータ部分とこれに対応する全ての付加的データ（ＥＣＣ、管理データ）とを合わせたサイズがページ以下で最大となるように決定されたサイズとすることができる。
【００７８】
また、上記の実施形態では、メモリ・デバイス１がホスト２に転送を要求する書き込みデータ部分は、メモリ１１の１ページ分のサイズであるが、この書き込みデータ部分のサイズは１ページ分に限られず、ページ・サイズの整数倍であればよい。付加的データを考慮した場合も同じである。すなわち、書き込みデータ部分のサイズは、書き込みデータ部分とこれに対応する全ての付加的データ（ＥＣＣ、管理データ）とを合わせたサイズがページ以下で最大となるように決定されたサイズの整数倍であってもよい。
【００７９】
その他、各実施形態は、上記のものに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。例えば、上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、この構成要件が削除された構成が実施形態として抽出され得る。
【符号の説明】
【００８０】
１…メモリ・デバイス、２…ホスト・デバイス、１１…メモリ、１２…コントローラ、２１…Ｉ／Ｏ、２２…コア・ロジック部、２３…Ｉ／Ｏ、３１…ホスト・インターフェース、３２…バッファ、３３…データ・バス、３４…メモリ・インターフェース、３５…バッファ、３６…ＥＣＣ回路、４１…制御バス、４２…ＣＰＵ、４３…ＲＯＭ、４４…ＲＡＭ、４５…ワークＲＡＭ、４６…レジスタ、５１…アナログ・ポート、５２…テスト・ポート、６１…ターゲット・ポート、６２…タスク・ルータ、６３…デバイス・マネージャ、６４…デスクリプタ、６５…アトリビュート、６６…フラグ、６７…ＬＵ、７１…デバイス・サーバ、７２…タスク・マネージャ、８１…管理部、８２…優先順位保持部、８３…優先順位判断部、８４…分配・配列部、８５…モード明示部。
【図１】
2013077278.tif 000003
【図２】
2013077278.tif 000004
【図３】
2013077278.tif 000005
【図４】
2013077278.tif 000006
【図５】
2013077278.tif 000007
【図６】
2013077278.tif 000008
【図７】
2013077278.tif 000009
【図８】
2013077278.tif 000010
【図９】
2013077278.tif 000011
【図１０】
2013077278.tif 000012
【図１１】
2013077278.tif 000013
【図１２】
2013077278.tif 000014
【図１３】
2013077278.tif 000015
【図１４】
2013077278.tif 000016