(57)【要約】【課題】半導体記憶装置の性能を向上させる。【解決手段】実施形態の半導体記憶装置は、第１の単位ごとにデータの書き込みが行われるｍ個（ｍは２以上の自然数）の不揮発性半導体メモリと、ホストから受信したライトコマンドに応じ、不揮発性半導体メモリのうちのＮ個（Ｎはｍ≧Ｎを満たす自然数）へ並列してデータを転送するコントローラと、ホストから受信したデータを一時的に格納するバッファと、を具備する。そしてコントローラは、バッファからＮ個の不揮発性半導体メモリに転送する第１データの量に応じてＮを変更する。【選択図】図１８
2018112883.tif 000002
【特許請求の範囲】
【請求項１】
第１の単位ごとにデータの書き込みが行われるｍ個（ｍは２以上の自然数）の不揮発性半
導体メモリと、
ホストと通信し、前記ホストから受信したライトコマンドに応じ、前記不揮発性半導体メ
モリのうちのＮ個（Ｎはｍ≧Ｎを満たす自然数）へ並列してデータを転送するコントロー
ラと、
前記ホストから受信したデータを一時的に格納するバッファと、
を具備し、
前記コントローラは、
前記バッファから前記Ｎ個の不揮発性半導体メモリに転送する第１データの量に応じて前
記Ｎを変更し、
半導体記憶装置。
【請求項２】
前記コントローラは、
前記第１データの量が第１の閾値以上となったことに応じて前記Ｎを増大させ、
前記第１データの量が前記第１の閾値未満となったことに応じて前記Ｎを減少させる
請求項１に記載の半導体記憶装置。
【請求項３】
前記コントローラは、
前記第１データの量が、前記第１の単位と前記ｍとの積以上である時に、前記Ｎをｍとす
る
請求項２に記載の半導体記憶装置。
【請求項４】
前記コントローラは、
前記第１データの量が、前記第１の単位以下である時に、前記Ｎを１とする
請求項２に記載の半導体記憶装置。
【請求項５】
前記コントローラは、
前記Ｎ個の不揮発性半導体メモリに書き込むデータの量を指定して
前記ホストにデータの転送許可を通知する
請求項１に記載の半導体記憶装置。
【請求項６】
前記コントローラが１度に指定する前記データの量の最大は、
前記第１の単位と前記ｍとの積である
請求項５に記載の半導体記憶装置。
【請求項７】
前記コントローラは、
前記ホストに前記データの転送許可を通知する時に、
前記データを識別する識別子を前記ホストに通知する
請求項６に記載の半導体記憶装置。
【請求項８】
前記コントローラは、
前記Ｎに応じて前記識別子を決定する
請求項７に記載の半導体記憶装置。
【請求項９】
前記ホストと前記コントローラとの通信は、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  
ＳＣＳＩ）プロトコルに基づく通信である
請求項８に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
不揮発性半導体メモリを有する半導体記憶装置においては、リード性能、ライト性能の
両方をバランスよく向上させることが求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５８４２６３９号公報
【特許文献２】特開２０１２−２５２４１６号公報
【特許文献３】特許第５３０８６０２号公報
【特許文献４】特開２０１３−６１７９５号公報
【特許文献５】米国特許第９１９５６２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、半導体記憶装置の性能を向上させることにある。
【課題を解決するための手段】
【０００５】
上記課題を達成するために、実施形態の半導体記憶装置は、第１の単位ごとにデータの
書き込みが行われるｍ個（ｍは２以上の自然数）の不揮発性半導体メモリと、ホストから
受信したライトコマンドに応じ、不揮発性半導体メモリのうちのＮ個（Ｎはｍ≧Ｎを満た
す自然数）へ並列してデータを転送するコントローラと、ホストから受信したデータを一
時的に格納するバッファと、を具備する。そしてコントローラは、バッファからＮ個の不
揮発性半導体メモリに転送する第１データの量に応じてＮを変更する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態の半導体記憶装置の構成を説明するブロック図である。
【図２】第１の実施形態に係るファームウェアの実行により実現される各種機能部を説明する図である。
【図３】第１の実施形態に係るホストインタフェース制御部の構成を説明する図である。
【図４】第１の実施形態に係る実行管理テーブルの構成を説明する図である。
【図５】第１の実施形態に係るライトコマンドのプロトコルを説明する図である。
【図６】第１の実施形態に係るコマンドキューイングのプロトコルを説明する図である。
【図７】第１の実施形態に係る物理ページ及び物理ブロックを説明する図である。
【図８】第１の実施形態に係るＮＡＮＤ型フラッシュメモリの構成を説明する図である。
【図９】第１の実施形態に係る論理ページを説明する図である。
【図１０】第１の実施形態に係るデータパケットを説明する図である。
【図１１】第１の実施形態に係る第１のライト方法を説明する図である。
【図１２】第１の実施形態に係る第１のライト方法を用いた時の、バッファのデータ格納量の変化を説明する図である。
【図１３】第１の実施形態に係る第２のライト方法を説明する図である。
【図１４】第１の実施形態に係る第２のライト方法を用いた時の、バッファのデータ格納量の変化を説明する図である。
【図１５】第１の実施形態に係る第３のライト方法を説明する図である。
【図１６】第１の実施形態に係る第３のライト方法を用いた時の、バッファのデータ格納量の変化を説明する図である。
【図１７】第１の実施形態に係るライト方法管理テーブルの構成を説明する図である。
【図１８】第１の実施形態に係るライト方法の決定手順を説明する図である。
【図１９】第１の実施形態に係るライト方法の決定例を説明する図である。
【図２０】第１の実施形態に係るデータパケット生成部の構成を説明する図である。
【図２１ａ】第１の実施形態に係る第１のライトデータ配置テーブルを説明する図である。
【図２１ｂ】第１の実施形態に係る第２のライトデータ配置テーブルを説明する図である。
【図２１ｃ】第１の実施形態に係る第３のライトデータ配置テーブルを説明する図である。
【図２２】第２の実施形態に係るＴＰＴＴを説明する図である。
【発明を実施するための形態】
【０００７】
以下、実施形態の半導体記憶装置を、図面を参照して説明する。なお、以下の説明にお
いて、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
［第１の実施形態］
図１は、第１の実施形態の半導体記憶装置の構成を説明するブロック図である。
【０００９】
半導体記憶装置１は、コントローラ１０と、不揮発性半導体メモリ２０と、を含む。以
下の説明においては、不揮発性半導体メモリ２０からのデータのリードに必要な機能ブロ
ックの説明は省略してある。
【００１０】
コントローラ１０は、ホスト２と通信し半導体記憶装置１全体の動作を制御する。コン
トローラ１０は、例えばＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）として構成される
半導体集積回路である。
【００１１】
本実施形態の説明では、ホスト２はＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳ
Ｉ）規格のインタフェースをサポートするコンピュータであるが、その他の規格、例えば
ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）規格やＮＶＭｅ（ＮＶＭ  Ｅｘｐｒｅｓｓ）（登録商
標）規格のインタフェースをサポートするコンピュータであってもよい。半導体記憶装置
１は、複数のホスト２と通信可能に構成されてもよい。
【００１２】
不揮発性半導体メモリ２０は、データを不揮発的に記憶する。本実施形態の不揮発性半
導体メモリ２０はＮＡＮＤ型フラッシュメモリであるが、これに限定されない。例えば、
３次元構造フラッシュメモリ、ＮＯＲ型フラッシュメモリ、ＭＲＡＭ（Ｍａｇｎｅｔｏｒ
ｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などが採用可能である
。以下の説明においては、不揮発性半導体メモリ２０をＮＡＮＤ型フラッシュメモリ２０
と表記することがある。
【００１３】
本実施形態の半導体記憶装置１は１８チャネル（Ｃｈ）のＮＡＮＤ型フラッシュメモリ
２０を有する。コントローラ１０は、各チャネルに接続されたＮＡＮＤ型フラッシュメモ
リ２０を並列に制御可能である。すなわち、コントローラ１０は、各チャネルに接続され
たＮＡＮＤ型フラッシュメモリ２０のそれぞれに対して、実質的に同時にデータを転送す
ることができる。１つのチャネルに複数のＮＡＮＤ型フラッシュメモリ２０が接続されて
もよい。以下では各チャネルに接続されているＮＡＮＤ型フラッシュメモリ２０をＮＡＮ
Ｄ型フラッシュメモリ群Ｃｈ０〜Ｃｈ１７と表記する。チャネルの数は１８より多くても
少なくてもよい。
【００１４】
コントローラ１０は、ホストインタフェース（ＩＦ）制御部１００と、バッファ制御部
２００と、メモリインタフェース（ＩＦ）制御部３００と、論物変換テーブル４００と、
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５００と、を含む。
【００１５】
ホストＩＦ制御部１００の詳細な構成については後述する。
【００１６】
バッファ制御部２００は、バッファ２１０と、データパケット生成部２２０と、ライト
方法管理テーブル格納部２３０と、ライトデータ配置テーブル格納部２４０と、を含む。
【００１７】
バッファ２１０は、ホスト２より受信したデータを一時的に格納する。本実施形態のバ
ッファ２１０はＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）
からなるメモリであるが、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍ
ｅｍｏｒｙ）など他の種類のメモリを採用してもよい。
【００１８】
データパケット生成部２２０は、バッファ２１０に格納するデータをデータパケットの
形に加工する。ライト方法管理テーブル格納部２３０は、コントローラ１０がＮＡＮＤ型
フラッシュメモリ２０へデータをライトするための方法の設定を格納する。ライトデータ
配置テーブル格納部２４０は、ＮＡＮＤ型フラッシュメモリ２０へライトされるデータの
配置テーブルを格納する。これらの詳細については後述する。
【００１９】
メモリＩＦ制御部３００は、ＮＡＮＤコントローラ３１０と、バッファ読み出し制御部
３２０と、を含む。
【００２０】
ＮＡＮＤコントローラ３１０は、ＮＡＮＤ型フラッシュメモリ群Ｃｈ０〜Ｃｈ１７のそ
れぞれに接続される。ＮＡＮＤコントローラ３１０は、ＮＡＮＤ型フラッシュメモリ２０
へのデータのライト・リード・イレース等の動作を制御する。以下、ＮＡＮＤコントロー
ラ３１０をＮＡＮＤコントローラＣｈ０〜Ｃｈ１７と表記することがある。
【００２１】
バッファ読み出し制御部３２０は、バッファ２１０から読み出したデータパケットを各
ＮＡＮＤコントローラ３１０に転送する。
【００２２】
論物変換テーブル４００は、ホスト２からのコマンドで指定される論理アドレスとＮＡ
ＮＤ型フラッシュメモリ２０の物理アドレスとの変換を行う。
【００２３】
ＣＰＵ５００は、ＦＷ（Ｆｉｒｍｗａｒｅ）に基づき半導体記憶装置１全体の制御を行
う。図２は、ＣＰＵ５００がＦＷを実行することによって実現する各種機能部を示す図で
ある。ＣＰＵ５００は、半導体記憶装置１全体を制御する処理部５１０として機能する。
処理部５１０は、コマンド処理部５２０と、ライト方法決定部５３０と、を含む。
【００２４】
なお、バッファ２１０及びＣＰＵ５００はコントローラ１０に内蔵せず、別個の半導体
集積回路としてもよい。また、以下の説明においてＦＷにより実行される機能の一部、又
は、全部は専用のＨＷ（Ｈａｒｄｗａｒｅ）によっても実行可能であり、ＨＷにより実行
される機能の一部、又は、全部をＦＷによって実行することも可能である。
【００２５】
次に、図３を参照して、ホストＩＦ制御部１００の構成を説明する。
【００２６】
ホストＩＦ制御部１００は、通信インタフェース（ＩＦ）部１１０と、Ｌｉｎｋ制御部
１２０と、受信制御部１３０と、実行制御部１５０と、送信制御部１７０と、を含む。
【００２７】
通信ＩＦ部１１０は、ホスト２との通信における物理層の制御を行う。Ｌｉｎｋ制御部
１２０は、ホスト２とのコネクションの管理やプリミティブの送受信などのＬｉｎｋ層の
制御を行う。受信制御部１３０は、ホスト２からの情報の受信を制御する。実行制御部１
５０は、ホスト２から受信したコマンドの実行を制御する。送信制御部１７０は、ホスト
２への情報の送信を制御する。
【００２８】
受信制御部１３０は、受信フレームＦＩＦＯ１３１と、受信情報選択部１３２と、コマ
ンドテーブル１３３と、受信カウンタ１３４と、を含む。受信フレームＦＩＦＯ１３１は
、ホスト２より受信するフレーム１９０を一時的に格納する。受信情報選択部１３２は、
受信フレームＦＩＦＯ１１０からフレーム１９０を取り出し、フレームヘッダー中のフレ
ーム種別フィールドに基づいて格納先を選択する。より具体的には、受信情報選択部１３
２は、コマンド情報であるＣＯＭＭＡＮＤフレーム１９１をコマンドテーブル１３３に格
納する。受信情報選択部１３２は、不揮発性半導体メモリ２０に記憶されるデータである
ＤＡＴＡフレーム１９２をバッファ制御部２００に転送する。
【００２９】
コマンドテーブル１３３に格納されたＣＯＭＭＡＮＤフレーム１９１は、コマンド処理
部５２０が取り出す。コマンド処理部５２０はコマンドタイプ（すなわちライトコマンド
、リードコマンド、ノンデータコマンドの種別）、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ
Ａｄｄｒｅｓｓ）、転送数などを解釈する。
【００３０】
受信カウンタ１３４は、バッファ制御部２００に転送されたＤＡＴＡフレーム１９２の
長さ（データ数）をカウントする。受信カウンタ１３４の値は実行制御部１５０に出力さ
れる。
【００３１】
実行制御部１５０の詳細な構成については後述する。
【００３２】
送信制御部１７０は、送信フレームＦＩＦＯ１７１と、送信情報選択部１７２と、送信
カウンタ１７３と、を含む。
【００３３】
送信フレームＦＩＦＯ１７１は、ホスト２へ送信するフレーム１９３を一時的に格納す
るためのＦＩＦＯである。送信情報選択部１７２は、実行制御部１５０の指示のもと、ス
テータスフレーム１９４と、ＤＡＴＡフレーム１９５とを選択し、送信ＦＩＦＯ１７１に
格納する。
【００３４】
ステータスフレーム１９４は、半導体記憶装置１の内部状態を示す。ステータスフレー
ム１９４には、ＲＥＳＰＯＮＳＥフレームと、ＸＦＥＲ＿ＲＤＹ（Ｔｒａｎｓｆｅｒ  Ｒ
ｅａｄｙ）フレームがある。ＲＥＳＰＯＮＳＥフレームは、コマンドの実行が完了したこ
とをホスト２に通知する。ＸＦＥＲ＿ＲＤＹフレームは、ライトデータの転送を許可する
ことをホスト２に通知する。
【００３５】
ＤＡＴＡフレーム１９５は、不揮発性半導体メモリ２０から読み出されバッファ２１０
に格納されたデータである。送信カウンタ１７３は、バッファ制御部２００から転送され
たＤＡＴＡフレーム１９５の長さ（データ数）をカウントする。送信カウンタ１７３の値
は実行制御部１５０に出力される。
【００３６】
実行制御部１５０は、プロトコルエンジン１５１と、実行管理テーブル１５２と、受信
完了判定部１５３と、送信完了判定部１５４と、を含む。
【００３７】
プロトコルエンジン１５１は、ホスト２との通信インタフェースに適合したプロトコル
でコマンドの実行を行う。
【００３８】
実行管理テーブル１５２は、コマンドをキューイングして実行するための管理テーブル
である。実行管理テーブル１５２の構成の一例を図４に示す。実行管理テーブル１５２は
例えば８ＤＷ（Ｄｏｕｂｌｅ  Ｗｏｒｄ、１ＤＷは３２ビット）で構成される。テーブル
の数はキューイングして実行するコマンドの数に応じて決まる。例えば８コマンドをキュ
ーイングして実行する場合には、８ＤＷからなるテーブルが８つ実装される。
【００３９】
実行管理テーブル１５２は、ＩＰＴＴ（Ｉｎｉｔｉａｔｏｒ  Ｐｏｒｔ  Ｔｒａｎｓｆ
ｅｒ  Ｔａｇ）１５５、コマンドタイプ１５６、ＬＢＡ１５７、全転送数１５８、送信／
受信予定数１５９、フラグ１６０〜１６３の各フィールドを有する。
【００４０】
ＩＰＴＴ１５５は、キューイングして実行する各コマンドを識別するために、ホスト２
がフレームヘッダーに付加する１６ビットのタグである。コマンドタイプ１５６及びＬＢ
Ａ１５７は、前述のとおりコマンドテーブル１３３に格納されたＣＯＭＭＡＮＤフレーム
１９１に基づく情報である。全転送数１５８は、コマンドで指定された転送数である。送
信／受信予定数１５９は、これから送受信するデータの送信／受信予定数である。送信／
受信予定数１５９は、リードコマンド実行時には送信予定数となる。送信／受信予定数１
５９は、ライトコマンド実行時には受信予定数となる。送信／受信予定数１５９は、コマ
ンドで指定された全転送数１５８と一致してもよい。送信予定数としてはバッファ２１０
への格納が済んだデータに応じた数としてもよい。受信予定数としてはバッファ２１０の
空きスペースに応じた数としてもよい。フラグ１６０〜１６３は、コマンドの実行にあた
り、コントローラ１０の各モジュールが参照する情報を格納する。
【００４１】
図３に戻って説明を続ける。受信完了判定部１５３には、現在受信しているＤＡＴＡフ
レーム１９２のＩＰＴＴ１３５、及び、受信カウンタ１３４の値が、受信制御部１３０か
ら入力される。また、受信完了判定部１５３には、実行管理テーブル１５２の各テーブル
からＩＰＴＴ１５５、及び、送信／受信予定数１５９が入力される。ＩＰＴＴ１３５とＩ
ＰＴＴ１５５が一致し、かつ、送信／受信予定数１５９と受信カウンタ１３４の値が一致
すると、受信完了判定部１５３は実行管理テーブル１５２に対し、そのライトデータの受
信完了を通知する。
【００４２】
同様に、送信完了判定部１５４には、現在送信しているＤＡＴＡフレーム１９５のＩＰ
ＴＴ１７４、及び、送信カウンタ１７３の値が送信制御部１７０から入力される。また、
送信完了判定部１５４には、実行管理テーブル１５２の各テーブルからＩＰＴＴ１５５、
及び、送信／受信予定数１５９が入力される。ＩＰＴＴ１７４とＩＰＴＴ１５５が一致し
、かつ、送信／受信予定数１５９と送信カウンタ１７３の値が一致すると、送信完了判定
部１５４は実行管理テーブル１５２に対し、そのリードデータの送信完了を通知する。
【００４３】
次に、図５を参照して、ライトコマンドのプロトコルを説明する。説明を簡略化するた
め、Ｌｉｎｋ制御部１２０が行うＬｉｎｋ層の制御は省略してある。
【００４４】
ホスト２はライトコマンドを発行するために、ＣＯＭＭＡＮＤフレームを送信する（Ｆ
１００）。ここではＩＰＴＴは１、転送数は４ｋＢであるとする。ＣＯＭＭＡＮＤフレー
ムはコマンドテーブル１３３に格納される。コマンド処理部５２０はＣＯＭＭＡＮＤフレ
ームを取り出し、その内容を解釈する。コマンド処理部５２０はバッファ２１０の空きス
ペースの確保その他の必要な処理を行う。
【００４５】
コマンド処理部５２０は、実行管理テーブル１５２に、ＩＰＴＴ１５５、コマンドタイ
プ１５６としてライトコマンド、ＬＢＡ１５７、全転送数１５８、送信／受信予定数１５
９として受信予定数を設定する。また、フラグ１６０にＴＰＴＴ（Ｔａｒｇｅｔ  Ｐｏｒ
ｔ  Ｔｒａｎｓｆｅｒ  Ｔａｇ）を設定する。ＴＰＴＴはデータを識別するための１６ビ
ットのタグである。ＴＰＴＴの値は任意でよい。ここでは受信予定数は３ｋＢ、ＴＰＴＴ
は１０であるとする。
【００４６】
実行管理テーブル１５２は、プロトコルエンジン１５１に対してＸＦＥＲ＿ＲＤＹフレ
ームの生成を要求する。プロトコルエンジン１５１は、実行管理テーブル１５２からＩＰ
ＴＴ１５５、受信予定数、フラグ１６０に設定されたＴＰＴＴを取得する。プロトコルエ
ンジン１５１は、これらの情報に基づいて、ＸＦＥＲ＿ＲＤＹフレームを生成する。送信
情報選択部１７２は、ＸＦＥＲ＿ＲＤＹフレームを送信フレームＦＩＦＯ１７１に格納す
る。格納されたＸＦＥＲ＿ＲＤＹフレームは、通信ＩＦ部１１０を介してホスト２に送信
される（Ｆ１０１）。
【００４７】
ＸＦＥＲ＿ＲＤＹフレームを受信したホスト２は、ＤＡＴＡフレームを送信する（Ｆ１
０２）。ホスト２は、ＸＦＥＲ＿ＲＤＹフレームによって通知された受信予定数に相当す
る数のＤＡＴＡフレームを送信する。ホスト２は、ＸＦＥＲ＿ＲＤＹフレームによって通
知されたＴＰＴＴを、ＤＡＴＡフレームに付加して送信する。
【００４８】
受信制御部１３０は、受信したＤＡＴＡフレームをバッファ制御部２００に転送する。
送信／受信予定数１５９の値が受信カウンタ１３４の値と一致すると、受信完了判定部１
５３は実行管理テーブル１５２に対してライトデータの受信完了を通知する。
【００４９】
通知を受けた実行管理テーブル１５２は、コマンドで指定された全転送数分のＤＡＴＡ
フレームの受信が完了していない場合、ＣＰＵ５００に割り込みをあげる。コマンド処理
部５２０は、受信予定数、ＴＰＴＴの設定等を再度行う。ここでは受信予定数は１ｋＢ、
ＴＰＴＴは２０であるとする。実行管理テーブル１５２はプロトコルエンジン１５１に対
してＸＦＥＲ＿ＲＤＹフレームの生成を再度要求し、ＸＦＥＲ＿ＲＤＹフレームが再送信
される（Ｆ１０３）。
【００５０】
一方で、コマンドで指定された全転送数のＤＡＴＡフレームの受信が完了した場合は、
実行管理テーブル１５２は、プロトコルエンジン１５１に対してＲＥＳＰＯＮＳＥフレー
ムの生成を要求する。プロトコルエンジン１５１は、実行管理テーブル１５２からＩＰＴ
Ｔ１５５を取得し、ＲＥＳＰＯＮＳＥフレームを生成する。送信情報選択部１７２は、Ｒ
ＥＳＰＯＮＳＥフレームを送信フレームＦＩＦＯ１７１に格納する。格納されたＲＥＳＰ
ＯＮＳＥフレームは、通信ＩＦ部１１０を介してホスト２に送信される（Ｆ１０４）。ホ
スト２は、ＲＥＳＰＯＮＳＥフレームの受信により、ライトコマンドの完了を認識する。
【００５１】
次に、図６を参照して、ライトコマンドをキューイングして実行する場合のプロトコル
を説明する。
【００５２】
ホスト２は３つのライトコマンドを発行するために、ＩＰＴＴ＝１、２、３の３つのＣ
ＯＭＭＡＮＤフレームを送信する（Ｆ２００）。転送数はいずれも４ｋＢであるとする。
【００５３】
半導体記憶装置１は、図５を参照して説明したように、ＸＦＥＲ＿ＲＤＹフレームを送
信する（Ｆ２０１）。ここでは、ＩＰＴＴ＝２でＴＰＴＴ＝１０のＸＦＥＲ＿ＲＤＹフレ
ーム、ＩＰＴＴ＝１でＴＰＴＴ＝２０のＸＦＥＲ＿ＲＤＹフレーム、ＩＰＴＴ＝３でＴＰ
ＴＴ＝３０のＸＦＥＲ＿ＲＤＹフレームの、３つのＸＦＥＲ＿ＲＤＹフレームが送信され
るものとする。また、受信予定数はいずれも４ｋＢであるとする。
【００５４】
ＸＦＥＲ＿ＲＤＹフレームを受信したホスト２は、ＤＡＴＡフレームを送信する（Ｆ２
０２）。ホスト２は、ＸＦＥＲ＿ＲＤＹフレームによって通知された受信予定数に相当す
る数のＤＡＴＡフレームを送信する。ホスト２は、ＸＦＥＲ＿ＲＤＹフレームによって通
知されたＴＰＴＴを、ＤＡＴＡフレームに付加して送信する。ホスト２は、ＤＡＴＡフレ
ームを任意の順番で送信してよい。
【００５５】
半導体記憶装置１は、図５を参照して説明したように、コマンドで指定された全転送数
のＤＡＴＡフレームの受信が完了すると、ＲＥＳＰＯＮＳＥフレームを送信する（Ｆ２０
３）。ホスト２は、ＲＥＳＰＯＮＳＥフレームの受信により、ライトコマンドの完了を認
識する。
【００５６】
以上、半導体記憶装置１とホスト２との間のライトコマンドのプロトコルについて説明
した。以下では、半導体記憶装置１が、ライトコマンドに応じて受信したデータをどのよ
うに不揮発性半導体メモリ２０に書き込むかを説明する。
【００５７】
図７ａ及び図７ｂは、本実施形態のＮＡＮＤ型フラッシュメモリ２０の物理ページ６０
０及び物理ブロック６１０の構成を説明する図である。
【００５８】
図７ａに示すように、ＮＡＮＤ型フラッシュメモリ２０に対するデータのリードライト
における最小管理単位はクラスタ６２０と呼ばれる。本実施形態ではクラスタ６２０の大
きさは４ｋＢである。また、ＮＡＮＤ型フラッシュメモリ２０のデータのリードライトが
可能な最小の回路構成の単位（第１の単位）は物理ページ６００と呼ばれる。本実施形態
では物理ページ６００の大きさは１６クラスタ（４ｋＢ×１６クラスタ＝６４ｋＢ）であ
る。
【００５９】
また、図７ｂに示すように、ＮＡＮＤ型フラッシュメモリ２０のデータのイレースが可
能な最小の回路構成の単位（第２の単位）は物理ブロック６１０と呼ばれる。本実施形態
では物理ブロック６１０の大きさは１６物理ページ（６４ｋＢ×１６物理ページ＝１０２
４ｋＢ）である。これら各単位のサイズは一例であり、これらの値に限定されるものでは
ない。
【００６０】
次に、図８を参照して、本実施形態のＮＡＮＤ型フラッシュメモリ２０の構成を説明す
る。
【００６１】
ＮＡＮＤ型フラッシュメモリ２０は、ページバッファ２２と、メモリセル２４と、を含
む。ページバッファ２２はデータを一時的に格納する。メモリセル２４はデータを不揮発
的に記憶する。
【００６２】
本実施形態ではページバッファ２２の大きさは１物理ページ分のデータの大きさに等し
い。すなわち、ページバッファ２２の大きさは１６クラスタ（６４ｋＢ）である。ページ
バッファ２２に格納されたデータは、一度にメモリセル２４にライトすることが可能であ
る。ライト性能を向上させるためには、ページバッファ２２のすべてをデータで満たして
からメモリセル２４へのライトを行うことが望ましい。
【００６３】
次に、図９を参照して、本実施形態のコントローラ１０がＮＡＮＤ型フラッシュメモリ
２０にデータをライトする単位である論理ページ６３０の構成を説明する。
【００６４】
図９の１つのセルはクラスタ６２０を示す。各クラスタにはＭｅｄｉａ  Ｃｌｕｓｔｅ
ｒ  Ｏｆｆｓｅｔと呼ばれる番号（以下、ＭＣＯと表記する）が割り当てられる。論理ペ
ージ６３０内の各クラスタはＭＣＯによりその位置が特定される。
【００６５】
また、各ＮＡＮＤ型フラッシュメモリ２０に対応する横方向の１行（１６クラスタ）は
物理ページ６００となる。すなわち、本実施形態では論理ページ６３０の大きさは１８物
理ページである。
【００６６】
次に、図１０を参照して、本実施形態のデータパケット６４０の構成を説明する。
【００６７】
データパケット生成部２２０は、ホストＩＦ制御部１００から受信したデータに、１ク
ラスタ毎にヘッダーを付加し、データパケット６４０を生成する。生成されたデータパケ
ット６４０はバッファ２１０に格納される。
【００６８】
ヘッダーにはメモリＩＦ制御部３００による制御のための情報が格納されている。
【００６９】
ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）はホスト２が管理しているセ
クター単位（例えば５１２Ｂ）の論理アドレスである。ＬＢＡは、データパケット６４０
に格納されているデータの先頭セクターのＬＢＡを示す。
【００７０】
論理ページ番号、ＭＣＯは、前述のようにデータパケット６４０に格納されているデー
タがどのＮＡＮＤ型フラッシュメモリ２０のどのクラスタにライトされるべきかを示す。
バッファアドレスは、このデータパケット６４０が、バッファ２１０のどの位置に格納さ
れるべきかを示す。ライト方法は、後述するライト方法のいずれを使用するのかを表す。
【００７１】
次に、図１１を参照して、本実施形態のコントローラ１０がＮＡＮＤ型フラッシュメモ
リ２０へデータをライトする第１の方法を説明する。
【００７２】
第１の方法では、コントローラ１０は、ホスト２より受信したデータを、クラスタごと
に各論理ページ内のＭＣＯ順に配置する。すなわち、各論理ページ内で最初に受信したデ
ータがＭＣＯ＝０に配置され、次に受信したデータがＭＣＯ＝１に配置され、次に受信し
たデータがＭＣＯ＝２に配置される。ＭＣＯ＝１７の次に受信したデータはＭＣＯ＝１８
に配置される。以下では第１の方法を縦書きと表記する。
【００７３】
図１２は、本実施形態のコントローラ１０が縦書きにより１論理ページ分のデータをＮ
ＡＮＤ型フラッシュメモリ２０へライトする場合の、バッファ２１０のデータ格納量の変
化を説明する図である。
【００７４】
時刻Ｔ０において、データパケット生成部２２０は、ある論理ページのＭＣＯ＝０のデ
ータパケットをバッファ２１０に格納する。その後、データパケット生成部２２０は、Ｍ
ＣＯ＝１のデータパケット、ＭＣＯ＝２のデータパケット・・・、を順にバッファ２１０
に格納する。そして、データパケット生成部２２０は、ＭＣＯ＝２６９のデータパケット
までバッファ２１０に格納した後、時刻Ｔ１において、ＭＣＯ＝２７０のデータパケット
をバッファ２１０に格納する。
【００７５】
ＭＣＯ＝２７０のデータパケットがバッファ２１０に格納されると、ＮＡＮＤ型フラッ
シュメモリ群Ｃｈ０の１物理ページ分のデータがバッファ２１０に格納されたことになる
。バッファ読み出し制御部３２０は、バッファ２１０からＮＡＮＤ型フラッシュメモリ群
Ｃｈ０へデータを転送する。
【００７６】
その後、同様にＭＣＯ＝２７１のデータパケットがバッファ２１０に格納されると、バ
ッファ２１０からＮＡＮＤ型フラッシュメモリ群Ｃｈ１へデータが転送される。次に、Ｍ
ＣＯ＝２７２のデータパケットがバッファ２１０に格納されると、バッファ２１０からＮ
ＡＮＤ型フラッシュメモリ群Ｃｈ２へデータが転送される。以下同様にデータの格納及び
転送が続く。
【００７７】
この時にバッファ２１０が格納するデータの最大量（ΔＢｕｆｆ１８）は、ＭＣＯ＝０
からＭＣＯ＝２７０までの２７１データパケット分である。
【００７８】
ホスト２より受信したデータのＬＢＡがシーケンシャルである場合、縦書きによってＮ
ＡＮＤ型フラッシュメモリ２０へデータをライトしておけば、シーケンシャルリード性能
を向上させることができる。コントローラ１０は、各チャネルのＮＡＮＤ型フラッシュメ
モリ２０から、並列してデータをリードすることできるからである。
【００７９】
次に、図１３を参照して、本実施形態のコントローラ１０がＮＡＮＤ型フラッシュメモ
リ２０へデータをライトする第２の方法を説明する。
【００８０】
第２の方法では、コントローラ１０は、ホスト２より受信したデータを９チャネルのＮ
ＡＮＤ型フラッシュメモリ２０ごとに、ＭＣＯ順に配置する。すなわち、各論理ページ内
で最初に受信したデータがＭＣＯ＝０に配置され、次に受信したデータがＭＣＯ＝１に配
置され、次に受信したデータがＭＣＯ＝２に配置される。ＭＣＯ＝８の次に受信したデー
タはＭＣＯ＝１８に配置される。ＭＣＯ＝２７８の次に受信したデータはＭＣＯ＝９に配
置される。
【００８１】
ここでは９チャネルごとにＭＣＯ順にライトする方法を説明したが、任意のＮチャネル
ごとにＭＣＯ順にライトすることも可能である（Ｎは１８以下の自然数）。以下では、Ｎ
チャネルごとにＭＣＯ順にライトする第２の方法を、Ｎチャネル折り返し書きと表記する
。前述した縦書きは１８チャネル折り返し書きに相当する。
【００８２】
ホスト２より受信したデータのＬＢＡがシーケンシャルである場合、Ｎチャネル折り返
し書きによってＮＡＮＤ型フラッシュメモリ２０へデータをライトしておけば、Ｎチャネ
ルの範囲内でのシーケンシャルリード性能を向上させることができる。
【００８３】
図１４は、本実施形態のコントローラ１０が９チャネル折り返し書きにより１論理ペー
ジ分のデータをＮＡＮＤ型フラッシュメモリ２０へライトする場合の、バッファ２１０の
データ格納量の変化を説明する図である。
【００８４】
時刻Ｔ０において、データパケット生成部２２０は、ある論理ページのＭＣＯ＝０のデ
ータパケットをバッファ２１０に格納する。その後、データパケット生成部２２０は、Ｍ
ＣＯ＝１のデータパケット、ＭＣＯ＝２のデータパケット・・・、を順にバッファ２１０
に格納する。そして、データパケット生成部２２０は、ＭＣＯ＝８のデータパケットをバ
ッファ２１０に格納した後、ＭＣＯ＝１８のデータパケットをバッファ２１０に格納する
。さらにデータパケット生成部２２０は、ＭＣＯ＝２６０のデータパケットまでバッファ
２１０に格納した後、時刻Ｔ１において、ＭＣＯ＝２７０のデータパケットをバッファ２
１０に格納する。
【００８５】
ＭＣＯ＝２７０のデータパケットがバッファ２１０に格納されると、ＮＡＮＤ型フラッ
シュメモリ群Ｃｈ０の１物理ページ分のデータがバッファ２１０に格納されたことになる
。バッファ読み出し制御部３２０は、バッファ２１０からＮＡＮＤ型フラッシュメモリ群
Ｃｈ０へデータを転送する。
【００８６】
その後、同様にＭＣＯ＝２７１のデータパケットがバッファ２１０に格納されると、バ
ッファ２１０からＮＡＮＤ型フラッシュメモリ群Ｃｈ１へデータが転送される。次に、Ｍ
ＣＯ＝２７２のデータパケットがバッファ２１０に格納されると、バッファ２１０からＮ
ＡＮＤ型フラッシュメモリ群Ｃｈ２へデータが転送される。以下同様にデータの格納及び
転送が続く。
【００８７】
同様に、データパケット生成部２２０は、ＭＣＯ＝９、１０、・・・、１７、２７、２
８、・・・、２６８、２６９のデータパケットをバッファ２１０に格納した後、時刻Ｔ２
においてＭＣＯ＝２７９のデータパケットをバッファ２１０に格納する。
【００８８】
ＭＣＯ＝２７９のデータパケットがバッファ２１０に格納されると、ＮＡＮＤ型フラッ
シュメモリ群Ｃｈ９の１物理ページ分のデータがバッファ２１０に格納されたことになる
。バッファ読み出し制御部３２０は、バッファ２１０からＮＡＮＤ型フラッシュメモリ群
Ｃｈ９へデータを転送する。
【００８９】
その後、同様にＭＣＯ＝２８０のデータパケットがバッファ２１０に格納されると、バ
ッファ２１０からＮＡＮＤ型フラッシュメモリ群Ｃｈ１０へデータが転送される。次に、
ＭＣＯ＝２８１のデータパケットがバッファ２１０に格納されると、バッファ２１０から
ＮＡＮＤ型フラッシュメモリ群Ｃｈ１１へデータが転送される。以下同様にデータの格納
及び転送が続く。
【００９０】
この時にバッファ２１０が格納するデータの最大量（ΔＢｕｆｆ９）は、ＭＣＯ＝０、
１、・・・、８、１８、１９、・・・、２５９、２６０、２７０までの１３６データパケ
ット分である。また、ＮＡＮＤ型フラッシュメモリ群Ｃｈ０へのデータ転送が始まる時刻
（Ｔ１）は縦書きの時よりも早い。
【００９１】
次に、図１５を参照して、本実施形態のコントローラ１０がＮＡＮＤ型フラッシュメモ
リ２０へデータをライトする第３の方法を説明する。
【００９２】
第３の方法では、コントローラ１０は、ホスト２より受信したデータをＮＡＮＤ型フラ
ッシュメモリ２０のチャネルごとに配置する。すなわち、各論理ページ内で最初に受信し
たデータがＭＣＯ＝０に配置され、次に受信したデータがＭＣＯ＝１８に配置され、次に
受信したデータがＭＣＯ３６に配置される。ＭＣＯ＝２７０の次に受信したデータはＭＣ
Ｏ＝１に配置される。以下では第３の方法を横書きと表記する。横書きは１チャネル折り
返し書きに相当する。
【００９３】
図１６は、本実施形態のコントローラ１０が横書きにより１論理ページ分のデータをＮ
ＡＮＤ型フラッシュメモリ２０へライトする場合の、バッファ２１０のデータ格納量の変
化を説明する図である。
【００９４】
時刻Ｔ０において、データパケット生成部２２０は、ある論理ページのＭＣＯ＝０のデ
ータパケットをバッファ２１０に格納する。その後、データパケット生成部２２０は、Ｍ
ＣＯ＝１８のデータパケット、ＭＣＯ＝３６のデータパケット・・・、を順にバッファ２
１０に格納する。そして、データパケット生成部２２０は、ＭＣＯ＝２５２のデータパケ
ットまでバッファ２１０に格納した後、時刻Ｔ１において、ＭＣＯ＝２７０のデータパケ
ットをバッファ２１０に格納する。
【００９５】
ＭＣＯ＝２７０のデータパケットがバッファ２１０に格納されると、ＮＡＮＤ型フラッ
シュメモリ群Ｃｈ０の１物理ページ分のデータがバッファ２１０に格納されたことになる
。バッファ読み出し制御部３２０は、バッファ２１０からＮＡＮＤ型フラッシュメモリ群
Ｃｈ０へデータを転送する。
【００９６】
その後、同様にＭＣＯ＝１、１９、３７、・・・、２５３、２７１のデータパケットが
バッファ２１０に格納されると、時刻Ｔ２において、バッファ２１０からＮＡＮＤ型フラ
ッシュメモリ群Ｃｈ１へデータが転送される。また、ＭＣＯ＝２、２０、３８、・・・、
２５４、２７２のデータパケットがバッファ２１０に格納されると、時刻Ｔ３において、
バッファ２１０からＮＡＮＤ型フラッシュメモリ群Ｃｈ２へデータが転送される。以下同
様にデータの格納及び転送が続く。
【００９７】
この時にバッファ２１０が格納するデータの最大量（ΔＢｕｆｆ１）は、ＭＣＯ＝０、
１８、３６、・・・、２５２までの１５データパケット分である。また、ＮＡＮＤ型フラ
ッシュメモリ群Ｃｈ０へのデータ転送が始まる時刻（Ｔ１）は縦書きや９チャネル折り返
し書きの時よりも早い。すなわち、横書きはライト性能を高めることができる。
【００９８】
以上説明したように、Ｎチャネル折り返し書き（１≦Ｎ≦１８）では、Ｎが大きくなる
につれ、リード時のシーケンシャルリード性能が高い。一方で、Ｎが大きくなるにつれ、
バッファ２１０に格納されるデータ量も大きくなり、ライト性能の低下を招く可能性もあ
る。
【００９９】
なお、上記の各ライト方法は半導体記憶装置１全体で１つに決められていてもよいし、
論理ページ６３０ごとに変更されてもよいし、ライトコマンドごとに変更されてもよい。
【０１００】
以上、本実施形態のコントローラ１０がＮＡＮＤ型フラッシュメモリ２０へデータをラ
イトする方法の概要を説明した。以下では、上記のライト方法がどのように実現されるの
かを説明する。
【０１０１】
前述したように、コマンド処理部５２０は、ライトコマンドの実行のために実行管理テ
ーブル１５２を設定する。この時、ライト方法決定部５３０は、受信予定数に応じたライ
ト方法を決定する。ライト方法決定部５３０は、決定したライト方法を、ライト方法管理
テーブル格納部２３０内のライト方法管理テーブル６５０に設定する。
【０１０２】
図１７に示すように、ライト方法管理テーブル６５０は、１エントリーにＩＰＴＴ、Ｔ
ＰＴＴ、ライト方法を含む。図１７に示す例では、ＩＰＴＴ＝１、ＴＰＴＴ＝１０のデー
タを縦書きによりＮＡＮＤ型フラッシュメモリ２０へライトする。ＩＰＴＴ＝２、ＴＰＴ
Ｔ＝２０のデータを横書きによりＮＡＮＤ型フラッシュメモリ２０へライトする。ＩＰＴ
Ｔ＝３、ＴＰＴＴ＝３０のデータを９チャネル折り返し書きによりＮＡＮＤ型フラッシュ
メモリ２０へライトする。ＩＰＴＴ＝４、ＴＰＴＴ＝４０のデータを縦書きによりＮＡＮ
Ｄ型フラッシュメモリ２０へライトする。
【０１０３】
ライト方法管理テーブル６５０のエントリー数は、キューイングして実行するライトコ
マンドの数に応じて決まる。図１７に示す例では、ライト方法管理テーブル６５０は８つ
のエントリーを有し、８つのライトコマンドをキューイングして実行することができる。
【０１０４】
次に図１８を参照して、ライト方法決定部５３０によるライト方法の決定手順の一例を
説明する。
【０１０５】
コマンド処理部５２０は受信予定数を決定する（Ｓ１００）。これは前述のとおり、バ
ッファ２１０の空きスペース等に基づいて決定すればよい。受信予定数が論理ページ６３
０のサイズ以上である時（Ｓ１０１：Ｙｅｓ）、コマンド処理部５２０は受信予定数を論
理ページ６３０のサイズに変更する（Ｓ１０２）。１コマンドあたりにバッファ２１０が
格納するデータの最大量をΔＢｕｆｆ１８までに抑えるためである。なお、Ｓ１０２はス
キップしてもよい。この時ライト方法決定部５３０は、ライト方法を縦書きに設定する（
Ｓ１０３）。長いサイズのシーケンシャルデータを受信するからである。
【０１０６】
受信予定数が論理ページ６３０のサイズ未満であり（Ｓ１０１：Ｎｏ）、かつ、物理ペ
ージ６００のサイズより大きい時（Ｓ１０４：Ｙｅｓ）、ライト方法決定部５３０はライ
ト方法を９チャネル折り返し書きに設定する（Ｓ１０５）。中程度のサイズのシーケンシ
ャルデータを受信するからである。
【０１０７】
受信予定数が物理ページ６００のサイズ以下である時（Ｓ１０４：Ｎｏ）、ライト方法
決定部５３０はライト方法を横書きに設定する（Ｓ１０６）。ランダム性の高いデータを
受信するからである。
【０１０８】
なお、論理ページサイズ、物理ページサイズ以外の閾値によってライト方法を変更して
もよい。また、Ｎ＝１８、９、１以外のＮチャネル折り返し書きを選択してもよい。
【０１０９】
ライト方法の決定後、コマンド処理部５２０は、前述したように実行管理テーブル１５
２を設定する。
【０１１０】
ライト方法決定部５３０は、上述したライト方法の設定を、ＸＦＥＲ＿ＲＤＹフレーム
の送信ごとに行う。この時ＸＦＥＲ＿ＲＤＹフレームごとに異なるライト方法を採用して
もよい。例えば図１９に示すように、ライトコマンドで要求された全転送数が論理ページ
６３０のサイズより大きい時は、最初のＸＦＥＲ＿ＲＤＹフレーム（Ｆ３００）により論
理ページ６３０のサイズ分のデータをホスト２に要求する。これにより受信したデータを
縦書きによってＮＡＮＤ型フラッシュメモリ２０にライトする。次のＸＦＥＲ＿ＲＤＹフ
レーム（Ｆ３０１）により残りのデータをホスト２に要求する。これにより受信したデー
タを横書きによってＮＡＮＤ型フラッシュメモリ２０にライトする。
【０１１１】
次に、図２０を参照して、本実施形態のデータパケット生成部２２０の詳細な構成を説
明する。
【０１１２】
データパケット生成部２２０は、ホストＩＦ制御部１００より受信したデータをパケッ
トサイズ（４ｋＢ）に分割する。データパケット生成部２２０は、データを１クラスタ分
受信すると、ライトカウンタ２２２をインクリメントさせる。データパケット生成部２２
０は、データを１論理ページ分受信すると、論理ページカウンタ２２４をインクリメント
させる。
【０１１３】
データパケット生成部２２０には、ライト方法管理テーブル格納部２３０からライト方
法管理テーブル６５０が入力される。データパケット生成部２２０には、ライトデータ配
置テーブル格納部２４０から、ライトデータ配置テーブル６６０が入力される。
【０１１４】
ライトデータ配置テーブル６６０の例を、図２１ａ〜図２１ｃに示す。図２１ａ〜図２
１ｃにおいて、ＷｔＣｎｔはバッファ２１０に格納されるデータのクラスタ単位での順番
、すなわちライトカウンタ２２２に対応する値を示す。また、ＭＣＯは各ＷｔＣｎｔに対
応するＭＣＯを示す。なお、各図は作図の都合上、それぞれ２つのテーブルとして描かれ
ている。実際には、各テーブルは、それぞれＷｔＣｎｔ＝０〜２８７を有する１つのテー
ブルである。
【０１１５】
図２１ａに示すライトデータ配置テーブル６６０ａは縦書き時に参照される。図２１ｂ
に示すライトデータ配置テーブル６６０ｂは９チャネル折り返し書き時に参照される。図
２１ｃに示すライトデータ配置テーブル６６０ｃは横書き時に参照される。ライトデータ
配置テーブル格納部２４０には、Ｎ＝１８（縦書き）、Ｎ＝９、Ｎ＝１（横書き）以外の
Ｎチャネル折り返し書き用のライトデータ配置テーブル６６０が格納されていてもよい。
【０１１６】
図２０に戻って説明を続ける。データパケット生成部２２０は、ホストＩＦ制御部１０
０より、受信データのＩＰＴＴ、ＴＰＴＴの情報を受ける。データパケット生成部２２０
は、ＩＰＴＴ、ＴＰＴＴを基にライト方法管理テーブル６５０を検索し、ライト方法を取
得する。
【０１１７】
データパケット生成部２２０は、取得したライト方法に応じたライトデータ配置テーブ
ル６６０を参照する。データパケット生成部２２０は、ライト方法が縦書きの場合はライ
トデータ配置テーブル６６０ａを参照する。データパケット生成部２２０は、ライト方法
が９チャネル折り返し書きの場合はライトデータ配置テーブル６６０ｂを参照する。デー
タパケット生成部２２０は、ライト方法が横書きの場合はライトデータ配置テーブル６６
０ｃを参照する。データパケット生成部２２０は、ライトカウンタ２２２の値をインデッ
クスとしてライトデータ配置テーブル６６０を検索することで、ライト方法に応じたＭＣ
Ｏを決定することができる。
【０１１８】
また、データパケット生成部２２０は、例えばライト方法管理テーブル６５０のエント
リー番号を基にバッファアドレスを決定する。例えばエントリー番号とΔＢｕｆｆ１８と
の積をベースアドレスとし、ライトカウンタ２２２の値をオフセットアドレスとしてよい
。
【０１１９】
データパケット生成部２２０はこれらの情報を用いてデータパケット６４０を生成する
。生成されたデータパケット６４０は、バッファ２１０に格納される。
【０１２０】
バッファ読み出し制御部３２０は、データパケット６４０中のライト方法及びＭＣＯに
従って、データパケット６４０をバッファ２１０から読み出すタイミング、及び、データ
パケット６４０をどのＮＡＮＤコントローラ３１０に転送するのかを判断する。これによ
り、ライト方法に応じたＮＡＮＤ型フラッシュメモリ２０へのデータのライトが実現され
る。
【０１２１】
以上説明した第１の実施形態の半導体記憶装置によれば、ライトデータの受信状況に応
じてライト方法を変更するので、シーケンシャルリードの性能を向上させつつ、バッファ
の空きスペースの枯渇を防止することができ、半導体記憶装置の性能を向上させることが
できる。
【０１２２】
［第２の実施形態］
第１の実施形態において説明したように、半導体記憶装置１はＸＦＥＲ＿ＲＤＹフレー
ム中のＴＰＴＴを任意の値に決定できる。また、ホスト２は、半導体記憶装置１から受信
したＴＰＴＴを、ＤＡＴＡフレームに付加して送信しなければならない。そこで本実施形
態においては、ＴＰＴＴをライト方法に応じた値とする。
【０１２３】
図２２に本実施形態において送信されるＴＰＴＴの例を示す。
【０１２４】
ビット４−０は、Ｎチャネル折り返し書きのＮの値である。すなわち、縦書きの時には
１８が、９チャネル折り返し書きの時には９が、横書きの時には１が設定される。ビット
７−５は、第１の実施形態のライト方法管理テーブル６５０のエントリー番号に相当する
。ビット１５−８は任意の値でよい。ビット１５−８は、例えば実行管理テーブル１５２
のテーブル番号としてもよい。ライト方法決定部５３０はライト方法を第１の実施形態と
同様に決定する。コマンド処理部５２０は、決定されたライト方法を基にしたＴＰＴＴを
、実行管理テーブル１５２に設定する。
【０１２５】
ＴＰＴＴを上記のように設定することにより、本実施形態においては、ライト方法管理
テーブル６５０は不要となる。すなわち、第１の実施形態と同様にデータパケット生成部
２２０は、ホストＩＦ制御部１００より受信データのＴＰＴＴを通知される。データパケ
ット生成部２２０は、通知されたＴＰＴＴのビット４−０によりライト方法を取得するこ
とができる。また、データパケット生成部２２０は通知されたＴＰＴＴのビット７−５を
基にバッファアドレスを決定することができる。
【０１２６】
以上説明した第２の実施形態の半導体記憶装置によれば、ライト方法管理テーブルなし
にライト方法が変更できるので、半導体記憶装置を小型化することができる。
【０１２７】
以上説明した少なくとも１つの実施形態の半導体記憶装置によれば、ライトデータの受
信状況に応じてライト方法を変更するので、シーケンシャルリードの性能を向上させつつ
、バッファの空きスペースの枯渇を防止することができ、半導体記憶装置の性能を向上さ
せることができる。
【０１２８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したも
のであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その
他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の
省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や
要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる
。
【符号の説明】
【０１２９】
１…半導体記憶装置、２…ホスト、１０…コントローラ、２０…不揮発性半導体メモリ
、２２…ページバッファ、２４…メモリセル、１００…ホストインタフェース制御部、１
１０…通信インタフェース部、１２０…Ｌｉｎｋ制御部、１３０…受信制御部、１３１…
受信フレームＦＩＦＯ、１３２…受信情報選択部、１３３…コマンドテーブル、１３４…
受信カウンタ、１３５…受信したフレームのＩＰＴＴ、１５０…実行制御部、１５１…プ
ロトコルエンジン、１５２…実行管理テーブル、１５３…受信完了判定部、１５４…送信
完了判定部、１５５…実行管理テーブルに設定されたＩＰＴＴ、１５６…コマンドタイプ
、１５７…ＬＢＡ、１５８…全転送数、１５９…送信／受信予定数、１６０…フラグ、１
６１…フラグ、１６２…フラグ、１６３…フラグ、１７０…送信制御部、１７１…送信フ
レームＦＩＦＯ、１７２…送信情報選択部、１７３…送信カウンタ、１７４…送信するフ
レームのＩＰＴＴ、１９０…受信したフレーム、１９１…受信したＣＯＭＭＡＮＤフレー
ム、１９２…受信したＤＡＴＡフレーム、１９３…送信するフレーム、１９４…送信する
ステータスフレーム、１９５…送信するＤＡＴＡフレーム、２００…バッファ制御部、２
１０…バッファ、２２０…データパケット生成部、２２２…ライトカウンタ、２２４…論
理ページカウンタ、２２６…選択部、２３０…ライト方法管理テーブル格納部、２４０…
ライトデータ配置テーブル格納部、３００…メモリインタフェース制御部、３１０…ＮＡ
ＮＤコントローラ、３２０…バッファ読み出し制御部、４００…論物変換テーブル、５０
０…ＣＰＵ、５１０…処理部、５２０…コマンド処理部、５３０…ライト方法決定部、６
００…物理ページ、６１０…物理ブロック、６２０…クラスタ、６３０…論理ページ、６
４０…データパケット、６５０…ライト方法管理テーブル、６６０…ライトデータ配置テ
ーブル
【図１】
2018112883.tif 000003
【図２】
2018112883.tif 000004
【図３】
2018112883.tif 000005
【図４】
2018112883.tif 000006
【図５】
2018112883.tif 000007
【図６】
2018112883.tif 000008
【図７】
2018112883.tif 000009
【図８】
2018112883.tif 000010
【図９】
2018112883.tif 000011
【図１０】
2018112883.tif 000012
【図１１】
2018112883.tif 000013
【図１２】
2018112883.tif 000014
【図１３】
2018112883.tif 000015
【図１４】
2018112883.tif 000016
【図１５】
2018112883.tif 000017
【図１６】
2018112883.tif 000018
【図１７】
2018112883.tif 000019
【図１８】
2018112883.tif 000020
【図１９】
2018112883.tif 000021
【図２０】
2018112883.tif 000022
【図２１ａ】
2018112883.tif 000023
【図２１ｂ】
2018112883.tif 000024
【図２１ｃ】
2018112883.tif 000025
【図２２】
2018112883.tif 000026