(57)【要約】【課題】  プログラミング動作中に、より速くかつより効率的な方法でアクセスできる不揮発性メモリを提供する。【解決手段】  メモリシステム（１００Ｂ）には、不揮発性メモリセルアレイ（１４０）と、メモリコントローラ（１１０）であって、プログラミング動作用にいくつかのメモリセルをアドレスするプログラムコマンドを受信する第１のポート（線１０１に接続されたポート）を有し、コマンドパイプラインを介してメモリアレイに結合された第２のポート（線１０２および１０３に接続されたポート）を有し、かつプログラムコマンドに応じて複数の部分プログラムコマンドを生成するように構成されたメモリコントローラ（１１０）と、が含まれる。各部分プログラムコマンドの実行では、アドレスされたメモリセルに単一プログラムパルスを印加して、アドレスされたメモリセルをプログラムデータで漸増的にプログラムするが、各部分プログラムコマンドに関連するプログラムパルスの持続時間は、メモリセルをプログラムするために典型的に必要な合計プログラミング時間の選択された一部である。【選択図】図１Ａ
2011523157.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリセルアレイを含むメモリデバイスと、
プログラミング動作用にいくつかの前記メモリセルをアドレスするプログラムコマンドを受信する第１のポートを有し、コマンドパイプラインを介して前記メモリデバイスに結合された第２のポートを有し、かつ前記プログラムコマンドに応じて複数の独立した部分プログラムコマンドを生成するように構成されたメモリコントローラであって、各部分プログラムコマンドの実行が、前記アドレスされたメモリセルをプログラムデータで漸増的にプログラムするメモリコントローラと、
を含むメモリシステム。
【請求項２】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、各プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項１に記載のメモリシステム。
【請求項３】
前記プログラムコマンドが、前記部分プログラムコマンドのそれぞれに関連する前記プログラムパルスの前記持続時間を決定するパルス幅値を含む、請求項２に記載のメモリシステム。
【請求項４】
前記プログラムコマンドが、前記メモリコントローラによって生成される部分プログラムコマンドの最大数を指定する限界値を含む、請求項１に記載のメモリシステム。
【請求項５】
各部分プログラムコマンドの実行がまた、前記プログラムデータを検証する、請求項１に記載のメモリシステム。
【請求項６】
前記メモリコントローラが、選択された数の前記部分プログラムコマンドの前で前記コマンドパイプラインに、非プログラムコマンドを選択的に挿入するようにさらに構成される、請求項１に記載のメモリシステム。
【請求項７】
前記非プログラムコマンドが、前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、前記メモリデバイスにおいて実行される、請求項６に記載のメモリシステム。
【請求項８】
前記非プログラムコマンドが、読み出しコマンドを含む、請求項６に記載のメモリシステム。
【請求項９】
前記メモリコントローラが、
前記複数の部分プログラムコマンドを記憶するためのコマンドキューをさらに含む、請求項１に記載のメモリシステム。
【請求項１０】
前記メモリコントローラが、前記コマンドキューに前に入れられた選択された数の前記部分プログラムコマンドの前に、非プログラムコマンドを選択的に挿入するように構成される、請求項９に記載のメモリシステム。
【請求項１１】
前記メモリコントローラが、
前記プログラミング動作中にプログラムされているメモリセルのアドレスを記憶するためのプログラムアドレスレジスタと、
前記非プログラムコマンドに関連するアドレスを、前記プログラムアドレスレジスタに記憶された前記プログラムアドレスと比較するための制御回路であって、前記比較に応じて、前記非プログラムコマンドを前記コマンドキューに選択的に転送する制御回路と、
をさらに含む、請求項１０に記載のメモリシステム。
【請求項１２】
前記制御回路が、前記非プログラムコマンドに関連する前記アドレスが前記プログラムアドレスレジスタに記憶された前記プログラムアドレスのいずれとも一致しない場合には、前記非プログラムコマンドを前記コマンドキューに転送する、請求項１１に記載のメモリシステム。
【請求項１３】
プログラミングモードを示すモードデータを記憶するためのモードレジスタをさらに含む、請求項１に記載のメモリシステム。
【請求項１４】
前記メモリコントローラが、前記モードデータが第１の状態である場合には、前記プログラムコマンドに応じて前記部分プログラムコマンドを生成し、前記モードデータが第２の状態である場合には、前記プログラムコマンドに応じて一連のプログラム−検証サイクルを開始する、請求項１３に記載のメモリシステム。
【請求項１５】
メモリセルアレイを含むメモリデバイスにデータをプログラムする方法であって、
前記メモリセルにおいてデータをプログラムするプログラミング動作用にいくつかの前記メモリセルをアドレスするプログラムコマンドを受信するステップと、
前記プログラムコマンドに応じて、複数の独立した部分プログラムコマンドを生成するステップと、
実行のために前記部分プログラムコマンドを前記メモリデバイスに選択的に転送するステップであって、各部分プログラムコマンドの実行が、前記アドレスされたメモリセルを前記プログラムデータで漸増的にプログラムするステップと、
を含む方法。
【請求項１６】
前記部分プログラムコマンドをコマンドキューに入れるステップをさらに含む、請求項１５に記載に方法。
【請求項１７】
非プログラムコマンドを受信するステップと、
選択された数の前記部分プログラムコマンドの前において前記コマンドキューに、前記非プログラムコマンドを選択的に挿入するステップと、
前記選択された数の部分プログラムコマンドを実行する前に、前記メモリデバイスにおいて前記非プログラムコマンドを実行するステップと、
をさらに含む、請求項１６に記載の方法。
【請求項１８】
前記選択的に挿入するステップが、
前記プログラムコマンドによって識別された前記プログラムアドレスをプログラムアドレスレジスタに記憶するステップと、
前記非プログラムコマンドに関連するアドレスを、前記プログラムアドレスレジスタに記憶された前記プログラムアドレスと比較するステップと、
前記非プログラムコマンドに関連する前記アドレスが、前記プログラムアドレスのいずれとも一致しない場合には、前記非プログラムコマンドを前記コマンドキューに入れるステップと、
を含む、請求項１７に記載の方法。
【請求項１９】
前記対応する部分プログラムコマンドがまた、検証動作を実行して、前記アドレスされたメモリセルが適切にプログラムされたかどうかを示す検証データを生成する、請求項１８に記載の方法。
【請求項２０】
前記アドレスされたメモリセルの全てが適切にプログラムされたことを前記検証データが示す場合には、前記対応するプログラムアドレスを前記プログラムアドレスレジスタから削除するステップと、
前記検証データが、完全にはプログラムされなかったいくつかの前記アドレスされたメモリセルを識別する場合には、次の部分プログラムコマンドを前記アレイに送信して、前記識別されたメモリセルをさらにプログラムするステップと、
をさらに含む、請求項１９に記載の方法。
【請求項２１】
非プログラムコマンドを受信するステップと、
前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、実行のために前記非プログラムコマンドを前記メモリデバイスに選択的に転送するステップと、
をさらに含む、請求項１５に記載の方法。
【請求項２２】
前記選択的に転送するステップが、
前記非プログラムコマンドに関連するアドレスを、前記プログラムコマンドによって識別された前記プログラムアドレスと比較するステップと、
前記非プログラムコマンドに関連する前記アドレスが、前記プログラムアドレスと一致しない場合には、前記非プログラムコマンドを前記メモリデバイスへ直ちに転送するステップと、
を含む、請求項２１に記載の方法。
【請求項２３】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、各プログラムパルスの持続時間が、前記プログラミング動作の合計時間の選択された一部である、請求項１５に記載の方法。
【請求項２４】
前記プログラムコマンドと共にパルス幅値を供給するステップと、
前記パルス幅値に応じて、各部分プログラムコマンドに関連する前記プログラムパルスの前記持続時間を選択的に調節するステップと、
をさらに含む、請求項２３に記載の方法。
【請求項２５】
前記プログラムコマンドと共に限界値を供給するステップと、
前記限界値に応じて、前記メモリデバイスにおいて実行される部分プログラムコマンドの数を制限するステップと、
をさらに含む、請求項１５に記載の方法。
【請求項２６】
各部分プログラムコマンド用に、
前記対応する部分プログラムコマンドが、前記アドレスされたメモリセルに前記プログラムデータを完全にプログラムしたかどうかを示す検証データを生成するステップと、
前記検証データに応じ、前記メモリデバイスにおいて次の前記部分プログラムコマンドを選択的に実行するステップと、
をさらに含む、請求項１５に記載の方法。
【請求項２７】
不揮発性メモリセルアレイと、
プログラミング動作用にいくつかの前記メモリセルをアドレスするプログラムコマンドを受信する第１のポートを有し、コマンドパイプラインを介して前記メモリセルアレイに結合された第２のポートを有し、かつ前記プログラムコマンドに応じて複数の独立した部分プログラムコマンドを生成するように構成された制御回路であって、各部分プログラムコマンドの実行が、前記アドレスされたメモリセルを前記プログラムデータで漸増的にプログラムする制御回路と、
を含むフラッシュメモリデバイス。
【請求項２８】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、各プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項２７に記載のメモリデバイス。
【請求項２９】
前記プログラムコマンドが、前記部分プログラムコマンドのそれぞれに関連する前記プログラムパルスの前記持続時間を決定するパルス幅値を含む、請求項２８に記載のメモリデバイス。
【請求項３０】
前記プログラムコマンドが、前記部分プログラムコマンドの最大数を指定する限界値を含む、請求項２７に記載のメモリデバイス。
【請求項３１】
各部分プログラムコマンドの前記実行がまた、前記プログラムデータを検証する、請求項２７に記載のメモリデバイス。
【請求項３２】
前記制御回路が、前記部分プログラムコマンドの選択された数の前で前記コマンドパイプラインに、非プログラムコマンドを選択的に挿入するようにさらに構成される、請求項２７に記載のメモリデバイス。
【請求項３３】
前記非プログラムコマンドが、前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、前記アレイにおいて実行される、請求項３２に記載のメモリデバイス。
【請求項３４】
前記複数の部分プログラムコマンドを記憶するためのコマンドキューをさらに含む、請求項２７に記載のメモリデバイス。
【請求項３５】
前記制御回路が、前記コマンドキューに前に入れられた選択された数の前記部分プログラムコマンドの前に、非プログラムコマンドを選択的に挿入するように構成される、請求項３４に記載のメモリデバイス。
【請求項３６】
前記制御回路が、
前記プログラムコマンドによってアドレスされたメモリセルのアドレスを記憶するためのプログラムアドレスレジスタをさらに含み、前記制御回路が、前記非プログラムコマンドに関連するアドレスと、前記プログラムアドレスレジスタに記憶された前記プログラムアドレスとの間の比較に応じて、前記非プログラムコマンドを前記コマンドキューに選択的に転送する、請求項３５に記載のメモリデバイス。
【請求項３７】
前記制御回路が、前記非プログラムコマンドに関連する前記アドレスが前記プログラムアドレスレジスタに記憶された前記プログラムアドレスのいずれとも一致しない場合には、前記非プログラムコマンドを前記コマンドキューに入れる、請求項３６に記載のメモリデバイス。
【請求項３８】
プログラミングモードを示すモードデータを記憶するためのモードレジスタをさらに含む、請求項２７に記載のメモリデバイス。
【請求項３９】
前記制御回路が、前記モードデータが第１の状態である場合には、前記プログラムコマンドに応じて前記部分プログラムコマンドを生成し、前記モードデータが第２の状態である場合には、外部ソースから受信された部分プログラムコマンドを実行する、請求項３８に記載のメモリデバイス。
【請求項４０】
前記制御回路が、前記モードデータが第３の状態である場合には、前記プログラムコマンドに応じて一連のプログラム−検証サイクルを開始する、請求項３９に記載のメモリデバイス。
【請求項４１】
メモリセルアレイを有するメモリデバイスにデータをプログラムするためのシステムであって、
前記メモリセルにおいてデータをプログラムするプログラミング動作用に、いくつかの前記メモリセルをアドレスするプログラムコマンドを受信するための手段と、
前記プログラムコマンドに応じて、複数の独立した部分プログラムコマンドを生成するための手段と、
実行のために前記部分プログラムコマンドを前記メモリデバイスに選択的に転送するための手段であって、各部分プログラムコマンドの実行が、前記アドレスされたメモリセルを前記プログラムデータで漸増的にプログラムするための手段と、
を含むシステム。
【請求項４２】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、各プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項４１に記載のシステム。
【請求項４３】
非プログラムコマンドを受信するための手段と、
前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、前記メモリデバイスにおいて前記非プログラムコマンドを選択的に実行するための手段と、
をさらに含む、請求項４１に記載のシステム。
【請求項４４】
前記選択的に実行するための手段が、
前記非プログラムコマンドに関連するアドレスを、前記プログラムコマンドによって識別された前記プログラムアドレスと比較するための手段と、
前記非プログラムコマンドに関連する前記アドレスが、前記プログラムアドレスと一致しない場合には、前記メモリデバイスにおける実行のために前記非プログラムコマンドを前記メモリデバイスへ直ちに転送するための手段と、
をさらに含む、請求項４１に記載のシステム。
【請求項４５】
不揮発性メモリセルアレイと、
プログラミング動作用にいくつかのメモリセルをアドレスするプログラムコマンドを受信する第１のポートを有し、コマンドパイプラインを介して前記アレイに結合された第２のポートを有し、かつ前記プログラムコマンドに応じて、独立して実行可能な部分プログラムコマンドを前記アレイに発行するように構成された制御回路であって、前記部分プログラムコマンドの実行が、前記アドレスされたメモリセルを前記プログラムデータで漸増的にプログラムする制御回路と、
を含むメモリデバイス。
【請求項４６】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、前記プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項４５に記載のメモリデバイス。
【請求項４７】
前記プログラムコマンドが、前記部分プログラムコマンドのそれぞれに関連する前記プログラムパルスの前記持続時間を決定するパルス幅値を含む、請求項４６に記載のメモリデバイス。
【請求項４８】
前記部分プログラムコマンドの前記実行がまた、前記部分プログラムコマンドが前記アドレスされたメモリセルを完全にプログラムしたかどうかを示す検証データを生成する検証動作を実行する、請求項４５に記載のメモリデバイス。
【請求項４９】
前記制御回路が、前記アレイにおいて次の前記部分プログラムコマンドを選択的に実行し、前記検証データに応じて前記アドレスされたメモリセルを前記プログラムデータで、漸増的にさらにプログラムするようにさらに構成される、請求項４８に記載のメモリデバイス。
【請求項５０】
装置の説明を含む情報を自身に具体化するコンピュータ可読媒体であって、前記情報が、
不揮発性メモリセルアレイと、
プログラミング動作用にいくつかの前記メモリセルをアドレスするプログラムコマンドを受信する第１のポートを有し、コマンドパイプラインを介して前記メモリセルアレイに結合された第２のポートを有し、かつ前記プログラムコマンドに応じて、複数の独立した部分プログラムコマンドを生成するように構成された制御回路であって、各部分プログラムコマンドの実行が、単一プログラムパルスを前記アドレスされたメモリセルに印加して、前記アドレスされたメモリセルをプログラムデータで漸増的にプログラムする制御回路と、
の説明を含むコンピュータ可読媒体。
【請求項５１】
各プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項５０に記載のコンピュータ可読媒体。
【請求項５２】
前記プログラムコマンドが、前記部分プログラムコマンドのそれぞれに関連する前記プログラムパルスの前記持続時間を決定するパルス幅値を含む、請求項５１に記載のコンピュータ可読媒体。
【請求項５３】
前記プログラムコマンドが、前記制御回路によって生成される部分プログラムコマンドの最大値を指定する限界値を含む、請求項５０に記載のコンピュータ可読媒体。
【請求項５４】
各部分プログラムコマンドの実行がまた、前記プログラムデータを検証する、請求項５０に記載のコンピュータ可読媒体。
【請求項５５】
前記制御回路が、選択された数の前記部分プログラムコマンドの前で前記コマンドパイプラインに、非プログラムコマンドを選択的に挿入するようにさらに構成される、請求項５０に記載のコンピュータ可読媒体。
【請求項５６】
前記非プログラムコマンドが、前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、前記アレイにおいて実行される、請求項５５に記載のコンピュータ可読媒体。
【請求項５７】
前記制御回路が、
前記複数の部分プログラムコマンドを記憶するためのコマンドキューをさらに含む、請求項５０に記載のコンピュータ可読媒体。
【請求項５８】
前記制御回路が、前記コマンドキューに前に入れられた選択された数の前記部分プログラムコマンドの前に、非プログラムコマンドを選択的に挿入するように構成される、請求項５７に記載のコンピュータ可読媒体。
【請求項５９】
前記制御回路が、
前記プログラムコマンドによって識別された前記プログラムアドレスを記憶するためのプログラムアドレスレジスタをさらに含み、前記制御回路が、前記非プログラムコマンドに関連するアドレスと、前記プログラムアドレスレジスタに記憶された前記プログラムアドレスとの間の比較に応じて、前記非プログラムコマンドを前記コマンドキューに選択的に転送する、請求項５８に記載のコンピュータ可読媒体。
【請求項６０】
前記制御回路が、前記非プログラムコマンドに関連する前記アドレスが前記プログラムアドレスレジスタに記憶された前記プログラムアドレスと一致しない場合には、前記非プログラムコマンドを前記コマンドキューに入れる、請求項５９に記載のコンピュータ可読媒体。
【請求項６１】
プログラミングモードを示すモードデータを記憶するためのモードレジスタをさらに含む、請求項５０に記載のコンピュータ可読媒体。
【請求項６２】
前記制御回路が、前記モードデータが第１の状態である場合には、前記プログラムコマンドに応じて前記部分プログラムコマンドを生成し、前記モードデータが第２の状態である場合には、外部ソースから受信された部分プログラムコマンドを実行する、請求項６１に記載のコンピュータ可読媒体。
【請求項６３】
前記制御回路が、前記モードデータが第３の状態である場合には、前記プログラムコマンドに応じて一連のプログラム−検証サイクルを開始する、請求項６２に記載のコンピュータ可読媒体。
【請求項６４】
不揮発性メモリセルアレイと、
プログラミング動作用に前記メモリアレイの１つまたは複数のページをアドレスする複数の独立した部分プログラムコマンドを受信するための手段であって、各部分プログラムコマンドの実行が、前記ページにおけるデータを漸増的にプログラムする手段と、
前記プログラミング動作に関連する前記ページアドレスを記憶するための手段と、
前記メモリアレイの１つまたは複数のページをアドレスする後続のメモリ要求を受信するための手段と、
前記プログラミング動作に関連する前記ページアドレスを前記メモリ要求に関連する前記ページアドレスと比較するための手段と、
前記比較に応じて、前記プログラミング動作の進行中に、前記部分プログラムコマンドの実行を中断せずに、前記メモリ要求を選択的に実行するための手段と、
を含む装置。
【請求項６５】
前記メモリ要求が、前記プログラミング動作に関連する前記ページアドレスが前記メモリ要求に関連する前記ページアドレスと一致しない場合には、前記プログラミング動作の進行中に実行される、請求項６４に記載の装置。
【請求項６６】
前記メモリ要求が、前記プログラミング動作に関連する前記ページアドレスが前記メモリ要求に関連する前記ページアドレスと一致する場合には、保持される、請求項６４に記載の装置。
【請求項６７】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加する、請求項６４に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本開示は、一般にメモリデバイスに関し、より具体的には、増分プログラミング技術を利用するメモリデバイス用のプログラミング動作に関する。
【背景技術】
【０００２】
背景
プログラミング精度を向上させるために、およびオーバープログラミングを回避するために、ある種の不揮発性メモリは、典型的には、一連のプログラムパルスおよび検証（ＰＶ）サイクルを用いてプログラムされる。フラッシュメモリおよび抵抗ランダムアクセスメモリ（「ＲｅＲＡＭ」）は、プログラミング用に多数の連続ＰＶサイクルの利用をしばしば必要とする２つのタイプのメモリである。各ＰＶサイクルには、典型的には、ある期間にわたってプログラム電圧をメモリセルに印加することによって、メモリセルの浮遊ゲートに蓄積される電荷を漸増的に増加させるプログラムパルスと、メモリセルが適切にプログラムされたかどうかを決定する検証動作と、が含まれる。より具体的には、フラッシュメモリアレイにおけるプログラムコマンドの実行中に、アドレスされた浮遊ゲートメモリセルの制御ゲートに第１のプログラムパルスを印加する第１のＰＶサイクルが開始され、このメモリセルにおいてデータを漸増的にプログラムし、次に、アドレスされたメモリセルの内容が、アドレスされたメモリセルが適切にプログラムされたことを検証するために調べられる。第１のＰＶサイクル中に適切に（例えば、完全に）プログラムされなかったどんなメモリセルも識別され、次に、第２のＰＶサイクルが、これらの識別されたメモリセルのために開始される。このプロセスは、プログラムコマンドによってアドレスされた全てのメモリセルが、プログラムデータで完全にプログラムされるまで繰り返される。
【０００３】
プログラムコマンドに関連するＰＶサイクルシーケンスがひとたび開始されると、メモリアレイにおける全てのメモリセルは、典型的には、プログラムコマンドの実行が完了するまで、他の動作（例えば、読み出し動作）用には利用不可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、プログラミング動作中に、より速くかつより効率的な方法でアクセスできる不揮発性メモリの必要がある。
【０００５】
本発明の実施形態は、例として示され、添付の図面における図によって限定されることは意図されていない。
【図面の簡単な説明】
【０００６】
図面の簡単な説明
【図１Ａ】メモリコントローラおよびメモリデバイスを含むメモリシステムの簡略ブロック図を示す。
【図１Ｂ】メモリコントローラおよびメモリデバイスを含む別のメモリシステムの簡略ブロック図を示す。
【図１Ｃ】メモリコントローラおよびメモリデバイスを含むさらに別のメモリシステムの簡略ブロック図を示す。
【図２Ａ】複数の部分プログラムコマンドを生成し、かつコマンドキューを生成する例示的な方法を示す実例としての流れ図である。
【図２Ｂ】図１Ａのメモリデバイスの例示的な動作方法を示す実例としての流れ図である。
【図３Ａ】図１Ａのコマンドキューに記憶された複数の独立して実行可能な部分プログラムコマンドを示す。
【図３Ｂ】図１Ａのコマンドキューの最上部に挿入された非プログラムコマンドを示す。
【図３Ｃ】図１Ａのコマンドキューにおける第１の部分プログラムコマンドの後に挿入された非プログラムコマンドを示す。
【図４Ａ】図１Ａのコマンドキューに記憶された複数の別個で独立して実行可能なプログラムパルスおよび検証コマンドを示す。
【図４Ｂ】図１Ａのコマンドキューにおいてプログラムパルスと対応する検証コマンドとの間に挿入された非プログラムコマンドを示す。
【図５】図１Ａのメモリデバイスにおける一実施形態の機能ブロック図を示す。
【図６】本発明の実施形態を自身の内部で用いることができるコンピュータシステムのブロック図を示す。
【０００７】
同様の参照数字は、図面の全体を通して対応する部分を指す。
【発明を実施するための形態】
【０００８】
詳細な説明
プログラミング動作中に、メモリセルアレイをアクセスまたは利用できるようにするメモリシステムが開示される。いくつかの実施形態によれば、プログラミング動作は、コマンドパイプラインを介しパイプライン方式でメモリセルアレイに選択的に供給できる複数の別個で独立して実行可能な部分プログラムコマンドを用いて実行される。他の非プログラムコマンド（例えば、読み出しコマンド、消去コマンドなど）は、部分プログラムコマンド間にコマンドパイプラインへ選択的に挿入され、非プログラムコマンドが、プログラミング動作の進行中に部分プログラムコマンドのいずれの実行も中断せずに、メモリアレイにおいて実行され得るようにすることができる。
【０００９】
本明細書で用いられているように、用語「不揮発性」は、電源喪失後、かなりの時間にわたってデータを保持し、それによって、ホストシステムが電源を切られ（電力供給が完全に停止される）、次に、完全なデータ保持の期待と共に再び動作できる（電力サイクル）ようにするメモリを指す。不揮発性半導体メモリ技術の例には、フラッシュメモリ、相変化メモリ、抵抗変化メモリ、ＦＲＡＭ（強誘電体ＲＡＭ）、ＭＲＡＭ（磁気ＲＡＭ）および他の類似の解決法を含んでもよい。「フラッシュ」メモリには、ＮＡＮＤおよびＮＯＲコアセル構造の両方と、浮遊ゲートおよび電荷トラップ技術（例えば、シリコン−酸化物−窒化物−酸化物−シリコンすなわち「ＳＯＮＯＳ」技術と、が含まれる。老朽化または摩耗からの様々な影響により、半導体メモリセルの保持期間が次第に低減され、特定のメモリが、最終的に不揮発性から揮発性へと特性を変化させる場合がある。
【００１０】
フラッシュメモリの文脈で論じるが、本明細書で説明する実施形態は、かなりのプログラミング時間で、または最小単位サイズのプログラミングで、半導体メモリセルを漸増的にプログラムする複数のステップ（例えば、書き込み前の消去、複数のプログラムステップ、またはＰＶサイクルの利用等）に依存する任意の技術まで拡張することができる。
【００１１】
本明細書で説明する例示的なメモリシステムでは、メモリアレイに関連する制御回路が、メモリセルにおいてデータをプログラムするプログラミング動作のために、アレイのいくつかのメモリセルをアドレスする（例えば、ホスト装置、ホストコントローラ、マイクロプロセッサ、制御ソフトウェアなどの外部ソースから受信された）プログラムコマンドに応じて、複数の部分プログラムコマンドを生成する。部分プログラムコマンドは、（例えば、制御回路に関連する）コマンドキューに記憶できるが、独立して実行可能なコマンドとして、コマンドパイプラインを介してメモリアレイに選択的に供給される。各部分プログラムコマンドに応じて、プログラムパルスが、プログラムコマンドによってアドレスされたメモリセルの制御ゲートに印加され、そこにおいてデータを漸増的にプログラムし、検証動作が、アドレスされたメモリセルが適切にプログラムされたことを検証するために実行される。検証データは、検証動作の結果を示すために生成することができる。追加プログラムパルスが必要であることを検証データが示す場合には、制御回路は、次の部分プログラムコマンドをメモリアレイに印加することができる。反対に、全てのアドレスされたメモリセルが適切にプログラムされたことを検証データが示す場合には、制御回路は、プログラミング動作を終了することができる。いくつかの実施形態では、制御回路は、メモリデバイス内に設けることができる。他の実施形態では、制御回路は、メモリデバイスに結合されたメモリコントローラ内に設けることができる。
【００１２】
各部分プログラムコマンドに関連するプログラムパルスの持続時間は、メモリセルをプログラムするために典型的に必要な合計プログラミング時間の選択された一部である。したがって、本発明の実施形態の各部分プログラムコマンドの実行には、プログラミング動作全体を実行するために必要な時間の一部だけを必要とし、したがって、（例えば、ＰＶサイクルの連続シーケンスをメモリアレイに適用する）従来のプログラムコマンドを実行するために典型的に必要な時間の一部だけを必要とする。したがって、パイプライン方式で、別個の独立して実行可能なコマンドとして、部分プログラムコマンドをメモリアレイに選択的に供給することによって、制御回路は、プログラミング動作中に、アドレスされたメモリセルへの個別プログラムパルスの制御を保持し、かつその印加をスケジューリングすることができる。その結果、制御回路は、プログラミング動作の進行中に、コマンドパイプラインにおいて部分プログラムコマンドの１つまたは複数の前に非プログラムコマンドを挿入することによって、プログラムコマンドによりアドレスされていないメモリアレイの他の部分（例えば、他のページ）における非プログラムコマンドの実行をスケジューリングすることができる。例えば、フラッシュメモリアレイのページをアドレスするプログラミング動作の進行中に、コマンドパイプラインにおいて、まだ実行されていない全ての部分プログラムコマンドの前に読み出しコマンドを挿入することによって、メモリアレイの他のページのメモリセルからデータを素早く読み出すことができる。
【００１３】
本明細書において、プログラミング動作は、場合により、メモリの１つまたは複数のページをアドレスするように説明されているが、メモリアレイ内のメモリセルの構成に依存して、メモリアレイ内の記憶エリアの他の最小単位がアドレスされ得る。
【００１４】
本明細書で開示される様々な回路は、コンピュータ支援設計ツールを用いて説明してもよく、かつそれらの動作、レジスタ転送、論理構成要素、トランジスタ、レイアウトジオメトリおよび／または他の特性の観点から、様々なコンピュータ可読媒体において具体化されたデータおよび／または命令として表現し（または示し）てもよい。かかる回路表現を実現可能なファイルおよび他のオブジェクトのフォーマットには、限定するわけではないが、Ｃ、ヴェリログ（Verilog）およびＶＨＤＬなどの動作記述言語をサポートするフォーマット、ＲＴＬのようなレジスタレベル記述言語をサポートするフォーマット、ＧＤＳＩＩ、ＧＤＳＩＩＩ、ＧＤＳＩＶ、ＣＩＦ、ＭＥＢＥＳなどのジオメトリ記述言語をサポートするフォーマット、ならびに任意の他の適切なフォーマットおよび言語が含まれる。かかるフォーマットされたデータおよび／または命令を具体化可能なコンピュータ可読媒体には、限定するわけではないが、無線、光もしくは有線シグナリング媒体またはそれらの任意の組み合わせを介して、かかるフォーマットされたデータおよび／または命令を転送するために使用可能な様々な形態における不揮発性記憶媒体（例えば、光、磁気または半導体記憶媒体）が含まれる。かかるフォーマットされたデータおよび／または命令の転送の例には、限定するわけではないが、１つまたは複数のデータ転送プロトコル（例えば、ＨＴＴＰ、ＦＴＰ、ＳＭＴＰ等）を介し、インターネットおよび／または他のコンピュータネットワークを通じた転送（アップロード、ダウンロード、電子メール等）が含まれる。
【００１５】
１つまたは複数のコンピュータ可読媒体を介してコンピュータシステム内で受信されると、上記の回路のかかるデータおよび／または命令ベースの表現は、１つまたは複数の他のコンピュータプログラムの実行と共に、コンピュータシステム内の処理エンティティ（例えば、１つまたは複数のプロセッサ）によって処理してもよい。これらのコンピュータプログラムには、限定するわけではないが、かかる回路の物理的明示の表現または画像を生成するための、ネットリスト生成プログラム、配置配線プログラム等を含んでもよい。かかる表現または画像は、その後、例えば、デバイス作製プロセスにおいて回路の様々な構成要素を形成するために用いられる１つまたは複数のマスクの生成を可能にすることによって、デバイス作製に用いてもよい。
【００１６】
図１Ａは、例示的なメモリシステム１００Ａの簡略ブロック図を示す。メモリシステム１００Ａは、フラッシュメモリコントローラ１１０およびフラッシュメモリデバイス１２０Ａを含み、かつホスト装置１５０に接続される。フラッシュメモリコントローラ１１０およびフラッシュメモリデバイス１２０Ａは、図１Ａに示されているように、同じ集積回路（ＩＣ）チップ上に形成される。他の実施形態では、フラッシュメモリコントローラ１１０およびフラッシュメモリデバイス１２０Ａは、別個のＩＣチップ上に形成することができる。
【００１７】
ホスト装置１５０は、フラッシュメモリデバイス１２０Ａにおける実行のために、フラッシュメモリコントローラ１１０にコマンドを供給する任意の適切なホスト装置またはコントローラとすることができる。例えば、ホスト装置１５０は、中央処理装置（ＣＰＵ）とフラッシュメモリシステムとの間の通信を制御する、コンピュータシステムにおけるホストコントローラとすることができる。以下でより詳細に説明するように、ホスト装置１５０は、本発明の実施形態の１つまたは複数を実施するソフトウェアを実行することができる。
【００１８】
フラッシュメモリコントローラ１１０には、接続部１０１を介してホスト装置１５０に接続された第１のポート、ならびに入力／出力（Ｉ／Ｏ）バス１０２および制御バス１０３を介してフラッシュメモリデバイス１２０Ａに接続された第２のポートが含まれる。Ｉ／Ｏバス１０２には、フラッシュメモリコントローラ１１０とフラッシュメモリデバイス１２０Ａとの間でデータ（ＤＡＴＡ）を送信するためのデータバス、アドレス情報（ＡＤＤＲ）をフラッシュメモリデバイス１２０Ａに供給するためのアドレスバス、およびコマンド（ＣＭＤ）をフラッシュメモリデバイス１２０Ａに供給するためのコマンドパイプラインが含まれる。制御バス１０３は、フラッシュメモリコントローラ１１０とフラッシュメモリデバイス１２０Ａとの間で制御信号（ＣＴＲＬ）をルーティングする。他の実施形態では、Ｉ／Ｏバス１０２および／または制御バス１０３のいくつかは、組み合わせることができる。さらに、簡単にするために図示していないが、制御バス１０３を介して、フラッシュメモリコントローラ１１０からフラッシュメモリデバイス１２０Ａへ、クロックおよび他の制御信号を送信することができる。
【００１９】
フラッシュメモリコントローラ１１０にはまた、制御回路１１１、コマンドキュー１１２、およびプログラムアドレスレジスタ１１３が含まれる。制御回路１１１は、ホスト装置１５０からコマンドを受信し、それに応じて、コマンドおよび関連制御信号を生成してメモリデバイス１２０Ａに送信する。いくつかの実施形態では、制御回路１１１によって生成されたコマンドは、所望の実行順序でコマンドキュー１１２に入れられ、その後、コマンドパイプラインを介してパイプライン方式でメモリデバイス１２０Ａに選択的に供給することができる。コマンドキュー１１２は、任意の適切なキュー、レジスタファイル、または他の記憶素子とすることができる。制御回路１１１に結合されるプログラムアドレスレジスタ１１３は、メモリデバイス１２０Ａにおけるどのメモリセルページが現在プログラムされているかを示すアドレスリストを維持することができる。
【００２０】
本明細書で説明する例示的な実施形態では、ホスト装置１５０およびフラッシュメモリコントローラ１１０は、図１Ａに示すように別個のデバイスである。しかしながら、他の実施形態では、フラッシュメモリコントローラ１１０は、例えばホスト装置１５０内に含むことができ、その結果、コマンドキュー１１２およびプログラムアドレスレジスタ１１３は、ホスト装置１５０内に含まれ、ホスト装置１５０によって直接制御される。かかる実施形態では、ホスト装置１５０によって実行されるオペレーティングソフトウェアは、部分プログラムコマンドの生成およびメモリデバイス１２０Ａへの発行を制御することができる。
【００２１】
メモリデバイス１２０Ａには、Ｉ／Ｏピン１２１、制御ピン１２２、制御回路１３０、およびフラッシュメモリアレイ１４０が含まれる。Ｉ／Ｏピン１２１は、Ｉ／Ｏバス１０２を介して、制御回路１３０をフラッシュメモリコントローラ１１０に接続し、制御ピン１２２は、制御バス１０３を介して、制御回路１３０をフラッシュメモリコントローラ１１０に接続する。メモリアレイ１４０は、複数のメモリセルおよび関連制御回路（簡単にするために図１Ａには示さず）を含む任意で周知のメモリアレイとすることができる。例えば、メモリアレイ１４０には、ＮＡＮＤ、ＮＯＲまたは他の適切な構成に配列されたフラッシュメモリセルを含むことができる。本明細書で説明する例示的な実施形態では、メモリアレイ１４０のメモリセルは、それらの制御ゲートに複数のプログラムパルスを印加することによってプログラムすることができる浮遊ゲートトランジスタであり、各プログラムパルスは、プログラミング用に選択されたメモリセルのＶｔを漸増的に増加させる適度に高いプログラム電圧である。他の実施形態では、メモリアレイ１４０には、ＥＰＲＯＭセル、ＥＥＰＲＯＭセル、および／または電荷トラップデバイスメモリセル（例えば、ＳＯＮＯＳフラッシュセル）などの他のタイプの不揮発性メモリセルを含むことができる。さらに、アレイ１４０のメモリセルは、独立して動作できる任意の数のバンク、ブロック、セグメント、セクタまたはページに物理的および／または論理的に分割することができる。さらに、１つのメモリアレイ１４０を含むように図１Ａに示したが、メモリデバイス１２０Ａには、複数のメモリアレイ１４０を含むことができる。
【００２２】
制御回路１３０は、Ｉ／Ｏピン１２１、制御ピン１２２、およびメモリアレイ１４０に結合されるが、フラッシュメモリコントローラ１１０から受信されたコマンドおよび／または制御信号に応じて、メモリアレイ１４０に対する動作（例えば、プログラミング、読み出し、および消去動作）を制御するように構成される。制御回路１３０にはまた、メモリアレイ１４０における様々な動作の進行を示すステータスデータを記憶するステータスレジスタ１３１が含まれる。ステータスレジスタ１３１はまた、メモリアレイ１４０におけるプログラム検証動作の結果を示す検証データを記憶することができる。検証データは、プログラミング動作を完了するために追加プログラムパルスの印加が必要かどうかを示すことができ、また、例えば、どのメモリセルが適切にプログラムされたか、どのメモリセルが追加プログラミングを必要とするか、既に印加されたプログラムパルスの数などの他の情報を含むことができる。
【００２３】
さらに、いくつかの実施形態では、メモリアレイ１４０におけるコマンドの実行中に、制御回路１３０は、メモリデバイス１２０Ａが利用不可能であることをメモリコントローラ１１０に警報するビジー信号をアサートすることができ、コマンドが完了すると、制御回路１３０は、メモリデバイス１２０Ａが別のコマンドを受け入れる準備ができていることをメモリコントローラ１１０に警報するレディ信号をアサートすることができる。ビジーおよびレディ信号は、制御バス１０３上で別個の信号として送信してもよい。
【００２４】
本発明の実施形態によれば、フラッシュメモリコントローラ１１０は、プログラミング動作によってアドレスされたアレイ１４０におけるメモリセルへの複数の個別プログラムパルスそれぞれの印加を制御し選択的にスケジューリングするように構成される。メモリアレイ１４０におけるプログラミング動作を開始するために、ホスト装置１５０は、プログラムコマンドをフラッシュメモリコントローラ１１０に発行し、かつプログラムされるデータを（共通のまたは独立した動作を介して）メモリにロードする。プログラムコマンドには、プログラミング用に選択されたメモリセルのアドレスが含まれる。典型的には、プログラミング動作用に選択できる、フラッシュメモリアレイ１４０における記憶エリアの最小単位は、メモリセルのページである。プログラムコマンドに応じて、フラッシュメモリコントローラの制御回路１１１は、プログラミング動作を集団で具体化するいくつかの部分プログラムコマンドを生成する。各部分プログラムコマンドは、メモリセルを完全にプログラムするために典型的に必要な時間の選択された一部である期間にわたって、アドレスされたメモリセルにプログラムパルスを印加するように、フラッシュメモリデバイス１２０Ａに命令する独立コマンドである。部分プログラムコマンドは、所望の実行順序でコマンドキュー１１２に入れることができ、次に、コマンドパイプラインＣＭＤを介して、個別に実行可能なコマンドとしてフラッシュメモリデバイス１２０Ａに送信することができる。いくつかの実施形態では、制御回路１１１は、フラッシュメモリデバイス１２０Ａによって生成された検証データに応じて、部分プログラムコマンドをフラッシュメモリデバイス１２０Ａに選択的に送信する。
【００２５】
いくつかの実施形態では、プログラムアドレスレジスタ１１３は、進行中のプログラミング動作に関連するページアドレスを記憶することができる。このようにして、制御回路１１１は、プログラムアドレスレジスタ１１３に記憶されたプログラムアドレスにアクセスすることによって、アレイ１４０におけるどのメモリセルページがプログラミング動作を受けているかを素早く決定することができる。
【００２６】
フラッシュメモリデバイス１２０Ａが、フラッシュメモリコントローラ１１０から部分プログラムコマンドを受信すると、その制御回路１３０は、所定の持続時間のプログラムパルスを、メモリアレイ１４０におけるアドレスされたメモリセルの制御ゲートに印加して、そこにおいてデータを漸増的にプログラムする。上述のように、プログラムパルスは、メモリセルを完全にプログラムするために典型的に必要な時間の一部である持続時間を有し、したがって、各部分プログラムコマンドの実行は、メモリデバイス１２０Ａに対してプログラミング動作全体を実行するために必要な時間の一部だけを必要とする。アドレスされたメモリセルへのプログラムパルスの印加後、制御回路１３０は、アドレスされたメモリセルのいずれかが追加プログラムパルスを必要とするかどうかを決定するために、検証動作を実行する。
【００２７】
いくつかの実施形態では、検証動作が、追加プログラムを必要とするアドレスされたメモリセルのいずれかを識別した場合には、制御回路１３０は、検証信号をデアサートすることができ、それに応じて、フラッシュメモリコントローラ１１０は、（例えば、コマンドキュー１１２に入れられた）次の部分プログラムコマンドをフラッシュメモリデバイス１２０Ａに送信することができる。次の部分プログラムコマンドは、制御回路１３０に、識別されたメモリセルへ別のプログラムパルスを印加させて、そこにおけるデータをさらにプログラムし、別の検証動作を実行する。このプロセスは、アドレスされたメモリセルの全てが適切にプログラムされるまで繰り返される。全てのアドレスされたメモリセルが、適切にプログラムされたことを検証動作が示す場合には、制御回路１３０は、検証信号をアサートすることができる。それに応じて、フラッシュメモリコントローラ１１０は、プログラミング動作に関連する追加の部分プログラムコマンドをフラッシュメモリデバイスに送信せず、プログラミング動作は終了する。さらに、プログラミング動作が完了すると、制御回路１１１は、対応するプログラムアドレスをプログラム書き込みレジスタ１１３から削除することができる。
【００２８】
非プログラムコマンド（例えば、読み出しコマンド）が、プログラミング動作中にフラッシュメモリコントローラ１１０によって受信された場合には、その制御回路１１１は、非プログラムコマンドを、コマンドキュー１１２の任意の位置に選択的に挿入することができる。いくつかの実施形態では、非プログラムコマンドを受信すると、制御回路１１１は、プログラムアドレスレジスタ１１３にアクセスし、そこに記憶されたプログラムアドレスを、非プログラムコマンドに関連するアドレスと比較して、非プログラムコマンドによってアドレスされたメモリページが、現在、データでプログラムされているかどうかを決定する。一致しない場合、これは、非プログラムコマンドによってアドレスされたメモリページが現在プログラムされていないことを示すが、制御回路１１１は、非プログラムコマンドをコマンドキュー１１２に挿入することができる。
【００２９】
ホスト装置１５０によって供給される非プログラムコマンドには、メモリデバイス１２０Ａにおいて実行されている任意のプログラミング動作に対する非プログラムコマンドの優先度を示す優先度情報を含むことができる。一例として、優先度情報が、最高の優先度を示す場合には、制御回路１１１は、非プログラムコマンドをコマンドキュー１１２の最上部に（例えば、そこに前に入れられたあらゆる残りの部分プログラムコマンドの前に）挿入して、現在の部分プログラムコマンドが完了すると、非プログラムコマンドが、メモリデバイス１２０Ａに送信されて、そこですぐに実行されるようにすることができる。別の例では、優先度情報が、最低の優先度を示す場合には、制御回路１１１は、非プログラムコマンドをコマンドキュー１１２の最下部に（例えば、そこに前に入れられた全ての残りの部分プログラムコマンドの後に）挿入して、プログラミング動作全体の完了後に、非プログラムコマンドが、メモリデバイス１２０Ａに送信され、メモリデバイス１２０Ａによって実行されるようにすることができる。あるいは、制御回路１１１は、非プログラムコマンドをコマンドキュー１１２の最上部に自動的に挿入するように構成することができる。
【００３０】
反対に、プログラムアドレスレジスタ１１３に記憶されたプログラムアドレスとの一致がある場合、これは、非プログラムコマンドによってアドレスされたメモリページが現在プログラムされていることを示すが、制御回路１１１は、（例えば、プログラムアドレスレジスタ１１３における対応するアドレスエントリの除去によって示されるように）アドレスされたメモリページに対するプログラミング動作が完了するまで、非プログラムコマンドを「保持」し、その後、非プログラムコマンドをコマンドキュー１１２の最上部に挿入することができる。このようにして、プログラムされているアレイ１４０のメモリセルは、プログラミング動作が完了するまで、データ検索のためにアクセスされることがなく、それによって、メモリアレイ１４０からの、部分的にプログラムされた（例えば、したがって恐らく不正確な）データの検索を防ぐ。あるいは、プログラミング動作の進行中に、メモリセルにおいてプログラムされているデータのコピーを、アクセス用に一時的に記憶してもよい。
【００３１】
ホスト装置１５０から受信された単一プログラムコマンドに応じて複数の個別部分プログラムコマンドを生成することによって、プログラミング動作は、オリジナルのプログラムコマンドより短くなり得る時間にわたってメモリデバイス１２０Ａをそれぞれ拘束する、いくつかのより短く独立して実行可能なコマンドへと効果的に分割される。このようにして、メモリコントローラ１１０は、メモリデバイス１２０Ａに対するプログラミング動作中に、メモリデバイス１２０Ａにおける非プログラムコマンドの実行を選択的にスケジューリングすることができ、これによって、今度は、メモリコントローラ１１０は、メモリデバイス１２０Ａの他の部分に対するプログラミング動作中に、メモリデバイス１２０Ａの一部に素早くアクセスすることが可能になる。例えば、コマンドキュー１１２に前に入れられたいくつかの部分プログラムコマンドの前に読み出しコマンドを挿入することによって、読み出しコマンドは、部分プログラムコマンドの前にフラッシュメモリデバイス１２０Ａに送信され、そこで実行することができる。このようにして、メモリアレイの他のページに対するプログラミング動作の進行中に、プログラミング動作に関連する部分プログラムコマンドのいずれにおける実行も中断せずに、メモリアレイのいくつかのページからデータを読み出すことができる。
【００３２】
さらに、プログラミング動作中にフラッシュメモリデバイスにおける非プログラムコマンドの実行を選択的にスケジューリングする能力は、フラッシュメモリデバイス１２０Ａの利用を最大限にすることができる。例えば、メモリセルの選択されたページに対するプログラミング動作中に、メモリセルの他のページに記憶されたデータをアドレスする一連の読み出しコマンドが受信された場合には、読み出しコマンドは、現在の部分プログラムコマンドが完了するとすぐに、フラッシュメモリデバイス１２０Ａに送信され、そこで実行することができる。その後、プログラミング動作に関連するあらゆる残りの部分プログラムコマンドも、検索されたデータが（例えば、ホスト装置１５０によって）処理されている間に、フラッシュメモリデバイスにおいて実行することができる。このようにして、ホスト装置１５０が検索されたデータを処理している間に、プログラミング動作は、フラッシュメモリデバイス１２０Ａにおいて完了することができ、それによって、フラッシュメモリデバイス１２０Ａのアイドルタイムを最小限にする。
【００３３】
上述のように、プログラミング動作中に、フラッシュメモリデバイス１２０Ａは、メモリセルが適切にプログラムされたかどうかを示すプログラム結果検証データを生成する。いくつかの実施形態では、フラッシュメモリコントローラ１１０は、プログラミング動作中に（例えば、プログラミング動作に関連する各部分プログラムコマンドの検証動作後に）、フラッシュメモリデバイスのステータスレジスタ１３１から検証データを読み出すことができる。他の実施形態では、フラッシュメモリデバイス１２０Ａは、各部分プログラムコマンドが完了すると、フラッシュメモリコントローラ１１０Ａに検証信号を送信するように構成することができる。例えば、対応プログラムパルスの印加後に、プログラムコマンドによってアドレスされた、完全にはプログラムされていないメモリセルのいずれかを検証動作が識別した場合には、フラッシュメモリデバイス１２０Ａは、検証信号をデアサートして、次の部分プログラムコマンドをフラッシュメモリデバイス１２０Ａに送信するようにフラッシュメモリコントローラ１１０に命令することができる。反対に、検証動作が、アレイ１４０においてプログラムされていないメモリセルを何も識別しない場合には、フラッシュメモリデバイス１２０Ａは、プログラミング動作が完了したこと、追加の部分プログラムコマンドが必要ではないこと、およびプログラミング動作に対応するページアドレスをプログラムアドレス１１３から削除できることをフラッシュメモリコントローラ１１０に警報する検証信号をアサートすることができる。このようにして、フラッシュメモリコントローラ１１０は、フラッシュメモリデバイス１２０Ａ内の各プログラミング動作の漸進的な進行に対して絶えず警報されてもよい。これは、従来のフラッシュメモリシステム、すなわち、フラッシュメモリコントローラが、プログラミング動作全体をフラッシュメモリデバイスに委ね、その間は、フラッシュメモリアレイ全体が、典型的には、プログラミング動作全体が完了するまで利用不可能になる従来のフラッシュメモリシステムとは対照的である。
【００３４】
上述のように、各部分プログラムコマンドに応じてアレイのメモリセルに印加されるプログラムパルスの持続時間は、アレイ１４０のメモリセルを完全にプログラムするために典型的に必要な合計プログラム時間の一部である。各プログラムパルスの持続時間は、パルス幅（ＰＷ）信号によって選択することができる。ＰＷ信号は、プログラムコマンドと共にフラッシュメモリコントローラ１１０に供給するか、あるいは、別の適切な回路によってフラッシュメモリコントローラ１１０もしくはフラッシュメモリデバイス１２０Ａに供給することができる。一例として、ＰＷ信号は、各部分プログラムコマンドに応じて生成されるプログラムパルス用に所定の持続時間を指定することができる。別の例では、フラッシュメモリコントローラ１１０および／またはフラッシュメモリデバイス１２０Ａは、単一のプログラミング動作に関連する連続部分プログラムコマンド用にプログラムパルス持続時間を漸増的に増加させるように構成することができる。
【００３５】
さらに、いくつかの実施形態では、ホスト装置１５０によってフラッシュメモリコントローラ１１０に送信されたプログラムコマンドは、プログラムコマンドに応じていくつの部分プログラムコマンドが、フラッシュメモリデバイス１２０Ａにおいて実行されることになるかを指定することができる。一実施形態では、メモリコントローラ１１０は、固定数の部分プログラムコマンドをフラッシュメモリデバイス１１０Ａに送信することができる。別の実施形態では、メモリコントローラ１１０は、検証信号のステータスをチェックする前に、最小数の部分プログラムコマンドをフラッシュメモリデバイス１２０Ａに送信するように構成することができる。他の実施形態では、ホスト装置１５０によってフラッシュメモリコントローラ１１０に送信されたプログラムコマンドには、フラッシュメモリコントローラ１１０が、プログラムコマンドに応じて生成する部分プログラムコマンドの最大数を示す限界値（ＬＩＭ）を含むことができる。別の実施形態では、フラッシュメモリコントローラ１１０は、ホスト装置１５０から受信されたプログラムコマンドに応じて、ただ１つの部分プログラムコマンドを生成するように、かつ（例えば、検証データに応じて）アレイのメモリセルを適切にプログラムするために必要に応じて追加の部分プログラムコマンドを続いて生成するように構成することができる。
【００３６】
さらに、ホスト装置１５０によって発行されたプログラムコマンドには、グループ化情報を含むことができるが、このグループ化情報は、例えば、フラッシュメモリデバイス１２０Ａにおける実行のために、最小数の部分プログラムコマンドを一緒にグループ化するようにフラッシュメモリコントローラ１１０に命令して、介入する非プログラムコマンドが、コマンドキュー１１２において、グループ化された部分プログラムコマンド間に挿入されるのを防ぐ。部分プログラムコマンドのグループ化は、プログラミング動作のためにアドレスされたメモリセルが、プログラミング動作の進行中に、アレイ１４０の他のメモリセルに対する非プログラムコマンドの実行の前に、ある所定の最小量だけプログラムされることを保証することができる。
【００３７】
フラッシュメモリデバイス１２０Ａの例示的な動作を、図２Ａ−２Ｂの実例となる流れ図に関連して下記で説明する。最初に、ホスト装置１５０は、プログラムデータおよびアドレス情報をフラッシュメモリコントローラ１１０に供給するプログラムコマンドを発行する（ステップ２０１）。それに応じて、フラッシュメモリコントローラ１１０は、複数の部分プログラムコマンドを生成する（ステップ２０２）。上記のように、各独立した部分プログラムコマンドの実行は、メモリアレイ１４０におけるアドレスされたメモリセルに単一プログラムパルスを印加するが、各プログラムパルスの持続時間は、アレイのメモリセルをプログラムするために典型的に必要な合計時間の一部を表す。次に、部分プログラムコマンドは、所望の実行順序でコマンドキュー１１２に記憶され、プログラムされるメモリセルのアドレスは、プログラムアドレスレジスタ１１３に記憶される（ステップ２０３）。例えば、図３Ａは、コマンドキュー１１２の対応する位置１１２（１）−１１２（ｎ）に記憶された複数の部分プログラムコマンド３０１（１）−３０１（ｎ）を示す。
【００３８】
ステップ２０４で調べられるように、フラッシュメモリコントローラ１１０が、ホスト装置１５０から、別の介入する非プログラムコマンド（例えば、読み出しコマンドまたは消去コマンド）を受信した場合には、その制御回路１１１は、プログラムアドレスレジスタ１１３に記憶されたプログラムアドレスを、非プログラムコマンドに関連するアドレスと比較する（ステップ２０５ａ）。ステップ２０５ｂで調べられるように、一致しない場合には、それは、非プログラムコマンドによってアドレスされたメモリページが、現在プログラムされていないことを示し、制御回路１１１は、この別のコマンドをコマンドキュー１１２に選択的に挿入する（ステップ２０５ｃ）。
【００３９】
一例では、図３Ｂは、全ての部分プログラムコマンド３０１（１）−３０１（ｎ）の前の、コマンドキュー１１２の最上部に挿入された非プログラムコマンド３０２を示す。別の例では、図３Ｃは、コマンドキュー１１２において第１の部分プログラムコマンド３０１（１）と第２の部分プログラム３０１（２）との間に挿入された非プログラムコマンド３０２を示す。上記のように、いくつかの実施形態では、フラッシュメモリコントローラ１１０は、（例えば、図３Ｃに示すように）コマンドキュー１１２の任意の位置に非プログラムコマンドを選択的に挿入するように構成することができ、他の実施形態では、フラッシュメモリコントローラ１１０は、（例えば、図３Ｂに示すように）コマンドキュー１１２の最上部に非プログラムコマンドを挿入するように構成することができる。
【００４０】
反対に、２０５ｂで調べられるように、プログラムアドレスレジスタ１１３に記憶されたプログラムアドレスと一致する場合には、それは、非プログラムコマンドによってアドレスされたメモリページが現在プログラムされていることを示し、制御回路１１１は、アドレスされたメモリページに対するプログラミング動作が完了するまで、競合する非プログラムコマンドを「保持」する（ステップ２０５ｄ）。いくつかの実施形態では、制御回路１１１には、競合する非プログラムコマンドを保持するバッファ（簡単にするために図示せず）を含むことができる。一実施形態では、メモリセルにおいてプログラムされているデータのコピーは、プログラミング動作の進行中のアクセス用に一時的に記憶してもよい。
【００４１】
その後、制御回路１１１は、プログラムアドレスレジスタ１１３に定期的にポーリングして、アドレスされたメモリページに対するプログラミング動作が完了したかどうかを決定することができる（ステップ２０５ａ）。プログラミング動作が完了した場合には、制御回路１１１は、非プログラムコマンドをコマンドキュー１１２に挿入することができる（ステップ２０５ｃ）。さもなければ、制御回路１１１は、競合する非プログラムコマンドを保持し続ける（ステップ２０５ｄ）。あるいは、プログラムアドレスレジスタ１１３は、アドレスされたメモリページに対するプログラミング動作が完了したときに、完了フラグを制御回路１１１に送信することができる。
【００４２】
次に、フラッシュメモリコントローラ１１０は、コマンドキュー１１２の最上部に記憶されたコマンドをフラッシュメモリデバイス１２０Ａに転送する（ステップ２０６）。ステップ２０７で調べられるように、受信されたコマンドが部分プログラムコマンドである場合には、メモリデバイスの制御回路１３０は、部分プログラムコマンドを実行して、アレイ１４０のアドレスされたメモリセルにデータを漸増的にプログラムする単一プログラムパルスを印加し（ステップ２０８）、次に、プログラムデータを検証する（ステップ２０９）。次に、フラッシュメモリデバイス１２０Ａは、検証動作の結果を示す検証データを生成する（ステップ２１０）。
【００４３】
いくつかの実施形態では、フラッシュメモリデバイス１２０Ａは、プログラミング動作の進行（例えば、どのメモリセルが完全にプログラムされたか、どのメモリセルが完全にはプログラムされなかったか、いくつのプログラムパルスがメモリセルに印加されたか等）を示す追加ステータス情報を生成する。上記のように、検証データおよび／またはステータス情報は、フラッシュメモリデバイスのステータスレジスタ１３１に記憶することができる。さらに、いくつかの実施形態では、検証データは、対応する部分プログラムコマンドをコマンドキュー１１２から削除するために、およびプログラムアドレスをプログラムアドレスレジスタ１１３から削除するために、フラッシュメモリコントローラ１１０によって用いることができる。
【００４４】
また、いくつかの実施形態では、フラッシュメモリデバイス１２０Ａは、そのメモリアレイ１４０における各コマンドの実行中にビジー信号をアサートするように、およびコマンドが完了するとレディ信号をアサートするように構成することができる。かかる実施形態では、アサートされたビジー信号は、フラッシュメモリデバイス１２０Ａに追加コマンドを送信しないように、フラッシュメモリコントローラ１１０に命令することができ、アサートされたレディ信号は、フラッシュメモリデバイス１２０Ａが追加コマンドを受け入れる準備ができていることを、フラッシュメモリコントローラ１１０に警報することができる。
【００４５】
ステップ２１１で調べられるように、アドレスされたメモリセルの１つまたは複数が完全にはプログラムされていないことを検証データが示す場合には、処理は、ステップ２０４で継続する。いくつかの実施形態では、フラッシュメモリデバイス１２０Ａは、検証信号、すなわち、フラッシュメモリコントローラ１１０に、次の部分プログラムコマンドをフラッシュメモリデバイス１２０Ａへ送信させる検証信号をデアサートすることができる。他の実施形態では、フラッシュメモリコントローラ１１０は、フラッシュメモリデバイス１２０Ａから検証データを読み出すことができる。さもなければ、プログラムコマンドによってアドレスされたアレイ１４０における全てのメモリセルが適切にプログラムされたことを検証データが示す場合には、プログラミング動作に関連するあらゆる残りの部分プログラムコマンドも、コマンドキュー１１２から削除され、対応するプログラムアドレスは、プログラムアドレスレジスタ１１３から削除される（ステップ２１２）。
【００４６】
ステップ２０７で調べられるように、フラッシュメモリコントローラ１１０から受信されたコマンドが、非プログラムコマンドである場合には、フラッシュメモリデバイス１２０Ａは、非プログラムコマンドを実行し（ステップ２１３）、非プログラムコマンドは、コマンドキュー１１２から削除され（ステップ２１４）、処理は、ステップ２０４で継続する。例えば、非プログラムコマンドが読み出しコマンドである場合には、フラッシュメモリデバイス１２０Ａは、読み出しコマンドを実行し、読み出しコマンドによってアドレスされたアレイ１４０におけるメモリセルからデータを読み出し、読み出しデータをフラッシュメモリコントローラ１１０に供給し、その後、コマンドキュー１１２から次のコマンドを受け入れる準備ができる。
【００４７】
他の実施形態では、フラッシュメモリコントローラ１１０は、ホスト装置１５０から受信されたプログラムコマンドに応じて、ただ１つの部分プログラムコマンドを生成し、追加プログラムパルスが、アドレスされたメモリセルを適切にプログラムするために必要とされる場合には、追加の部分プログラムコマンドを選択的に生成してフラッシュメモリデバイス１２０Ａに送信できるが、この場合には、ステップ２１２は、省略することができる。
【００４８】
上記の例示的な実施形態では、各部分プログラムコマンドは、プログラムデータでアレイ１４０におけるアドレスされたメモリセルを漸増的にプログラムする単一プログラムパルスを印加するように、フラッシュメモリデバイス１２０Ａに命令し、また、検証動作、すなわち、プログラムされているメモリセルに記憶されたデータをオリジナルプログラムデータと比較して、アドレスされたメモリセルのいずれかが追加プログラムパルスを必要とするかどうかを決定する検証動作を実行するように、フラッシュメモリデバイスに命令する。他の実施形態では、ホスト装置１５０から受信されたプログラムコマンドに応じて、フラッシュメモリコントローラ１１０によって生成された各部分プログラムコマンドは、アドレスされたメモリセルにプログラムパルスを印加することだけを、フラッシュメモリデバイス１２０Ａに命令することができる。かかる他の実施形態では、フラッシュメモリコントローラ１１０は、各部分プログラムコマンドに関連する別個の検証コマンドを生成するように構成することができるが、各検証コマンドは、対応する部分プログラムコマンドによって、アドレスされたメモリセルにプログラムされたデータを検証するように、フラッシュメモリデバイス１２０Ａに命令する。検証コマンドは、部分プログラムコマンドと共にコマンドキュー１１２に記憶することができる。
【００４９】
例えば、図４Ａは、複数の部分プログラムパルスコマンド４０１（１）−４０１（ｎ）および対応する複数の別個の検証コマンド４０２（１）−４０２（ｎ）をコマンドキュー１１２に記憶することを示すが、各部分プログラムパルスコマンド４０１の実行では、プログラミング動作用にアドレスされたメモリセルにプログラムパルスを印加し、各検証コマンド４０２の実行では、対応する部分プログラムパルスコマンド４０１の結果を検証する。図４Ｂは、コマンドキュー１１２において、部分プログラムパルスおよび検証コマンドの第１のペア４０１（１）−４０２（１）と、部分プログラムパルスおよび検証コマンドの第２のペア４０１（２）−４０２（２）との間に非プログラムコマンド３０２を挿入することを示す。プログラムパルスコマンド４０１とその対応する検証コマンド４０２との間に非プログラムコマンド３０２を挿入することが可能であるが、検証コマンドは、それ自体、一般にそれほど時間を消費せず、インターリーブされたコマンドを許可する前に、単一ＰＶサイクル（検証を含む）を完了することが構造上（architecturally）好ましいであろう。
【００５０】
他の実施形態では、ホスト装置１５０および／またはホスト装置１５０によって実行されるソフトウェアは、プログラミング動作に関連する部分プログラムコマンドを生成し、部分プログラムコマンドをコマンドキューに入れ、かつ（例えば、フラッシュメモリコントローラ１１０を介して）パイプライン方式で部分プログラムコマンドをフラッシュメモリデバイス１２０Ａに選択的に送信するように構成することができる。かかる実施形態では、ホスト装置１５０および／またはホスト装置１５０によって実行されるソフトウェアは、例えば、読み出しコマンドなどの非プログラムコマンドを、コマンドキューの任意の位置に選択的に挿入するように構成することができ、その結果、非プログラムコマンドは、プログラミング動作中に、どのプログラム関連コマンドの実行も中断せずに、フラッシュメモリデバイス１２０Ａにおいて実行することができる。
【００５１】
別の実施形態では、フラッシュメモリデバイス１２０Ａは、ホスト装置１５０によって発行されたプログラミングコマンドに応じて、部分プログラムコマンドを生成するように構成することができる。例えば、図１Ｂは、他の実施形態に従って、フラッシュメモリコントローラ１１０およびフラッシュメモリデバイス１２０Ｂを含むメモリシステム１００Ｂを示す。フラッシュメモリデバイス１２０Ｂは、フラッシュメモリデバイス１２０Ｂの制御回路１３０がコマンドキュー１３２およびプログラムアドレスレジスタ１３３を含むことを除いて、フラッシュメモリデバイス１２０Ａに似ている。図１Ｂのコマンドキュー１３２およびプログラムアドレスレジスタ１３３は、図１Ａのコマンドキュー１１２およびプログラムアドレスレジスタ１１３にそれぞれ似ている。図１Ｂの実施形態では、メモリデバイスの制御回路１３０は、ホスト装置１５０によって発行されたプログラムコマンドを（例えば、フラッシュメモリコントローラ１１０を介して）受信し、それに応じて、部分プログラムコマンドを生成する。フラッシュメモリコントローラは、部分コマンドをコマンドキュー１３２に入れることができ、必要に応じて、これらのコマンドをメモリアレイ１４０に転送して、図１Ａに関連して上記した方法と類似の方法で、対応するプログラムパルスを印加する。したがって、図１Ｂの実施形態では、フラッシュメモリデバイスの制御回路１３０は、メモリアレイ１４０用に部分プログラムコマンドの生成、スケジューリングおよび実行を制御する。
【００５２】
図１Ａ−１Ｂに関連して上記したフラッシュメモリデバイスの実施形態は、アレイ１４０のメモリセルに対するプログラミング動作を集合的に具体化する複数の独立した部分プログラムコマンドを実行するように構成される。他の実施形態では、フラッシュメモリデバイスには、従来の方法で（例えば、プログラムコマンドによってアドレスされたメモリセルに一連の連続ＰＶサイクルを印加することによって）ホスト装置１５０によって発行されたプログラムコマンドを実行できる追加回路を含むことができる。例えば、図１Ｃは、フラッシュメモリコントローラ１１０およびフラッシュメモリデバイス１２０Ｃを含むメモリシステム１００Ｃを示す。フラッシュメモリデバイス１２０Ｃには、制御回路１６０およびモードレジスタ１７０が含まれる。モードレジスタ１７０は、任意の適切な記憶素子とすることができるが、制御回路１６０に結合され、かつプログラムモードデータを記憶するように構成することができる。制御回路１６０には、図１Ｂの制御回路１３０の全ての要素が含まれ、また、フラッシュメモリデバイス１２０Ｃが、従来の方法で、（例えば、フラッシュメモリコントローラ１１０を介してホスト装置１５０から受信された）プログラムコマンドを受信および実行できるようにする周知の順序論理１６１が含まれる。プログラムモードデータは、ホスト装置１５０によって、フラッシュメモリコントローラ１１０によって、または任意の他の適切な回路によって生成することができる。モードデータは、フラッシュメモリコントローラ１１０から受信された部分プログラムコマンドを実行すべきかどうかをフラッシュメモリデバイス１２０Ｃに命令するために、フラッシュメモリコントローラ１１０から受信されたプログラムコマンドに応じて、部分プログラムコマンドを生成および実行するために、またはフラッシュメモリコントローラ１１０から受信されたプログラムコマンドに応じて、従来のプログラミング動作を実行するために用いられる。いくつかの実施形態では、モードデータは、制御ピン１２２を介してフラッシュメモリデバイス１２０Ｃに供給され、（図１Ｃに示すように）モードレジスタ１７０に記憶される。他の実施形態では、モードデータは、専用ピン（簡単にするために図示せず）または他の適切な回路を用いて、モードレジスタ１７０に供給して記憶することができる。
【００５３】
より具体的には、プログラムモードデータが、第１の部分プログラミングモードを示す第１の状態に設定された場合には、制御回路１６０は、フラッシュメモリコントローラ１１０から部分プログラムコマンドを受信するように構成される。それに応じて、制御回路は、アレイ１４０のアドレスされたメモリセルに単一プログラムパルスを印加して、例えば図１Ａに関連して上記した方法で、対応する検証動作を実行する。部分プログラムコマンドの実行後に、フラッシュメモリデバイス１２０Ｃは、追加の部分プログラムコマンドが必要かどうかを示す検証信号をフラッシュメモリコントローラ１１０に供給する。また、プログラムモードデータの第１の状態は、フラッシュメモリデバイスのコマンドキュー１３２、プログラムアドレスレジスタ１３３、および順序論理１６１をディスエーブルするために用いることができる。
【００５４】
プログラムモードデータが、第２の部分プログラミングモードを示す第２の状態に設定された場合には、制御回路１６０は、フラッシュメモリコントローラ１１０から従来のプログラムコマンドを受信するように構成される。それに応じて、制御回路１６０は、例えば図１Ｂに関連して上記した方法で、メモリデバイスのコマンドキュー１３２に入れることができる１つまたは複数の独立して実行可能な部分プログラムコマンドを生成して、メモリアレイ１４０における実行のためにメモリアレイ１４０に選択的に供給される。プログラムモードデータの第２の状態はまた、メモリデバイスのコマンドキュー１３２およびプログラムアドレスレジスタ１３３をイネーブルするために、ならびに順序論理１６１をディスエーブルするために用いることができる。
【００５５】
プログラムモードデータが、従来のプログラミングモードを示す第３の状態に設定された場合には、制御回路１６０は、フラッシュメモリコントローラ１１０から従来のプログラムコマンドを受信するように構成され、それに応じて、周知の技術に従って、アレイ１４０のアドレスされたメモリセルをプログラムする一連のＰＶサイクルを開始するように、順序論理１６１に命令するが、この間は、メモリアレイ１４０全体は、典型的には利用不可能である。プログラムモードデータの第３の状態はまた、フラッシュメモリデバイスのコマンドキュー１３２およびプログラムアドレスレジスタ１３３をディスエーブルするために、ならびにその順序論理１６１をイネーブルするために用いることができる。
【００５６】
このようにして、図１Ｃのフラッシュメモリデバイス１２０Ｃは、本発明の実施形態による部分プログラムコマンドを用いるか、または従来のプログラミング技術を用いて、プログラミング動作を実行し、それによって、従来のメモリシステムまたは本発明の実施形態に従って形成されたメモリシステムにおいて、フラッシュメモリデバイス１２０Ｃを使用可能にすることができる。
【００５７】
さらに、他の実施形態では、モードレジスタ１７０および関連する制御回路を図１Ａのフラッシュメモリデバイス１２０Ａに加えて、フラッシュメモリデバイス１２０Ａが、フラッシュメモリコントローラ１１０から受信された部分プログラムコマンドを実行できるか、または（例えば、プログラムモードデータの状態に依存して）フラッシュメモリコントローラ１１０から受信された従来のプログラムコマンドに応じて従来のプログラミング動作を実行できるようにすることができる。
【００５８】
図５は、図１Ａのフラッシュメモリデバイス１２０Ａの一実施形態であるフラッシュメモリデバイス５００の機能ブロック図を示す。メモリデバイス５００には、Ｉ／Ｏ制御回路５１０、制御レジスタ回路５２０、コマンドインタフェース論理５３０、プログラムおよび消去コントローラ５４０、アレイ制御論理５５０、高電圧回路５６０、データバッファ５７０およびメモリアレイ５８０が含まれる。Ｉ／Ｏ制御回路５１０、制御レジスタ回路５２０、コマンドインタフェース論理５３０、プログラムおよび消去コントローラ５４０、アレイ制御論理５５０、高電圧回路５６０およびデータバッファ５７０が、一緒に、図１Ａの制御回路１３０の一実施形態を形成し、かつメモリアレイ５８０が、図１Ａのメモリアレイ１４０の一実施形態を形成する。
【００５９】
Ｉ／Ｏ制御回路５１０は、メモリデバイスのＩ／Ｏピンに、制御線５１１−５１３を介して制御レジスタ回路５２０に、およびデータ線５１４を介してデータバッファ５７０に結合される。Ｉ／Ｏ制御回路５１０は周知であるが、メモリアレイ５８０にプログラムされるデータをＩ／Ｏピンを介して受信し、かつメモリアレイ５８０から読み出されたデータをＩ／Ｏピンに供給する。制御レジスタ回路５２０には、アドレスレジスタ５２１、ステータスレジスタ５２２、およびコマンドレジスタ５２３が含まれる。アドレスレジスタ５２１は、メモリアレイ５８０に結合され、ステータスレジスタ５２２は、コマンドインタフェース論理５３０に結合され、コマンドレジスタ５２３は、コマンドインタフェース論理５３０に結合される。
【００６０】
メモリアレイ５８０には、不揮発性メモリセル（簡単にするために図示せず）のアレイ５８１、行デコーダ５８２、およびページバッファ５８４が含まれる。アレイ５８１に含まれるメモリセルは、例えば浮遊ゲートトランジスタを用いて形成されるものなど、任意の適切な不揮発性メモリセルとすることができる。行デコーダ５８２は、アドレスレジスタ５２１によって供給されるアドレス情報に応じて、アレイ動作（例えば、プログラムおよび読み出し動作）用にメモリセルの行を選択する。ページバッファ５８４は、プログラミング動作中にメモリアレイ５８１にプログラムされるデータを記憶し、読み出し動作中にメモリアレイ５８１から読み出されたデータを記憶する。
【００６１】
コマンドインタフェース論理５３０は、デバイス制御ピンに結合され、かつまたステータスレジスタ５２２、プログラムおよび消去コントローラ５４０、アレイ制御論理５５０、データバッファ５７０、ならびにページバッファ５８４に結合される。動作において、コマンドインタフェース論理５３０は、フラッシュメモリコントローラ１１０（図１Ａもまた参照）から部分プログラムコマンドを受信し、それに応じて、制御信号を、アレイ制御論理５５０、プログラムおよび消去コントローラ５４０に供給する。それに応じて、コマンドインタフェース論理５３０はまた、プログラムパルスを生成してメモリセルアレイ５８１に印加するデータバッファ５７０に対する制御を提供する。他の実施形態では、コマンドインタフェース論理５３０は、コマンドキュー１３２（図５には示さず）を含むかまたはそれに関連付けられ、かつフラッシュメモリコントローラ１１０から受信されたプログラムコマンドに応じて、複数の部分プログラムコマンドを生成するように構成される。
【００６２】
プログラムおよび消去コントローラ５４０には、コマンドインタフェース論理５３０から制御信号を受信する入力部が含まれ、かつ制御信号をアレイ制御論理５５０に供給する出力部が含まれる。アレイ制御論理５５０は、コマンドインタフェース論理５３０からコマンドを、プログラムおよび消去コントローラ５４０から制御信号を受信し、かつＨＶ回路５６０に、行デコーダ５８２に、およびページバッファ５８４に結合された出力部を含む。
【００６３】
ＨＶ回路５６０には、アレイ制御論理５５０に結合された入力部が含まれ、かつメモリアレイセル５８１および行デコーダ５８２に結合された出力部が含まれる。ＨＶ回路５６０は、アレイ制御論理５５０によって供給される制御信号に応じて、プログラムおよび消去動作中に、高電圧信号をメモリアレイ５８０に供給する。
【００６４】
データバッファ５７０は、コマンドインタフェース論理５３０およびＩ／Ｏ制御回路５１０に結合される。動作において、データバッファ５７０は、コマンドインタフェース論理５３０から制御信号を受信し、かつプログラム動作中に、Ｉ／Ｏ制御回路５１０からデータを受信するか、または読み出し動作中に、メモリアレイ５８０から読み出されたデータをＩ／Ｏ制御回路５１０に供給する。例えば、データバッファ５７０は、プログラムおよび読み出し動作中にデータをバッファするために用いられる。なぜなら、フラッシュメモリコントローラ１１０とＩ／Ｏ制御回路５１０との間に接続されたデータバスの幅が、典型的には、アレイ５８１におけるメモリページの幅よりはるかに小さいからである。例えば、いくつかの実施形態では、メモリデバイス５００は、フラッシュメモリコントローラ１１０から一度に１バイトだけ（例えば、８データビット）を受信する場合があり、ページバッファ５８４は、メモリアレイ５８１との同時的なページサイズプログラムまたは読み出し動作用にデータを蓄積するキャッシュとして用いることができる。
【００６５】
図６は、本発明の実施形態を自身の内部で用いることができる例示的なコンピュータシステム６００を示す。システム６００には、中央処理装置（ＣＰＵ）６１１、ホストコントローラ６１２、Ｉ／Ｏコントローラ６１３、ＤＲＡＭ６２０、Ｉ／Ｏ装置６３０、フラッシュメモリコントローラ１１０、およびフラッシュメモリデバイス１２０が含まれる。ＣＰＵ６１１は、周知のバスを介して、ホストコントローラ６１２およびＩ／Ｏコントローラ６１３に接続される。ＣＰＵ６１１、ホストコントローラ６１２、およびＩ／Ｏコントローラ６１３は、周知であり、図１Ａ−１Ｃのホスト装置１５０の一実施形態であるホスト装置６１０を一緒に形成する。いくつかの実施形態では、ＣＰＵ６１１およびホストコントローラ６１２は、同じチップ上に形成することができる。他の実施形態では、ＣＰＵ６１１、ホストコントローラ６１２、およびＩ／Ｏコントローラ６１３は、同じチップ上に形成することができる。
【００６６】
Ｉ／Ｏコントローラ６１３は、Ｉ／Ｏ装置６３０に結合されるが、Ｉ／Ｏ装置６３０には、例えば、モニタ、キーボード、マウスおよび他のＩ／Ｏ装置または回路などの周知の構成要素が潜在的に含まれる。ホストコントローラ６１２は、コンピュータシステム６００用のメインメモリとして用いられるＤＲＡＭシステム６２０に結合してもよく、同様にフラッシュメモリコントローラ１１０を介してフラッシュメモリデバイス１２０に結合してもよい。他の実施形態では、フラッシュメモリコントローラ１１０は、ホストコントローラ６１２の代わりにＩ／Ｏコントローラ６１３に接続することができる。フラッシュメモリデバイス１２０はまた、図６に示す例示的なコンピュータシステム用のメインメモリとして機能することができる。他の実施形態では、ＤＲＡＭ６２０は省略することができ、フラッシュメモリデバイス１２０を主要なメインメモリ構成要素として用いることができる。
【００６７】
コンピュータシステム６００におけるメインメモリとしてフラッシュメモリコントローラ１１０およびフラッシュメモリデバイス１２０の本発明の実施形態を用いることには、従来のフラッシュメモリシステムに勝るいくつかの利点がある。第１に、独立して実行可能な複数の部分プログラムコマンドを用いてフラッシュメモリデバイス１２０をプログラムすることによって、フラッシュメモリコントローラ１１０は、プログラミング動作中に、他の動作（例えば、読み出し動作）用にフラッシュメモリデバイス１２０にアクセスすることができる。より具体的には、メモリセルを完全にプログラムするために必要なプログラミングパルスの全期間より著しく短い期間にわたって、アドレスされたメモリセルに単一プログラムパルスを印加するように各部分プログラムコマンドを構成することができるので、部分プログラムコマンドが必要とするのは、ＰＶサイクルの完全なシーケンスより著しく少ない時間である。その結果、メモリアレイのアドレスされた部分に対するプログラミング動作中に、フラッシュメモリコントローラ１１０は、プログラミング動作に関連するそれ以上の部分プログラムコマンドを発行する前に、（例えば、メモリアレイの他の部分にアクセスする）適切なコマンドを発行することによって、メモリアレイの他の部分に素早くアクセスすることができる。第２に、フラッシュメモリコントローラ１１０が、プログラミング動作中に、メモリセルに対する個別プログラムパルスの印加をスケジューリングするので、フラッシュメモリコントローラ１１０は、プログラミング動作の進行を認識しており、したがってまた、効率的な方法で、メモリデバイス１２０における他の非プログラムコマンドの実行をスケジューリングすることができる。これは、従来のフラッシュメモリシステム、すなわち、フラッシュメモリコントローラが、フラッシュメモリデバイスに対するプログラミング動作の制御を放棄し、その間は、そのメモリセルのいずれも、典型的には、他の動作用に利用不可能な従来のフラッシュメモリシステムとは対照的である。
【００６８】
上記の説明において、本発明の実施形態の完全な理解を提供するために、細目、構成要素、回路およびプロセスの例などの多数の特定の詳細が述べられている。しかしながら、これらの特定の詳細は、本発明の実施形態を実施するために用いる必要がないことは、当業者に明らかであろう。他の例では、周知の構成要素または方法は、本発明の実施形態を不必要に曖昧にすることを避けるために、詳細には説明しなかった。したがって、フラッシュメモリデバイスのＰＶサイクルを非プログラム動作にインターリーブする文脈で上記に説明したが、本発明の実施形態は、増分プログラミング技術を利用する任意のタイプのメモリデバイスに同様に適用可能である。
【図１Ａ】
2011523157.tif 000003
【図１Ｂ】
2011523157.tif 000004
【図１Ｃ】
2011523157.tif 000005
【図２Ａ】
2011523157.tif 000006
【図２Ｂ】
2011523157.tif 000007
【図３Ａ】
2011523157.tif 000008
【図３Ｂ】
2011523157.tif 000009
【図３Ｃ】
2011523157.tif 000010
【図４Ａ】
2011523157.tif 000011
【図４Ｂ】
2011523157.tif 000012
【図５】
2011523157.tif 000013
【図６】
2011523157.tif 000014
【手続補正書】
【提出日】平成22年12月7日(2010.12.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリセルアレイを含むメモリデバイスと、
プログラミング動作用にいくつかの前記メモリセルをアドレスするプログラムコマンドを受信する第１のポートを有し、コマンドパイプラインを介して前記メモリデバイスに結合された第２のポートを有し、かつ前記プログラムコマンドに応じて複数の独立した部分プログラムコマンドを生成するように構成されたメモリコントローラであって、各部分プログラムコマンドの実行が、前記アドレスされたメモリセルをプログラムデータで漸増的にプログラムするメモリコントローラと、
を含むメモリシステム。
【請求項２】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、各プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項１に記載のメモリシステム。
【請求項３】
前記プログラムコマンドが、前記部分プログラムコマンドのそれぞれに関連する前記プログラムパルスの前記持続時間を決定するパルス幅値を含む、請求項２に記載のメモリシステム。
【請求項４】
前記プログラムコマンドが、前記メモリコントローラによって生成される部分プログラムコマンドの最大数を指定する限界値を含む、請求項１に記載のメモリシステム。
【請求項５】
各部分プログラムコマンドの実行がまた、前記プログラムデータを検証する、請求項１に記載のメモリシステム。
【請求項６】
前記メモリコントローラが、選択された数の前記部分プログラムコマンドの前で前記コマンドパイプラインに、非プログラムコマンドを選択的に挿入するようにさらに構成される、請求項１に記載のメモリシステム。
【請求項７】
前記非プログラムコマンドが、前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、前記メモリデバイスにおいて実行される、請求項６に記載のメモリシステム。
【請求項８】
前記非プログラムコマンドが、読み出しコマンドを含む、請求項６に記載のメモリシステム。
【請求項９】
前記メモリコントローラが、
前記複数の部分プログラムコマンドを記憶するためのコマンドキューをさらに含む、請求項１に記載のメモリシステム。
【請求項１０】
前記メモリコントローラが、前記コマンドキューに前に入れられた選択された数の前記部分プログラムコマンドの前に、非プログラムコマンドを選択的に挿入するように構成される、請求項９に記載のメモリシステム。
【請求項１１】
前記メモリコントローラが、
前記プログラミング動作中にプログラムされているメモリセルのアドレスを記憶するためのプログラムアドレスレジスタと、
前記非プログラムコマンドに関連するアドレスを、前記プログラムアドレスレジスタに記憶された前記プログラムアドレスと比較するための制御回路であって、前記比較に応じて、前記非プログラムコマンドを前記コマンドキューに選択的に転送する制御回路と、
をさらに含む、請求項１０に記載のメモリシステム。
【請求項１２】
前記制御回路が、前記非プログラムコマンドに関連する前記アドレスが前記プログラムアドレスレジスタに記憶された前記プログラムアドレスのいずれとも一致しない場合には、前記非プログラムコマンドを前記コマンドキューに転送する、請求項１１に記載のメモリシステム。
【請求項１３】
プログラミングモードを示すモードデータを記憶するためのモードレジスタをさらに含む、請求項１に記載のメモリシステム。
【請求項１４】
前記メモリコントローラが、前記モードデータが第１の状態である場合には、前記プログラムコマンドに応じて前記部分プログラムコマンドを生成し、前記モードデータが第２の状態である場合には、前記プログラムコマンドに応じて一連のプログラム−検証サイクルを開始する、請求項１３に記載のメモリシステム。
【請求項１５】
メモリセルアレイを含むメモリデバイスにデータをプログラムする方法であって、
前記メモリセルにおいてデータをプログラムするプログラミング動作用にいくつかの前記メモリセルをアドレスするプログラムコマンドを受信するステップと、
前記プログラムコマンドに応じて、複数の独立した部分プログラムコマンドを生成するステップと、
実行のために前記部分プログラムコマンドを前記メモリデバイスに選択的に転送するステップであって、各部分プログラムコマンドの実行が、前記アドレスされたメモリセルを前記プログラムデータで漸増的にプログラムするステップと、
を含む方法。
【請求項１６】
前記部分プログラムコマンドをコマンドキューに入れるステップをさらに含む、請求項１５に記載に方法。
【請求項１７】
非プログラムコマンドを受信するステップと、
選択された数の前記部分プログラムコマンドの前において前記コマンドキューに、前記非プログラムコマンドを選択的に挿入するステップと、
前記選択された数の部分プログラムコマンドを実行する前に、前記メモリデバイスにおいて前記非プログラムコマンドを実行するステップと、
をさらに含む、請求項１６に記載の方法。
【請求項１８】
前記選択的に挿入するステップが、
前記プログラムコマンドによって識別された前記プログラムアドレスをプログラムアドレスレジスタに記憶するステップと、
前記非プログラムコマンドに関連するアドレスを、前記プログラムアドレスレジスタに記憶された前記プログラムアドレスと比較するステップと、
前記非プログラムコマンドに関連する前記アドレスが、前記プログラムアドレスのいずれとも一致しない場合には、前記非プログラムコマンドを前記コマンドキューに入れるステップと、
を含む、請求項１７に記載の方法。
【請求項１９】
前記対応する部分プログラムコマンドがまた、検証動作を実行して、前記アドレスされたメモリセルが適切にプログラムされたかどうかを示す検証データを生成する、請求項１８に記載の方法。
【請求項２０】
前記アドレスされたメモリセルの全てが適切にプログラムされたことを前記検証データが示す場合には、前記対応するプログラムアドレスを前記プログラムアドレスレジスタから削除するステップと、
前記検証データが、完全にはプログラムされなかったいくつかの前記アドレスされたメモリセルを識別する場合には、次の部分プログラムコマンドを前記アレイに送信して、前記識別されたメモリセルをさらにプログラムするステップと、
をさらに含む、請求項１９に記載の方法。
【請求項２１】
非プログラムコマンドを受信するステップと、
前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、実行のために前記非プログラムコマンドを前記メモリデバイスに選択的に転送するステップと、
をさらに含む、請求項１５に記載の方法。
【請求項２２】
前記選択的に転送するステップが、
前記非プログラムコマンドに関連するアドレスを、前記プログラムコマンドによって識別された前記プログラムアドレスと比較するステップと、
前記非プログラムコマンドに関連する前記アドレスが、前記プログラムアドレスと一致しない場合には、前記非プログラムコマンドを前記メモリデバイスへ直ちに転送するステップと、
を含む、請求項２１に記載の方法。
【請求項２３】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、各プログラムパルスの持続時間が、前記プログラミング動作の合計時間の選択された一部である、請求項１５に記載の方法。
【請求項２４】
前記プログラムコマンドと共にパルス幅値を供給するステップと、
前記パルス幅値に応じて、各部分プログラムコマンドに関連する前記プログラムパルスの前記持続時間を選択的に調節するステップと、
をさらに含む、請求項２３に記載の方法。
【請求項２５】
前記プログラムコマンドと共に限界値を供給するステップと、
前記限界値に応じて、前記メモリデバイスにおいて実行される部分プログラムコマンドの数を制限するステップと、
をさらに含む、請求項１５に記載の方法。
【請求項２６】
各部分プログラムコマンド用に、
前記対応する部分プログラムコマンドが、前記アドレスされたメモリセルに前記プログラムデータを完全にプログラムしたかどうかを示す検証データを生成するステップと、
前記検証データに応じ、前記メモリデバイスにおいて次の前記部分プログラムコマンドを選択的に実行するステップと、
をさらに含む、請求項１５に記載の方法。
【請求項２７】
不揮発性メモリセルアレイと、
プログラミング動作用にいくつかの前記メモリセルをアドレスするプログラムコマンドを受信する第１のポートを有し、コマンドパイプラインを介して前記メモリセルアレイに結合された第２のポートを有し、かつ前記プログラムコマンドに応じて複数の独立した部分プログラムコマンドを生成するように構成された制御回路であって、各部分プログラムコマンドの実行が、前記アドレスされたメモリセルを前記プログラムデータで漸増的にプログラムする制御回路と、
を含むフラッシュメモリデバイス。
【請求項２８】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、各プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項２７に記載のメモリデバイス。
【請求項２９】
前記プログラムコマンドが、前記部分プログラムコマンドのそれぞれに関連する前記プログラムパルスの前記持続時間を決定するパルス幅値を含む、請求項２８に記載のメモリデバイス。
【請求項３０】
前記プログラムコマンドが、前記部分プログラムコマンドの最大数を指定する限界値を含む、請求項２７に記載のメモリデバイス。
【請求項３１】
各部分プログラムコマンドの前記実行がまた、前記プログラムデータを検証する、請求項２７に記載のメモリデバイス。
【請求項３２】
前記制御回路が、前記部分プログラムコマンドの選択された数の前で前記コマンドパイプラインに、非プログラムコマンドを選択的に挿入するようにさらに構成される、請求項２７に記載のメモリデバイス。
【請求項３３】
前記非プログラムコマンドが、前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、前記アレイにおいて実行される、請求項３２に記載のメモリデバイス。
【請求項３４】
前記複数の部分プログラムコマンドを記憶するためのコマンドキューをさらに含む、請求項２７に記載のメモリデバイス。
【請求項３５】
前記制御回路が、前記コマンドキューに前に入れられた選択された数の前記部分プログラムコマンドの前に、非プログラムコマンドを選択的に挿入するように構成される、請求項３４に記載のメモリデバイス。
【請求項３６】
前記制御回路が、
前記プログラムコマンドによってアドレスされたメモリセルのアドレスを記憶するためのプログラムアドレスレジスタをさらに含み、前記制御回路が、前記非プログラムコマンドに関連するアドレスと、前記プログラムアドレスレジスタに記憶された前記プログラムアドレスとの間の比較に応じて、前記非プログラムコマンドを前記コマンドキューに選択的に転送する、請求項３５に記載のメモリデバイス。
【請求項３７】
前記制御回路が、前記非プログラムコマンドに関連する前記アドレスが前記プログラムアドレスレジスタに記憶された前記プログラムアドレスのいずれとも一致しない場合には、前記非プログラムコマンドを前記コマンドキューに入れる、請求項３６に記載のメモリデバイス。
【請求項３８】
プログラミングモードを示すモードデータを記憶するためのモードレジスタをさらに含む、請求項２７に記載のメモリデバイス。
【請求項３９】
前記制御回路が、前記モードデータが第１の状態である場合には、前記プログラムコマンドに応じて前記部分プログラムコマンドを生成し、前記モードデータが第２の状態である場合には、外部ソースから受信された部分プログラムコマンドを実行する、請求項３８に記載のメモリデバイス。
【請求項４０】
前記制御回路が、前記モードデータが第３の状態である場合には、前記プログラムコマンドに応じて一連のプログラム−検証サイクルを開始する、請求項３９に記載のメモリデバイス。
【請求項４１】
メモリセルアレイを有するメモリデバイスにデータをプログラムするためのシステムであって、
前記メモリセルにおいてデータをプログラムするプログラミング動作用に、いくつかの前記メモリセルをアドレスするプログラムコマンドを受信するための手段と、
前記プログラムコマンドに応じて、複数の独立した部分プログラムコマンドを生成するための手段と、
実行のために前記部分プログラムコマンドを前記メモリデバイスに選択的に転送するための手段であって、各部分プログラムコマンドの実行が、前記アドレスされたメモリセルを前記プログラムデータで漸増的にプログラムするための手段と、
を含むシステム。
【請求項４２】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、各プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項４１に記載のシステム。
【請求項４３】
非プログラムコマンドを受信するための手段と、
前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、前記メモリデバイスにおいて前記非プログラムコマンドを選択的に実行するための手段と、
をさらに含む、請求項４１に記載のシステム。
【請求項４４】
前記選択的に実行するための手段が、
前記非プログラムコマンドに関連するアドレスを、前記プログラムコマンドによって識別された前記プログラムアドレスと比較するための手段と、
前記非プログラムコマンドに関連する前記アドレスが、前記プログラムアドレスと一致しない場合には、前記メモリデバイスにおける実行のために前記非プログラムコマンドを前記メモリデバイスへ直ちに転送するための手段と、
をさらに含む、請求項４１に記載のシステム。
【請求項４５】
不揮発性メモリセルアレイと、
プログラミング動作用にいくつかのメモリセルをアドレスするプログラムコマンドを受信する第１のポートを有し、コマンドパイプラインを介して前記アレイに結合された第２のポートを有し、かつ前記プログラムコマンドに応じて、独立して実行可能な部分プログラムコマンドを前記アレイに発行するように構成された制御回路であって、前記部分プログラムコマンドの実行が、前記アドレスされたメモリセルを前記プログラムデータで漸増的にプログラムする制御回路と、
を含むメモリデバイス。
【請求項４６】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加し、前記プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項４５に記載のメモリデバイス。
【請求項４７】
前記プログラムコマンドが、前記部分プログラムコマンドのそれぞれに関連する前記プログラムパルスの前記持続時間を決定するパルス幅値を含む、請求項４６に記載のメモリデバイス。
【請求項４８】
前記部分プログラムコマンドの前記実行がまた、前記部分プログラムコマンドが前記アドレスされたメモリセルを完全にプログラムしたかどうかを示す検証データを生成する検証動作を実行する、請求項４５に記載のメモリデバイス。
【請求項４９】
前記制御回路が、前記アレイにおいて次の前記部分プログラムコマンドを選択的に実行し、前記検証データに応じて前記アドレスされたメモリセルを前記プログラムデータで、漸増的にさらにプログラムするようにさらに構成される、請求項４８に記載のメモリデバイス。
【請求項５０】
装置の説明を含む情報を自身に具体化するコンピュータ可読媒体であって、前記情報が、
不揮発性メモリセルアレイと、
プログラミング動作用にいくつかの前記メモリセルをアドレスするプログラムコマンドを受信する第１のポートを有し、コマンドパイプラインを介して前記メモリセルアレイに結合された第２のポートを有し、かつ前記プログラムコマンドに応じて、複数の独立した部分プログラムコマンドを生成するように構成された制御回路であって、各部分プログラムコマンドの実行が、単一プログラムパルスを前記アドレスされたメモリセルに印加して、前記アドレスされたメモリセルをプログラムデータで漸増的にプログラムする制御回路と、
の説明を含むコンピュータ可読媒体。
【請求項５１】
各プログラムパルスの持続時間が、前記プログラムデータで前記メモリセルをプログラムするために必要な合計プログラミング時間の選択された一部である、請求項５０に記載のコンピュータ可読媒体。
【請求項５２】
前記プログラムコマンドが、前記部分プログラムコマンドのそれぞれに関連する前記プログラムパルスの前記持続時間を決定するパルス幅値を含む、請求項５１に記載のコンピュータ可読媒体。
【請求項５３】
前記プログラムコマンドが、前記制御回路によって生成される部分プログラムコマンドの最大値を指定する限界値を含む、請求項５０に記載のコンピュータ可読媒体。
【請求項５４】
各部分プログラムコマンドの実行がまた、前記プログラムデータを検証する、請求項５０に記載のコンピュータ可読媒体。
【請求項５５】
前記制御回路が、選択された数の前記部分プログラムコマンドの前で前記コマンドパイプラインに、非プログラムコマンドを選択的に挿入するようにさらに構成される、請求項５０に記載のコンピュータ可読媒体。
【請求項５６】
前記非プログラムコマンドが、前記プログラミング動作の進行中に、前記部分プログラムコマンドのいずれの実行も中断せずに、前記アレイにおいて実行される、請求項５５に記載のコンピュータ可読媒体。
【請求項５７】
前記制御回路が、
前記複数の部分プログラムコマンドを記憶するためのコマンドキューをさらに含む、請求項５０に記載のコンピュータ可読媒体。
【請求項５８】
前記制御回路が、前記コマンドキューに前に入れられた選択された数の前記部分プログラムコマンドの前に、非プログラムコマンドを選択的に挿入するように構成される、請求項５７に記載のコンピュータ可読媒体。
【請求項５９】
前記制御回路が、
前記プログラムコマンドによって識別された前記プログラムアドレスを記憶するためのプログラムアドレスレジスタをさらに含み、前記制御回路が、前記非プログラムコマンドに関連するアドレスと、前記プログラムアドレスレジスタに記憶された前記プログラムアドレスとの間の比較に応じて、前記非プログラムコマンドを前記コマンドキューに選択的に転送する、請求項５８に記載のコンピュータ可読媒体。
【請求項６０】
前記制御回路が、前記非プログラムコマンドに関連する前記アドレスが前記プログラムアドレスレジスタに記憶された前記プログラムアドレスと一致しない場合には、前記非プログラムコマンドを前記コマンドキューに入れる、請求項５９に記載のコンピュータ可読媒体。
【請求項６１】
プログラミングモードを示すモードデータを記憶するためのモードレジスタをさらに含む、請求項５０に記載のコンピュータ可読媒体。
【請求項６２】
前記制御回路が、前記モードデータが第１の状態である場合には、前記プログラムコマンドに応じて前記部分プログラムコマンドを生成し、前記モードデータが第２の状態である場合には、外部ソースから受信された部分プログラムコマンドを実行する、請求項６１に記載のコンピュータ可読媒体。
【請求項６３】
前記制御回路が、前記モードデータが第３の状態である場合には、前記プログラムコマンドに応じて一連のプログラム−検証サイクルを開始する、請求項６２に記載のコンピュータ可読媒体。
【請求項６４】
不揮発性メモリセルアレイと、
プログラミング動作用に前記メモリアレイの１つまたは複数のページをアドレスする複数の独立した部分プログラムコマンドを受信するための手段であって、各部分プログラムコマンドの実行が、前記ページにおけるデータを漸増的にプログラムする手段と、
前記プログラミング動作に関連する前記ページアドレスを記憶するための手段と、
前記メモリアレイの１つまたは複数のページをアドレスする後続のメモリ要求を受信するための手段と、
前記プログラミング動作に関連する前記ページアドレスを前記メモリ要求に関連する前記ページアドレスと比較するための手段と、
前記比較に応じて、前記プログラミング動作の進行中に、前記部分プログラムコマンドの実行を中断せずに、前記メモリ要求を選択的に実行するための手段と、
を含む装置。
【請求項６５】
前記メモリ要求が、前記プログラミング動作に関連する前記ページアドレスが前記メモリ要求に関連する前記ページアドレスと一致しない場合には、前記プログラミング動作の進行中に実行される、請求項６４に記載の装置。
【請求項６６】
前記メモリ要求が、前記プログラミング動作に関連する前記ページアドレスが前記メモリ要求に関連する前記ページアドレスと一致する場合には、保持される、請求項６４に記載の装置。
【請求項６７】
各部分プログラムコマンドが、選択されたメモリセルに単一プログラムパルスを印加する、請求項６４に記載の装置。
【請求項６８】
前記制御回路が、
前記アレイのステータスに関連する情報を記憶するステータスレジスタをさらに含む、請求項２７に記載のフラッシュメモリデバイス。
【請求項６９】
前記ステータスレジスタが、前記不揮発性メモリセルアレイにおける少なくとも１つの動作のステータスを示すデータを記憶することになる、請求項６８に記載のフラッシュメモリデバイス。
【請求項７０】
前記ステータスレジスタが、前記不揮発性メモリセルアレイにおけるプログラム検証動作の結果を示す検証データを記憶することになる、請求項６８に記載のフラッシュメモリデバイス。
【請求項７１】
前記検証データが、前記プログラミング動作を完了するために追加プログラムパルスが必要かどうかを示す、請求項７０に記載のフラッシュメモリデバイス。
【請求項７２】
前記制御回路が、
前記アレイのステータスに関連する情報を記憶するステータスレジスタをさらに含む、請求項４５に記載のメモリデバイス。
【請求項７３】
前記ステータスレジスタが、前記不揮発性メモリセルアレイにおける少なくとも１つの動作のステータスを示すデータを記憶することになる、請求項７２に記載のメモリデバイス。
【請求項７４】
前記ステータスレジスタが、前記不揮発性メモリセルアレイにおけるプログラム検証動作の結果を示す検証データを記憶することになる、請求項７２に記載のフラッシュメモリデバイス。
【請求項７５】
前記検証データが、前記プログラミング動作を完了するために追加プログラムパルスが必要かどうかを示す、請求項７４に記載のフラッシュメモリデバイス。
【国際調査報告】
2011523157.tif 000015
2011523157.tif 000016
2011523157.tif 000017