(57)【特許請求の範囲】
【請求項１】
不揮発性のメモリと、
コマンドが格納されるコマンド格納部と、
前記コマンドをホストデバイスから受信し、前記コマンドを前記コマンド格納部に格納すると共に前記コマンドを実行し、前記コマンドの実行が終了した後、前記コマンドの実行の終了を知らせる第１の信号を前記ホストデバイスに送信する制御部と
を備え、
前記制御部は、
第１のコマンドに応答して前記メモリについての書き込み、読み出し、または消去を実行し、
第２のコマンドに応答して、前記コマンド格納部内の前記第１のコマンドまたは実行中の第１のコマンドを中断し、
前記第２のコマンドを実行した際、中断対象となる前記第１のコマンドのうち、中断可能な前記第１のコマンドを中断すると共に、
中断対象となる前記第１のコマンドのうちで中断されなかった全ての前記第１のコマンドに関する前記第１の信号を送信した後、前記第２のコマンドに関する前記第１の信号を送信する
ことを特徴とするメモリデバイス。
【請求項２】
前記制御部は、中断対象となる前記第１のコマンドのうち、中断すべきである前記第１のコマンドと、中断すべきでない前記第１のコマンドとを判断することを特徴とする請求項１に記載のメモリデバイス。
【請求項３】
中断対象となる前記第１のコマンドは複数存在することを特徴とする請求項１または２に記載のメモリデバイス。
【請求項４】
前記コマンド格納部は、第１のコマンド格納部と、第２のコマンド格納部とを備え、
前記制御部は、前記第１のコマンドを前記第１のコマンド格納部に格納し、前記第２のコマンドを、前記第２のコマンド格納部に格納し、
前記第１のコマンド格納部、及び前記第２のコマンド格納部に格納された前記第１のコマンド及び前記第２のコマンドが実行される順番を決定する順番制御部を更に備え、
前記順番制御部は、前記第２のコマンドの順番を、前記第１のコマンドの順番よりも前にすることを特徴とする請求項１乃至３のいずれか一項に記載のメモリデバイス。
【請求項５】
前記コマンド格納部は、行列空間であり、前記コマンドは前記行列空間の前から順番に格納され、前記行列空間に格納された前記コマンドは前から順番に実行されることを特徴とする請求項１乃至４のいずれか一項に記載のメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリデバイスに関する。
【背景技術】
【０００２】
データを保持するメディアとして種々のものが存在する。そのようなメディアとして、例えば、ＵＦＳ（Universal Flash Storage）メモリデバイス等が挙げられる。ホストデバイスは、ＵＦＳメモリデバイスに命令を発行した際、ＵＦＳメモリデバイスからのレスポンスを受信するための待機時間が長くなるという問題があった。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】JEDEC SOLID STATE TECHNOLOGY ASSOCIATION、JEDEC STANDARD（JESD220）、２０１１年２月
【発明の概要】
【発明が解決しようとする課題】
【０００４】
高品質なメモリデバイスを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリデバイスは、不揮発性のメモリと、コマンドが格納されるコマンド格納部と、前記コマンドをホストデバイスから受信し、前記コマンドを前記コマンド格納部に格納すると共に前記コマンドを実行し、前記コマンドの実行が終了した後、前記コマンドの実行の終了を知らせる第１の信号を前記ホストデバイスに送信する制御部とを備える。前記制御部は、第１のコマンドに応答して前記メモリについての書き込み、読み出し、または消去を実行し、第２のコマンドに応答して、前記コマンド格納部内の前記第１のコマンドまたは実行中の第１のコマンドを中断し、前記第２のコマンドを実行した際、中断対象となる前記第１のコマンドのうち、中断可能な前記第１のコマンドを中断すると共に、中断対象となる前記第１のコマンドのうちで中断されなかった全ての前記第１のコマンドに関する前記第１の信号を送信した後、前記第２のコマンドに関する前記第１の信号を送信する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係るメモリデバイスのハードウェア上の構成を示している。
【図２】第１の実施形態に係るメモリを例示する回路図である。
【図３】第１の実施形態に係るメモリ空間の構成を例示する図である。
【図４】第１の実施形態に係るメモリデバイスが封止された形態の例を示している。
【図５】第１の実施形態に係るメモリデバイス機能ブロックを示している。
【図６】第１の実施形態に係るパケットの例を示している。
【図７】第１の実施形態に係る論理アドレスと物理ブロックとの変換テーブルの例を示している。
【図８】第１の実施形態に係るＬＵをより詳細に示す機能ブロック図である。
【図９】第１の実施形態に係るキュー領域をより詳細に示すブロック図である。
【図１０】第１の実施形態に係るコマンド中断方法を概略的に示したフローチャートである。
【図１１】第１の実施形態に係るメモリデバイスとホストデバイスとの間の通信の例を示している。
【図１２】第２の実施形態に係るメモリデバイスとホストデバイスとの間の通信の例を示している。
【図１３】比較例に係るメモリデバイスとホストデバイスとの間の通信の例を示している。
【発明を実施するための形態】
【０００７】
以下、実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【０００８】
（第１の実施形態）
＜メモリデバイスの概要＞
図１は、第１の実施形態に係るメモリデバイスを概略的に示している。図１は、メモリデバイスのハードウェア上の構成を示している。  
図１に示すように、メモリデバイス（半導体記憶装置）１は、ホストデバイス（以下、単にホストと称する場合がある）２と通信できるように構成されている。メモリデバイス１は、ターゲットとして動作し、ホストデバイス２はイニシエータとして動作する。さらに具体的な例として、メモリデバイス１はＵＦＳメモリデバイスであり、ホストデバイス２はＵＦＳメモリデバイスをサポートするホストである。
【０００９】
メモリデバイス１は、少なくとも、不揮発性の半導体メモリ１１と、メモリ１１を制御するためのメモリコントローラ１２とを含んでいる。メモリ１１は、複数ビットからなる特定の書き込み単位でデータの書き込み、及び読み出しを行う。さらに、メモリ１１は、複数の書き込み単位からなる消去単位でデータを消去する。
【００１０】
また、メモリデバイス１は、Ｉ／Ｏ２１、コアロジック部２２、Ｉ／Ｏ２３を含んでいる。Ｉ／Ｏ２１は、メモリデバイス１がホストデバイス２と接続するためのハードウェア上の構成を含んでいる。メモリデバイス１がＵＦＳメモリデバイスである場合、メモリデバイス１とホストデバイス２との間の信号には、ＲＥＳＥＴ、ＲＥＦ＿ＣＬＫ、ＤＯＵＴ、ＤＯＵＴ＿ｃ、ＤＩＮ、ＤＩＮ＿ｃ、ＶＣＣ、ＶＣＣＱ、ＶＣＣＱ２、ＶＤＤｉ、ＶＤＤｉ２、ＶＤＤｉ３が含まれる。ＲＥＳＥＴ、ＲＥＦ＿ＣＬＫ、ＤＯＵＴ、ＤＯＵＴ＿ｃ、ＤＩＮ、ＤＩＮ＿ｃは、ホストデバイス２とＩ／Ｏ２１との間で通信される。ＲＥＳＥＴは、ハードウェアリセット信号である。ＲＥＦ＿ＣＬＫは、参照クロックである。ＤＯＵＴとＤＯＵＴ＿ｃは差動信号対を形成し、ホストデバイス２からメモリデバイス１へ送信される信号である。ＤＩＮとＤＩＮ＿ｃは差動信号対を形成し、メモリデバイス１からホストデバイス２へ送信される信号である。ＶＣＣ、ＶＣＣＱ、ＶＣＣＱ２は、メモリ１１、及びコアロジック部２２に供給される電源電圧である。ＶＤＤｉ、ＶＤＤｉ２、ＶＤＤｉ３は、コアロジック部２２に供給され、コアロジック部２２内に電圧レギュレータが設けられる際の入力端子である。
【００１１】
コアロジック部２２は、メモリコントローラ１２のうちのＩ／Ｏを除く主要部分である。Ｉ／Ｏ２３は、メモリコントローラ１２がメモリ１１と接続するためのハードウェア上の構成を含んでいる。コアロジック部２２は、ホストインターフェース３１、バッファ３２、データバス３３、メモリインターフェース３４、バッファ３５、ＥＣＣ回路３６、制御バス４１、ＣＰＵ（central processing unit）４２、ＲＯＭ（read only memory）４３、ワークＲＡＭ（random access memory）４５、レジスタ４６を含んでいる。
【００１２】
Ｉ／Ｏ２１は、ホストインターフェース３１と接続されている。ホストインターフェース３１は、メモリデバイス１とホストデバイス２が通信するのに必要な処理を行なう。より具体的には、ホストインターフェース３１は、メモリデバイス１とホストデバイス２がともに準拠している通信プロトコルに則ってメモリデバイス１とホストデバイス２との間の通信を担う。メモリデバイス１がＵＦＳメモリデバイスである場合、例えば、ホストインターフェース３１は、ＵＦＳインターフェースである。ＵＦＳインターフェースは、物理層についてはＭ−ＰＨＹ規格に則っており、リンク層についてはＵｎｉＰｒｏ規格に則っている。
【００１３】
ホストインターフェース３１は、バッファ３２と接続されている。バッファ３２は、ホストデバイス２からメモリデバイス１に送信されたデータをホストインターフェース３１を介して受け取り、これを一時的に保持する。また、バッファ３２は、メモリデバイス１からホストインターフェース３１を介してホストデバイス２へ送信されるデータを一時的に保持する。バッファ３２はデータバス３３と接続されている。
【００１４】
Ｉ／Ｏ２３は、メモリインターフェース３４と接続されている。メモリインターフェース３４は、メモリコントローラ１２がメモリ１１と通信するのに必要な処理を行なう。より具体的には、メモリインターフェース３４は、コアロジック部２２からの指示をメモリ１１が認識可能な形態で送信する。メモリ１１がＮＡＮＤ型フラッシュメモリである場合、メモリインターフェース３４は、ＮＡＮＤフラッシュインターフェースである。尚、メモリ１１はＮＡＮＤ型フラッシュメモリに限らず、不揮発性のメモリであれば、どのようなメモリでも良い。
【００１５】
メモリインターフェース３４は、バッファ３５と接続されている。バッファ３５は、メモリ１１からメモリコントローラ１２に送信されたデータをメモリインターフェース３４を介して受け取り、これを一時的に保持する。また、バッファ３５は、メモリコントローラ１２からメモリ１１にメモリインターフェース３４を介して送信される予定のデータを一時的に保持する。バッファ３５はデータバス３３と接続されている。メモリインターフェース３４、及びバッファ３５は、ＥＣＣ（error correcting code）回路３６と接続されている。ＥＣＣ回路３６はまた、データバッファ３５と接続されている。ＥＣＣ回路３６は、ホストデバイス２からの書き込みデータをデータバス３３を介して受け取り、書き込みデータにエラー訂正符号を付加し、エラー訂正符号を付された書き込みデータをバッファ３５に供給する。また、ＥＣＣ回路３６は、メモリ１１から供給されたデータをバッファ３５を介して受け取り、このデータに対してエラー訂正符号を用いてエラー訂正を行い、エラー訂正されたデータをデータバス３３に供給する。
【００１６】
制御バス４１には、ＣＰＵ４２、ＲＯＭ４３、ＲＡＭ４５、レジスタ４６が接続されている。ＣＰＵ４２、ＲＯＭ４３、ＲＡＭ４５、レジスタ４６は、制御バス４１を介して相互に通信する。ＣＰＵ４２は、メモリデバイス１の全体の動作を司る。ＣＰＵ４２は、ＲＯＭ４３に格納されている制御プログラム（命令）に従って所定の処理を実行する。ＣＰＵ４２は、制御プログラムに従ってホストデバイス２から受けたコマンドに従ってメモリ１１に対する所定の処理を実行したりする。
【００１７】
ＲＯＭ４３は、ＣＰＵ４２により制御される制御プログラムなどを格納する。ＲＡＭ４５は、ＣＰＵ４２の作業エリアとして使用され、ＣＰＵ４２の作業に必要な変数等を一時的に記憶する。レジスタ４６は、メモリデバイス１の動作に必要な種々の値を保持する。また、レジスタ４６は、ホストデバイス２が、メモリデバイス１を制御するのに必要な種々の値を保持する。
【００１８】
制御バス４１には、ホストインターフェース３１、バッファ３２、メモリインターフェース３４、バッファ３５が接続されている。ＣＰＵ４２は、制御プログラムやホストデバイス２からの指示に基づいて、ホストインターフェース３１、バッファ３２、メモリインターフェース３４、バッファ３５を制御する。メモリコントローラ１２には、アナログ回路５１が設けられていてもよい。
【００１９】
＜メモリの概要＞
例えば、メモリ１１は１つまたは複数のＮＡＮＤ型フラッシュメモリを含む。メモリ１１がＮＡＮＤ型フラッシュメモリである場合、メモリ１１は、ページ単位でデータの書き込み、及び読み出しを行う。ページは、図２に示すように、複数のメモリセルトランジスタの集合のメモリ空間からなり、固有の物理アドレスを割り当てられている。各メモリセルトランジスタ（メモリセル、セルトランジスタ等とも称す）ＭＴは、いわゆる積層ゲート構造のＭＯＳＦＥＴ（metal oxide semiconductor field effect transistor）である。各メモリセルトランジスタＭＴは、電荷蓄積層ＣＳに蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じた情報を記憶する。メモリセルトランジスタＭＴが電流経路（ソース／ドレインＳＤ）同士を相互に直列接続されてＮＡＮＤストリングを構成し、ＮＡＮＤストリングの両端に選択ランジスタＳ１、Ｓ２が接続される。選択トランジスタＳ２の電流経路の他端はビット線ＢＬに接続され、選択トランジスタＳ１の電流経路の他端はソース線ＳＬに接続されている。
【００２０】
ワード線ＷＬ０乃至ＷＬ６３は、ＷＬ方向に延び、同じ行に属する複数のメモリセルトランジスタＭＴの制御ゲート電極ＣＧに接続される。メモリセルトランジスタＭＴは、ビット線ＢＬとワード線ＷＬとの各交点に設けられる。セレクトゲート線ＳＧＤは、ＷＬ方向に延び、ブロック内の全選択トランジスタＳ２に接続されている。セレクトゲート線ＳＧＳは、ＷＬ方向に延び、ブロック内の全選択トランジスタＳ１に接続されている。同じワード線ＷＬと接続されている複数のメモリセルトランジスタＭＴは、ページを構成する。
【００２１】
メモリ１１は、図３に示すように、複数のメモリセルトランジスタを含むメモリセルアレイ９１と、メモリセルトランジスタとの間でデータの入出力を行うページバッファ９２とを備えている。ページバッファ９２は、１ページ分のデータを保持する。メモリ１１へのデータの書き込みを行う場合、メモリコントローラ１２は、書き込みコマンドとともに、書き込み先を示すページアドレスと１ページ分の書き込みデータとをメモリ１１に送信する。メモリ１１は、メモリコントローラ１２から受信した書き込みデータをページバッファ９２に格納し、ページバッファ９２内の書き込みデータをページアドレスで指定されたメモリセルへと書き込む。このメモリセルへの書き込み動作を開始すると、メモリ１１はメモリコントローラ１２に対して動作中であることを示すビジー信号を出力する。引き続きデータを書き込む場合、ビジー信号がレディー信号に切り替わった後、次のページアドレスに対して上記と同様の動作を行う。
【００２２】
メモリ１１からのデータの読み出しを行う場合、メモリコントローラ１２は、読み出しコマンドとともに、読み出し先を示すページアドレスをメモリ１１に送信する。メモリ１１は、ページアドレスで指定されたメモリセルからページバッファ９２に１ページ分のデータを読み出す。このメモリセルからの読み出し動作を開始すると、メモリ１１はメモリコントローラ１２に対してビジー信号出力する。そして、ビジー信号がレディー信号に切り替わった後、ページバッファ９２に格納された読み出しデータがメモリコントローラ１２に出力される。引き続きデータを読み出す場合、次のページアドレスに対して上記と同様の動作を行う。
【００２３】
メモリ１１がＮＡＮＤ型フラッシュメモリである場合、メモリセルトランジスタＭＴが２つ以上の閾値電圧の異なる状態を取り得る。つまり、１つのメモリセルが多値（多ビット）を記憶できるようにメモリ１１が構成されていてもよい。そのような多値を記憶可能なメモリの場合、１つのワード線に複数ページが割り当てられる。
【００２４】
また、メモリ１１がＮＡＮＤ型フラッシュメモリである場合、メモリ１１は、ブロック単位でデータの消去を行う。各ブロックは、連続する物理アドレスを有する複数のページからなる。以下の説明では、便宜上、書き込み単位をページとし、消去単位をブロックとする。しかしながら、メモリ１１は、必ずしもＮＡＮＤ型フラッシュメモリに限られない。
【００２５】
＜メモリのパッケージについて＞
メモリデバイス１は、例えば、プリント基板上に半田により実装される埋め込み型でも良いし、ホストデバイス２に設けられたカードスロットに対して脱着可能なリムーバブル型でもよい。図４は、封止された形態のメモリデバイス１の例を示している。図４に示されているように、プリント基板２０１上にチップ状の複数のメモリ１１が積層されている。各メモリ１１は、プリント基板２０１上の配線パターン（図示せず）にワイヤ２０２により接続されている。チップ状のメモリコントローラ１２も、プリント基板２０１上に置かれ、ワイヤ２０２により配線パターンに接続されている。プリント基板２０１の裏面には、図示せぬ外部端子（例えば、ＢＧＡ（ball grid array））が設けられている。外部端子には、図１に示した信号（ＲＥＳＥＴ、ＲＥＦ＿ＣＬＫ、ＤＯＵＴ、ＤＯＵＴ＿ｃ、ＤＩＮ、ＤＩＮ＿ｃ、ＶＣＣ、ＶＣＣＱ、ＶＣＣＱ２、ＶＤＤｉ、ＶＤＤｉ２、ＶＤＤｉ３が含まれる。ＲＥＳＥＴ、ＲＥＦ＿ＣＬＫ、ＤＯＵＴ、ＤＯＵＴ＿ｃ、ＤＩＮ、ＤＩＮ＿ｃ）が割り当てられ、この外部端子を介してメモリデバイス１外部のホストデバイス２との間で信号を通信する。プリント基板２０１、メモリ１１、メモリコントローラ１２、ワイヤ２０２は、例えば樹脂製のパッケージ２０３により封止されている。
【００２６】
＜メモリデバイスの機能的な構成＞
次に、図５に、メモリデバイス１の構成の別の視点を示す。より具体的には、図５は、メモリデバイス１の論理構成、すなわち機能ブロックを示している。各ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現されることが可能である。各機能ブロックが、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは、必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示のブロックがさらに細かい機能サブブロックに分割されていてもよい。どのブロックによって特定されるかによって実施形態が限定されるものではない。
【００２７】
メモリデバイス１は、ターゲットポート６１、ルータ６２、デバイスマネージャ６３、デスクリプタ６４、アトリビュート６５、フラグ６６、複数のロジカルユニットＬＵ（logical unit）６７を含んでいる。ターゲットポート６１は、メモリデバイス１がホストデバイス２と通信可能に接続されるためのポートであり、例えばホストインターフェース３１に対応する。ルータ６２は、ホストデバイス２から受信された通信（タスク、コマンド、データ、クエリー等）を宛先のＬＵ６７にルーティングする。ホストデバイス２は、コマンドの処理またはタスク管理機能を、１つのＬＵ６７を宛先とする要求を通じて要求する。ＬＵ６７同士は、アドレス（例えばＬＵＮ（logical unit number））により相互に識別されることが可能である。尚、以下において、コマンドとは、ＬＵコマンド（書き込みコマンド、または読み出しコマンド等）と、タスクと、クエリーとを包含していると解する。
【００２８】
ところで、ＬＵＮは、例えば、図６に示されているように、ＵＦＳメモリデバイスでは、メモリデバイス１とホストデバイス２との間の通信（パケット）に含められることが可能である。  
パケット１０１は、ＬＵＮ１０２と、実体部１０３を含んでいる。  
ＬＵＮ１０２は、例えばパケット１０１のヘッダに含められることが可能である。各パケットの宛先のＬＵ６７は、ＬＵＮにより一意に特定される。  
実体部１０３は、パケットの機能に固有の内容、例えばタスク、データ、ＬＵコマンド、クエリー、各種のパラメータ等を含んでいる。より具体的には、パケットの実体部１０３にコマンド記述部が含まれており、コマンド記述部にＳＣＳＩ（small computer system interface）コマンドが格納されている。ＳＣＳＩコマンド中に、所定のコマンド、及びアドレス等が含まれている。
【００２９】
また、図５に示すように、ルータ６２は、ホストデバイス２から受信された通信（タスク、ＬＵコマンド、データ、クエリー）を、この通信中のＬＵＮに基づいて、宛先のＬＵ６７にルーティングする。また、ルータ６２は、複数のＬＵ６７からホストデバイス２宛ての通信を例えば時分割によって適当な順序でターゲットポート６１に送信する。ルータ６２は、例えばＣＰＵ４２、ＲＯＭ４３、レジスタ４６により実現される。すなわち、ＣＰＵ４２によって、ＲＯＭ４３中のプログラムが、レジスタ４６中の値を参照しながら実行されることを通じて実現される。
【００３０】
デバイスマネージャ６３は、デバイスレベルの動作、及びコンフィギュレーションの管理を行なう。デバイスレベルの管理には、例えば、メモリデバイス１の電力管理、スリープ等の制御等が含まれる。デバイスレベルのコンフィギュレーションには、デスクリプタの組を保持すること等が含まれる。デバイスマネージャ６３は、ホストデバイス２からのメモリデバイス１のコンフィギュレーション情報の変更、及び出力要求であるクエリー要求のようなコマンドを処理する。デバイスマネージャ６３は、例えばＣＰＵ４２、ＲＯＭ４３、レジスタ４６により実現される。すなわち、ＣＰＵ４２によって、ＲＯＭ４３中のプログラムが、レジスタ４６中の値を参照しながら実行されることを通じて実現される。
【００３１】
デスクリプタ６４、アトリビュート６５、フラグ６６は、例えばワークＲＡＭ４５中のデータとして実現される。デスクリプタ６４は、予め定義されたフォーマットのデータ構造を有し、メモリデバイス１についての何らかの特徴を記述するためのものである。デスクリプタ６４には、例えば、メモリデバイス１にアクセスするのに必要なデバイスクラス、サブクラス、プロトコル等が含まれる。アトリビュート６５は、メモリデバイス１に与えられた設定を示す変更可能または読み出し専用のパラメータである。アトリビュート６５には、例えば、メモリデバイス１とホストデバイス２との間で転送可能なデータの最大値等が含まれる。フラグ６６は、種々の項目についての択一的な論理値からなり、例えば「真」または「偽」、あるいは「０」または「１」等により表わされる。
【００３２】
＜ロジカルユニットの構成＞
各ＬＵ６７は、例えばメモリ１１、メモリインターフェース３４、バッファ３５、ＥＣＣ回路３６、ＣＰＵ４２、ＲＯＭ４３、レジスタ４６（図１参照）により実現される。各ＬＵ６７は、相互に独立して、ホストデバイス２からの処理を実行する。したがって、各ＬＵ６７はメモリ１１、インターフェース２１、２３、バッファ３５、ＥＣＣ回路３６、ＣＰＵ４２、ＲＯＭ４３、レジスタ４６等の資源の一部を利用して実現される。各ＬＵは、上記のようにホストデバイス２からは１つのＬＵを特定するＬＵＮによって相互に区別される。ホストデバイス２からのコマンドは指定されたＬＵ６７によって実行される。
【００３３】
そして、各ＬＵ６７は、デバイスサーバ７１、タスクマネージャ７２、メモリ領域７３、及びキュー（queue：待ち行列）領域７４を含んでいる。
【００３４】
キュー領域７４は、ワークＲＡＭ４５またはレジスタ４６等のハードウェアで実現され、ホストデバイス２からのタスク、ＬＵコマンド、クエリー等を保持する。
【００３５】
メモリ領域７３は、メモリ１１のメモリ領域のうちの一部から構成され、例えばホストデバイス２からの書き込みデータを格納する。
【００３６】
デバイスサーバ７１、及びタスクマネージャ７２は、例えばＣＰＵ４２、ＲＯＭ４３、レジスタ４６により実現される。すなわち、ＣＰＵ４２によって、ＲＯＭ４３中のプログラムが、レジスタ４６中の値を参照しながら実行されることを通じて実現される。
【００３７】
デバイスサーバ７１は、ホストデバイス２から受信されたＬＵレベルの処理を要求するコマンドを解釈する。具体的には、デバイスサーバ７１は、該コマンドが、タスク、ＬＵコマンド、またはクエリーかを判別して、それぞれをキュー領域７４内の所定の領域に割り当てる。また、デバイスサーバ７１は、タスク、ＬＵコマンド、またはクエリーを実行する。そのような処理には、例えば、データの書き込み、読み出し、消去等が含まれる。
【００３８】
ＬＵ６７はメモリ領域７３を含んでいるので、デバイスサーバ７１は、少なくともメモリ領域７３（メモリ１１）を制御する機能を有している。
【００３９】
タスクマネージャ７２は、複数のコマンドの実行の順序を制御し、タスク管理機能を提供する。例えば、キュー領域７４に保持されたタスク、ＬＵコマンド、またはクエリーの実行の順序を制御する。
【００４０】
上記のように、デバイスサーバ７１は、メモリ１１の制御に関する処理を行なう。そのような処理には、論理アドレスと物理アドレスの変換が含まれる。論理アドレスは、ホストデバイス２によって、ホストデバイス２がメモリデバイス１に書き込むことを望むデータに割り当てられるアドレスである。物理アドレスは、上記のように、メモリ１１の書き込み領域（ページ）または消去領域（ブロック）を特定するためのアドレスである。デバイスサーバ７１は、自身に対応するメモリ領域７３によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、どの論理アドレスのデータを保持しているかの関係、及びどの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない、または無効なデータを保持している状態）であるかを管理することを含んでいる。その管理のために、デバイスサーバ７１は、例えば論理アドレス物理アドレス変換テーブル（以下、単に変換テーブルと称する場合がある）を保持している。
【００４１】
変換の例として、例えば、図７に示されているように、割り当てをブロックとすることができる。各ブロック中の各ページに対して、固定の論理アドレスオフセットが割り当てられている。図７は、メモリ１１の書き込み単位の大きさが１６ｋＢであり、論理アドレスが５１２Ｂサイズのデータごとに割り当てられている例を示している。
【００４２】
＜デバイスサーバの構成＞
次に、図８を参照して、デバイスサーバ７１をより詳細に説明する。複数のＬＵ６７のうち、少なくとも１つ、典型的には全てが、図８に示す構成を有している。  
図８に示されているように、デバイスサーバ７１は、管理部８１と、コマンド解析部８２と、メモリ制御部８３を含んでいる。
【００４３】
管理部８１は、デバイスサーバ７１の全体を管理する。コマンド解析部８２は、ホストデバイス２からルータ６２を介してコマンドを受信する。また、コマンド解析部８２は、受信されたコマンドを解析する。更に、コマンド解析部８２は、コマンドを受信すると、キュー領域７４内に、該コマンドを割り当てる。メモリ制御部８３は、管理部８１の指示に従って、メモリ１１に対するあらゆる指示の発行を担う。
【００４４】
＜キュー領域の構成＞
次に、図８及び図９を用いてキュー領域７４について説明する。図９は、第１の実施形態に係るキュー領域７４の基本的な構成を概略的に示した図である。
【００４５】
図示するように、キュー領域７４は、ＬＵコマンドを保持するコマンドキュー７４ａと、タスクを保持するタスクキュー７４ｂと、クエリーを保持するクエリーキュー７４ｃとを備えている。
【００４６】
コマンドキュー７４ａ、タスクキュー７４ｂ、及びクエリーキュー７４ｃ（これらを、単にキュー、または待ち行列空間と呼ぶことがある）は、それぞれ、入出力が繰返されるデータを一時的に保持するデータ構造の一つである。本実施形態に係るキューは、先に入力されたデータから順に処理していく構造となっており、データを先入れ先出し法（FIFO: first in first out）等とも呼ぶことがある。このようなキューの末尾にデータを追加（格納）することをエンキュー（enqueue）と呼び、キューの先頭からデータを取り出すことをデキュー（dequeue）と呼ぶ。
【００４７】
コマンドキュー７４ａにおいて、データ（ＬＵコマンド）は一つずつ、先頭のCommand(1)から末尾のCommand(x)（ｘは１以上の任意の整数）まで順番にエンキューされる。そして、データ（ＬＵコマンド）は一つずつ、先頭のCommand(1)から順番にデキューされる。
【００４８】
タスクキュー７４ｂにおいて、データ（タスク）は一つずつ、先頭のTask(1)から末尾のTask(y)（ｙは１以上の任意の整数）まで順番にエンキューされる。そして、データ（タスク）は一つずつ、先頭のTask(1)から順番にデキューされる。
【００４９】
クエリーキュー７４ｃにおいて、データ（クエリー）は一つずつ、先頭のQuery(1)から末尾のQuery(z)（ｚは１以上の任意の整数）まで順番にエンキューされる。そして、データ（クエリー）は一つずつ、先頭のQuery(1)から順番にデキューされる。
【００５０】
尚、本実施形態に係るメモリデバイス１において、同時に複数のコマンドは実行できない。つまり、コマンドキュー７４ａ、タスクキュー７４ｂ、及びクエリーキュー７４ｃからそれぞれ同時にデキューされることはない。各キュー内において、デキューされる順番は決まっているが、コマンドキュー７４ａ、タスクキュー７４ｂ、及びクエリーキュー７４ｃの内、どのキューから優先的にデキューされるかは、例えばタスクマネージャ７２が適宜決定することができる。本実施形態では、例えばタスクマネージャ７２によって、コマンドキュー７４ａよりも、タスクキュー７４ｂやクエリーキュー７４ｃが優先的に実行されるように設定されている。
【００５１】
＜コマンド中断方法＞
ところで、ホストデバイス２から、メモリデバイス１に、キュー領域７４内に格納されている全コマンドを中断するコマンドが発行されることがある。
【００５２】
各コマンドは、その処理が終了すると、対応するＬＵ６７のデバイスサーバ（より具体的には例えば管理部８１）によって、各コマンドに係る処理の終了の旨のレスポンスをホストデバイス２に送信する。こうして、ホストデバイス２は、各コマンドの処理が終了したと認識する。
【００５３】
しかし、例えば中断コマンドによって、各コマンドが中断された場合、中断された各コマンドは、中断された旨のレスポンスをホストデバイス２に送信しない。ホストデバイス２は、中断コマンドが中断処理を終了した旨のレスポンスを受けて、中断コマンドが終了したことを認識する。
【００５４】
ここで、図１０を用いて、第１の実施形態に係るコマンド中断方法１００について説明する。図１０は、第１の実施形態に係るコマンド中断方法を概略的に示したフローチャートである。ここでは一例として、コマンドキュー７４ａ（Command(1)〜Command(x)）に格納されたＬＵコマンドを中断する場合について説明する。
【００５５】
［ステップＳ１０１］
ホストデバイス２から、メモリデバイス１に、少なくともコマンドキュー７４ａに格納されたコマンドを中断する中断コマンド（例えばタスク）が入力される。この中断コマンド（タスク）はＬＵ６７のデバイスサーバ（より具体的には例えばコマンド解析部８２）に入力される。また、コマンド解析部８２は、タスクキュー７４ｂに中断コマンドをエンキューする。タスクキュー７４ｂはコマンドキュー７４ａよりも優先されるので、コマンドキュー７４ａ内のコマンドがデキューされる前に、中断コマンドがデキューされる。
【００５６】
［ステップＳ１０２］
中断コマンドのデキューを受けて、管理部８１は、コマンドキュー７４ａ内のコマンドが全て中断できるかを確認し、更に実行中のコマンドの有無及び実行中のコマンドが中断できるかを確認する。
【００５７】
［ステップＳ１０３］
管理部８１によって、コマンドキュー７４ａ内のコマンド及び実行中のコマンドが全て中断できる場合、管理部８１は中断コマンドを実行して、全てのコマンドを中断する。
【００５８】
［ステップＳ１０４］
中断処理が終了すると、対応するＬＵ６７の管理部８１は、中断の終了の旨のレスポンスをホストデバイス２に送信する。尚、中断の終了の旨のレスポンスとして、例えば、「全てのコマンドの中断処理が成功した」というレスポンスと、「全てのコマンドの中断は成功してないが、コマンドの中断処理は終了した」というレスポンスの２種類が存在する。このため、例えば全てのコマンドの中断が成功した場合は、管理部８１はホストデバイス２に、その旨がわかるようなレスポンスを送信しても良い。
【００５９】
［ステップＳ１０５］
ステップＳ１０２において、管理部８１は、中断できないコマンド（実行中のコマンドも含む）があると判定した場合、管理部８１は中断コマンドを実行し、中断可能なコマンドのみを中断する。
【００６０】
［ステップＳ１０６］
管理部８１は、中断処理の終了の後、中断できなかった全てのコマンドのレスポンスをホストデバイス２に送信する。その後、ステップＳ１０４を実行する。
【００６１】
＜第１の実施形態に係るコマンド中断方法の具体例＞
次に、図１１を用いて、第１の実施形態に係るＬＵコマンド中断時のホストデバイス２とメモリデバイス１との通信の様子について説明する。図１１は、ホストデバイス２からメモリデバイス１に入力されたＬＵコマンドを、ホストデバイス２からメモリデバイス１に入力されたタスクで中断する場合における、ホストデバイス２とメモリデバイス１との通信の様子と、該通信時における、コマンドキュー７４ａ及びタスクキュー７４ｂの様子を示した図である。尚、図１１では簡単のため、コマンドキュー７４ａ及びタスクキュー７４ｂの先頭から三つまでのキューを図示している。また、簡単のため、初めはコマンドキュー７４ａ及びタスクキュー７４ｂには何もエンキューされてないものとする。また、各通信はいずれも、この１つのＬＵ６７とホスト２との間の通信（パケット）に相当する。
【００６２】
図１１に示すように、まずホストデバイス２からメモリデバイス１のコマンド解析部８２に一つ目のコマンド（WRITE(1) command：書き込みコマンド）が供給される。コマンド解析部８２は、該コマンドがＬＵコマンド（WRITE(1) command）であることを判別し、コマンドキュー７４ａに該ＬＵコマンドをエンキューする。この際、コマンドキュー７４ａには何もエンキューされていないので、該ＬＵコマンドは、コマンドキュー７４ａの先頭にエンキューされる。そして、先頭にエンキューされたWRITE(1) commandがデキューされ、メモリ領域７３への書き込み動作が実行される。コマンドキュー７４ａは再び空となる。
【００６３】
尚、書き込み動作の一例として、例えば管理部８１は、書き込み動作を実行する前に、ホストデバイス２に書き込みの準備ができた旨を伝えるレスポンスを返す。ホストデバイス２はこのレスポンスを受けて、メモリデバイス１に書き込み用のデータを転送する。そして、このデータの転送を受けて、デバイスサーバ７１は、メモリ領域７３への書き込みを実行する。
【００６４】
続いて、ホストデバイス２からメモリデバイス１のコマンド解析部８２に二つ目のコマンド（WRITE(2) command：書き込みコマンド）が供給される。コマンド解析部８２は、該コマンドがＬＵコマンド（WRITE(2) command）であることを判別し、コマンドキュー７４ａに該ＬＵコマンド（WRITE(2) command）をエンキューする。この際、コマンドキュー７４ａには何もエンキューされていないので、該ＬＵコマンドは、コマンドキュー７４ａの先頭にエンキューされる。
【００６５】
続いて、ホストデバイス２からメモリデバイス１のコマンド解析部８２に三つ目のコマンド（READ command：読み出しコマンド）が供給される。コマンド解析部８２は、該コマンドがＬＵコマンド（READ command）であることを判別し、コマンドキュー７４ａに該ＬＵコマンド（READ command）をエンキューする。この際、該ＬＵコマンド（READ command）は、WRITE(2) commandの次にエンキューされる。
【００６６】
次に、ホストデバイス２からメモリデバイス１のコマンド解析部８２に四つ目のコマンド（ABORT task：中断タスク）が供給される。コマンド解析部８２は、該コマンドがタスク（ABORT task）であることを判別し、タスクキュー７４ｂに該タスク（ABORT task）をエンキューする。この際、該タスク（ABORT task）は、タスクキュー７４ｂの先頭にエンキューされる。このABORT taskは、キュー領域７４に格納されているコマンドを全て中断するコマンドである。
【００６７】
ここで、タスクマネージャ７２によって、コマンドキュー７４ａよりも、タスクキュー７４ｂが優先されるように設定されている。そのため、管理部８１は、ABORT taskをWRITE(2) commandよりも優先して実行する。ABORT taskの実行によって、コマンドキュー７４ａに格納されているWRITE(2) command、及びREAD commandが中断される。しかし、WRITE(1) commandは既に実行されているので、ABORT taskによって中断されない。尚、管理部８１によって、実行中のコマンドであっても、中断可能だと判定されれば、該コマンドを中断してもかまわない。
【００６８】
管理部８１は、中断可能なコマンドの中断が完了すると、その旨をホストデバイス２に伝えるレスポンス（ABORT taskに関するレスポンス）を返す。ところで、コマンド中断の実行時に、既に実行中のコマンドや、例えば管理部８１によって中断すべきではないと判断されるコマンドが残っていることがある。そのような場合、管理部８１は、中断できなかったコマンドに関するレスポンスをホストデバイス２に送信してから、ABORT taskに関するレスポンスをホストデバイス２に送信する。このため、図１１に示すように、WRITE(1) commandが実行中の間は、管理部８１は、ABORT taskのレスポンスをホストデバイス２に送信しない。
【００６９】
そして、WRITE(1) commandが終了すると、管理部８１は、その旨を伝えるレスポンス（RESPONSE (WRITE(1) command)）をホストデバイスへと送信する。
【００７０】
中断可能なコマンドが中断され、且つ中断されなかったコマンドのレスポンスがホストデバイス２へと発行されると、管理部８１は、コマンドの中断が全て完了した旨を伝えるレスポンス（RESPONSE (ABORT task)）をホストデバイス２に送信する。
【００７１】
＜第１の実施形態に係るメモリデバイスの作用効果＞
上述した第１の実施形態によれば、メモリデバイス１は、不揮発性のメモリ（メモリ領域）７３と、コマンドが格納されるコマンド格納部（キュー領域）７４と、コマンドをホストデバイス２から受信し、コマンドをコマンド格納部７４に格納すると共にコマンドを実行し、コマンドの実行が終了した後、コマンドの実行の終了を知らせる第１の信号（レスポンス）をホストデバイス２に送信する制御部（デバイスサーバ）７１とを備えている。また、制御部７１は、第１のコマンドに応答してメモリ７３についての書き込み、読み出し、または消去を実行し、第２のコマンドに応答して、コマンド格納部７４内の第１のコマンドまたは実行中の第１のコマンドを中断する。また、制御部７１は、第２のコマンドを実行した際、中断対象となる第１のコマンド（コマンド格納部７４に格納されたコマンド、及び実行中のコマンド）のうち、中断可能な第１コマンドを中断すると共に、中断対象となる第１のコマンドのうちで中断されなかった全ての第１のコマンドに関する第１の通知を送信した後、第２のコマンドに関する第１の通知を、ホストデバイス２に送信する。
【００７２】
このように、メモリデバイス１が、レスポンスをホストデバイス２に送信するタイミングを制御することで、ホストデバイス２は、メモリデバイス１の状態を正確に認識することができる。以下に比較例を用いて、本実施形態のより詳細な効果について説明する。
【００７３】
まず、図１３を用いて、比較例について概略的に説明する。比較例は、コマンド中断時において、中断されないコマンドがレスポンスをホストデバイス２に返す前に、コマンド中断のレスポンスをホストデバイス２に返す場合に関する。
【００７４】
図１３に示すように、タスクキュー７４ｂにタスク（ABORT task）がエンキューされるまでは、上述の第１の実施形態（図１１）で説明した動作と同様の動作が行われる。
【００７５】
タスクマネージャ７２によって、コマンドキュー７４ａよりも、タスクキュー７４ｂが優先されるように設定されている。そのため、ABORT taskがWRITE(2) commandよりも優先して実行される。しかし、ここで管理部８１によって、WRITE(2) commandは中断すべきではないと判断される場合、ABORT taskの実行によって、コマンドキュー７４ａに格納されているREAD commandが中断される。しかし、管理部８１は、WRITE(1) command、及びWRITE(2) commandに関するレスポンスがホストデバイス２に送信される前に、コマンドの中断が完了した旨を伝えるレスポンスをホストデバイス２に送信する。
【００７６】
その後、WRITE(1) commandが終了すると、管理部８１は、その旨を伝えるレスポンス（RESPONSE (WRITE(1) command)）をホストデバイス２へと送信する。
【００７７】
続いて、先頭に格納されているWRITE(2) commandがデキューされ、メモリ領域７３への書き込み動作が実行される。そして、WRITE(2) commandが終了すると、管理部８１は、その旨を伝えるレスポンス（RESPONSE (WRITE(2) command)）をホストデバイス２へと送信する。
【００７８】
このように、各コマンドが中断された場合、管理部８１は、中断されたコマンドに関するレスポンスをホストデバイス２に送信しない。このため、ホストデバイス２はどのコマンドが中断され、どのコマンドが中断されなかったかを明確に認識できない。その結果、ホストデバイス２は、全てのコマンドからのレスポンスが送信されるまで待機している。
【００７９】
比較例によると、中断されなかったコマンドがあるにも関わらず、コマンドの中断の終了の旨のレスポンスをホストデバイス２に送信している。このため、ホストデバイス２はどのコマンドが中断され、どのコマンドが中断されなかったかを明確に認識できない。その結果、中断されていないコマンドのレスポンスを待つために所定の時間待機しなければならないという問題が起きてしまう。
【００８０】
そこで、本実施形態では上述したように、管理部８１が、中断されなかったコマンドのレスポンスを全てホストデバイス２に送信した後に、コマンドの中断の終了の旨のレスポンスをホストデバイス２に送信するように、レスポンスの順序を明確に規定する。これにより、ホストデバイス２は、コマンドの中断の終了の旨のレスポンスを認識した時点で、メモリデバイス１内のコマンドが全て中断及び終了されたことを認識することができる。このようなメモリデバイス１を用いることで、ホストデバイス２は、コマンドの中断の終了の旨のレスポンスを認識した時点で、待機時間無しに所望の処理に移行することが可能となる。例えばメモリデバイス１とホストデバイス２との間の通信がより円滑に行われることが可能となる。
【００８１】
尚、上述のステップＳ１０４でも説明したように、中断の終了の旨のレスポンスは２種類存在する。そこで、中断対象となるコマンドが一つである場合、ホストデバイス２は２種類の中断の終了の旨のレスポンスを受信するだけで、該コマンドが中断されたか否かがわかる。そのため、「全てのコマンドの中断は成功してないが、コマンドの中断処理は終了した」というレスポンスを受信した場合は、該コマンドが中断されてないことをホストデバイス２が認識することができ、ホストデバイス２は該コマンドからのレスポンスを待てば良い。しかし、上述したように、中断対象となるコマンドが複数存在する場合、ホストデバイスは「全てのコマンドの中断は成功してないが、コマンドの中断処理は終了した」というレスポンスを受信しただけでは、中断対象となるコマンドのうち、どのコマンドが中断され、どのコマンドが中断されていないかが不明確となる。このように中断対象となるコマンドが複数存在する場合、上述した第１の実施形態は特に有効である。
【００８２】
（第２の実施形態）
次に、図１２を用いて、第２の実施形態について説明する。第２の実施形態に係るメモリデバイスは、第１実施形態と同じハードウェア構成および機能ブロックを有する。第２の実施形態の説明で触れられていない点については、第１実施形態の記述が第２の実施形態に全て適用されることに留意されたい。第２の実施形態は、コマンド中断時において、実行中のコマンド及び、キュー内に中断されないコマンドが残っている場合に関する。
【００８３】
＜第２の実施形態に係るコマンド中断方法の具体例＞
図１２は、第２の実施形態に係るＬＵコマンド中断時のホストデバイス２とメモリデバイス１との通信の様子について示した図である。尚、図１２では簡単のため、コマンドキュー７４ａ及びタスクキュー７４ｂの先頭から三つまでのキューを図示している。また、簡単のため、初めはコマンドキュー７４ａ及びタスクキュー７４ｂには何もエンキューされてないものとする。
【００８４】
図１２に示すように、ホストデバイス２からメモリデバイス１のコマンド解析部８２に四つ目のコマンド（ABORT task：中断タスク）が供給され、タスクキュー７４ｂに該タスク（ABORT task）がエンキューされるまでは、上述の第１の実施形態（図１１）で説明した動作と同様の動作が行われる。
【００８５】
第１の実施形態と同様に、タスクマネージャ７２によって、コマンドキュー７４ａよりも、タスクキュー７４ｂが優先されるように設定されている。そのため、ABORT taskがWRITE(2) commandよりも優先して実行される。しかし、ここで管理部８１は、WRITE(2) commandは中断すべきではないと判断した場合、ABORT taskの実行によって、コマンドキュー７４ａに格納されているcommandのうちREAD commandのみ中断し、WRITE(2) commandは中断しない。しかし、管理部８１は、中断されないコマンド（WRITE(1) command、及びWRITE(2) command）に関するレスポンスがホストデバイス２に送信されるまで、コマンドの中断が完了した旨を伝えるレスポンスをホストデバイス２に送信しない。
【００８６】
そして、WRITE(1) commandが終了すると、管理部８１は、その旨を伝えるレスポンス（RESPONSE (WRITE(1) command)）をホストデバイス２へと送信する。
【００８７】
続いて、先頭に格納されているWRITE(2) commandがデキューされ、メモリ領域７３への書き込み動作が実行される。コマンドキュー７４ａは再び空となる。この書き込み動作に関しては、第１の実施形態で説明した方法と同様の方法で行われる。
【００８８】
そして、WRITE(2) commandが終了すると、管理部８１は、その旨を伝えるレスポンス（RESPONSE (WRITE(2) command)）をホストデバイス２へと送信する。
【００８９】
中断可能なコマンドが中断され、且つ中断されなかったコマンドのレスポンスがホストデバイス２へと発行されると、管理部８１は、コマンドの中断が全て完了した旨を伝えるレスポンス（RESPONSE (ABORT task)）をホストデバイス２に送信する。
【００９０】
＜第２の実施形態に係るメモリデバイスの作用効果＞
上述した第２の実施形態によれば、制御部７１は、中断対象となる第１のコマンドのうち、中断すべきである第１のコマンドと、中断すべきでない第１のコマンドとを判断している。
【００９１】
管理部８１が、中断対象となるコマンドキュー７４ａ内のＬＵコマンドのうち、中断すべきではないと判断するＬＵコマンドがある場合においても、管理部８１が、中断すべきではないと判断したコマンドのレスポンスをホストデバイス２に送信してから、コマンドの中断の終了の旨のレスポンスをホストデバイス２に送信することで、上述した第１の実施形態と同様の効果を得ることが可能である。
【００９２】
＜変形例等＞
尚、上述ではタスク（ABORT task）を用いてキュー領域７４内のコマンドを中断している。しかし、これに限らず、所定のコマンドによってキュー領域７４内を初期化する場合においても、中断できなかったコマンドのレスポンスがホストデバイス２に送信された後に、管理部８１が該コマンドが完了した旨を伝えるレスポンスをホストデバイス２に送信することで、上述した第１の実施形態及び第２の実施形態と同様の効果を得ることが可能である。またこの場合、タスクマネージャ７２によって、コマンドキュー７４ａよりも、該コマンドの実行が優先されるように設定されている。このように、メモリデバイス１内のコマンドを中断するコマンドであれば、上述したコマンド（ABORT task）に限定されず、どのようなものでも上述した第１の実施形態及び第２の実施形態を適用可能である。
【００９３】
また、上述した第１の実施形態及び第２の実施形態では、ＵＦＳメモリデバイスを用いて説明したが、これに限らず、例えば、クライアントサーバモデルに基づくメモリシステムであれば、どのようなものでも良い。
【００９４】
また、上述した第１の実施形態及び第２の実施形態では、ＵＦＳメモリデバイスを用いて説明したが、同様の動作をする半導体記憶装置であれば、他のメモリカード、メモリデバイスまたは内部メモリ等にも適用可能であり、上述した第１の実施形態及び第２の実施形態と同様の作用効果を奏することができる。また、メモリ１１はＮＡＮＤ型フラッシュメモリに限らず、その他の半導体メモリであっても良い。
【００９５】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【００９６】
１…メモリデバイス、２…ホストデバイス、１１…メモリ、１２…コントローラ、
２１…Ｉ／Ｏ、２２…コアロジック部、２３…Ｉ／Ｏ、
３１…ホストインターフェース、３２…バッファ、３３…データバス、
３４…メモリインターフェース、３５…バッファ、３６…ＥＣＣ回路、
４１…制御バス、４２…ＣＰＵ、４３…ＲＯＭ、４５…ワークＲＡＭ、
４６…レジスタ、５１…アナログ回路、６１…ターゲットポート、
６２…タスクルータ、６３…デバイスマネージャ、６４…デスクリプタ、
６５…アトリビュート、６６…フラグ、６７…ＬＵ、７１…デバイスサーバ、
７２…タスクマネージャ、７３…メモリ領域、７４…キュー領域、
７４ａ…コマンドキュー、７４ｂ…タスクキュー、７４ｃ…クエリーキュー、
８１…管理部、８２…コマンド解析部、８３…転送要求生成部、８４…メモリ制御部。
【図１】
0005547148.tif 000002
【図２】
0005547148.tif 000003
【図３】
0005547148.tif 000004
【図４】
0005547148.tif 000005
【図５】
0005547148.tif 000006
【図６】
0005547148.tif 000007
【図７】
0005547148.tif 000008
【図８】
0005547148.tif 000009
【図９】
0005547148.tif 000010
【図１０】
0005547148.tif 000011
【図１１】
0005547148.tif 000012
【図１２】
0005547148.tif 000013
【図１３】
0005547148.tif 000014