不揮発性メモリと、一時メモリと、前記一時メモリをバッファとして用いてホスト装置と前記不揮発性メモリとの間のデータ転送を実行するデータ転送装置と、を備え、前記データ転送装置は、前記ホスト装置からリード要求されたデータを前記不揮発性メモリから読み出すための前記不揮発性メモリに対する命令を生成する第1命令生成部と、前記一時メモリと前記不揮発性メモリとを用いた内部処理にかかる、前記不揮発性メモリに対する命令を生成する第2命令生成部と、前記第1命令生成部が生成した命令を一時記憶するキュー構造の第1記憶部と、前記第2命令生成部が生成した命令を一時記憶するキュー構造の第2記憶部と、前記第1記憶部が記憶している命令を前記第2記憶部が記憶している命令よりも優先して読み出して、当該読み出した命令を前記不揮発性メモリに送信する不揮発性メモリ管理部と、を備えることを特徴とするメモリシステム。前記内部処理は、前記一時メモリにバッファされている前記ホスト装置からライト要求されたデータを前記不揮発性メモリに書き込む処理である、ことを特徴とする請求項1に記載のメモリシステム。前記内部処理は、前記一時メモリをワークエリアとして前記不揮発性メモリの記憶内容を整理する処理である、ことを特徴とする請求項1に記載のメモリシステム。前記内部処理は、前記一時メモリに前記ホスト装置からリード/ライト要求される論理アドレスと前記不揮発性メモリの物理アドレスを対応付けるアドレス変換テーブルをロードする処理と、前記一時メモリにロードされているアドレス変換テーブルを前記不揮発性メモリにストアする処理と、である、ことを特徴とする請求項1に記載のメモリシステム。前記第2命令生成部は、次の命令を連続して実行する必要があるか否かを示す連続実行情報を前記生成した命令の夫々に対応付けておき、前記不揮発性メモリ管理部は、前記第2記憶部が記憶している命令を順次前記不揮発性メモリ管理部に送信している際に前記第1記憶部に命令が登録されたとき、前記不揮発性メモリに送信する命令の読み出し元を前記第2記憶部から前記第1記憶部に切り替えるタイミングを前記第2記憶部が記憶している命令に対応付けられた連続実行情報に基づいて決定する、ことを特徴とする請求項1乃至請求項4のうちの何れか一項に記載のメモリシステム。前記第2命令生成部は、連続して生成した1以上の命令群に、当該命令群に含まれる命令の連続した実行を中断する際に所定の後処理を実行する必要があるか否かを示す中断処理情報を対応付けておき、前記不揮発性メモリ管理部は、前記不揮発性メモリに送信する命令の読み出し元を前記第2記憶部から前記第1記憶部に切り替える際、連続した実行が当該切り替えによって中断される命令群に前記後処理を必要とする旨の中断処理情報が対応付けられているとき、前記第1記憶部が記憶している命令を送信する前に前記後処理を実行させる命令を送信する、ことを特徴とする請求項5に記載のメモリシステム。前記不揮発性メモリ管理部は、前記第1記憶部が記憶している命令を全て実行完了した後、前記不揮発性メモリに送信する命令の読み出し元を前記第1記憶部から前記第2記憶部に切り替える、ことを特徴とする請求項6に記載のメモリシステム。前記不揮発性メモリ管理部は、前記不揮発性メモリに送信する命令の読み出し元を前記第1記憶部から前記第2記憶部に切り替える際、所定の前処理を実行させる命令を前記不揮発性メモリに送信する、ことを特徴とする請求項7に記載のメモリシステム。前記データ転送装置は、前記不揮発性メモリに送信した命令の実行エラーを検出する実行エラー検出部と、前記実行エラー検出部が実行エラーを検出したとき、前記検出された実行エラーに対応するエラー処理にかかる、前記不揮発性メモリに対する命令を生成する第3命令生成部と、前記第3命令生成部が生成した命令を一時記憶するキュー構造の第3記憶部と、をさらに備え、前記不揮発性メモリ管理部は、前記第3記憶部に命令が格納されたとき、前記不揮発性メモリに送信する命令の読み出し元を前記第1記憶部または前記第2記憶部から前記第3記憶部に切り替える、ことを特徴とする請求項1乃至請求項4のうちの何れか一項に記載のメモリシステム。前記内部処理は、前記エラー処理にかかる前記不揮発性メモリへのライト処理またはリード処理である、ことを特徴とする請求項9に記載のメモリシステム。本発明の一つの実施形態は、ホスト装置からのリード要求に対する応答を効率的に実行するメモリシステムを提供することを目的とする。本発明の一つの実施形態によれば、不揮発性メモリと、一時メモリと、前記一時メモリをバッファとして用いてホスト装置と前記不揮発性メモリとの間のデータ転送を実行するデータ転送装置と、を備えている。前記データ転送装置は、前記ホスト装置からリード要求されたデータを前記不揮発性メモリから読み出すための前記不揮発性メモリに対する命令を生成する第1命令生成部と、前記一時メモリと前記不揮発性メモリとを用いた内部処理にかかる、前記不揮発性メモリに対する命令を生成する第2命令生成部と、前記第1命令生成部が生成した命令を一時記憶するキュー構造の第1記憶部と、前記第2命令生成部が生成した命令を一時記憶するキュー構造の第2記憶部と、前記第1記憶部が記憶している命令を前記第2記憶部が記憶している命令よりも優先して読み出して、当該読み出した命令を前記不揮発性メモリに送信する不揮発性メモリ管理部と、を備えている。以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。また、以下の説明においては、本発明の実施形態のメモリシステムをSSDに適用した例を説明するが、本発明の実施形態のメモリシステムの適用対象はSSDだけに限定されない。即ち、不揮発性半導体メモリおよび当該不揮発性半導体メモリを制御するコントローラを含むメモリシステム一般について本発明の実施形態を適用することが可能である。また、メモリシステムはホスト装置内部に取り外し不可能な態様で実装されていてもよいし、メモリカードの様にホスト装置に対して着脱可能なリムーバブルデバイスであってもよい。第1の実施形態図1は、第1の実施形態のメモリシステムを適用したSSDの構成を説明する図である。SSD200は、パーソナルコンピュータなどのホスト装置以下ホストともいう100とSATASerialAdvancedTechnologyAttachment規格の通信インタフェースで接続され、ホスト装置100の外部記憶装置として機能する。SSD200がホスト装置100から受信するリード/ライト要求は、LBALogicalBlockAddressingで定義されたアクセス対象の先頭アドレスとアクセス対象の領域の範囲を示すセクタサイズとが含まれている。なお、通信インタフェースはSATA規格に限らず、SASSerialAttachedSCSI、PCIePCIExpressなど様々な通信インタフェース規格を採用することが可能である。SSD200は、データ転送装置1と、NANDメモリ2と、RAM3と、を備えている。データ転送装置1と、NANDメモリ2と、RAM3とは、例えば共通の基板上にそれぞれ独立したチップとして配置されている。なお、RAM3はデータ転送装置1に混載されていてもよい。データ転送装置1は、SATAI/Fの制御およびホスト装置100とRAM3との間のデータ転送を実行するSATAインタフェースコントローラSATAC10と、RAM3に対するデータのライト/リードを制御するRAMコントローラRAMC30と、NANDメモリ2とRAM3との間のデータ転送を実行するNANDコントローラNANDC20と、SATAC30およびNANDC20の夫々にデータ転送を実行させるタイミングを制御する自動転送管理部40と、ファームウェアに基づいてデータ転送装置1の制御を実行するMPU50と、を備えている。MPU50は、データ転送装置1の制御の一環として、特に、SSD200の内部処理にかかるデータ転送を実行するためのNANDメモリ2に対する命令を生成する第2命令生成部として機能する。内部処理にかかるデータ転送の具体例は後ほど説明する。SATAC10、NANDC20、RAMC30、自動転送管理部40およびMPU50はバス接続されている。RAM3は、例えばDRAMDynamicRandomAccessMemory、SRAMStaticRandomAccessMemory、MRAMMagnetoresistiveRandomAccessMemory、FeRAMFerroelectricRandomAccessMemoryなどの、NANDメモリ2よりも高速動作する揮発性あるいは不揮発性のランダムアクセス可能な記憶装置で構成される。図2は、RAM3のメモリ構造を説明する図である。図示するように、RAM3は、LBAとNANDメモリ2の物理アドレスとの対応関係を記述したアドレス変換テーブル等がロードされるワークエリア31と、ホスト装置100からライト要求されたデータをキャッシュするライトキャッシュ領域32と、ホスト装置100からリード要求され、NANDメモリ2から読み出されたデータを一時記憶するリードバッファ領域33と、SATAC用ディスクリプタ35、NANDC用ディスクリプタ36、後処理用ディスクリプタ37、および前処理用ディスクリプタ38が格納されるディスクリプタ格納領域34と、を備えている。ディスクリプタ格納領域34に格納される各ディスクリプタの詳細は後述する。NANDメモリ2は、ホスト装置100からのライトデータを記憶したり、ワークエリア31にロードされているアドレス変換テーブルのバックアップデータや差分データを記憶したりする。NANDメモリ2は、1以上のメモリチップにより構成される。NANDメモリ2が複数のメモリチップで構成される場合、複数のメモリチップを並列駆動することで高速動作を実現する事が可能である。NANDメモリ2は、1つのメモリセルに1ビットを記憶する二値メモリSLCSingleLevelCellであってもよいし、1つのメモリセルに2ビット以上を記憶する多値メモリMLCMultiLevelCellであってもよい。以下、NANDメモリ2は多値メモリであるとして説明する。図3は、メモリチップの構成を説明する図である。図示するように、メモリチップ21は、データキャッシュ22、ページバッファ23、およびメモリセルアレイ24を備えている。メモリセルアレイ24は、複数のメモリセルがマトリクス状に配列されて構成されており、個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。また、メモリセルアレイ24は、イレースの単位である物理ブロックを複数備えており、個々の物理ブロックは、リードおよびライトの単位である物理ページ以降、単にページを複数備えて構成されている。データキャッシュ22およびページバッファ23は、例えば1ページ分の記憶容量を備えている。データキャッシュ22は、メモリチップ21がNANDC20との間でデータを送受信するためのバッファとして使用され、ページバッファ23は、メモリチップ21がデータをメモリセルアレイ24に入出力するためのバッファとして使用される。具体的には、ライト処理時には、メモリチップ21は、NANDC20から送られてきたライトデータをデータキャッシュ22に受信して、受信したライトデータをページバッファ23にコピーする。そして、ページバッファ23に格納されたライトデータをメモリセルアレイ24にプログラムする。プログラムの際には、メモリチップ21は、プログラムされたライトデータとページバッファ23に格納されているライトデータとを比較して、正しくプログラムされたか否かをベリファイする。リード処理時には、メモリチップ21は、メモリセルアレイ24からページバッファ23に対象のデータを読み出して、ページバッファ23に格納されたリードデータをデータキャッシュ22にコピーする。データキャッシュ22に格納されたリードデータは、データ出力信号例えばRE信号によりNANDC20に送られる。ここで、SSD200が実行するデータ転送シーケンスは、次の4つに分類される。1ホスト装置100からリード要求されたデータをNANDメモリ2からリードバッファ領域33に読み出して、リードバッファ領域33に読み出したデータをホスト装置100へ送信するデータ転送。2ホスト装置100からライト要求されて送られてきたデータをライトキャッシュ領域32に書き込むデータ転送。3内部処理にかかるNANDメモリ2からRAM3へのデータ転送。アドレス変換テーブルをワークエリア31にロードする動作や、NANDメモリ2に格納されているデータをLBA順に並べなおしたり、空きブロックを生成したりする際に、NANDメモリ2の記憶内容をいったんワークエリア31に読み出したりする動作がこのデータ転送に該当する。4内部処理にかかるRAM3からNANDメモリ2へのデータ転送。ライトキャッシュ領域32にキャッシュされているライトデータをNANDメモリ2に退避させる動作や、アドレス変換テーブルをバックアップする動作や、アドレス変換テーブルの差分をNANDメモリ2に記録する動作や、NANDメモリ2に格納されているデータをLBA順に並べなおしたり、空きブロックを生成したりする際にワークエリア31に読み出したデータをNANDメモリ2に書き戻す動作がこのデータ転送に該当する。本発明の実施形態1によれば、SSD200は、ホスト装置100に対する応答速度を向上させるために、ホスト装置100との間でデータの送受信を伴う1および2にかかるデータ転送を、SSD200内部でのみデータの送受信を行う3および4にかかるデータ転送よりも優先して実行する。そのための構成として、SSD200は、NANDメモリ2に送信する命令のうちの1にかかるデータ転送を実行するための命令をキューイングする優先キュー61と3および4にかかるデータ転送を実行するための命令をキューイングする標準キュー62とを備えている。そして、SSD200は、優先キュー61に命令が登録された際、実行対象とするキューを標準キュー62から優先キュー61に切り替える。以降、1、2、3、4にかかるデータ転送を、夫々、優先リード、優先ライト、標準リード、標準ライトと表記する。メモリチップ21は、ライトデータの受信とライトデータのプログラムとを並行して実行することで複数ページの連続ライトを高速化することができる。図4-1および図4-2は、メモリチップ21への連続ライト処理を説明するタイミングチャートである。図4-1および図4-2の上段に示すタイミングチャートはメモリチップ21のI/Oピンの状態、中段に示すタイミングチャートはデータキャッシュ22の状態、下段に示すタイミングチャートはページバッファ23の状態を夫々示す。なお、ここでは、nページ分のライトデータが連続ライトされるものとしている。図4-1に示すように、メモリチップ21は、まず、I/Oピンからリセット命令FFhが入力される。1ページ目のライト命令を受信する。その後、ページ毎のライト命令とステータスリード命令70hとを交互に受信する。ページ毎のライト命令は、ライト予告命令80h、書き込み先アドレスAddr、ライトデータData、および書き込み開始命令15hにより構成されている。メモリチップ21は、当該ライト命令により送られてきたi1≦i≦nページ目のライトデータをデータキャッシュ22に受信する。そして、書き込み開始命令15hを受信すると、メモリチップ21は、データキャッシュ22に格納されているライトデータをページバッファ23にコピーする。当該コピーが行われている間、データキャッシュ22の状態はビジー状態となる。続いて、メモリチップ21は、データキャッシュ22からページバッファ23にコピーされたライトデータをメモリセルアレイ24にプログラムする。プログラム後には、メモリセルアレイ24にプログラムされたライトデータのベリファイを実行する。プログラムおよびベリファイが行われている間、ページバッファ23の状態はビジー状態となる。以降、プログラムとベリファイとからなる動作を単にプログラムと表記することとする。一方、メモリチップ21は、データキャッシュ22の状態をRY/BYピンに出力する。RY/BYピンがレディー状態となったとき、即ちデータキャッシュ22からページバッファ23へのコピーが完了したとき、RY/BYピンがレディー状態になったことを検知したNANDC20から、ステータスリード命令70hが入力される。メモリチップ21は、ステータスリード命令70hを受信すると、ステータス情報Statusを出力する。メモリチップ21はiページ目のライトデータにかかるライト命令の後にステータスリード命令を受信すると、ステータス情報として、iページ目およびi-1ページ目のライトデータにかかるプログラミングが夫々成功したか否かを出力する。メモリチップ21は、図示するタイミングでステータスリード命令70hを受信した場合、例えば、i-1ページ目はプログラムが成功し、iページ目は無効プログラム中である旨のステータス情報を出力する。NANDC20は、i-1ページ目のプログラムが成功した旨のステータス情報を受信すると、i1ページ目のライト命令を送信する。このように、連続ライト処理を実行すると、iページ目のライトデータのプログラミングと、i1ページ目のライト命令の送受信とが同時に実行されるため、プログラムにかかる時間が隠ぺいされ、結果としてデータのプログラム効率が向上する。NANDC20は、連続ライト処理の後に別の処理例えばリード処理を実行する場合、当該別の処理にかかる命令の送信を最終に送信したライトデータのプログラムが完了するまで待機する必要がある。そこで、NANDC20は、図4-2に示すように、nページ目のライト命令を送信して、RY/BY信号がレディー状態になった直後に、ステータスリード命令を送信するが、その後さらに、nページ目のライトデータのプログラムが成功した旨のステータス情報が得られるまでステータスリード命令を繰り返し送信する。以降、最後に送信したライトデータのプログラムが成功した旨のステータス情報が得られるまでステータスリード命令を繰り返し送信する動作をステータスポーリングと表記し、ステータスポーリングのためのステータスリード命令を特にステータスポーリング命令と表記することとする。この連続ライト処理は、標準ライトのうちの1つとして実行される。連続ライト処理は、メモリセルアレイ24にプログラムが完了する前に次のページのライト命令を送信するようになっているため、連続ライト処理を構成する一連の命令の実行を中断して別の処理にかかる命令を実行したい場合、中断の直前にNANDメモリ2に送信したライトデータがメモリセルアレイ24にプログラムされるまで待つ必要がある。そこで、SSD200は、連続ライト処理を中断する場合に、後処理としてステータスポーリング命令をNANDメモリ2に実行させ、中断の直前に送信したライトデータのプログラムが完了するまで優先キュー61にかかる命令の送信を待機する。また、中断した連続ライト処理にかかる命令の送信を再開するとき、前処理としてリセット命令をNANDメモリ2に実行させ、データキャッシュ22およびページバッファ23の記憶内容をリセットする。なお、標準キュー62および優先キュー61の夫々に登録される命令の実体は、ディスクリプタ格納領域34に格納されているNANDC用ディスクリプタ36を構成するエントリに記述されており、標準キュー62および優先キュー61には、NANDC用ディスクリプタ36内の対応するエントリを参照するための変数が記述されたデータ以降、参照データが登録される。また、後処理および前処理にかかる命令の実体は、夫々、後処理用ディスクリプタ37、前処理用ディスクリプタ38として予めディスクリプタ格納領域34にロードされる。図5は、標準ライトにかかるNANDC用ディスクリプタ36を構成する各エントリのデータ構成例を説明する図である。NANDC用ディスクリプタ36を構成する夫々のエントリは、NANDメモリ2に送信される命令が記述される命令フィールドと、連続投入指示フラグとを備えている。連続投入指示フラグは、後段のエントリにかかる命令を必ず連続して実行する必要があるかまたは中断することが可能であるかを示す。なお、複数の命令に対して1つのエントリを作成することも可能である。ここでは、ページ毎のライト命令を構成する複数の命令80h、Addr、Data、11hは1つのエントリで記述され、リセット命令FFhやステータスリード命令70hは夫々1つのエントリで記述されるものとする。図6は、標準ライトにかかるNANDC用ディスクリプタ36のデータ構造の具体例を説明する図である。本図に示す例は、図3に示した連続ライト処理を実行するための一連の命令に対応している。即ち、この例によれば、NANDC用ディスクリプタ36は、上段から、リセット命令FFhを記述したエントリと、1ページ目のライト命令を記述したエントリと、2ページ目以降に関するページ毎のライト命令を記述したエントリおよびステータスリード命令70hの繰り返しと、ステータスポーリング命令70hを記述したエントリとを備えて構成されている。そして、1ページ目を除くページ毎のライト命令の連続投入指示フラグの値は、後段のエントリにかかる命令を連続して実行する必要がある旨の1であり、ステータスリード命令70h、1ページ目のライト命令およびステータスポーリング命令70hの連続投入指示フラグの値は、連続した命令の実行を中断することが可能である旨の0となっている。なお、NANDC20によるNANDメモリ2とRAM3との間のデータ転送は、標準ライト実行時、標準リード実行時、および優先リード実行時に実行される。NANDメモリ2に関し、標準リードはNANDメモリ2にプログラムする処理を含まないため、後処理を必要とすることなく中断することができる。また、優先リードの実行中はキューの切り替えが実行されないため、優先リードは中断されることがない。したがって、標準リードおよび優先リードにかかるNANDC用ディスクリプタ35のエントリから連続投入指示フラグを省略することが可能である。図7は、後処理用ディスクリプタ37のデータ構造の具体例を説明する図であり、図8は、前処理用ディスクリプタ38のデータ構造の具体例を説明する図である。後処理用ディスクリプタ37は、ステータスリード命令70hを記述したエントリによって構成され、前処理用ディスクリプタ38は、ステータスポーリング命令70hを記述したエントリによって構成される。図9は、標準キュー62に登録される参照データのデータ構造例を示す図であり、図10は、優先キュー61に登録される参照データのデータ構造例を示す図である。標準キュー62に登録される参照データおよび優先キュー61に登録される参照データは、対象のエントリの先頭アドレスが記述されるフィールドと、エントリ数が記述されるフィールドと、を備えている。即ち、1つの参照データによって、ディスクリプタ格納領域34に格納されている複数のエントリを参照することができるようになっている。これを利用して、例えば図6に示した連続ライト処理にかかるエントリ群を1つの参照データで参照することが可能になる。なお、以降、1つの参照データにより参照されるエントリ群をパックと表記する。また、1パックのエントリ群を生成する動作をパックを生成する、参照データをキューに登録する動作をパックを登録する、と表記することがある。なお、1パックに対応するエントリ数は任意であるが、後処理フラグ後述するの値を共有することができ、かつ連続して実行される複数のエントリを1つのパックにまとめるようにしてもよい。標準キュー62に登録される参照データには、後処理フラグが記述されるフィールドを含んでいる。後処理フラグは、パックを構成するエントリ群の実行を途中で中断する際に後処理を挿入する必要があるか否かを示すフラグである。例えば連続ライト処理にかかる参照データは、当該フィールドに、後処理の挿入が必要である旨の値が記述される。また、標準リードにかかるデータ転送のように、後処理を必要とすることなく中断できる処理にかかる参照データは、当該フィールドに、後処理の挿入が必要でない旨の値が記述される。なお、SSD200は、SATAC用ディスクリプタ35のエントリを特定する参照データが登録されるキューをルータ部43後述するに備えている。SATAC用ディスクリプタ35の個々のエントリは、例えばRAM3上のアクセス先のアドレスと、リードであるかライトであるかを示す情報を含む。SATAC10は、リードの時はエントリに記述されているアクセス先のアドレス即ちリードバッファ領域33内の指定位置に格納されているデータをホスト装置100に転送し、ライトの時はホスト装置100から送られてきたライトデータをエントリに記述されているアクセス先のアドレス即ちライトキャッシュ領域32内の指定位置に格納する。なお、SATAC10は、優先リード実行時および優先ライト実行時にホスト装置100とRAM3との間のデータ転送を実行する。ここでは、ルータ部43のキューには、NANDC用ディスクリプタ36と同様に、パック毎に参照データが登録されるものとするが、ルータ部43にはエントリ毎に参照データが登録されるようにしてもよい。なお、標準リード、標準ライトおよび優先ライトにかかるパックの生成および登録は、MPU50により実行され、優先リードにかかるパックの生成および登録は、自動転送管理部40に備えられる転送準備部42により実行される。図11は、自動転送管理部40の構成を説明するブロック図である。図示するように、自動転送管理部40は、要求並び替え部41、転送準備部第1命令生成部42、ルータ部43、およびNANDキュー管理部44を備えている。要求並び替え部41は、ホスト装置100から複数受信したリード/ライト要求をSATAC10から取得して、取得した複数のリード/ライト要求の実行順番を効率よく実行できる順番に並べ替える。転送準備部42は、要求並び替え部41が並び替えた後のリード/ライト要求に基づいて、パックの生成および生成したパックの登録を実行する。SATAC用ディスクリプタ35にかかるパックの登録は、ルータ部43に対して実行され、NANDC用ディスクリプタ36にかかるパックの登録は、NANDキュー管理部44に対して実行される。ルータ部43は、前述のように、SATAC用ディスクリプタ35にかかるパックが登録されるキューを備えている。ルータ部43は、当該キューに登録されたパックに対応するSATAC用ディスクリプタ35をエントリ群に記述されている個々のデータ転送を、エントリ毎にSATAC10に実行指示を通知することによって、逐次実行させる。ルータ部43は、優先リード実行時には、NANDC20から送信されてくる実行完了通知およびSATAC10から送信されてくる実行完了通知の受信タイミングに基づくタイミングで、優先ライト実行時には、SATAC10から送信されてくる実行完了通知の受信タイミングに基づくタイミングで、実行指示を通知する。図12は、NANDキュー管理部44の内部構成を説明する図である。図示するように、NANDキュー管理部44は、優先キュー61、標準キュー62、キュー選択部63、投入管理部64、命令バッファ65、NANDC制御部66、およびキュー管理部67を備えている。優先キュー61には、転送準備部42によって優先リードにかかる参照データが登録され、標準キュー62には、MPU50によって標準ライトにかかる参照データおよび標準リードにかかる参照データが登録される。キュー選択部63、投入管理部64、命令バッファ65、NANDC制御部66、およびキュー管理部67は、NANDC20と協働して、優先キュー61に登録されている参照データを標準キュー62に登録されている参照データよりも優先して読み出して、当該読み出した参照データに対応する命令をNANDメモリ2に送信する不揮発性メモリ管理部として機能する。以下、不揮発性メモリ管理部を構成する各構成要素について具体的に説明する。キュー選択部63は、キュー管理部67からの選択信号に基づいて優先キュー61または標準キュー62のうちの何れか一方を選択する。投入管理部64は、キュー選択部63によって選択されたキューから参照データを読み出して、前記読み出した参照データにより参照されるNANDC用ディスクリプタ36のエントリ群をディスクリプタ格納領域34から読み出して命令バッファ65に格納する。また、投入管理部64は、キュー管理部67から停止要求通知後述するを受信したとき、動作を停止する。NANDC制御部66は、命令バッファ65に格納されているエントリを順次NANDC20に送信する。また、NANDC制御部66は、キュー管理部67から停止要求を受信したとき、直前にNANDC20に送信したエントリに含まれる連続投入指示フラグの値を参照して、当該フラグの値が中断することが可能である旨の0である場合、次のエントリの送信を中止して、停止可能通知をキュー管理部67に通知する。連続投入指示フラグの値が連続して投入される必要がある旨の1である場合、NANDC制御部66は、当該フラグの値が0であるエントリが送信されるまでエントリの送信を続行する。なお、NANDC20は、送信されてきた個々のエントリにかかる命令をNANDメモリ2に送信するとともに、NANDメモリ2が個々のエントリにかかる命令を実行完了する毎に、実行完了通知を発行する。NANDC制御部66は、NANDC20が実行完了通知をトリガとして次のエントリをNANDメモリ2に送信する。キュー管理部67は、優先キュー61および標準キュー62を監視し、どちらか一方のみに参照データが登録されている場合、参照データが登録されているキューを選択する選択信号をキュー選択部63に送信する。さらに、標準キュー62が選択されている状態で優先キュー61に参照データが登録されたとき、キュー管理部67は、NANDC制御部66および投入管理部64に停止要求を送信する。その後、NANDC制御部66から停止可能応答を受信すると、キュー管理部67は、命令バッファ65の記憶内容をフラッシュするとともに、投入管理部64に指令して後処理用ディスクリプタ37を命令バッファ65に格納させる。その後、キュー選択部63に入力する選択信号を標準キュー62から優先キュー61に切り替えて、投入管理部64およびNANDC制御部66の動作を再開させる。優先キュー61が空になると、キュー管理部67は、投入管理部64に指令して前処理用ディスクリプタ38を命令バッファ65に格納させ、選択信号を優先キュー61から標準キュー62に切り替える。また、キュー管理部67は、NANDC20が発行する実行完了通知と参照データに記述されているエントリ数とに基づいてNANDC用ディスクリプタ36の進捗管理を実行する。また、キュー管理部67は、標準キュー62に登録されている参照データのうち、投入対象の参照データを指定する実行管理部68を備えている。なお、NANDメモリ2は、複数のメモリチップ21を用いたバンク構成が採用される場合がある。その場合には、バンク毎に命令バッファ65、NANDC制御部66、およびNANDC20を設け、投入管理部64は、エントリを投入する際、エントリをバンク毎の命令バッファ65に振り分けて投入するように構成してもよい。次に、本発明の第1の実施形態のSSD200の動作を説明する。図13は、優先キュー61にパックが登録される動作を説明するフローチャートである。まず、要求並び替え部41は、SATAC10から1以上の要求を読み出してステップS1、読み出した要求を並び替えるステップS2。そして、要求並び替え部41は、並び替えた要求を1つ転送準備部42に送信するステップS3。転送準備部42は、送信されてきた要求がリード要求であるか否かを判定するステップS4。送信されてきた要求がリード要求であった場合ステップS4、Yes、SATAC用ディスクリプタ35にかかるパックを作成し、当該パックをルータ部43に登録するステップS5。そして、NANDC用ディスクリプタ36にかかるパックを作成し、当該パックをNANDキュー管理部44に備えられる優先キュー61に登録するステップS6。送信されてきた要求がリード要求ではなかった場合ステップS4、No、即ちライト要求であった場合、転送準備部42は、MPU50に依頼して、SATA用ディスクリプタにかかるパックの生成および当該パックのルータ部43への登録を実行してもらうステップS7。ステップS6またはステップS7の処理の後、要求並び替え部41は、並び替えた要求を全て転送準備部42に送信したか否かを判定しステップS8、未送信の要求があった場合ステップS8、No、ステップS3に移行して未送信の要求を1つ転送準備部42に送信する。全ての要求を送信済みであった場合ステップS8、Yes、優先キュー61にパックが登録される動作が終了する。図14は、標準キュー62にパックが登録される動作を説明するフローチャートである。図示するように、MPU50は、ファームウェアに基づいて、NANDC用ディスクリプタ36にかかるパックを生成するとともに、生成したパックを標準キュー62に登録するステップS11。そして、標準キュー62にパックが登録される動作が終了する。図15は、投入管理部64の動作を説明するフローチャートである。投入管理部64は、キュー選択部63を介して優先キュー61または標準キュー62から参照データを1つ読み出すステップS21。ここで、投入管理部64は、キュー優先キュー61または標準キュー62のうちのキュー選択部63が選択しているキューに登録されている参照データのうち、実行管理部68により投入対象に指定されている参照データを読み出す。投入管理部64は、読み出した参照データにより参照されるNANDC用ディスクリプタ36のエントリ群をディスクリプタ格納領域34から読み出して、当該読み出したエントリ群を命令バッファ65に格納するステップS22。投入管理部64は、ステップS21の処理とステップS22の処理とを交互に実行する。図16は、NANDC制御部66の動作を説明するフローチャートである。NANDC制御部66は、命令バッファ65に格納されているエントリを1つ取り出して、取り出したエントリをNANDC20に送信するステップS31。そして、NANDC制御部66は、停止要求通知の受信があったか否かステップS32、および実行完了通知の受信があったか否かステップS33を交互に実行し、停止要求通知の受信がなくステップS32、No、かつ実行完了通知の受信があった場合ステップS33、Yes、ステップS31に移行して次のエントリをNANDC10に送信する。停止要求通知の受信があった場合ステップS32、Yes、NANDC制御部66は、実行完了通知の受信があったか否かを判定しステップS34、実行完了通知の受信がなかった場合ステップS34、No、実行完了通知の受信があるまでステップS34の判定処理を実行する。実行完了通知の受信があった場合ステップS34、Yes、NANDC制御部66は、最後に実行したステップS31の処理によってNANDC10に送信したエントリの連続投入フラグの値が0であるか否かを判定するステップS35。連続投入フラグの値が0ではなかった場合ステップS35、No、NANDC制御部66は、次のエントリを命令バッファから1つ取り出して、取り出したエントリをNANDC10に送信するステップS36。そして、ステップS34の判定処理を実行する。連続投入フラグの値が0であった場合ステップS35、Yes、NANDC制御部66は、キュー管理部67に停止可能通知を送信するステップS37。そして、キュー管理部67による命令バッファ65のフラッシュと投入管理部64による命令バッファ65へのエントリの格納とが行われた後ステップS38、キュー管理部67から動作を再開する旨の通知である動作再開通知を受信するとステップS39、NANDC制御部66は、ステップS31の処理を実行する。図17-1、図17-2、および図17-3は、キュー管理部67によるパックの進捗管理の動作を説明するフローチャートである。図17-1は、個別のパックにかかる処理が完了したか否かを管理する動作を説明するフローチャートである。図示するように、キュー管理部67は、まず、1つのパックに有効なエントリが入っているか否かを判定するステップS41。なお、ここでは、キュー管理部67は、有効なエントリが入っているパックを有効とし、有効なエントリが入っていないパックを無効とするような内部信号であるValid信号をパック毎に備えるものとする。即ち、キュー管理部67は、ステップS41において、当該パックにかかるValid信号が有効であるか否かを判定する。Valid信号が無効である場合ステップS41、No、Valid信号が有効となるまでステップS41の判定処理が繰り返される。Valid信号が有効である場合ステップS41、Yes、キュー管理部67は、当該パックの実行完了したエントリ数が参照データに記述されているエントリ数と一致するか否かを判定するステップS42。実行完了したエントリ数は、NANDC20が発行する実行完了通知をカウントすることによって知ることができる。実行完了したエントリ数が参照データに記述されているエントリ数と一致する場合ステップS42、Yes、キュー管理部67は、当該パックが確定しているか否かをさらに判定するステップS43。なお、物理アドレスと論理アドレスとの間の変換は、比較的長い時間を要するため、パックの登録元MPU50および転送準備部42は、1パック分のエントリを一括して登録するだけでなく、1パックを構成する個々のエントリを生成完了する毎に逐次登録することもできるようになっている。登録元は、エントリをディスクリプタ格納領域34に格納する毎に対応する参照データに記述されているエントリ数をインクリメントする。そして、登録元は、1パック分のエントリの格納が完了したとき、1パックのエントリが確定した旨の通知を発行する。ステップS42においては、キュー管理部67は、対象のパックについて1パック分のエントリが完了した旨の通知を受信したか否かを確認することによって当該パックが確定しているか否かを判定することができる。実行完了したエントリ数が参照データに記述されているエントリ数と一致しない場合ステップS42、Noまたは当該パックが確定していない場合ステップS43、No、ステップS42の判定処理が再度実行される。当該パックが確定した場合ステップS43、Yes、キュー管理部67は、パック完了通知をMPU50へ通知しステップS44、MPU50からの開放要求を待ち受けるステップS45。MPU50からの開放要求を受信するとステップS45、Yes、キュー管理部67は、当該パックにかかる参照データを削除するためのクリア信号を生成するステップS46。すると、当該パックのValid信号が無効となりステップS47、ステップS41の処理に移行する。図17-2は、個別のパックにかかる命令の投入の進捗を管理する動作を説明するフローチャートである。まず、キュー管理部67は、1つのパックについて、当該パックが実行管理部68によって投入対象に指定されているか否かを判定するステップS51。投入対象に指定されていない場合ステップS51、No、ステップS51の判定処理が繰り返し実行される。当該パックが投入対象に指定されている場合ステップS51、Yes、キュー管理部67は、当該パックの投入完了したエントリ数と参照データに記述されているエントリ数とが一致するか否かを判定するステップS52。投入完了したエントリ数と参照データに記述されているエントリ数とが一致する場合ステップS52、Yes、キュー管理部67は、当該パックが確定しているか否かをさらに判定するステップS53。1パック分のエントリが全て生成されていない段階であっても、生成済みのエントリを命令バッファ65に投入できるようになっているためである。投入完了したエントリ数と参照データに記述されているエントリ数とが一致しない場合ステップS52、Noまたは当該パックが確定していない場合ステップS53、No、ステップS52の判定処理が再度実行される。当該パックが確定している場合ステップS53、Yes、キュー管理部67は、当該パックの投入が完了した旨の信号を実行管理部68に通知するステップS54。実行管理部68は、当該信号を受信すると、次のパックを投入対象に指定することができ、次のパックが投入対象に指定されると、投入管理部64は前のパックの実行完了を待つことなく投入することができる。ステップS54の処理の後、キュー管理部67は、当該パックにかかるクリア信号を受信したか否かを判定するステップS55。クリア信号を受信していない場合ステップS55、No、ステップS55の処理が再度実行される。クリア信号を受信した場合ステップS55、Yes、キュー管理部67は、当該パックにかかる参照データを削除しステップS56、ステップS51の処理に移行する。図17-3は、実行管理部68が投入対象のパックを指定する動作を説明するフローチャートである。図示するように、まず、実行管理部68は、有効なエントリがあるか否かを全てのパックについて確認するステップS61。有効なエントリがあるか否かは、パック毎のValid信号を参照することによって確認することができる。有効なエントリがない場合ステップS61、No、有効なエントリが確認できるまでステップS61の処理が実行される。有効なエントリがある場合ステップS61、Yes、実行管理部68は、現在投入対象に指定しているパックの命令バッファ65への投入が完了しているか否かを確認するステップS62。投入対象のパックの命令が投入完了しているか否かは、キュー管理部67がステップS54の処理により発行する信号を受信したか否かによって確認することができる。投入対象のパックの投入が完了していない場合ステップS62、No、投入が完了するまでステップS62の処理が実行される。投入対象のパックの投入が完了した場合ステップS62、Yes、実行管理部68は、ステップS61にて確認した有効なエントリがあるパックのうちのひとつを新たに投入対象に指定しステップS63、ステップS61の処理に移行する。図18は、キュー管理部67によるキューの切り替え動作を説明するフローチャートである。キュー管理部67は、最初、選択信号で標準キュー62を選択しておりステップS71、優先キュー61に参照データがあるか否かを判定するステップS72。優先キュー61に登録されている参照データがない場合ステップS72、No、ステップS71に移行して、選択信号で標準キュー62を選択したままとする。優先キュー61に登録されている参照データがあった場合ステップS72、Yes、キュー管理部67は、NANDC制御部66および投入管理部64に停止要求通知を送信するステップS73。なお、投入管理部64は、当該停止要求通知を受信すると、動作を停止する。停止要求通知の送信の後、キュー管理部67は、NANDC制御部66から停止可能通知を受信したか否かを判定するステップS74。停止可能通知を受信していない場合ステップS74、No、キュー管理部67は、停止可能通知を受信するまでステップS74の判定処理を繰り返す。停止可能通知を受信した場合ステップS74、Yes、キュー管理部67は、標準キュー62の投入対象に指定されている参照データの後処理フラグの値が後処理を必要とする旨の1であるか否かを判定するステップS75。後処理フラグの値が1であった場合ステップS75、Yes、キュー管理部67は、命令バッファ65をフラッシュしステップS76、投入管理部64に指令して、後処理用ディスクリプタ37を命令バッファ65に格納させるステップS77。そして、キュー管理部67は、NANDC制御部66および投入管理部64に動作再開通知を送信するステップS78。すると、NANDC制御部66および投入管理部64は、動作を再開して、命令バッファ65に格納された後処理用ディスクリプタ37のNANDC20への投入を実行する。キュー管理部67は、後処理用ディスクリプタ37にかかる命令の実行完了を確認するとステップS79、NANDC制御部66および投入管理部64に停止要求通知を送信するステップS80。なお、後処理用ディスクリプタ37にかかる命令の実行完了は、実行完了通知を監視することによって確認することができる。停止要求通知の送信の後、NANDC制御部66から停止可能通知を受信するとステップS81、キュー管理部67は、命令バッファ64をフラッシュしステップS82、選択信号を標準キュー62から優先キュー61に切り替えステップS83、NANDC制御部66および投入管理部64に動作再開通知を送信するステップS84。なお、ステップS75の判定処理において、後処理フラグの値が1ではなかった場合ステップS75、No、ステップS76~ステップS82の処理はスキップされる。ステップS84の処理の後、図15および図16を用いて説明した動作により、優先キュー61に登録されている参照データにかかるデータ転送が実行される。当該参照データにかかるデータ転送が全て完了すると、図17-2の動作により、当該参照データが優先キュー61から削除される。キュー管理部67は、優先キュー61の実行を全て完了したか否かを判定しステップS85、完了していない場合ステップS85、No、ステップS85の判定処理を再度実行する。優先キュー61の実行を全て完了した場合ステップS85、Yes、キュー管理部67は、投入管理部64に指令して前処理用ディスクリプタ38を命令バッファ65に格納させるステップS86。そして、キュー管理部67は、NANDC制御部66および投入管理部64に動作再開通知を送信するステップS87。すると、NANDC制御部66および投入管理部64は、動作を再開して、命令バッファ65に格納された前処理用ディスクリプタ68のNANDC20への投入を実行する。キュー管理部67は、後処理用ディスクリプタ37にかかる命令の実行完了を確認するとステップS88、選択信号を優先キュー61から標準キュー62に切り替えステップS89、投入管理部64に指令して、標準キュー62の投入対象に指定されている参照データにかかるエントリ群のうちの未実行のエントリを命令バッファ65に格納させるステップS90。その後、キュー管理部67は、NANDC制御部66および投入管理部64に動作再開通知を送信しステップS91、ステップS71の処理を実行する。図18の説明においては、優先キュー61を実行完了した後、標準キュー62にパックが登録されていなくても実行対象のキューを優先キュー62に切り替えるものとして説明したが、優先キュー61を実行完了した後は、標準キュー62にパックが登録されている場合に実行対象のキューを切り替えるように構成してもよい。なお、メモリチップ21には、メモリセルアレイ24がそれぞれ複数の物理ブロックを含むプレーンと呼ばれる複数の領域に分割されているものがある。各プレーンは、互いに独立した周辺回路データキャッシュ22およびページバッファ23を含むを備えており、複数のプレーンに同時にリード/ライト/イレースを行うことで、1つのプレーンに対してアクセスを行う場合に比べて高速なアクセスを実行することができる。図19は、メモリチップ21はプレーンを2つ有するとし、当該2つのプレーンに対して夫々2ページ分の連続ライト処理を実行するためのNANDC用ディスクリプタ36のデータ構造の具体例を示す図である。なお、メモリチップ21が有する2つのプレーンを、プレーン0、プレーン1と表記して夫々区別するものとする。図19の例によれば、NANDC用ディスクリプタ36は、上段から、リセット命令FFhを記述したエントリと、プレーン0に対するライト命令を記述したエントリ、プレーン1に対するライト命令を記述したエントリ、およびステータスリード命令71hを記述したエントリのセットを2ページ分と、ステータスポーリング命令71hを記述したエントリとを備えて構成されている。このように、2つのプレーンに対して連続ライト処理を実行する場合、ステータスリード命令およびステータスポーリング命令として、1つのプレーンに連続ライト処理を実行する場合のコマンド70hと異なるコマンド71hが採用される。図20は、2つのプレーンに対して連続ライト処理を実行する場合に用いられる後処理用ディスクリプタ37のデータ構造の具体例を示す図である。図示するように、この後処理用ディスクリプタ37は、ステータスポーリング命令71hを記述したエントリによって構成される。このように、連続ライト処理時に実行されるステータスポーリング命令の種類が複数存在する場合には、後処理用ディスクリプタ37をステータスポーリング命令の種類毎に用意しておき、参照データに付加される後処理フラグによってステータスポーリング命令の種類を指定するようにしてもよい。また、以上の説明においては、標準キュー62にかかるデータ転送を行っている場合で、優先キュー61と標準キュー62との間でキューの切り替えが行われたとき、必ず前処理としてのリセット命令を実行するものとして説明したが、参照データに前処理を必要とするか否かを示すフラグを持たせ、キュー管理部67は当該フラグに基づいて前処理を実行したりしなかったりするようにしてもよい。また、以上の説明においては、命令の実体をディスクリプタに記述して、各キューには当該ディスクリプタを参照するための参照データが登録されるとして説明したが、各キューにパック毎の命令が記述されたデータが登録されるようにしてもよい。このように、本発明の第1の実施形態によれば、転送準備部42は、ホスト装置100からリード要求されたデータをNANDメモリ2から読み出すための命令を生成して当該生成した命令を優先キュー61に登録し、MPU50は、内部処理にかかるデータ転送をNANDメモリ2に実施させるための命令を生成して当該生成した命令を標準キュー62に登録し、協働して不揮発性メモリ管理部として機能するキュー選択部63、投入管理部64、命令バッファ65、NANDC制御部66、キュー管理部67およびNANDC20は、優先キュー61に登録されている参照データを標準キュー62に登録されている参照データよりも優先して読み出して、当該読み出した参照データに対応する命令をNANDメモリ2に送信するように構成したので、ホスト装置100からのリード要求にかかるデータ転送を内部処理にかかるデータ転送よりも優先して実行できるので、ホスト装置100からのリード要求に対する応答を効率的に実行することができるようになる。また、MPU50は、ディスクリプタに、次の命令を連続して実行する必要があるか否かを示す連続投入指示フラグ連続実行情報を付加しておき、不揮発性メモリ管理部は、標準キュー62に登録されている命令を実行中に優先キュー61に命令が登録されたとき、命令の読み出し元のキューの切り替えタイミングを、実行中の命令に付加されている連続投入指示フラグに基づいて決める、ように構成したので、連続ライト処理を実行中にキューの切り替えを行う際に後処理としてステータスポーリングを自動で挿入することができるので、切り替え時におけるプログラムエラーの発生を防止することができる。また、転送準備部42は、連続して生成した1以上の命令群でパックを構成させ、パック毎の参照データに、中断時に後処理の挿入が必要であるか否かを示す後処理フラグ中断処理情報を付加し、不揮発性メモリ管理部は、キューを標準キュー62から優先キュー61に切り替える際に、後処理フラグに基づいて後処理を挿入するか否かを選択するように構成したので、処理の種類毎に後処理を挿入したり挿入しなかったりすることができるようになる。また、不揮発性メモリ管理部は、NANDメモリ2に送信する命令の読み出し元を優先キュー61から標準キュー62に切り替える際、前処理を実行させる命令をNANDメモリ2に送信するように構成したので、連続リード処理が再開されるときに前処理としてのリセット命令を挿入することができるので、中断された連続リード処理を、当該連続リード処理の最初からではなく、中断された部分から再開できるようになる。なお、以上の説明においては、ホスト装置100との間のデータ転送の効率を向上させるために、ホスト装置100からの要求に基づくデータ転送にかかる制御をMPU50ではなく自動転送管理部40で実行し、MPU50の計算機コストを内部処理に集中させるようにしている。しかしながら、自動転送管理部40の構成要素のうちの一部または全部は、ハードウェア、及びソフトウェアのいずれか、又は両者の組み合わせとして実現するようにしてもよい。自動転送管理部40の構成要素をハードウェアで実現するようにすると、通知信号実行完了通知、停止要求通知、停止可能通知、動作再開通知などを用いることにより自動転送管理部40内あるいは内外の構成要素間の同期が簡単になるという効果が得られる。第2の実施形態図21は、第2の実施形態のメモリシステムを適用したSSDの構成を説明する図である。なお、第2の実施形態の説明においては、第1の実施形態と同じ構成要素には同一の符号を付し、重複する説明を省略する。図21に示すように、第2の実施形態のSSD300は、データ転送装置4、NANDメモリ2、およびRAM3を備えている。データ転送装置4は、SATAC10と、RAMC30と、MPU50と、自動転送管理部70と、第2のECCErrorCheckingandCorrection回路80と、第1のECC回路を具備するNANDC90とを備えている。SATAC10、RAMC30、MPU50、自動転送管理部70、第2のECC回路80、およびNANDC90は夫々バスにより接続されている。第1のECC回路91は第1の誤り訂正符号のエンコードおよびデコードを行い、また、第2の誤り訂正符合のエンコードを行う。第2のECC回路80は、第1の誤り訂正符号のデコードを行う。第1の誤り訂正符号、第2の誤り訂正符号は、例えば、ハミング符号、BCHBoseChaudhuriHocqenghem符号、RS符号、或いはLDPCLowDensityParityCheck符号等であり、第2の誤り訂正符号の訂正能力は、第1の誤り訂正符号の訂正能力よりも高いとする。第1のECC回路91は、例えば、物理ページ単位のデータに対してエンコードを実行する。第2のECC回路80は、例えば複数バンクに渡って書き込まれているデータに対してエンコードを実行する。リード処理実行時には、NANDC90は、第1のECC回路91による誤り訂正を実行する。そして、第1のECC回路91による誤り訂正に失敗した場合に、MPU50による制御の下で、第2のECC回路80による誤り訂正が実行される。ここで、第1のECC回路91における誤り訂正に失敗した場合に実行される、誤りを回復させる処理を、エラー処理と表記することとする。エラー処理は、上記した第2のECC回路80による誤り訂正だけに限定されない。例えば、エラー処理として、NANDメモリ2を構成するメモリチップ21のリード電圧を変更してリードを行うようにしてもよい。また、NANDC90では誤り検出を実行するようにして、誤りが検出されたとき、エラー処理が実行されるようにしてもよい。また、NANDC90は、ライト時にプログラムエラーを検出できるように構成して、プログラムエラーが検出されたとき、書き込み位置を変えて再度ライトを試みるなどのエラー処理が実行されるようにしてもよい。図22は、RAM3のメモリ構造を説明する図である。図示するように、RAM3は、ワークエリア31、ライトキャッシュ領域32、リードバッファ領域33およびディスクリプタ格納領域34を備えている。ディスクリプタ格納領域34には、SATAC用ディスクリプタ35、NANDC用ディスクリプタ36、後処理用ディスクリプタ37、前処理用ディスクリプタ38、およびエラー処理用ディスクリプタ39が格納される。エラー処理用ディスクリプタ39は、エラー処理を実現するためにNANDメモリ2に対して送信される命令の実体を記述したデータであって、MPU50により作成される。MPU50は、エラー処理用ディスクリプタ39を作成した際、当該エラー処理用ディスクリプタ39を参照するための参照データを作成し、作成した参照データを後述するエラーキュー72に登録する。自動転送管理部70の構成は、NANDキュー制御部の構成を除いて第1の実施形態と等しいので、ここでは、自動転送管理部70に関し、NANDキュー制御部の構成についてのみ説明する。図23は、第2の実施形態のNANDキュー管理部の内部構成を説明する。図示するように、NANDキュー管理部71は、優先キュー61、標準キュー62、エラーキュー72、キュー選択部73、投入管理部64、命令バッファ65、NANDC制御部66、およびキュー管理部74を備えている。エラーキュー72は、MPU50からエラー処理にかかる参照データが登録される。キュー選択部73は、投入管理部64による参照データの読み出し元のキューを、キュー管理部74からの選択信号に基づいて、優先キュー61、標準キュー62、およびエラーキュー72のうちから選択する。キュー管理部74は、NANDC90が第1のECC回路91によるエラー訂正に失敗した旨のエラー発生通知を受信したとき、NANDC制御部66に停止命令通知を送信して投入管理部64およびNANDC制御部66の動作を停止させるとともに、命令バッファ65をフラッシュする。そして、MPU50からエラーキュー72に参照データが登録された際、選択信号をエラーキュー72に切り替えて、投入管理部64およびNANDC制御部66の動作を再開させる。図24は、第2の実施形態のSSD300のエラー処理にかかる動作を説明するフローチャートである。第1のECC回路91による誤り訂正に失敗すると、NANDC90は、エラー発生通知をキュー管理部74およびMPU50に送信するステップS101。すると、キュー管理部74は、停止命令通知をNANDC制御部66および投入管理部64に送信してNANDC制御部66および投入管理部64の動作を停止させステップS102、命令バッファ65をフラッシュするステップS103。一方、エラー発生通知を受信したMPU50は、NANDC90にアクセスして失敗原因を解析し、解析結果に基づいてエラー処理用ディスクリプタ39を生成するとともに、当該生成したエラー処理用ディスクリプタ39を参照するための参照データをエラーキュー72に登録するステップS104。ここでは、参照データは、複数エントリパック毎に登録されるものとする。キュー管理部74は、参照データがエラーキュー72に登録されると、選択信号をエラーキューに切り替えてステップS105、投入管理部64およびNANDC制御部66に動作再開通知を送信するステップS106。これにより、エラーキュー72に登録されている参照データに基づいてエラー処理が実行される。なお、キュー管理部74は、図17-2で説明した動作を行って、キュー管理部74から実行完了した参照データの削除を行う。キュー管理部74は、エラーキュー72に参照データがあるか否かを判定しステップS107、参照データが残っている場合にはステップS107、Yes、ステップS107の判定処理を再度実行する。エラーキュー72に参照データがない場合ステップS107、No、キュー管理部74は、選択信号をエラーキュー72から実行を中断した元のキューに切り替えてステップS108、エラー処理時の動作が完了する。このように、本発明の第2の実施形態によれば、第1の実施形態の構成に、誤り訂正エラーを検出する第1のECC回路91を備え、MPU50は、第1のECC回路91が誤り訂正エラーを検出したとき、前記検出された誤り訂正エラーに対応するエラー処理にかかる、NANDメモリ2に対する命令を生成し、当該生成した命令をエラーキュー72に登録し、協働して不揮発性メモリ管理部として機能するキュー選択部73、投入管理部64、命令バッファ65、NANDC制御部66、キュー管理部74およびNANDC90は、エラーキュー72に命令が登録されたとき、命令の読み出し元を優先キュー61または標準キュー62からエラーキュー72に切り替える、ように構成したので、第1の実施形態からえられる効果に加えて、エラー処理を実行することができるようになる。第3の実施形態図25は、第1の実施形態のSSD200を搭載したパーソナルコンピュータ1200の一例を示す斜視図である。なお、このパーソナルコンピュータ1200には、第1の実施形態のSSD200だけでなく第2の実施形態のSSD300を搭載することも可能である。パーソナルコンピュータ1200は、本体1201、及び表示ユニット1202を備えている。表示ユニット1202は、ディスプレイハウジング1203と、このディスプレイハウジング1203に収容された表示装置1204とを備えている。本体1201は、筐体1205と、キーボード1206と、ポインティングデバイスであるタッチパッド1207とを備えている。筐体1205内部には、メイン回路基板、ODDOpticalDiskDeviceユニット、カードスロット、及びSSD200等が収容されている。カードスロットは、筐体1205の周壁に隣接して設けられている。周壁には、カードスロットに対向する開口部1208が設けられている。ユーザは、この開口部1208を通じて筐体1205の外部から追加デバイスをカードスロットに挿抜することが可能である。SSD200は、従来のHDDの置き換えとして、パーソナルコンピュータ1200内部に実装された状態として使用してもよいし、パーソナルコンピュータ1200が備えるカードスロットに挿入した状態で、追加デバイスとして使用してもよい。図26は、SSD200を搭載したパーソナルコンピュータのシステム構成例を示している。パーソナルコンピュータ1200は、CPU1301、ノースブリッジ1302、主メモリ1303、ビデオコントローラ1304、オーディオコントローラ1305、サウスブリッジ1309、BIOS-ROM1310、SSD200、ODDユニット1311、エンベデッドコントローラ/キーボードコントローラICEC/KBC1312、及びネットワークコントローラ1313等を備えている。CPU1301は、パーソナルコンピュータ1200の動作を制御するために設けられたプロセッサであり、SSD200から主メモリ1303にロードされるオペレーティングシステムOSを実行する。更に、ODDユニット1311が、装填された光ディスクに対して読出し処理及び書込み処理の少なくとも1つの処理の実行を可能にした場合に、CPU1301は、それらの処理の実行をする。また、CPU1301は、BIOS-ROM1310に格納されたシステムBIOSBasicInputOutputSystemも実行する。尚、システムBIOSは、パーソナルコンピュータ1200内のハードウェア制御のためのプログラムである。ノースブリッジ1302は、CPU1301のローカルバスとサウスブリッジ1309との間を接続するブリッジデバイスである。ノースブリッジ1302には、主メモリ1303をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ1302は、AGPAcceleratedGraphicsPortバス等を介してビデオコントローラ1304との通信、及びオーディオコントローラ1305との通信を実行する機能も有している。主メモリ1303は、プログラムやデータを一時的に記憶し、CPU1301のワークエリアとして機能する。主メモリ1303は、例えばRAMから構成される。ビデオコントローラ1304は、パーソナルコンピュータ1200のディスプレイモニタとして使用される表示ユニット1202を制御するビデオ再生コントローラである。オーディオコントローラ1305は、パーソナルコンピュータ1200のスピーカ1306を制御するオーディオ再生コントローラである。サウスブリッジ1309は、LPCLowPinCountバス1314上の各デバイス、及びPCIPeripheralComponentInterconnectバス1315上の各デバイスを制御する。また、サウスブリッジ1309は、各種ソフトウェア及びデータを格納する記憶装置であるSSD200を、SATAインタフェースを介して制御する。パーソナルコンピュータ1200は、セクタ単位でSSD200へのアクセスを行う。SATAインタフェースを介して、書き込みコマンド、読出しコマンド、キャッシュフラッシュコマンド等がSSD200に入力される。また、サウスブリッジ1309は、BIOS-ROM1310、及びODDユニット1311をアクセス制御するための機能も有している。EC/KBC1312は、電力管理のためのエンベデッドコントローラと、キーボードKB1206及びタッチパッド1207を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このEC/KBC1312は、ユーザによるパワーボタンの操作に応じてパーソナルコンピュータ1200の電源をON/OFFする機能を有している。ネットワークコントローラ1313は、例えばインターネット等の外部ネットワークとの通信を実行する通信装置である。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。