(57)【要約】【課題】メモリデバイス及びメモリセルアレイのためのプログラミング方法が提供される。【解決手段】前記メモリデバイスは、メモリセルアレイ、選択スイッチ、行デコーダ、電圧発生器、及び、メモリコントローラを含む。前記メモリセルアレイのメモリセルの上のプログラミング動作を実施するように、前記メモリコントローラは、アドレス制御信号の制御パスシーケンスを調整するために、入力データにより前記行デコーダを制御し、かつ、前記メモリコントローラは、入力データ信号のデータパスシーケンスを調整するために、前記電圧発生器を同時に制御する。【選択図】図３
2019204570.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを備えるメモリセルアレイと、
該メモリセルアレイに連結される選択スイッチと、
該選択スイッチに連結され、アドレス制御信号を生成するために、メモリセルアドレスを受信する、行デコーダと、
前記選択スイッチに連結される電圧発生器と、
前記行デコーダ及び前記電圧発生器に連結され、入力データ信号を生成するため、前記電圧発生器を制御するために、入力データを得る、メモリコントローラと、を備える、メモリデバイスであって、
前記複数のメモリセルの上のプログラミング動作を実施するように、前記メモリコントローラは、前記アドレス制御信号の制御パスシーケンスを調整するために、入力データにより前記行デコーダを制御し、かつ、前記メモリコントローラは、前記入力データ信号のデータパスシーケンスを調整するために、前記電圧発生器を同時に制御する、メモリデバイス。
【請求項２】
前記メモリデバイスはNORキャッシュメモリである、請求項１に記載のメモリデバイス。
【請求項３】
前記選択スイッチは複数のデータパスグループを備え、該複数のデータパスグループの各々は複数のパススイッチにより構成され、前記アドレス制御信号の内の１つのビットの数は、前記複数のデータパスグループの内の１つの中の前記複数のパススイッチの数に等しく、前記メモリセルアレイにプログラムされるべき前記複数のメモリセルの数は、前記複数のデータパスグループの内の１つの中の前記複数のパススイッチの前記数に、前記複数のデータパスグループの数を掛けることにより、得られる積に等しい、請求項１に記載のメモリデバイス。
【請求項４】
前記プログラムされるべきメモリセルは、前記プログラムされるべきメモリセルの前記複数のデータパスグループの前記数及び物理アドレスにより、複数のメモリセルグループに分類され、前記複数のメモリセルグループは、それぞれ、前記複数のデータパスグループに対応し、
前記プログラムされるべきメモリセルの前記物理アドレスと論理アドレスとの間のマッピング関係は、前記複数のメモリセルグループのi番目のメモリセルグループの中の前記複数のメモリセルのj番目のメモリセルの前記物理アドレスは、［（i−１）×４＋（j−１）］であり、前記i番目のメモリセルグループの前記j番目のメモリセルの前記論理アドレスは、［（j−１）×８＋（i−１）］であり、i及び jは正の整数であり、iは前記複数のデータパスグループの前記数以下であり、jは前記複数のデータパスグループの内の１つの中の前記複数のパススイッチの前記数以下であり、
前記複数のメモリセルグループの前記複数のメモリセルの前記論理アドレスは、前記入力データの論理アドレスと同じである、請求項３に記載のメモリデバイス。
【請求項５】
前記メモリコントローラは、前記入力データの中で、特定の値を有する少なくとも１つの第１のビットをサーチし、前記少なくとも１つの第１のビットは、前記複数のメモリセルグループの前記複数のメモリセルの論理アドレスに対応し、前記特定の値は、前記プログラミング動作が必要であることを示し、
特定のメモリセルグループの前記複数のメモリセルの前記論理アドレスに対応する前記少なくとも１つの第１のビットが前記特定の値を有する場合、前記メモリコントローラは、前記少なくとも１つの第１のビットの数を数え、前記特定のメモリセルグループは、前記複数のメモリセルグループの内の１つであり、
前記入力データの前記少なくとも１つの第１のビットの前記数が、前記電圧発生器のポンピング能力に達する場合、前記メモリコントローラは、前記特定のメモリセルグループに対応する前記複数のデータパスグループの特定のデータパスグループにより、前記入力データ信号を設定し、かつ、前記入力データの前記少なくとも１つの第１のビットに対応する前記論理アドレスにより、前記アドレス制御信号を設定し、前記論理アドレス及び前記特定のデータパスグループに対応する前記複数のメモリセル上で、前記プログラミング動作を実施するようにする、請求項３に記載のメモリデバイス。
【請求項６】
前記入力データの前記少なくとも１つの第１のビットの前記数が前記電圧発生器の前記ポンピング能力に達しない場合、前記メモリコントローラは、他のメモリセルグループから、前記特定のメモリセルグループの前記少なくとも１つの第１のビットの前記アドレス制御信号と同一であるアドレス制御信号を有する第２のビットを、サーチし、
前記メモリコントローラが、前記他のメモリセルグループから、前記第２のビットを見出す場合、前記メモリコントローラは、前記特定のメモリセルグループに対応する前記特定のデータパスグループ及び前記他のメモリセルグループに対応する他のデータパスグループにより、前記入力データ信号を設定し、かつ、前記入力データの前記少なくとも１つの第１のビットに対応する前記論理アドレスにより、前記アドレス制御信号を設定し、前記特定のデータパスグループ、前記他のデータパスグループ及び前記論理アドレスに対応する前記複数のメモリセル上で、前記プログラミング動作を実施するようにする、請求項５に記載のメモリデバイス。
【請求項７】
前記メモリコントローラが、他のメモリセルグループから、第２のビットを見出さない場合、前記メモリコントローラは、前記特定のメモリセルグループに対応する前記特定のデータパスグループにより、前記入力データ信号を設定し、かつ、前記入力データの前記少なくとも１つの第１のビットに対応する前記論理アドレスにより、前記アドレス制御信号を設定し、前記特定のデータパスグループ及び前記論理アドレスに対応する前記複数のメモリセル上で、前記プログラミング動作を実施するようにする、請求項５に記載のメモリデバイス。
【請求項８】
前記複数のメモリセルグループの前記複数のメモリセルの前記論理アドレスに対応する前記少なくとも１つの第１のビットが前記特定の値を有しない場合、前記メモリコントローラは、前記メモリセルアレイ上で、前記プログラミング動作を実施することを停止する、請求項５に記載のメモリデバイス。
【請求項９】
入力データを得るステップと、
該入力データによりアドレス制御信号の制御パスシーケンスを調整し、同時に、入力データ信号のデータパスシーケンスを調整するステップと、
前記アドレス制御信号及び前記入力データ信号により、メモリセルアレイの複数のメモリセルのいくつかの又は全ての上でプログラミング動作を実施するステップと、を有する、メモリセルアレイのプログラミング方法。
【請求項１０】
前記メモリセルアレイは、NORキャッシュメモリに配置される、請求項９に記載のプログラミング方法。
【請求項１１】
前記アドレス制御信号は複数のデータパスグループを制御し、該複数のデータパスグループの各々は複数のパススイッチにより構成され、前記アドレス制御信号の内の１つのビットの数は、前記複数のデータパスグループの内の１つの中の前記複数のパススイッチの数に等しく、前記メモリセルアレイにプログラムされるべき前記複数のメモリセルの数は、前記複数のデータパスグループの内の１つの中の前記複数のパススイッチの前記数に、前記複数のデータパスグループの数を掛けることにより、得られる積に等しい、請求項９に記載のプログラミング方法。
【請求項１２】
前記プログラムされるべきメモリセルの前記複数のデータパスグループの前記数及び物理アドレスにより、前記プログラムされるべきメモリセルを、複数のメモリセルグループに分類するステップであって、前記複数のメモリセルグループは、それぞれ、前記複数のデータパスグループに対応する、ステップを、さらに有し、
前記プログラムされるべきメモリセルの前記物理アドレスと論理アドレスとの間の関係は、前記複数のメモリセルグループのi番目のメモリセルグループの中の前記複数のメモリセルのj番目のメモリセルの前記物理アドレスは、［（i−１）×４＋（j−１）］であり、前記i番目のメモリセルグループの前記j番目のメモリセルの前記論理アドレスは、［（j−１）×８＋（i−１）］であり、i及び jは正の整数であり、iは前記複数のデータパスグループの前記数以下であり、jは前記複数のデータパスグループの内の１つの中の前記複数のパススイッチの前記数以下であり、
前記複数のメモリセルグループの前記複数のメモリセルの前記論理アドレスは、前記入力データの論理アドレスと同じである、請求項１１に記載のプログラミング方法。
【請求項１３】
前記入力データにより前記アドレス制御信号の前記制御パスシーケンスを調整し、同時に、前記入力データ信号の前記データパスシーケンスを調整するステップは、
前記入力データの中で、特定の値を有する少なくとも１つの第１のビットをサーチするステップであって、前記少なくとも１つの第１のビットは、前記複数のメモリセルグループの前記複数のメモリセルの論理アドレスに対応し、前記特定の値は、前記プログラミング動作が必要であることを示す、ステップと、
特定のメモリセルグループの前記複数のメモリセルの前記論理アドレスに対応する前記少なくとも１つの第１のビットが前記特定の値を有する場合、前記少なくとも１つの第１のビットの数を数えるステップであって、前記特定のメモリセルグループは、前記複数のメモリセルグループの内の１つである、ステップと、
前記入力データの前記少なくとも１つの第１のビットの前記数が、前記電圧発生器のポンピング能力に達する場合、前記特定のメモリセルグループに対応する前記複数のデータパスグループの特定のデータパスグループにより、前記入力データ信号を設定し、かつ、前記入力データの前記少なくとも１つの第１のビットに対応する前記論理アドレスにより、前記アドレス制御信号を設定する、ステップと、を有する、請求項１２に記載のプログラミング方法。
【請求項１４】
前記入力データにより前記アドレス制御信号の前記制御パスシーケンスを調整し、同時に、前記入力データ信号の前記データパスシーケンスを調整するステップは、さらに、
前記入力データの前記少なくとも１つの第１のビットの前記数が前記電圧発生器の前記ポンピング能力に達しない場合、他のメモリセルグループから、前記特定のメモリセルグループの前記少なくとも１つの第１のビットの前記アドレス制御信号と同一であるアドレス制御信号を有する第２のビットを、サーチするステップと、
前記他のメモリセルグループから、前記第２のビットが見出される場合、前記特定のメモリセルグループに対応する前記特定のデータパスグループ及び前記他のメモリセルグループに対応する他のデータパスグループにより、前記入力データ信号を設定し、かつ、前記入力データの前記少なくとも１つの第１のビットに対応する前記論理アドレスにより、前記アドレス制御信号を設定するステップと、を有する、請求項１３に記載のプログラミング方法。
【請求項１５】
前記入力データにより前記アドレス制御信号の前記制御パスシーケンスを調整し、同時に、前記入力データ信号の前記データパスシーケンスを調整するステップは、さらに、
前記他のメモリセルグループから、前記第２のビットが見出されない場合、前記特定のメモリセルグループに対応する前記特定のデータパスグループにより、前記入力データ信号を設定し、かつ、前記入力データの前記少なくとも１つの第１のビットに対応する前記論理アドレスにより、前記アドレス制御信号を設定するステップを有する、請求項１４に記載のプログラミング方法。
【請求項１６】
前記入力データにより前記アドレス制御信号の前記制御パスシーケンスを調整し、同時に、前記入力データ信号の前記データパスシーケンスを調整するステップは、さらに、
前記複数のメモリセルグループの前記複数のメモリセルの前記論理アドレスに対応する前記少なくとも１つの第１のビットが前記特定の値を有しない場合、前記メモリセルアレイ上で、前記プログラミング動作を実施することを停止するステップを有する、請求項１４に記載のプログラミング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリデバイスの制御の技術に関するものであり、特に、本発明は、プログラミング動作を実施するのに費やす時間を低減することができるメモリデバイス及びメモリセルアレイのプログラミング方法に関するものである。
【背景技術】
【０００２】
キャッシュメモリは、NORキャッシュメモリ及びNANDキャッシュメモリの２つのタイプに主として分類することができる。NANDキャッシュメモリと比較して、NORタイプキャッシュメモリは、プログラミング／消去動作を実施するのに長時間かかる。
【０００３】
NORキャッシュメモリ上のプログラミング動作を加速し、プログラミング動作を実施するのに必要な時間（通常、tPPといわれる）を短くすることが望ましい場合、NORキャッシュメモリのプログラミングの詳細なプロセスを調整することができるように思われる。プログラミング動作は、通常、プログラミング（PGM）パルス動作、及び、プログラミング検証（PV）動作の２つの部分に分割することができる。プログラミングパルス動作において、ターゲットメモリセルの閾値電圧（Vt）を調整するために（すなわち、ターゲットメモリセルの閾値電圧を増大するために）、高電圧をターゲットメモリセルに印加する。PV動作は、ターゲットメモリセルが所定の閾値電圧に達したかどうかを検証し、それにより、ターゲットメモリセルが、すでに、入力データを記憶することを確認する。プログラミング動作を実施するのに費やす時間tPPは、主として、プログラミングパルス動作により占められる。
【０００４】
NORキャッシュメモリのプログラミング動作は、大きな電流量を必要とし、ハードウェア回路のポンピング能力に依存するため、特定の数のデータパスのみを、プログラミングパルス動作で駆動することができ、プログラミングパルス動作を繰り返し連続的に実施する必要性をもたらし、完全に入力データを書き込む。それにもかかわらず、キャッシュメモリのデータ書き込み方法は、全てのメモリセルに消去動作を実施し、次いで、メモリセルの全てにプログラミング動作を実施することであり、実際のところ、プログラミング動作は、メモリセルの各々に実施する必要はないかもしれない。
【０００５】
これ故に、キャッシュメモリのプログラミングに必要な時間をいかに低減するかが、重要なトピックの１つである。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、メモリデバイス及びメモリセルアレイのプログラミング方法を提供する。入力データ信号のデータパスシーケンスは、入力データの内容により再配置され、プログラムする必要のないメモリセルを飛ばすように、アドレス制御信号の制御パスシーケンスは、同時に再配置される。そのように、プログラミング動作に費やす時間を低減することができる。
【課題を解決するための手段】
【０００７】
一実施態様において、メモリセルアレイ、選択スイッチ、行デコーダ、電圧発生器、及び、メモリコントローラを含む、メモリデバイスが提供される。前記メモリセルアレイは複数のメモリセルを含む。前記選択スイッチは前記メモリセルアレイに連結される。前記行デコーダは、前記選択スイッチに連結され、アドレス制御信号を生成するために、メモリセルアドレスを受信する。前記電圧発生器は前記選択スイッチに連結される。前記メモリコントローラは、前記行デコーダ及び前記電圧発生器に連結される。ここで、前記メモリコントローラは、入力データ信号を生成するため、前記電圧発生器を制御するために、入力データを得る。前記メモリセルの上のプログラミング動作を実施するように、前記メモリコントローラは、前記アドレス制御信号の制御パスシーケンスを調整するために、入力データにより前記行デコーダを制御し、かつ、前記メモリコントローラは、前記入力データ信号のデータパスシーケンスを調整するために、前記電圧発生器を同時に制御する。
【０００８】
一実施態様において、メモリセルアレイのプログラミング方法は以下のステップを含む。  入力データ信号を生成するために、入力データを得る。該入力データによりアドレス制御信号の制御パスシーケンスを調整し、同時に、入力データ信号のデータパスシーケンスを調整する。前記アドレス制御信号及び前記入力データ信号により、メモリセルアレイの複数のメモリセルのいくつかの又は全ての上でプログラミング動作を実施する。
【発明の効果】
【０００９】
上記に基づいて、１つ以上の実施形態において提供されるメモリデバイスのメモリコントローラは、データバッファの入力データにより、データパスを作動させるシーケンス（すなわち、アドレス制御信号の制御パスシーケンス）を再配置し、データパスのデータ供給シーケンス（すなわち、入力データ信号のデータパスシーケンス）を同時に再配置する。それにより、プログラミング動作を必要とするメモリセルは、そのような動作を受けることができ、そのような動作を必要としないメモリセルは、飛ばされる。そのように、プログラミング動作に費やされる時間を低減するように、メモリデバイスのプログラミング動作を実施する回数を低減することができる。
【００１０】
前述をもっと分り易くするために、図面を伴ういくつかの実施形態を以下に詳細に説明する。
【００１１】
添付図面が、本発明の更なる理解を与えるために、含まれ、本明細書の一部に組み込まれ、その一部を構成する。図面は、本発明の例示的実施形態を例示し、明細書と共に本発明の原理を説明するのに役立つ。
【図面の簡単な説明】
【００１２】
【図１】メモリデバイスのブロック図である。
【図２】図１に示すメモリデバイスのいくつかの要素の詳細な回路を例示する。
【図３】本発明の一実施形態によるメモリデバイスのブロック図である。
【図４】メモリセルの物理アドレスBit00-Bit32と論理アドレスD00-D31との間のマッピング関係を例示する。
【図５】本発明の一実施形態によるメモリセルアレイのプログラミング方法を例示するフローチャートである。
【発明を実施するための形態】
【００１３】
図１はメモリデバイス１００のブロック図である。本実施形態で提供されるメモリデバイス１００は、NORキャッシュメモリとすることができる。図１に示す各要素は、主として、PGMパルス動作をメモリセルに実施するように構成される。メモリデバイス１００は、メモリセルアレイ１１０、選択スイッチ１２０、行デコーダ１３０、電圧発生器１４０、及び、制御論理回路１６０を含む。メモリデバイス１００は、列デコーダ１３５及びデータバッファ１５０も含む。
【００１４】
メモリセルアレイ１１０は複数のメモリセルを含む。選択スイッチ１２０は、メモリセルアレイ１１０に連結される。本実施形態において、選択スイッチ１２０は、行選択スイッチとすることができ、複数のパススイッチ（図１において、トランジスタM1及びM2の形で実装される）を備えることができ、各パススイッチは１つのデータパスに対応する。列デコーダ１３５は、ワードラインWLをメモリセルアレイ１１０へ供給するために、メモリセルアドレスAdrを受信する。行デコーダ１３０は選択スイッチ１２０に連結される。行デコーダ１３０は、アドレス制御信号を生成するために、メモリセルアドレスAdrを受信する。本実施形態において、アドレス制御信号は、Y0-Y3として例示される。電圧発生器１４０は、入力データ信号を各パススイッチへ供給するために、選択スイッチ１２０に連結される。本実施形態において、入力データ信号はHVDIN0-VDIN7として例示される。電圧発生器１４０は、高電圧（HV）回路ということもできる電圧ポンプ回路の形で実装することができる。
【００１５】
データバッファ１５０は、入力データDataを受信し、一時的に記憶するように構成される。制御論理回路１６０は、入力データ信号HVDIN0-VDIN7を生成するために、外部から供給されるコマンドCMDにより、データバッファ１５０及び電圧発生器１４０を制御する。本実施形態において、データバッファ１５０は、コマンドCMDを受信し、一時的に記憶することもできる。選択スイッチ１２０は、ビットラインBLをメモリセルアレイ１１０へ供給するために、アドレス制御信号Y0-Y3及び入力データ信号HVDIN0-VDIN7により制御される。
【００１６】
以下の実施形態をより良く説明するために、本実施形態において提供される「データパスDP」は、以下のステップを含むように画定される。（１）入力データDataはメモリデバイス１００に入力され、データバッファ１５０に一時的に記憶され、（２）制御論理回路１６０は、コマンドCMDにより、データバッファ１５０に一時的に記憶された入力データDataを、順次、電圧発生器１４０へ転送し、（３）電圧発生器１４０は、論理ドメインにある入力データDataを高電圧ドメインの入力データ信号（例えば、HVDIN0-VDIN7）に変換し、入力データ信号は選択スイッチ１２０のデータ入力端子へ供給され、（４）PGMパルス動作がその上に実施されるべきメモリセルは、入力データ信号により生成されるビットラインBLにプログラミングバイアス動作を実施する。PGMパルス動作が、特定のメモリセルの上に実施されるべき場合、特定のメモリセルに対応する入力データ信号は、高電圧信号であり、そうでなければ、対応する入力データ信号は０ボルト（V）にある。本実施形態において、「制御パスCP」は、以下のステップを含むように画定される。（１）行デコーダ１３０はメモリセルアドレスAdrを取得し、（２）行デコーダ１３０は、選択スイッチ１２０のいくつかのパススイッチが入れられるように制御するために、メモリセルアドレスAdrをデコードし、それにより、パススイッチに対応する入力データ信号をパススイッチを通して送信することができ、特定のメモリセルに達することができる。
【００１７】
PGMパルス動作が、プログラミング動作に費やされる全時間に、どのように影響を与えるかは、以後、詳しく述べる。NORフラッシュメモリにおいて、同時にプログラムすることができるメモリセルビットの数は、電流に対する電圧発生器１４０の駆動機能により、決定される。メモリセルで実施されるプログラミング動作は、メモリセルを駆動するための大量の電流を必要とする。しかしながら、電流に対する限定駆動機能により、電圧発生器１４０は多くの数のメモリセルを駆動することができない。したがって、制御論理回路１６０は、動作が完了するまで、メモリセルへのプログラミング動作を分離して部分的に実施するように、入力データDataを、順次、配列するために、適用されることがよくある。すなわち、制御論理回路１６０は、プログラミング動作に費やされる時間を決定するように、データパススキームにより、データパスDPのデータパスシーケンスを配列する。本実施形態において提供される「ポンプ容量」は、電圧発生器１４０により、プログラムされるべきメモリセルに同時に実施されるPGMパルス動作のビットの数である。
【００１８】
図２は、図１に示すメモリデバイス１００のいくつかの要素の詳細な回路を例示する。図２を見るに、メモリセルアレイ１１０に３２個のプログラムされるべきメモリセルがあり、選択スイッチ１２０は複数のデータパスグループ１２１〜１２８（すなわち、８個のデータパスグループ）を有し、各データパスグループは複数のパススイッチ（すなわち、４個のパススイッチ）から成ると、想定される。アドレス制御信号Y0-Y3の内の１つのビットの数（すなわち、４）は、１つのデータパスグループの中のパススイッチの数（すなわち、４）に等しい。メモリセルアレイ１１０にプログラムされるべきメモリセルの数（すなわち、３２）は、１つのデータパスグループの中のパススイッチの数（すなわち、４）に、データパスグループの数（すなわち、８）を掛けることにより、得られる積に等しい。データパスグループ１２１〜１２８の数（すなわち、８）は、ポンプ容量（すなわち、２）より大きい。
【００１９】
本実施形態において、プログラムされるべきメモリセルの上で、同時に実施されるPGMパルス動作のビットの数は２である。すなわち、電圧発生器１４０のポンプ容量は２である。例えば、第１のPGMパルス動作をメモリセルcA及びメモリセルcB上で実施する必要がある場合、入力データ信号HVDIN0及びHVDIN7に対応する信号を供給すべきである（例えば、プログラミング動作をメモリセル上で実施する必要がある場合、入力データ信号は高電圧信号であり、プログラミング動作をメモリセル上で実施する必要がない場合、入力データ信号は０Vにおいてである。）。加えて、データパスグループ１２１及び１２２における特定のパススイッチは、アドレス制御信号Y0により、入れるように制御され、したがって、PGMパルス動作を実施するために、図２の矢印２１０及び２２０により示されるような方法で、入力データ信号HVDIN0及びHVDIN7は、メモリセルcA及びcBへ送信される。すなわち、３２ビットのメモリセル上でのPGMパルス動作を完了するために、PGMパルス動作は、１６回、実施する必要がある。
【００２０】
表１は、PGMパルス動作を３２ビットのメモリセル上で、１６回、実施する間の制御パスシーケンス及びデータパスシーケンスを示す。「制御パスシーケンス」は、アドレス制御信号により、いくつかのパススイッチを入れる順序を示し、「データパスシーケンス」は、入力データ信号を入力する順序を示す。
【表１】
2019204570.tif 000003
【００２１】
図１のメモリデバイス１００は、３２ビットのメモリセル上にPGMパルス動作を一つずつ実施することを、表１から知ることができる。データパススキームにおいて、対応する制御パスシーケンス及び対応するデータパスシーケンスが、受信したメモリセルアドレスAdr及び入力データDataの順序により、生成することができる限り、図１に示す行デコーダ１３０及び制御論理回路１６０は、制御パスCPの制御パスシーケンス及びデータパスDPのデータパスシーケンスを調整するために、入力データDataを参照する必要はない。
【００２２】
しかしながら、プログラミング動作を必要としない多くのメモリセルは、以後、詳しく述べる、プログラミング動作を、なお、受けるため、前記データパススキームは、非常に多くの時間を費やす。データをフラッシュメモリに書き込む順序により、全フラッシュメモリデバイスのメモリセルを論理値「１」としてリセットするために、消去動作が実施され、いくつかのメモリセルのビットを論理値「０」へ変えるように、プログラミング動作をメモリセルの上に実施する。すなわち、３２ビットメモリセルの上に、毎回、プログラミング動作を実施する必要はない。
【００２３】
例えば、プログラミング動作が、図２に示すメモリセルcAの上で実施する必要はあるが、メモリセルcBはプログラムされる必要はない場合、PGMパルス動作を初めて実施しながら（すなわち、PGMパルス動作を実施する回数は１）、電圧発生器１４０は、なお、高電圧データを入力データ信号HVDIN0へ送信し、０Vを入力データ信号HVDIN1へ送信する。
【００２４】
加えて、多様な入力データDataは、動作中の電圧発生器１４０の効率に影響する。例えば、表１によるデータパススキームにおいて、PGMパルス動作を実施するために、入力データDataのビットの配置により、各メモリセルが、電圧発生器１４０により電流を供給されることを要求するかどうかは、考慮されない。メモリセルの物理アドレスと論理アドレスとの間の特定のマッピング関係は、以下の実施形態において述べる。ここでは、例えば、物理アドレスB0及びB1と論理アドレスD00及びD08に対応するビット値を取り込む。入力データDataの論理アドレスD00及びD08に対応する２つのビット値が、共に論理値「１」である場合、高電圧信号は必要ではないため、電圧発生器１４０の利用率は０である。入力データDataの論理アドレスD00又は論理アドレスD08に対応するビット値の内の１つが、論理値「０」であり、かつ、他のビット値が論理値「１」である場合、電圧発生器１４０の利用率は５０％である。入力データDataの論理アドレスD00及びD08に対応する２つのビット値が、共に論理値「０」である場合、電圧発生器１４０の利用率は１００％に達する。言い換えれば、電圧発生器１４０の利用率は１００％に達しない限り、PGMパルス動作を実施するのに費やす時間は無駄である。
【００２５】
図３は、本発明の一実施形態によるメモリデバイス３００のブロック図である。図１と図３との間の差異は、図１に示す制御論理回路１６０が、図３に示すメモリコントローラにより置き換えられていることにある。図３に示すメモリコントローラ３６０は、データバッファ１５０及び電圧発生器１４０だけでなく、行デコーダ１３０にも連結されている。本実施形態において、メモリコントローラ３６０は、直接、入力データData及びコマンドCMDを読むことができ、データバッファ１５０から必要な入力データDataも読むことができる。言い換えれば、メモリコントローラ３６０及びデータバッファ１５０は、双方向で、接続することができ、したがって、メモリコントローラ３６０は、入力データDataを読み、一時的に記憶するために、データバッファ１５０を制御することができる。メモリセルアレイ１１０のメモリセルの上のプログラミング動作を実施するように、図３に示すメモリコントローラ３６０は、アドレス制御信号Y0-Y3の制御パスシーケンスを調整するために、入力データDataにより行デコーダ１３０を制御し、メモリコントローラ３６０は、入力データDataにより、入力データ信号HVDIN0-HVDIN7のデータパスシーケンスを調整するために、電圧発生器１４０を同時に制御する。メモリコントローラ３６０は、論理回路、マイクロプロセッサまたは同種のものなどの制御装置の形で実装することができる。
【００２６】
図１に示すメモリデバイス１００を図３に示すメモリデバイス３００と比較する場合、図１に示す制御論理回路１６０はデータパスDPを制御することができるだけである。対照的に、図３に示すメモリコントローラ３６０は、データパスシーケンス及び制御パスシーケンスの内容を再配置するために、入力データDataのビットデータにより、データパスDP及び制御パスCPを同時に制御することができる。それにより、プログラミング動作を必要とするメモリセルは、その動作を受けることができ、プログラミング動作を必要としないメモリセルは、その動作をスキップする。そのように、プログラミング動作に費やす時間を低減するように、メモリデバイス３００において、プログラミング動作を実施する回数を低減することができる。本発明の範囲及び精神をカバーすることができる実施形態を以後、提供し、本実施形態を適用する人々は、彼らのニーズにより、以下の実施形態に必要な調整をすることができる。
【００２７】
ここで、メモリセルの物理アドレスと論理アドレスとの間のマッピング関係を述べる。図４は、メモリセルの物理アドレスBit00-Bit32と論理アドレスD00-D31との間のマッピング関係を例示する。図４に示すように、キャッシュメモリデバイスの適用に基づいて、メモリセルの物理アドレスは、メモリセルの論理アドレスと異なる。メモリセルに順次にアクセスすることを意図する場合、アクセス速度は過度に遅い。よって、本実施形態において、プログラムされるべきメモリセル（すなわち、３２ビットのメモリセル）は、プログラムされるべきメモリセルのデータパスグループ１２１−１２８の数（すなわち、８つ）及び物理アドレスBit00-Bit32により、複数のメモリセルグループ（すなわち、８つのメモリセルグループG1-G8）に分類される。メモリセルグループG1-G8の各々は、それぞれ、データパスグループ１２１−１２８の内の１つに対応する。プログラムされるべきメモリセルの物理アドレスと論理アドレスとの間のマッピング関係は、以下のとおりである。i番目のメモリセルグループのj番目のメモリセルの物理アドレスは、［（i−１）×４＋（j−１）］であり、i番目のメモリセルグループのj番目のメモリセルの論理アドレスは、［（j−１）×８＋（i−１）］であり、i及び jは正の整数であり、iはデータパスグループ１２１−１２８の数（すなわち、８つ）以下であり、jはデータパスグループの内の１つのパススイッチの数（すなわち、４つ）以下である。例えば、第１のメモリセルグループの第１のメモリセルの物理アドレスはBit00（“０×８＋０”）であり、その論理アドレスはD00（“０×８＋０”）であり、第３のメモリセルグループの第１のメモリセルの物理アドレスはBit08（“２×４＋０”）であり、その論理アドレスはD02（“０×８＋２”）であり、第５のメモリセルグループの第３のメモリセルの物理アドレスはBit18（“４×４＋２”）であり、その論理アドレスはD20（“２×８＋４”）である。メモリセルグループG1-G8のメモリセルの論理アドレスD00- D31は、入力データDataの論理アドレスと同じである。
【００２８】
図３のメモリコントローラ３６０により用いられるデータパススキームは、本発明の実施形態で説明するPGMパルス動作を実施するために、図５を参照して説明する。図５は、本発明の一実施形態によるメモリセルアレイのプログラミング方法を例示するフローチャートである。ここで、（1111-1110-1111-1100-1111-0010-1111-1100）に等しい入力データData [31：0] を例として取り込む。例えば、ビットData[0]、Data[8]、Data[16]、Data[24]、Data[1]、Data[17]、Data[10]及びData[11]は、全て論理値“０”であり、入力データDataの他のビットは論理値“１”である。加えて、なお、Data[0]の論理アドレスはD00であり、ビットData[1] の論理アドレスはD01であり、その他はそれらから推定することができる。
【００２９】
図３及び図５を参照するに、ステップＳ５１０において、メモリコントローラ３６０は、初期化を実施し、第１のメモリセルグループG1を、以下のステップでサーチすべきメモリセルグループとして設定する。すなわち、メモリコントローラ３６０は、第１のメモリセルグループG1を示すために、iを１として（i＝１）設定する。
【００３０】
メモリコントローラ３６０は、次いで、入力データDataの中で、特定の値を有する少なくとも１つの第１のビットをサーチし、少なくとも１つの第１のビットは、メモリセルグループのメモリセルの論理アドレスに対応し、特定の値は、プログラミング動作が必要であることを示す。例えば、ステップＳ５２０において、サーチすべきメモリセルグループは、ステップＳ５１０に先立って、第１のメモリセルグループG1として設定するため、メモリコントローラ３６０は、第１のメモリセルグループG1のメモリセルの論理アドレス（すなわち、論理アドレスD00、D08、D16及びD24）に対応する入力データDataのビット（すなわち、Data[0]、Data[8]、Data[16] 及びData[24]）が、プログラミング動作が必要であることを示す特定の値（すなわち、論理値“０”）を有するかどうかを決定する。ステップＳ５３０において、第１のメモリセルグループG1のメモリセルの論理アドレスD00、D08、D16及びD24に対応する入力データDataのビット、Data[0]、Data[8]、Data[16] 及びData[24]のどれも、特定の値を有しないかどうかを、メモリコントローラ３６０は決定する。第１のメモリセルグループG1のメモリセルの論理アドレスD00、D08、D16及びD24に対応する入力データDataのビット、Data[0]、Data[8]、Data[16] 及びData[24]が論理値“０”ではなく、が論理値“１”であることを、メモリコントローラ３６０が決定する場合、ステップＳ５３０の後にステップＳ５３２が更に実施され、メモリコントローラ３６０はメモリセルグループが最後のメモリセルグループG8であるかどうかを決定する。すなわち、メモリコントローラ３６０はiが8かどうかを決定する。メモリセルグループが最後のメモリセルグループではない場合、ステップＳ５３２の後にステップＳ５３４が更に実施され、メモリセルグループの番号を表す値iに１を加え（すなわち、i++1）、再び、ステップＳ５２０が実施され、次のメモリセルグループ（すなわち、第２のメモリセルグループG2）のメモリセルの論理アドレス（すなわち、論理アドレスD01、D09、D17及びD25）にマッピングされる入力データDataのビットが、プログラミング動作が必要であることを示す特定の値（すなわち、論理値“０”）を有するかどうかを決定する。
【００３１】
特定のメモリセルグループ（すなわち、第１のメモリセルグループG1）のメモリセルの論理アドレスD00、D08、D16及びD24に対応する少なくとも１つの第１のビットから特定の値（すなわち、論理値“０”）を、メモリコントローラ３６０が、すでに、決定している場合、すなわち、ビットData[0]が論理値“０”である場合、ステップＳ５３０の後にステップＳ５４０が実施され、メモリコントローラ３６０は、少なくとも１つの第１のビットの数を数え、入力データDataの第１のビットの数が、電圧発生器のポンピング能力（すなわち、２）に達したかどうかを決定する。本実施形態において、論理アドレスD00及びD08に対応するビットData[0]及びData[8]が、共に、論理値“０”であるため、ビットData[0]及びData[8]は、共に、“第１のビット”に属し、“第１のビット”の数は２に達する。
【００３２】
入力データDataの第１のビットの数が、ポンピング能力（すなわち、２）に達する場合、ステップＳ５４０の後にステップＳ５６０が実施され、メモリコントローラ３６０は、特定のメモリセルグループG1に対応する特定のデータパスグループ１２１により、入力データ信号HVDIN0を設定し、入力データDataの第１のビット(すなわち、ビットData[0]及びData[8]) に対応する論理アドレスD00及びD08により、アドレス制御信号Y0及びY1を設定する。論理アドレスD00及びD08は、アドレス制御信号Y0及びY1にそれぞれ対応する。加えて、論理アドレスD00及びD08は、メモリセルの物理アドレスBit00及びBit01にそれぞれ対応する。この時、PGMパルス動作を実施する回数、制御パスシーケンス及びデータパスシーケンスは表２に示される。
【表２】
2019204570.tif 000004
【００３３】
ステップＳ５７０において、上記の表２に示すPGMパルス動作を実施する回数（すなわち、１）に対応する行のデータの設定されたアドレス制御信号Y0／Y1、並びに、設定された入力データ信号HVDIN0により、アドレス制御信号の制御パスシーケンスを調整するために、メモリコントローラ３６０は行デコーダ１３０を制御し、対応するメモリセル上のプログラミング動作を実施するように、入力データ信号のデータパスシーケンスを調整するために、メモリコントローラ３６０は、電圧発生器１４０を同時に制御する。ステップＳ５７０を完了した後に、ステップＳ５２０に戻り、さらに、メモリセル上のプログラミング動作を実施する。
【００３４】
本実施形態において、同一のメモリセルグループG1の入力データDataのビットData[16] 及びData[24]が、前記ステップＳ５２０、Ｓ５３０、Ｓ５４０、Ｓ５６０及びＳ５７０において与えられたように、また、論理値“０”であるため、設定された入力データ信号及び設定されたアドレス制御信号により、論理アドレスD16及びD24に対応する特定のデータパスグループG1及びメモリセル上で、プログラミング動作が実施される。論理アドレスD16及びD24は、メモリセルの物理アドレスBit02及びBit03にそれぞれ対応する。PGMパルス動作を実施する回数（すなわち、２）に対応する行のデータは、表２に追加され、以下の表３に示される。
【表３】
2019204570.tif 000005
【００３５】
ステップＳ５７０の後に、次いで、ステップＳ５２０が実施される。メモリセルグループG1の各メモリセルは、PGMパルス動作を受けるため、メモリコントローラ３６０は、次のメモリセルグループ（すなわち、第２のメモリセルグループG2）のメモリセルの論理アドレス（すなわち、論理アドレスD01、D09、D17及びD25）に対応する入力データDataのビット（すなわち、Data[1]、Data[9]、Data[17] 及びData[25]）が、プログラミング動作が必要であることを示す特定の値（すなわち、論理値“０”）を有するかどうかを決定する。
【００３６】
メモリコントローラ３６０が、メモリセルグループG2のメモリセルの論理アドレスD0及びD17に対応する入力データDataのビットData[1] 及びData[17]が、論理値“０”であることを決定するため、ステップＳ５３０及びＳ５４０の後に、ステップＳ５４０が実施され、メモリコントローラ３６０は、第１のビット（ビットData[1] 及びData[17]）の数を２まで数える。ステップＳ５４０及びＳ５６０の後にステップＳ５７０が実施され、メモリコントローラ３６０は、特定のメモリセルグループG2に対応する特定のデータパスグループ１２２により、入力データ信号HVDIN01を設定し、入力データDataの第１のビット(すなわち、ビットData[1]及びData[17]) に対応する論理アドレスD01及びD17により、アドレス制御信号Y0及びY3を設定する。論理アドレスD01及びD17は、アドレス制御信号Y0及びY3にそれぞれ対応する。メモリコントローラ３６０は、次いで、以下の表４のPGMパルス動作を実施する回数（すなわち、３）に対応する行のデータにより、特定のメモリセルグループG2及び論理アドレスD01及びD17に対応する、メモリセル上のプログラミング動作を実施する。論理アドレスD01及びD17は、物理アドレスBit04及びBit06にそれぞれ対応する。
【表４】
2019204570.tif 000006
【００３７】
ステップＳ５２０に戻る。メモリコントローラ３６０は、メモリセルグループG2のメモリセルの論理アドレス（すなわち、論理アドレスD25）に対応する入力データDataのビット（すなわち、Data[25]）が、プログラミング動作が必要であることを示す特定の値（すなわち、論理値“０”）を有するかどうかを決定する。ビットData[25]が論理値“０”ではなく、対応するメモリセルグループG2のメモリセルの入力データDataのビットは、全て、サーチされたため、ステップＳ５３０及びＳ５３２の後にステップＳ５３４が、次いで、実施され、メモリセルグループを表す数値iに１を加え（すなわち、i＝３）、ステップＳ５２０に戻る。
【００３８】
メモリコントローラ３６０は、メモリセルグループG3のメモリセルの論理アドレス（すなわち、論理アドレスD02、D10、D18及びD26）に対応する入力データDataのビット（すなわち、Data[2]、Data[10]、Data[18] 及びData[26]）が、特定の値（すなわち、論理値“０”）を有するかどうかを決定する。メモリコントローラ３６０は、ビットData[2]、Data[10]、Data[18] 及びData[26]の内のビットData[10]のみが論理値“０”であることを決定するため、ステップＳ５３０の後にステップＳ５４０が実施され、メモリコントローラ３６０は、第１のビットの数を数え、入力データDataの第１のビットの数が、電圧発生器のポンピング能力（すなわち、２）に達したかどうかを決定する。本実施形態において、メモリセルグループG3の論理アドレスに対応するビットData[10]のみが、“第１のビット”である。ここで、入力データDataの第１のビットの数が電圧発生器のポンピング能力（すなわち、２）に達しない場合、ステップＳ５４０の後にステップＳ５５０が実施され、他のメモリセルグループ（すなわち、メモリセルグループG4〜G8）から、特定のメモリセルグループ（すなわち、メモリセルグループG3）の第１のビット（すなわち、Data[10]）のアドレス制御信号Y1と同一であるアドレス制御信号を有する第２のビットを、メモリコントローラ３６０がサーチする。本実施形態において、ビットData[10]に対応するアドレス制御信号はY1であり、したがって、メモリセルグループG4〜G8において、同じアドレス制御信号Y1を有し、特定の値（論理値“０”）を有することが必要である、ビットを、メモリコントローラ３６０はサーチする。そのように、メモリセルグループG4内のビットData[11]が見出される。
【００３９】
メモリコントローラ３６０が、他のメモリセルグループ（例えば、メモリセルグループG4）から、第２のビット（すなわち、Data[11]）を見出すとき、ステップＳ５５０の後にステップＳ５６２が実施され、後続のPGMパルス動作が第２のビットに繰り返し実施されることを防ぐように、メモリコントローラ３６０は第２のビットを記録する。ステップＳ５６２の後に、次いで、ステップＳ５６５が実施され、メモリコントローラ３６０は、特定のメモリセルグループG3に対応する特定のデータパスグループ１２３及び他のメモリセルグループG4に対応する別のデータパスグループ１２４により、入力データ信号HVDIN02及びHVDIN3を設定し、かつ、入力データDataの第１のビット（すなわち、Data[10]）に対応する論理アドレスD10により、アドレス制御信号Y1を設定する。単一のアドレス制御信号Y1を設定する理由は、ビットData[10]及びビットData[11]に対応するアドレス制御信号がY1であるからである。すなわち、ビットData[10]及びData[11]はアドレス制御信号Y1を共有する。
【００４０】
この時点で、PGMパルス動作を実施する回数、制御パスシーケンス及びデータパスシーケンスを表５に示す。
【表５】
2019204570.tif 000007
【００４１】
以下の表５のPGMパルス動作を実施する回数（すなわち、４）に対応する行のデータにより、設定された入力データ信号HVDIN2/HVDIN3及び設定されたアドレス制御信号Y1に対応するメモリセル（物理アドレスBit09/Bit13を有する）の上に、メモリコントローラ３６０は、PGMパルス動作を実施する。
【００４２】
ステップＳ５２０に戻る。メモリセルグループG5-G8の論理アドレスに対応する入力データDataのビットが全て論理値“１”であるため、これらのビットに対応するメモリセルはPGMパルス動作を受ける必要はない。したがって、ステップＳ５３０、Ｓ５３２及びＳ５９０が実施された後に、メモリセルアレイ１１０上のプログラミング動作が終了する。
【００４３】
上記の実施形態は、ステップＳ５５０において、第２のビットが見出されない状態を開示していないが、これについては、以下で説明する。ビットData[11]が、前述の実施形態で述べた論理値“０” の代わりに、論理値“１”であると仮定する。メモリセルグループG3に対応する入力データDataのビットData[10]が、すでに見出され、かつ、ステップＳ５５０が実施される場合、他の以下のメモリセルグループ（すなわち、メモリセルグループG4-G8）から、メモリコントローラ３６０は、特定のメモリセルグループ（すなわち、メモリセルグループG3）の第１のビット（すなわち、Data[10] ）のアドレス制御信号Y1に同一のアドレス制御信号を有する第２のビットをサーチする。しかしながら、メモリセルグループG4からG8の論理アドレスに対応する入力データDataのビットが全て論理値“１”であるため、第２のビットは見出されない。したがって、ステップＳ５５０の後に、次いで、ステップＳ５６０が実施され、メモリコントローラ３６０は、特定のメモリセルグループG3に対応する特定のデータパスグループ１２３により、入力データ信号HVDIN02を設定し、入力データDataの第１のビット(すなわち、Data[10]) に対応する論理アドレスD10により、アドレス制御信号Y1を設定する。
【００４４】
この時点で、PGMパルス動作を実施する回数、制御パスシーケンス及びデータパスシーケンスを表６に示す。
【表６】
2019204570.tif 000008
【００４５】
ステップＳ５７０において、以下の表６のPGMパルス動作を実施する回数（すなわち、４）に対応する行のデータにより、特定のメモリセルグループG3及び論理アドレスD10(第１のビットData[10] に対応する）に対応するメモリセル（物理アドレスBit09を有する）の上に、メモリコントローラ３６０はPGMパルス動作を実施する。
【００４６】
前の実施形態により、メモリセルアレイ１１０のプログラムされるべきメモリの上にPGMパルス動作を実施する、より少ない回数が必要とされ、例えば、図１に示すメモリデバイス１００はPGMパルス動作を実施する１６の回数が必要とされ、一方、図３に示し、表５又は表６に与えられるメモリデバイス３００は、PGMパルス動作を実施する４の回数が必要とされ、それにより、図３に示す電圧発生器１４０の使用率を最大にする。
【００４７】
要約すれば、１つ以上の実施形態で提供されるメモリデバイスのメモリコントローラは、データバッファの入力データ（すなわち、アドレス制御信号の制御パスシーケンス）により、データパスを作動させるシーケンスを再配置し、データパスのデータ供給シーケンス（すなわち、入力データ信号のデータパスシーケンス）を同時に再配置する。それにより、プログラミング動作を必要とするメモリセルは、そのような動作を受けることができ、そのような動作を必要としないメモリセルは、飛ばされる。そのように、プログラミング動作に費やされる時間を低減するように、メモリデバイスのプログラミング動作を実施する回数を低減することができる。
【００４８】
様々な変更および修正を、本発明の範囲および精神から離脱せずに、開示した実施形態に行うことができることは、当業者に明らかであろう。前述に鑑みて、以下の特許請求の範囲及びそれらの均等物の範囲内にあるならば、本発明は変更および修正に及ぶことを意図している。
【産業上の利用可能性】
【００４９】
メモリデバイス及びメモリセルアレイのプログラミング方法は、記憶装置又は電子装置に適用することができる。
【符号の説明】
【００５０】
１００、３００    メモリデバイス
１１０    メモリセルアレイ
１２０    選択スイッチ
１２１〜１２８    データパスグループ
１３０    行デコーダ
１３５    列デコーダ
１４０    電圧発生器
１５０    データバッファ
１６０    制御論理回路
２１０、２２０    矢印
３６０    メモリコントローラ
Ｓ５１０〜Ｓ５９０    ステップ
Adr    メモリセルアドレス
Data    入力データ
Y0-Y3    アドレス制御信号
【図１】
2019204570.tif 000009
【図２】
2019204570.tif 000010
【図３】
2019204570.tif 000011
【図４】
2019204570.tif 000012
【図５】
2019204570.tif 000013
【外国語明細書】
2019204570000001.pdf