(57)【要約】  半導体記録装置において，ページライト時に’０’ライトを行うビット数が少ない場合においても，’０’ライトを行うビット数が多い場合と同程度のライト時間を要する。’０’ビットの数をカウントするポピュレーションカウンタを設ける。また，ライトドライバを複数のサブライトドライバに分割する。その上で，’０’ライトビット数が最大同時ライトビット数以下になる範囲で最大限多くのサブライトドライバを駆動する。
2016042665.tif 000002
【特許請求の範囲】
【請求項１】
電気抵抗の違いにより，第１の記憶状態と第２の記憶状態を設定可能な複数のメモリセルと，
前記複数のメモリセルの一部である所定数の前記メモリセルを一つのライト単位として，当該ライト単位のメモリセルに書き込み（ライト）、消去、およびベリファイライトの少なくとも一つ（以下「セット」という）を行う際に，複数の前記ライト単位において，前記記憶状態が変更される個数の数を計算するカウンタ回路を有し，
前記カウンタ回路の計算結果を基に，前記個数の数が所定数以下になる範囲で前記ライト単位が１個，もしくは，複数個，選択され，
前記選択された１個，もしくは，複数個のライト単位のデータが一括してセットされることを特徴とする半導体記憶装置。
【請求項２】
前記カウンタ回路によるカウントと前記セットが，同時に実行されることを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記カウンタ回路の処理時間が下記の式を満たすことを特徴とする請求項１に記載の半導体記憶装置。
セット時間  ＞  カウンタ回路の処理時間  ×  最大同時駆動セット単位数
【請求項４】
前記ライト単位でセットされる複数の前記メモリセルが，メモリアレイ中の互いに隣接していない場所に分散され配置していることを特徴とする請求項１に記載の半導体記憶装置。
【請求項５】
複数の記憶状態を保持可能な，複数のメモリセルと，
前記複数のメモリセルのうち所定数のメモリセルと接続され，当該所定数のメモリセルの記憶状態を変更可能な複数のサブライトドライバと，
前記サブライトドライバにデータを入力するための入力経路と，
前記複数のサブライトドライバが，前記入力されるデータに基づいて，前記所定数のメモリセルのうち記憶状態を変更すべき個数をカウントする，カウンタを有し，
前記カウンタのカウント結果に基づいて，前記複数のサブライトドライバの動作タイミングを制御する半導体記憶装置。
【請求項６】
前記カウンタは，前記複数のサブライトドライバ毎に，順次前記記憶状態を変更すべきメモリセルの個数をカウントし，カウント結果を加算していき，
前記加算されたカウント結果が，ｎ番目（ｎは自然数）のサブライトドライバで第１の所定閾値を超えた場合には，ｎ-１番目までのサブライトドライバを一括して動作させる請求項５記載の半導体記憶装置。
【請求項７】
前記加算されたカウント結果が，ｎ番目（ｎは自然数）のサブライトドライバで前記第１の所定閾値を超えない場合であっても，ｎが第２の所定閾値に達した場合には，ｎ番目までのサブライトドライバを一括して動作させる請求項６記載の半導体記憶装置。
【請求項８】
前記ｎ-１番目までのサブライトドライバを一括して動作させている間に，ｎ番目以降の前記サブライトドライバについてのカウントを並行して行う請求項６記載の半導体記憶装置。
【請求項９】
前記サブライトドライバと接続されている前記所定数のメモリセルは，分散配置されている請求項１記載の半導体記憶装置。
【請求項１０】
半導体記憶装置と，前記半導体記憶装置を制御するコントローラを有し，
前記半導体記憶装置は，
電気抵抗の違いにより複数の記憶状態を保持可能な，複数のメモリセルと，
前記複数のメモリセルのうち所定数のメモリセルと接続され，当該所定数のメモリセルの記憶状態を変更可能な複数のサブライトドライバと，
前記サブライトドライバにデータを入力するために前記コントローラとの通信を行うインタフェースと，
前記複数のサブライトドライバが，前記入力されるデータに基づいて，前記所定数のメモリセルのうち記憶状態を変更すべき個数をカウントする，カウンタを有し，
前記コントローラは，
前記半導体記憶装置および上位装置と通信を行うためのＩ／Ｏ部と，
前記半導体記憶装置へのデータの書き込み，消去，およびベリファイの少なくとも一つを制御する制御部を有し，
前記カウンタのカウント結果に基づいて，前記複数のサブライトドライバの動作タイミングを制御するストレージ装置。
【請求項１１】
前記カウンタは，
前記複数のサブライトドライバ毎に，順次前記記憶状態を変更すべきメモリセルの個数をカウントし，カウント結果を加算していき，
前記加算されたカウント結果が，ｎ番目（ｎは自然数）のサブライトドライバで第１の所定閾値を超えた場合には，ｎ-１番目までのサブライトドライバを一括して動作させる請求項１０記載のストレージ装置。
【請求項１２】
前記コントローラは，
前記上位装置から受信したデータの第１の値と第２の値を反転させて，前記半導体記憶装置の前記メモリセルに反映する制御を行う請求項１０記載のストレージ装置。
【請求項１３】
データの書き込みにおいて，
前記サブライトドライバは，全て第１の値に設定して消去済の前記所定数のメモリセルのうち，所定のメモリセルの状態を第１の値から第２の値に変更するデータ書き込みを行うものとし，
前記カウンタは，前記第１の値から前記第２の値に変更するメモリセルの個数をカウントする請求項１０記載のストレージ装置。
【請求項１４】
データ書き込み後に記憶データの検証を行い，誤りがある場合のベリファイライトにおいて，
前記サブライトドライバは，第１の値から第２の値に変更すべきメモリセルのうち，正しく前記第２の値に変更されていないメモリセルを，再度前記第２の値に変更するベリファイライトを行うものとし，
前記カウンタは，前記正しく第２の値に変更されていないメモリセルの個数をカウントする請求項１０記載のストレージ装置。
【請求項１５】
データの書き込みまたは消去において，
前記サブライトドライバは，前記入力されたデータに基づいて，所定のメモリセルの状態を変更するデータ書き込みまたは消去を行うものとし，
前記カウンタは，現在のメモリセルの状態に基づいたデータと，前記入力されたデータを比較し，前記入力されたデータに基づいてデータ書き込みまたは消去を行うために，第１の値から第２の値に変更するべきメモリセルの個数をカウントする請求項１０記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，半導体記憶装置及びそれを用いたストレージ装置に関し，特に電気的に書き換え可能な不揮発性メモリ，例えば相変化メモリ，ＲｅＲＡＭ（抵抗変化型メモリ），ＳＴＴ−ＭＲＡＭ（スピン注入磁化反転型抵抗変化メモリ）に適用して有効な技術に関するものである。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２０１０−１８２３７３号公報（特許文献１）がある。この公報には，課題として「トータルの書き込み電流量を減らしながらプログラムスループットを向上する。」とあり，さらに，解決手段として「メモリセルの駆動回路は、Ｎビットに対応するメモリセルを一つの書き込みセル単位としてデータのベリファイ書き込み動作のサイクルを、全セルが検証パスとなるまで繰り返す。このとき、検証にパスしていないメモリセルを動作対象として、複数のベリファイ書き込み動作を同時に実行する。」と記載されている（要約参照）。さらに「このような制御が可能なことは、図４に示すような制御性の高さをもつメモリセルでは、検証時におけるパスの確率（プログラム成功率）をほぼ一定とすることができるからである。」と記載されている（００６１項参照）。【０００３】
また，特開２００７−１８８５５２号公報（特許文献２）がある。この公報には，課題として「一括ベリファイ処理の所要時間を短縮化でき、バッファ書き込みを高速化できる半導体記憶装置を提供する。」とあり，さらに，解決手段として，「アドレス領域内のメモリセルに書き込み処理を実行することと、複数アドレスのベリファイ動作を一括して行なう一括ベリファイ処理を実行することと、一括ベリファイ処理と書き込み処理とを繰り返すこととを行なう半導体記憶装置であって、各アドレスに未書き込みメモリセルを含むか否かを検出する検出手段を備え、一括ベリファイ処理の少なくとも一部において、１回以上前のベリファイ処理で未書き込みメモリセルを含まないと判定されたアドレスの少なくとも一部を除外してベリファイ処理を実行することを特徴とする。」ことが記載されている。【０００４】
さらに，相変化メモリを不揮発性メモリとして用い，複数ビットをチェーン状に直列接続することで大容量の半導体記憶装置を作製する技術が知られている（例えば，特許文献３を参照）。この公報には，「ダイオードとトランジスタとを直列接続した半導体メモリにおいて、ダイオードからトランジスタにキャリアが入ることで、トランジスタの特性が劣化する課題がある。」と記載されている（要約参照）。また，段落００４４には，「このようなトランジスタと相変化素子が並列接続されたメモリセルが直列に接続されたセル、すなわちチェインセルでは、例えば以下のような動作が行われる」と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１８２３７３号公報
【特許文献２】特開２００７−１８８５５２号公報
【特許文献３】特開２０１２−６９８３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
発明者らが抵抗変化型メモリ，特に相変化メモリに関して詳細に検討したところ，下記の知見が得られた。特許文献１に記載されたＮＯＲ型フラッシュメモリなどの電荷の逐次的注入が可能な電荷蓄積型と異なり，相変化メモリのプログラム成功率はセル毎の特性ばらつきやセルの物理的な配置毎に異なる。従って特許文献１に記載された，ほぼ一定のプログラム成功率を前提とした制御方法を用いることが困難である。【０００７】
さらに，発明者らが半導体記憶装置に格納されるデータを詳細に検討したところ，下記の知見が得られた。例えば，サーバーからファイバチャネルにより構成されるストレージエリアネットワークを経由し，ストレージコントローラ装置に送られ，さらにＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）などを経由してＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）に送られる。ＳＳＤはＳＳＤコントローラと前記半導体記憶装置を有する。データはまず，ＳＳＤコントローラに送られ，次に半導体記憶装置に送られ，格納される。ここで，サーバーが送信するデータサイズは，セクターサイズの整数倍である。セクターサイズは５１２Ｂ，もしくは４ＫＢである。発明者の分析によるとサーバーが使用するデータサイズはセクターサイズ未満であることが多く，その場合，サーバーは必要なデータに，’０’もしくは’１’が連続するデータを追加するパディング処理を行い，セクターサイズ，もしくはセクターサイズの整数倍のデータに変換してから，送信する。そのため，ストレージコントローラ装置，もしくはＳＳＤコントローラには’０’，もしくは’１’の連続した部分を有するデータが送られることがある。このとき，ストレージコントローラ装置，もしくはＳＳＤコントローラ装置において，適切なデータ変換処理を行うことにより，半導体記憶装置に連続した’１’のデータを多く書き込むことが可能になる。一方，半導体記憶装置の消去状態の値を’１’とし，ライト後の値を’０’とすると，消去後の記憶素子の値は’１’であるから，’０’を書き込むよう指示されたときのみ，半導体記憶装置は記憶素子への’０’ライトを行えばよい。ところが，’１’の値が多く書き込まれたときと，’０’の値が多く書き込まれたときのライト速度は，前者の方が実際にメモリセルにライトするビットの数が少なく，ライト電流の合計が少ないにも関わらず同じであった。なお，ライトにおいて，’１’の値が多く書き込まれたときは，’０’にライトするビット数が少なく，’０’の値が多く書き込まれた場合に比べて，ライトにおける消費電力量は少ない。【０００８】
すなわち，半導体記憶装置に’１’の値を多くライトするよう制御が可能であるにも関わらず，’１’の値が多く書き込まれる場合においても，’０’の値が多く書き込まれる場合と比べて，ほぼ同程度のライト時間を要する課題がある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、電気抵抗の違いにより，’０’と’１’を記憶する複数のメモリセルと，所定数のメモリセルを一つのライト単位として，ライト単位にライトされる’０’ビットの数をカウントするカウンタ回路を有し，’０’ビットの数が所定数以下になる範囲でライト単位が１個，もしくは，複数個，選択され，データが一括してライトされることを特徴とする半導体記憶装置である。【００１０】
本発明の他の側面は、複数個のメモリセルからなるメモリアレイを備える半導体記憶装置であって、所定数（自然数である定数）のメモリセルに対して、データの書き込み（ライト）、消去、および、ベリファイライトのうち少なくとも一つをおこなう、サブライトドライバを複数備える。データの書き込み（ライト）、消去、ベリファイライト等は、所定の個数のメモリセルの状態を変更する点で同様の動作であるため，本明細書では簡略のため，メモリセルの状態の設定という意味で，これらを総称して「セット」ということがある。【００１１】
メモリセルは、少なくとも２つの状態を可逆的に変更可能であり、セット動作により所定の個数のメモリセルの其々の状態を維持または変更することにより，記憶するデータを維持または変更することができる。任意のメモリセルの状態を制御するために、典型的な例としては、メモリセルの選択トランジスタのゲート電極に接続されたローカル選択線を，メモリアレイ内のドライバにより駆動するものがあるが，これに限るものではない。【００１２】
２つの状態は、例えばデータの”１”と”０”に相当する。メモリセルの例えば高抵抗の状態と低抵抗の状態を、データの”１”と”０”のいずれに対応させるかは任意である。また、データの”１”と”０”を記録状態と消去状態おいずれに対応させるかも任意である。また、本発明は”１”と”０”だけでなく，３値以上のいわゆる多値を格納可能なメモリセルにも同様に適用可能である。【００１３】
典型的なメモリセルの例としては、材料の相変化、スピンの状態変化等のミクロの状態変化により、変化する抵抗値によって情報を蓄える構成のものがある。たとえば、相変化メモリ、ＲｅＲＡＭ、スピン注入磁化反転型メモリ等と称されるものである。【００１４】
データのセットに際しては、サブライトドライバ毎に、サブライトドライバがセットする所定数（通常は自然数である定数だが，サブライトドライバ毎に異なっていてもよい）のメモリセルのうちで、状態が変更されるメモリセルの数（自然数である変数）をカウントする。状態が変更されるメモリセルとは，記憶されるデータの観点からは”０”が”１”に変更されるもの、あるいは、”１”が”０”に変更されるもの等をいう。また、物理的な観点からは，メモリセルの抵抗値が変化すること等をいう。【００１５】
次に、状態が変更されるメモリセルの数の合計が所定値（自然数である定数）を超えないように、サブライトドライバを選択する。選択されるサブライトドライバは一つでも複数でもよい。こうして、選択したサブライトドライバにより、同時にセットを行う。ここで同時にとは、同じ制御信号により、選択したサブライトドライバを制御することを含む。また、同時に動作させるサブライトドライバ数に消費電力などから制限がある場合は、選択するサブライトドライバ数に上限（自然数である定数）を設けてもよい。【００１６】
本発明の他の一側面は，電気抵抗の違いにより，第１の記憶状態と第２の記憶状態を設定可能な複数のメモリセルと，複数のメモリセルの一部である所定数のメモリセルを一つのライト単位として，ライト単位のメモリセルに書き込み（ライト）、消去、およびベリファイライトの少なくとも一つ（以下「セット」という）を行う際に，複数のライト単位において，記憶状態が変更される個数の数を計算するカウンタ回路を有する。この，カウンタ回路の計算結果を基に，個数の数が所定数以下になる範囲でライト単位が１個，もしくは，複数個，選択され，選択された１個，もしくは，複数個のライト単位のデータが一括してセットされる。【００１７】
本発明のさらに他の一側面は，電気抵抗の違いにより，第１の記憶状態と第２の記憶状態を有する複数のメモリセルと，所定数のメモリセルを一つの消去単位として，消去単位において，消去される第１の記憶状態の数をカウントするカウンタ回路を有し，カウンタ回路の計算結果を基に，第１の記憶状態の数が所定数以下になる範囲で消去単位が１個，もしくは，複数個，選択され，選択された１個，もしくは，複数個の消去単位のデータが一括して消去されることを特徴とする半導体記憶装置である。【００１８】
なお，本明細書中で第１の記憶状態と第２の記憶状態といった場合には、第３以上の記憶状態を追加することも可能である。【００１９】
本発明のさらに他の一側面は，複数の記憶状態を保持可能な，複数のメモリセルと，複数のメモリセルのうち所定数のメモリセルと接続され，所定数のメモリセルの記憶状態を変更可能な複数のサブライトドライバと，サブライトドライバにデータを入力するための入力経路と，カウンタを有する。カウンタは，複数のサブライトドライバが，入力されるデータに基づいて，所定数のメモリセルのうち記憶状態を変更すべき個数をカウントする。そして，カウンタのカウント結果に基づいて，複数のサブライトドライバの動作タイミングを制御する。【００２０】
具体的な構成の一例では，カウンタは，複数のサブライトドライバ毎に，順次記憶状態を変更すべきメモリセルの個数をカウントし，カウント結果を加算していき，加算されたカウント結果が，ｎ番目（ｎは自然数）のサブライトドライバで第１の所定閾値を超えた場合には，ｎ-１番目までのサブライトドライバを一括して動作させる。【００２１】
好ましい態様では，加算されたカウント結果が，ｎ番目（ｎは自然数）のサブライトドライバで第１の所定閾値を超えない場合であっても，ｎが第２の所定閾値に達した場合には，ｎ番目までのサブライトドライバを一括して動作させる。【００２２】
さらに好ましい態様では，前記ｎ-１番目までのサブライトドライバを一括して動作させている間に，ｎ番目以降の前記サブライトドライバについてのカウントを並行して行う。並行してカウントするドライバは必ずしもｎ番目のドライバである必要はなく，ｎ番目のドライバのカウントが既に終わっているならば，ｎ＋１番目以降のドライバでもよい。【００２３】
本発明の他の一側面は，半導体記憶装置と，半導体記憶装置を制御するコントローラを有するストレージ装置である。ここで，半導体記憶装置は，電気抵抗の違いにより複数の記憶状態を保持可能な，複数のメモリセルと，複数のメモリセルのうち所定数のメモリセルと接続され，所定数のメモリセルの記憶状態を変更可能な複数のサブライトドライバと，サブライトドライバにデータを入力するためにコントローラとの通信を行うインタフェースと，複数のサブライトドライバが，入力されるデータに基づいて，所定数のメモリセルのうち記憶状態を変更すべき個数をカウントする，カウンタを有する。また，コントローラは，半導体記憶装置および上位装置と通信を行うためのＩ／Ｏ部と，半導体記憶装置へのデータの書き込み，消去，およびベリファイの少なくとも一つを制御する制御部を有し，カウンタのカウント結果に基づいて，複数のサブライトドライバの動作タイミングを制御する。【００２４】
好ましい態様では，コントローラは，上位装置から受信したデータの第１の値と第２の値を反転させて，半導体記憶装置のメモリセルに反映する制御を行うことができる。【００２５】
更に，上記のストレージ装置の具体的な動作の例としては，以下のものがある。【００２６】
データの書き込みにおいて，サブライトドライバは，全て第１の値に設定して消去済の所定数のメモリセルのうち，所定のメモリセルの状態を第１の値から第２の値に変更するデータ書き込みを行うものとし，カウンタは，第１の値から第２の値に変更するメモリセルの個数をカウントして，サブライトドライバの動作タイミングを制御する。【００２７】
データ書き込み後に記憶データの検証を行い，誤りがある場合のベリファイライトにおいて，サブライトドライバは，第１の値から第２の値に変更すべきメモリセルのうち，正しく第２の値に変更されていないメモリセルを，再度第２の値に変更するベリファイライトを行うものとし，カウンタは，正しく第２の値に変更されていないメモリセルの個数をカウントして，サブライトドライバの動作タイミングを制御する。【００２８】
データの書き込みまたは消去において，サブライトドライバは，入力されたデータに基づいて，所定のメモリセルの状態を変更するデータ書き込みまたは消去を行うものとし，カウンタは，現在のメモリセルの状態に基づいたデータと，入力されたデータを比較し，入力されたデータに基づいてデータ書き込みまたは消去を行うために，第１の値から第２の値に変更するべきメモリセルの個数をカウントして，サブライトドライバの動作タイミングを制御する。
【発明の効果】
【００２９】
ライトデータレートが高速で，ピーク消費電流量が低い半導体記憶装置を実現することができる。【００３０】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施の形態１による半導体記憶装置１０１の構成例を示すブロック図である。
【図２】本発明の実施の形態１によるライトシーケンス例を示す流れ図である。
【図３】本発明の実施の形態１によるサブライトドライバ番号とライト順の例を示す表図である。
【図４】本発明の実施の形態１によるポピュレーションカウンタとサブライトドライバの動作シーケンス例を示すシーケンス図である。
【図５】本発明の実施の形態１による半導体記憶装置１０１の構成例を示すブロック図である。
【図６】本発明の実施の形態１によるメモリアレイの構成例を示す平面図である。
【図７】本発明の実施の形態１によるメモリアレイの一部の回路構成例を示す回路図である。
【図８】本発明の実施の形態１によるＸ，Ｙ選択線の状態とメモリチェーンの選択状態例を示す表図である。
【図９】本発明の実施の形態１の例によるメモリアレイの一部の断面模式図である。
【図１０】本発明の実施の形態１の例によるメモリアレイの一部の平面模式図である。
【図１１】本発明の実施の形態１による動作シーケンス例を示すグラフ図である。
【図１２】本発明の実施の形態１による回路構成例を示す回路図である。
【図１３】本発明の実施の形態１によるライトシーケンス例を示す模式図である。
【図１４】本発明の実施の形態１による動作とＹ選択線のオン，オフ状態例を示す表図である。
【図１５】本発明の実施の形態１と比較するための回路構成例を示す回路図である。
【図１６】本発明の実施の形態１による半導体記憶装置１０１の構成例を示すブロック図である。
【図１７】本発明の実施の形態１による記憶素子の動作例を示すグラフ図である。
【図１８】本発明の実施の形態２による動作シーケンス例を示す流れ図である。
【図１９】本発明の実施の形態３による動作シーケンス例を示す流れ図である。
【発明を実施するための形態】
【００３２】
以下、実施例を図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００３３】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【００３４】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００３５】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【実施例１】
【００３６】
本実施例では、ポピュレーションカウンタ１０３を有する半導体記憶装置１０１の例を説明する。【００３７】
図１は本実施例による半導体記憶装置１０１の構成例を示すブロック図である。【００３８】
半導体記憶装置１０１は，’０’もしくは’１’のデータを送られ，その値を保持する。’２’や’３’を送ることで多値制御されることも可能である。多値制御の場合，データ転送速度が向上する利点がある。【００３９】
ここで，半導体記憶装置１０１に’１’の値を’０’に比べて相対的に多く送るようにする制御が可能である。もちろん，半導体記憶装置１０１の中で受信したデータの’１’の値と’０’の値を反転させて，保持することが可能であることは言うまでもない。この場合，半導体記憶装置１０１を制御する外部制御装置の構成を簡易にすることができる可能性がある利点がある。さらに，値を反転するかを，半導体記憶装置１０１の中の構成レジスタを書き換えることで制御することもできる。この場合，半導体記憶装置１０１を制御する外部制御装置の構成に冗長度があり，より多くの制御装置に短時間で対応させることが可能である利点がある。【００４０】
半導体記憶装置１０１が消去動作とライト動作を持つ場合を例にして，以下述べる。消去動作はブロック単位で行い，ブロック中に含まれるすべてのビットの値を’１’にする。一方，ライト動作はブロックより小さいページ単位で行い，ページ中に含まれるビットの値を書き込むデータに応じて’０’にすることがある。【００４１】
半導体記憶装置１０１が消費可能なピーク電流は一定量以下に制限される必要がある。例えばＳＳＤに用いることを想定すると，ＳＳＤ内の半導体記憶装置１０１用の電源装置は，半導体記憶装置１０１のデータシートに記載された最大ピーク電流量を考慮して設計する必要がある。もし，データシートに記載した最大ピーク電流量以上の電流を半導体記憶装置１０１が消費すると，電源電圧が低下し，半導体記憶装置１０１だけではなく，ＳＳＤや，ＳＳＤが複数搭載されたストレージステムの動作不良を引き起こす可能性がある。【００４２】
ビットの書き換えに必要な電流量の大きいメモリ，例えば，相変化メモリやＲｅＲＡＭ，ＳＴＴ−ＲＡＭでは半導体記憶装置１０１の消費する電流の多くをビットの書き換え電流が消費している。なお，詳細に述べると，半導体記憶装置１０１で電源電圧の昇圧や降圧を行っているため，電流量の観点だけでなく，電力や昇圧ロスを含めた観点で検討する必要がある。例えば，ビットの書き換えに要する電流量を１ビットあたり４０ｕＡ（マイクロアンペア）とすると，３２ビット同時にライトすることを考えると消費電流量の合計は１２８０ｕＡになる。昇圧効率を１０％とすると電源電流の消費量は１２．８ｍＡになる。チップのピーク消費電流量を２５ｍＡとすると，チップ全体で消費する電流量の５１％をビットの書き換えに要していることになる。【００４３】
前述したとおり，半導体記憶装置１０１に’１’の値を’０’に比べて相対的に多く送るようにする制御が可能である。このときに，’１’の値が多い領域では，ライト動作において，ライト電流を流し，’１’から’０’へのビット反転を行うビットの数が少ない特徴がある。【００４４】
そこで，本実施例の半導体記憶装置１０１は，レジスタ１０７に格納されたメモリアレイ１０２に書き込むデータの値をサブライトドライバＷＤ０に送ると同時に，同じデータをポピュレーションカウンタ１０３に送る。ポピュレーションカウンタ１０３でデータに含まれる’１’の数を集計するポピュレーションカウントを行い，その結果を基に’１’から’０’へのビット反転を行うビットの数を計算する。ビット反転を行うビットの数が所定数より少ない場合には，さらに次のサブライトドライバＷＤ１にレジスタからデータを送り，同時に同じデータをポピュレーションカウンタ１０３に送る。そして，ポピュレーションカウンタで’１’から’０’へのビット反転を行うビットの数を計算する。このようにライト時にビット反転を行うビット数を一定数以下に制限し，その制限の中で複数のサブライトドライバＷＤを最大限同時に駆動し，同時にライトするビットの数を増やす。この構成により，ライトデータレートを向上させることが可能である。【００４５】
ポピュレーションカウンタ１０３はデータに含まれる’１’のビット数をカウントするポピュレーションカウント（ハミングウェイトと記載されることもある）の処理を行う制御部分である。例えば，データが１１５，すなわち２進数で０１１１００１１の場合，このデータの’１’カウント数は５になる。【００４６】
半導体記憶装置１０１にライトするときには，ホストからライトコマンドとライトするデータを半導体記憶装置１０１に送る。半導体記憶装置１０１はそのデータをＩ／Ｏ部１０５を経由して受け取り，レジスタ１０７に格納する。【００４７】
レジスタ１０７に格納されたデータはデータバス１０８を経由して，ポピュレーションカウンタ１０３とライトドライバグループＷＤＧにそれぞれ送られる。ライトドライバグループＷＤＧは複数のサブライトドライバＷＤからなる。ポピュレーションカウンタは個々のサブライトドライバを活性化させる信号線ＷＤ＿ＥＮを有する。【００４８】
図２を用いて，本実施例の半導体記憶装置１０１のライトシーケンスを説明する。【００４９】
ページ０（ページ構成は後に図５で説明する）にライトする場合を例として説明する。ページ０の領域に接続されたサブライトドライバＷＤの個数は２５６個とし，このうち，最大４個，最小１個のサブライトドライバＷＤを同時に駆動するとする。すなわち，最大同時駆動サブライトドライバ数は４である。１個のサブライトドライバは最大で同時に３２ビットのライトが可能であるとする。また，半導体記憶装置１０１のピーク電流を一定以下に抑えるために，同時にライト可能なビット数が３２個以下であるとする。すなわち，最大同時ライト可能ビット数は３２。また，ページサイズを８ＫＢ，ブロックサイズを１２８ＫＢとする。ページサイズを２の倍数にするのではなく，ＥＣＣや信頼性情報，論理アドレスを格納することが可能な予備領域を付加し，例えば９ＫＢにすることも可能である。この場合，ＳＳＤコントローラが半導体記憶装置１０１にアクセスする回数を低減でき，高速なＳＳＤを提供することが可能である効果がある。【００５０】
図２で，ライトシーケンスとしてまず，サブライトドライバＷＤ数を保持する変数ｎの値を０にし，ライトビット数Ｓを保持する変数Ｓの値を０に初期化する（Ｓ２０１）。次にレジスタ１０７に格納されたデータの冒頭３２ビットをポピュレーションカウンタ１０３とサブライトドライバＷＤ０に送る（Ｓ２０２）。この値が３，３４６，４９７，２３９，すなわち，２進数で１１０００１１１０１１１０１１１０１１１１１１０１１０１０１１１であるとすると，この３２ビットのデータ中には’１’ビットが２３個含まれている。データ幅は３２ビットであるため，’０’ビットの数は３２−２３＝９個であることがわかる。ポピュレーションカウンタはデータ中の’０’ビットの数をカウントし，その結果をＳに加算する（Ｓ２０３）。この時点でＳの値は９になる。さらに，Ｓの値が最大同時ライト可能ビット数である３２より小さいかを判定する（Ｓ２０４）。小さい場合は，さらに他のサブライトドライバを駆動できる可能性があるため，Ｓ２０５に進む。次に，サブライトドライバ番号を確認し，最大同時駆動サブライトドライバ数（図２の例では４）未満であるかを確認する（Ｓ２０５）。もし，最大同時駆動サブライトドライバ数未満であれば，Ｓ２０６に進む。さらに，サブライトドライバ番号ｎに１を加算し，次のサブライトドライバの処理の準備を行う（Ｓ２０６）。【００５１】
このようにしてポピュレーションカウンタ１０３を利用して，同時に駆動できるサブライトドライバＷＤ個数の調査を行う。【００５２】
次に，ポピュレーションカウンタ１０３は同時に駆動可能なサブライトドライバＷＤに対して，そのサブライトドライバＷＤを活性化させるための信号ＷＤ＿ＥＮを送信する（Ｓ２０７）。この例ではサブライトドライバＷＤ０，ＷＤ１，ＷＤ２を活性化させるとする。各サブライトドライバＷＤは活性化信号ＷＤ＿ＥＮを受け取ることで同時にライトを行う（Ｓ２０８）。ビットあたりのライト時間を１０ｎｓ（ナノ秒）と仮定する。この場合，ページの冒頭の９６ビットのライト電流印加時間の合計は１０ｎｓである。このようにして，サブライトドライバＷＤ０〜２に含まれる’０’ビットのライトが行われる。この例では２３ビットについて，’１’の値が記録されたビットを’０’に書き換えたとする。最大同時ライト可能ビット数は３２であり，その数以下に制御できていることがわかる。【００５３】
さらに，同様にしてサブライトドライバＷＤ  ｎ以降，すなわち，ＷＤ３以降のライトを行う（Ｓ２０９）。このようにして，データサイズ８ＫＢのページに関して，ライトを行う。【００５４】
従来の制御方式とライト電流印加時間を比較する。従来の制御方式ではＷＤ０，１，２と逐次的に駆動するため，ページの冒頭の９６ビットのライト電流印加時間の合計が３０ｎｓであった。一方，本制御方式を用いることによりライト電流印加時間を例えば１／３に短縮できていることがわかる。すなわち，ライトデータレートが向上していることがわかる。【００５５】
図３を用いてサブライトドライバＷＤの番号と，そのサブライトドライバＷＤが同時にライト可能な３２ビットのデータの中の’１’ビットの数，’０’ビットの数の内訳，さらにポピュレーションカウンタ１０３が決定したライト順を説明する。【００５６】
サブライトドライバＷＤ０，１，２はライト順が１であり，同時にライトされることがわかる。ＷＤ０〜２に含まれる’０’ビットの数の合計は２３個であり，最大同時ライトビット数３２以下であるため，同時にライト可能である。一方，ＷＤ０〜３に含まれる’０’ビットの数の合計は３８個になり，最大同時ライトビット数３２を上回るため，同時にライトができない。そのため，ＷＤ０〜２のライトが完了した後に，ＷＤ３のライトを行う。【００５７】
次に，ＷＤ３に含まれる’０’ビットの数は１５個で，最大同時ライトビット数３２以下だが，次のＷＤ４に含まれる’０’ビット数１９個との合計は３４個になり，最大同時ライトビット数３２を上回る。このため，ＷＤ３とＷＤ４は同時にライトができず，ライト順２では，ＷＤ３のみのライトとなる。ＷＤ４以降も同様に処理し、１ページ分のデータをライトする。【００５８】
以上のように，カウンタ回路の機能により，同時にセットされるメモリセルの数や，同時に駆動されるサブライトドライバＷＤの数を制御することにより，装置のピーク電流を一定値以下に制御することができる。【００５９】
図４を用いて，図３の例における，ポピュレーションカウンタ１０３の処理とサブライトドライバＷＤによるライト処理の順序について説明する。水平方向は時間軸であり、四角形で囲まれた部分が、ポピュレーションカウンタ１０３の処理とサブライトドライバＷＤによるライト処理を示し、四角形の水平方向の辺の長さは処理時間を表す。図中Tcはポピュレーションカウンタ１０３の処理時間を、TdはサブライトドライバＷＤによるライト時間（ドライバが活性化している時間）を示している。【００６０】
ポピュレーションカウンタ１０３は８ＫＢのページデータを先頭から４Ｂずつのデータ片に分けて逐次的に処理する。１つのデータ片４０１のポピュレーションカウンタ処理に要する時間は例えば２．５ｎｓである。下記の（１）式を満たすようにポピュレーションカウンタ処理時間を定めて設計することにより，ポピュレーションカウンタ処理時間を最初のライト１回分の処理を除き，隠ぺいすることが可能になる。これにより，ライトデータレートの高速な半導体記憶装置１０１を実現することができる。
ライト時間  ＞  ポピュレーションカウンタ処理時間×最大同時駆動サブライトドライバ数                                                （１）
なお，ライト時間だけでなく，消去時間やベリファイライト時間でも同じ関係が成り立つ。【００６１】
ポピュレーションカウンタ１０３はデータ片４０１−０，１，２，３を処理することで，サブライトドライバＷＤ０，１，２は同時に駆動可能だが，ＷＤ０，１，２，３を同時に駆動できないと判定する。そこで，ポピュレーションカウンタはＷＤ０，１，２を活性化させ，ライト動作を行う。ＷＤ０，１，２のライト動作が行われている間にポピュレーションカウンタ１０３は並列して，次のデータ４０１−４の処理を行う。この結果，ポピュレーションカウンタ１０３はＷＤ３を活性化させる。次に，ＷＤ３のライト動作が行われている間にポピュレーションカウンタ１０３は，次のデータ４０１−５，６，７の処理を行う。【００６２】
上記のようにポピュレーションカウンタ１０３による処理とサブライトドライバＷＤによるライト処理を同時に行うことにより，ポピュレーションカウンタによる処理時間を隠ぺいすることが可能になり，ライトデータレートを向上させることが可能である。【００６３】
次に，さらに詳細な本提案の半導体記憶装置１０１について示す。【００６４】
図５を用いてサブライトドライバＷＤとメモリセルの物理的な位置関係について説明する。【００６５】
メモリアレイ１０２は１２８Ｇｂ（ギガビット）のメモリセルを有するとする。なお，８ビットは１バイトである。メモリアレイ１０２は図５に示すようにページ０からページ６５，５３５に分割されている。なお，本実施例のメモリセルはシリコン基板と垂直な方向に３２層積層されており，下記の式（２）が成立する。
メモリアレイ容量１２８Ｇｂ
＝ページ数６５，５３６×ページサイズ８ＫＢ×積層数３２層      （２）
ページ０〜８，１９１はサブライトドライバＷＤ０〜２５５が制御する。また，ページ８，１９２〜１６，３８３はサブライトドライバＷＤ２５６〜５１１が制御する。上位装置から見たとき、一回のアクセスによるライト動作は，ページ単位で行うことができる。また、一回のアクセスによる消去動作は，複数ページからなるブロック単位で行うことができる。メモリアレイ１０２には、行デコーダ１０４，リード回路１０９，消去回路１１０等が対応している。【００６６】
図６は，図５のメモリアレイ１０２のページ０の詳細を示す平面図である。【００６７】
ページ０に着目すると，メモリチェーンＭＣのＹアドレス０はサブライトドライバＷＤ０の０ビット目（図６中ＷＤ０−０と記す）になる。なお，サブライトドライバＷＤは最大３２ビット同時にライト可能であるため，ＷＤ０に関して，ＷＤ０−０からＷＤ０−３１まで存在する。次にＹアドレス１はＷＤ４−０となる。さらにＹアドレス２はＷＤ８−０となる。サブライトドライバＷＤ０の１ビット目はＹアドレス６４となる。このようにＷＤ０の各ビットが離れた位置に配置されている理由は，まず，Ｙアドレス線を制御するドライバの一部であるローカルドライバの構成を簡易にし，半導体記憶装置１０１のチップ面積を小面積化するためである。次に，ライトするビットが一部の領域に固まり，その領域を加熱しすぎ，ライトビット周辺のライト対象外のビットに熱負荷が生じ，そのビットの’０’もしくは’１’の値が反転することを防ぐためである。すなわち，ライトするビットを散らばらせることにより，ライト時に生じる熱を分散させる。なお、上記構成は一実施例であり、上記メリットを無視すれば、１個のサブライトドライバＷＤが纏まって配置されたビットをライトすることもできる。【００６８】
図７は，本実施例の半導体記憶装置１０１のメモリアレイ１０２の一部の回路構成の例である。メモリアレイ１０２は複数のメモリチェーンＭＣから構成される。メモリチェーンＭＣは複数のメモリセルＣＥＬＬを直列に接続することで構成される。ここではメモリチェーンＭＣは８個のメモリセルＣＥＬＬからなるとする。メモリセルＣＥＬＬは１個の相変化素子ＰＣＭと１個のＺ選択素子ＺＭＯＳを並列に接続することで構成される。ここでは１個の相変化素子ＰＣＭと１個のＺ選択素子ＺＭＯＳが並列に接続されている例で説明するが，１個の相変化素子ＰＣＭと複数個のＺ選択素子ＺＭＯＳを並列に接続することや複数個の相変化素子ＰＣＭと１個のＺ選択素子ＺＭＯＳを並列に接続することや複数個の相変化素子ＰＣＭと複数個のＺ選択素子ＺＭＯＳを並列に接続することが可能であることは言うまでもない。【００６９】
Ｚ方向はシリコン基板と直交する方向であり，Ｘ方向とＹ方向はＺ方向と直交し，かつ，互いに直交する方向が望ましい。このようにすることでＺ方向に複数個存在するメモリセルを1回の穴開け加工により，一括して形成することが可能になり，製造コストを低減することができる。リードビット線はＸ方向，もしくは，Ｙ方向に延伸されることが望ましい。本実施例ではリードビット線はＸ方向に延伸され，Ｙ選択線と平行であるとして，説明する。【００７０】
メモリチェーンは４層積層されている場合を例にする。この場合，メモリセルの積層数は８個×４層の３２層になる。４層より多く積層したり，４層未満の積層数としたりすることが可能であるのは言うまでもない。積層数を多くすることでメモリ容量を大きくすることができるメリットがある。積層数を少なくことで製造が容易になるメリットがある。【００７１】
本実施例では第Ｈ層のＸアドレスＩ，ＹアドレスＪのメモリチェーンをＭＣ（Ｈ）−（Ｉ）−（Ｊ）と表記する。複数のリードビット線ＲＢＬはＸ方向に延伸されるとする。第Ｈ層のＹアドレスＪのリードビット線をＲＢＬ（Ｈ）−（Ｊ）として示す。【００７２】
図８を用いてメモリチェーンＭＣの選択方法について説明する。【００７３】
メモリチェーンＭＣはＸ選択線ＸとＹ選択線Ｙを用いて選択される。図７に示すように例えばメモリチェーンＭＣ０−０−０のＹ選択ＭＯＳであるＹＭＯＳはＹ選択線Ｙ０−０とＹ選択線Ｙ０−１に挟まれており，さらに，Ｘ選択ＭＯＳであるＸＭＯＳはＸ選択線Ｘ０−０とＸ選択線Ｘ０−１に挟まれている。Ｘ選択線ＸはＸ選択ＭＯＳのゲート電極に接続され，Ｙ選択線ＹはＹ選択ＭＯＳのゲート電極に接続されている。【００７４】
Ｘ選択ＭＯＳとＹ選択ＭＯＳはダブルゲートのＭＯＳとなっており，１つのＭＯＳにつき，２つのゲート電極が存在する。さらに，ＭＯＳのチャネル膜厚が薄いため，この２つのゲート電極にともにオン電圧が印加されたときのみＭＯＳがオンする。例えば，ＭＯＳのソース電圧を−７．５とすると，オン電圧の例は０Ｖであり，オフ電圧の例は−７．５Ｖである。そのほかの場合，すなわち，ゲート電極の一方にオン電圧が印加され，もう一方にオフ電圧が印加された場合や，２つのゲート電極にともにオフ電圧が印加された場合にはＭＯＳはオフする。ＭＯＳはオンの場合は低抵抗状態となり，オフの場合は高抵抗状態になる。Ｘ選択ＭＯＳとＹ選択ＭＯＳは直列に接続されており，両方がオンすることで，ライト電極ＷＲからメモリチェーンＭＣを通って，電流がソース線ＳＬに流れる。このときにメモリチェーンＭＣ内のメモリセルＭＣのライトが行われる。【００７５】
このときに図８の＃１の場合に示すようにＸ選択線Ｘ０−０，Ｘ０−１，Ｙ選択線Ｙ０−０，Ｙ０−１がＸ選択ＭＯＳとＹ選択ＭＯＳがオフとなる電圧，例えば−７．５Ｖであれば，メモリチェーンＭＣ０−０−０，０−０−１，０−１−０，０−１−１のＸ選択ＭＯＳとＹ選択ＭＯＳはオフ，すなわち，高抵抗状態となり，上記メモリチェーンは非選択となる。【００７６】
次に，＃２に示すようにＸ選択線Ｘ０−０とＸ０−１，Ｙ選択線Ｙ０−０にオンとなる電圧，例えば０Ｖが印加されたときにＭＣ０−０−０とＭＣ０−０−１のＸ選択ＭＯＳはオンになる。一方，例えば，ＭＣ０−０−０のＹ選択ＭＯＳは片側のゲート電極であるＹ０−０にオン電圧が印加され，もう一方のゲート電極のＹ０−１にオフ電圧が印加されている。このときＹ選択ＭＯＳはオフとなる。そのため，ＭＣ０−０−０は非選択状態となる。【００７７】
さらに，＃３に示すようにＹ選択線Ｙ０−１にオン電圧が印加されると，ＭＣ０−０−０とＭＣ０−１−０のＹ選択ＭＯＳは両側のゲート電極にオン電圧が印加され，Ｙ選択ＭＯＳがオンとなる。ＭＣ０−０−０はＸ選択ＭＯＳもオンであるため，選択状態となる。なお，ＭＣ０−１−０はＸ選択ＭＯＳがオフであるため，非選択状態である。【００７８】
以降，＃４〜６に示す電圧配置にすることにより，表に記載された選択状態が得られる。【００７９】
Ｙ選択線は図７に示すローカルＹドライバにより駆動される。ローカルＹドライバを駆動する信号は中間Ｙドライバにより駆動される。中間Ｙドライバでは駆動電圧の変換を行うことができる。例えば，ライト時において，０Ｖと−７．５Ｖの電圧を切り替えることにより，Ｙ選択を行うＭＯＳであるＹＭＯＳを駆動する。ローカルＹドライバも０Ｖと−７．５Ｖの電圧を用いて制御信号が中間Ｙドライバから送られる。一方，中間Ｙドライバは０Ｖと２．３Ｖの電圧を用いて制御信号をグローバルＹドライバから送られる。中間Ｙドライバにおいて，レベルシフタ回路を用いた信号電圧変換が行われる。ローカルＹドライバと中間Ｙドライバはメモリアレイ中に位置することが望ましい。一方，グローバルＹドライバはメモリアレイ外に位置することが望ましい。また，グローバルＹドライバの数に比べて，中間Ｙドライバの数を多くすることが望ましい。このようにすることで制御信号を伝達するための電力ロスを低減することが可能になり，消費電力の小さい半導体記憶装置１０１を実現できる。【００８０】
図９にメモリアレイ１０２の一部断面図を示す。【００８１】
図１０にメモリアレイ１０２の一部平面図を示す。【００８２】
メモリチェーンＭＣは２Ｆ間隔で配置されている。Ｘ選択先はＹ方向に延伸されている。【００８３】
図１０の断面Ｄ−Ｄ’の断面模式図を図９に示す。メモリチェーンＭＣの一部が示されている。【００８４】
図９〜図１０の半導体素子には，複数のＺ選択素子ＺＭＯＳと相変化素子ＰＣＭが形成されている。Ｚ選択素子ＺＭＯＳと相変化素子ＰＣＭは，シリコン酸化膜９０６，ゲート酸化膜９０３，シリコンチャネル９０４，相変化材料９０５，Ｚ選択トランジスタゲート電極９０１，層間絶縁膜９０２により構成されている。  
Ｚ選択素子ＺＭＯＳは縦型ＧＡＡ−ＮＭＯＳＦＥＴ（Ｇａｔｅ  Ａｌｌ  Ａｒｏｕｎｄ  ｎ−ｃｈａｎｎｅｌ  ＭＯＳＦＥＴ）を用いることが望ましい。ＰＭＯＳＦＥＴに比べて電流駆動力の高いＮＭＯＳＦＥＴを用いることでメモリチェーンＭＣに含まれる相変化素子ＰＣＭの数を増加させ，大容量の半導体記憶装置１０１を実現することができる。もちろん，ＰＭＯＳを用いることが可能であることは言うまでもない。縦型ＭＯＳＦＥＴを用いることでトランジスタの大きさを４Ｆ２と平面ＭＯＳを用いる場合に比べて小さくすることができるため，大容量化することができる。ＧＡＡ構造にすることで，平面ＭＯＳを用いた場合に比べて，ゲート幅を広くすることが可能になり，ＭＯＳの駆動力を向上させ，相変化チェーンＭＣに含まれるメモリセルＣＥＬＬの数を増やし，大容量化することができる。ＰＭＯＳを用いた場合，非選択のＺ選択トランジスタのゲート電極に印加する電圧がＮＭＯＳを用いた場合に比べて低くできるため，Ｚ選択ＭＯＳのゲート耐圧が少なくて済み，半導体記憶装置１０１の信頼性が向上する効果がある。【００８５】
相変化素子ＰＣＭの材料の一部として，カルコゲナイド材料，特にＧｅＳｂＴｅ合金（ゲルマニウム−アンチモン−テルル合金）を用いることができる。カルコゲナイド材料はアモルファス（非晶質状態）と結晶状態の２つの準安定な状態を取ることが可能であり，それぞれの状態の電気抵抗の値が異なる。すなわち，アモルファスの場合は高抵抗であり，結晶状態の場合は低抵抗となる。その電気抵抗の違いを利用して‘０’と‘１’の値を記憶することができる。アモルファスの場合を‘０’，結晶状態の場合を‘１’とする。‘０’から‘１’に書き換えることを消去，‘１’から‘０’に書き換えることをライトとする。相変化素子ＰＣＭに電流を流し，ジュール熱を発生させることで書き換えを行う。消去するためには，結晶化温度以上で一定時間保持することで，相変化素子を結晶化させる。ライトするためには，融点以上に加熱し，急冷することでアモルファス化（ガラス化）させる。相変化素子ＰＣＭが３値以上の値を取ることも可能であることは言うまでもない。記憶素子としてすでに製品に適用されている相変化素子を用いることで開発期間を短縮することが可能であり，短期間で半導体記憶装置１０１を出荷できる効果がある。なお，本実施例では相変化素子として結晶−アモルファスの相変化を行うものを例にして説明するが，結晶Ａ−結晶Ｂの相変化を行うものを用いることができるのはいうまでもない。ここで，結晶Ａと結晶Ｂは異なる結晶構造を持つ結晶である。なお，本実施例では記憶素子として相変化素子を用いた場合を例にして説明するが，記憶素子としてＲｅＲＡＭやＳＴＴ−ＭＲＡＭ（スピン注入型ＭＲＡＭ），電荷蓄積型メモリ，例えば，フローティングゲート型メモリ，チャージトラップ型メモリを用いることが可能であることは言うまでもない。書き換え電流の少ないＲｅＲＡＭを用いることで１個のメモリチェーンＭＵに含まれる記憶素子の数を増やすことが可能になり，大容量の半導体記憶装置１０１を実現できる効果がある。また，書き換え速度の速いＳＴＴ−ＭＲＡＭを用いることでライトデータレートの大きな半導体記憶装置１０１を実現できる効果がある。本実施例では，記憶素子として相変化素子を用いた場合について説明している。【００８６】
ライトと消去は相変化素子ＰＣＭにライト電流を流すことでジュール熱を発生させることで行う。ライト電流は例えば４０ｕＡであり，消去電流は例えば２０ｕＡである。なお，ライトもしくは消去について，隣接するＺ選択ＭＯＳに電流を流すことでジュール熱を発生させることで行うことも論理的には可能である。
ライト時には選択されたメモリチェーンＭＣにライト電流，例えば４０ｕＡが流れる。一方，非選択のメモリチェーンＭＣには電流がほぼ流れない。【００８７】
消去時には複数のメモリチェーンＭＣについて，メモリチェーンＭＣに含まれる全ビットを同時に消去すること（バンドル消去）が望ましい。メモリチェーンの一部だけを消去しようとすると，消去領域に隣接するメモリセルを誤って消去してしまうことが生じやすい。バンドル消去により高信頼な半導体記憶装置１０１を実現できる。さらに，複数のメモリチェーンを一括して消去すると，１本のメモリチェーンからの発熱を用いて，隣接するメモリチェーンを加熱，もしくは，熱逃げを軽減することが可能になり，消去に要する電気エネルギーを削減し，高速に消去が可能な半導体記憶装置１０１を実現できる。なお，熱逃げを軽減できる理由は，あるメモリチェーンに隣接したメモリチェーンが加熱されることでメモリチェーン間の温度差が少なくなり，熱流束密度と温度差が比例するというフーリエの法則から，メモリチェーン間の熱流束が低減するためである。さらに，バンドル消去時には電流を主にＺ選択ＭＯＳに流し，そのジュール熱により発熱させ，消去動作を行うことが望ましい。電流を主にＺ選択素子ＺＭＯＳに流すことで，相変化素子が抵抗が高く，相変化素子自体を発熱させるために高い電圧が必要な場合でも，Ｚ選択素子ＺＭＯＳを発熱させることで，消去に要する電圧を低下させ，さらに安定した消去時の熱発生量を実現することができる。【００８８】
相変化素子ＰＣＭを選択するためには，同じメモリセルＣＥＬＬのＺ選択素子ＺＭＯＳをオフにすることで，Ｚ選択素子ではなく相変化素子に電流を流す。【００８９】
図１１を用いてライト時，消去時，リード時の電圧配置について説明する。選択メモリセルが，メモリチェーンＭＣ０−０−０のＺ選択ＭＯＳＺ０−１を含むメモリセルＣＥＬＬである場合を例として説明する。Ｚ選択ＭＯＳのゲート−ソース間耐圧は例えば７．７Ｖとする。【００９０】
ライト時について説明する。【００９１】
時間ｔ１〜ｔ２において，図１１に記載されていないＹ選択線が制御されることで，Ｙ選択ＭＯＳがオンされ，ライト電流，例えば４０ｕＡがメモリチェーンＭＣ０−０−０に流れている。このときにＺ選択線Ｚ０−７の電圧を０Ｖにする。【００９２】
次に，消去動作について説明する。【００９３】
時間ｔ３〜ｔ４において，図１１に記載されていないＹ選択線が制御されることで，Ｙ選択ＭＯＳがオンされ，消去電流，例えば２０ｕＡがメモリチェーンＭＣ０−０−０である。このジュール熱により加熱される相変化素子の温度がライト時の相変化素子の温度に比べて低いことが望ましい。この例ではＺ選択トランジスタＺＭＯＳのソース−ドレイン間に電流を流し，そこでジュール熱を発生させている（バンドル消去）。すなわち，Ｚ選択トランジスタのチャネルにおいて，ジュール熱を発生させ，この熱を相変化素子ＰＣＭに伝熱させることで，相変化素子ＰＣＭを結晶化させている。Ｚ選択トランジスタＺＴｒのゲート−ソース間電圧を４．５Ｖとしている。Ｚ選択トランジスタＺＴｒは完全にオンしないことが望ましい。これにより，同じソース−ドレイン間電流に対して，Ｚ選択トランジスタＺＴｒで発熱するジュール熱を増加させることができる。ジュール熱の発生量を各メモリセルで均等化させるため，ライトに比べて，Ｚ選択の電位の制御を層ごとに細かく行い，少なくとも５水準以上の電位を用いて，Ｚ選択トランジスタのゲート電圧を制御することが望ましい。図５の場合と比較して，ゲート電圧が低いため，５水準以上のゲート電圧の制御を省電力で行うことが可能であり，省電力な半導体記憶装置１０１を実現できる。【００９４】
バンドル消去により複数のメモリセルの相変化素子を一括して消去することができる。メモリチェーン全体を同時に消去することが望ましい。なぜなら，メモリチェーンの一部だけを消去しようとすると，消去領域に隣接するメモリセルを誤って消去してしまうことが生じやすいためである。さらに，複数のメモリチェーンを一括して消去することが望ましい。これにより，１本のメモリチェーンからの発熱を用いて，隣接するメモリチェーンを加熱，もしくは，熱逃げを軽減することが可能になり，消去に要する電気エネルギーを削減し，高速に消去が可能な半導体記憶装置１０１を実現できる。なお，熱逃げを軽減できる理由は，あるメモリチェーンに隣接したメモリチェーンが加熱されることでメモリチェーン間の温度差が少なくなり，熱流束密度と温度差が比例するというフーリエの法則から，メモリチェーン間の熱流束が低減するためである。【００９５】
ここで，消去時の選択ビット線ＲＢＬ０−０の電圧は正の電圧であることが望ましい。例えば２．７Ｖである。その理由は，電源電圧ＶＤＤは例えば，２．７〜３．６Ｖが供給されるとすると，この電源電圧ＶＤＤの最小電圧である２．７Ｖを消去に用いることで，消去時の選択ビット線ＶＢＬ−Ｓに印加する電圧を昇圧回路を用いずに供給することが可能になり，昇圧回路における電力ロスを無くすことで，同時に消去可能なメモリチェーンの数を例えば５１２本に増加させることができるためである。これにより，消去の速度を例えば４００ＭＢ／ｓに向上させることができる。【００９６】
さらにリード動作について説明する。【００９７】
リード時の選択ビット線ＲＢＬ０−０電圧は正であることが望ましい。例えば１Ｖである。正の電圧を用いることで昇圧回路を用いずに電源供給することが可能になり，リードの消費電力を低減することができる。これにより，低消費電力の半導体記憶装置６０１を提供することができる。【００９８】
また，消去時やリード時のビット線電位が２．７Ｖや１．０Ｖと低いため，高速な半導体記憶装置１０１を実現できる。【００９９】
図１２を用いてローカルドライバＬＤＧの構成について説明する。ローカルドライバＬＤＧは複数のサブローカルドライバＬＤからなる。サブローカルドライバＬＤの1個が図１２に示されている。ローカルＹ選択線の一つであるＹ選択線Ｙ０−０は中間Ｙメイン選択線ｍａｉｎＹ０と中間Ｙサブ選択線ｓｕｂＹ０のＡＮＤ信号により生成されている。すなわち，ｍａｉｎＹ０とｓｕｂＹ０がともに’Ｈ’になったときにＹ０−０は’Ｈ’になり，ｍａｉｎＹ０，もしくは，ｓｕｂＹ０が’Ｌ’になったときにはＹ０−０は’Ｌ’になる。【０１００】
上記のようにＹアドレス信号はメモリアレイ外のグローバルＹドライバで一部がデコードされ，サブローカルドライバに送られる。サブローカルドライバＬＤでフルデコードが行われ，ローカルＹ選択線Ｙが駆動される。このようにサブローカルドライバＬＤにプリデコード信号を送り，サブローカルドライバＬＤでフルデコードを行うことが望ましい。このようにすることでグローバルＹドライバにおいてフルデコードする場合と比べて，グローバルＹドライバとサブローカルドライバ間の信号本数を削減することが可能になり，チップ面積を縮小することが可能になる。また，サブローカルドライバＬＤでフルデコードする場合と比べてサブローカルドライバＬＤの回路面積を小さくすることが可能になり，チップ面積を縮小することが可能になる。【０１０１】
ここで消去単位について，ＭＣ（Ｈ）−８ｊ−８ｋ，ＭＣ（Ｈ）−８ｊ−（８ｋ＋７），ＭＣ（Ｈ）−（８ｊ＋７）−８ｋ，ＭＣ（Ｈ）−（８ｊ＋７）−（８ｋ＋７）を四辺とする長方形に含まれる領域（バンドル消去領域）を一括して消去すると仮定する。ここで，Ｈとｊ，ｋは任意の整数である。例えば，ＭＣ０−０−０，ＭＣ０−０−７，ＭＣ０−７−０，ＭＣ０−７−７を四辺とする長方形に含まれる領域を一括して消去する。このバンドル消去領域に含まれるビット数は５１２ビットである。次の消去では，ＭＣ０−０−８，ＭＣ０−０−１５，ＭＣ０−７−８，ＭＣ０−７−１５を四辺とする長方形に含まれる領域を一括して消去する。なお，複数のバンドル消去領域を同時に消去することも可能である。本実施例では８個のバンドル消去領域を同時に消去するとして説明する。すなわち，同時に４ｋビットの消去を行う。【０１０２】
図１３にライトステップごとのライトビットの例について示す。この例では，ライト単位でライトされる複数のメモリセルがメモリアレイ中の互いに隣接していない場所に分散され配置している。図１３では，点線で囲まれる１ページ（８ＫＢ）を構成するメモリチェーンＭＣの，ライト対象の変化を示している。黒丸がライト対象であり、白丸はライト対象でない。複数のメモリチェーンＭＣが同時にライトされていることや，同時に隣接されるビットがライトされていないことが分かる。ライトステップ０でＭＣ０−０−０等がライトされ，次の１０ｎｓであるライトステップ１には，その隣のＭＣ０−０−１がライトされていることが示されている。なお，ＭＣ０−０−０とＭＣ０−０−１は共に’０’データがライトされるべきビットである場合の例であり，ライトデータによっては上記の一部のビットのみがライトされることがあることは言うまでもない。ひとつのライトステップは例えば１０ｎｓを要する。リセットパルス印加時間が８ｎｓで，Ｙアドレスの選択に要する時間を２ｎｓにすることが望ましい。ライトステップを１０ｎｓ程度と短くすることでライトデータレートの高速な半導体記憶装置１０１を実現できる。【０１０３】
図１４にライトビット選択時のｍａｉｎＹ，ｓｕｂＹ信号線の状態を示す。例えば，メモリチェーンＭＣ０−０−０をライトするためには，ｍａｉｎＹ０とｓｕｂＹ０と１をオンにすれば良いことが示されている。また，メモリチェーンＭＣ０−０−０を含むバンドル消去領域（ＭＣ０−０−０，ＭＣ０−７−０，ＭＣ０−０−７，ＭＣ０−７−７を四辺とする長方形の領域）を消去するためにはｍａｉｎＹ０とｓｕｂＹ０〜７をオンにすれば良いことが示されている。【０１０４】
図１２を再度用いてローカルドライバＬＤの回路構成について説明する。ローカルＹ選択線Ｙ０−８を駆動する回路について，ＯＲ回路１２０１が設けられている。ＯＲ回路１２０１は，中間メインＹ選択線ｍａｉｎＹ０が制御するローカルＹ選択線のグループと中間メインＹ選択線ｍａｉｎＹ１が制御するローカルＹ選択線のグループの間のメモリチェーンＭＣを消去するために用いられる。【０１０５】
図１４を用いてこのときの信号選択を説明する。メモリチェーンＭＣ０−０−０を含むバンドル消去領域（ＭＣ０−０−０，ＭＣ０−７−０，ＭＣ０−０−７，ＭＣ０−７−７を四辺とする長方形の領域）を消去するためにｍａｉｎＹ０とｓｕｂＹ０〜７をオンにすることで，Ｙ０−０からＹ０−８までを選択し，バンドル消去を行うことができる。【０１０６】
図１５に，比較のために，前述したＯＲ回路１２０１が無い場合のローカルドライバの回路図を示す。ｍａｉｎＹ０とｓｕｂＹ０〜７をオンにしても，Ｙ０−０からＹ０−７までしか選択できないため，ＭＣ０−０−７やＭＣ０−７−７を消去することができない。そのため，データを消去，ライトすることが出来ない領域が存在することになる。【０１０７】
すなわち，ＯＲ回路１２０１により，データを消去，ライトすることが出来ない領域を無くし，半導体記憶装置１０１の容量を増やすことができる。【０１０８】
なお，ＡＮＤ論理の代わりにＮＡＮＤ論理を用いることが可能であることは言うまでもない。その場合，中間Ｙメイン選択線ｍａｉｎＹと中間Ｙサブ選択線ｓｕｂＹには反転された値を入力する。ＮＡＮＤ論理を用いることで回路面積を小さくし，チップ面積の小さい半導体記憶装置１０１を実現できる利点がある。【０１０９】
さらに，ＯＲ回路の代わりにＮＡＮＤ回路とインバーター回路の組み合わせを用いることが可能であることは言うまでもない。【０１１０】
なお，サブローカルドライバ間のＹ選択線を隣接するサブローカルドライバの信号をＯＲ回路を用いて生成した信号を用いて駆動することが可能であることは言うまでもない。この方法により，サブローカルドライバ間の消去ができない領域を無くすことが可能になり，半導体記憶装置１０１の記録容量を増加させることが出来る。【０１１１】
さらに，本発明の半導体記憶装置１０１にはローカルＸ選択線Ｘでアドレシングを行い，ローカルＹ選択線Ｙでアドレシングと’０’ライトデータの指定を行うことが望ましい。このようにすることでローカルＸ選択線ＸとローカルＹ選択線Ｙでアドレシングを行い，データ線で’０’ライトデータの指定を行う方法に比べて，信号線の本数を少なくすることが可能になり，半導体記憶装置１０１のチップ面積を小さくすることができる。【０１１２】
図１６を用いて本実施例の半導体記憶装置１０１のチップレイアウト、およびこの半導体記憶装置を搭載して構成したストレージ装置の構成を説明する。図１６には複数のメモリアレイ１０２を有する半導体記憶装置１０１が示されている。パッド部を用いて半導体記憶装置１０１はコントローラ１６００と接続される。また，行デコーダによりＸアドレスが選択される。【０１１３】
このようなストレージ装置（ＳＳＤ）は、１チップで構成されている半導体記憶装置１０１を複数個（例えばＮ個）搭載することができる。これらの半導体記憶装置はバスを通じて，コントローラ１６００のI/O部１６０２を介し，制御部１６０１により制御される。また、コントローラ１６００は，Ｉ／Ｏ部１６０２を介して図示しない上位装置と接続されている。上位装置からは，記録すべきデータや，書き込み，読み出し，ベリファイ，消去などのコマンドが送信され，コントローラ１６００はこれに従って，半導体記憶装置１０１を制御することになる。【０１１４】
また，先にのべたように，コントローラ１６００は，上位装置から受信したデータの’１’の値と’０’の値を反転させて，半導体記憶装置１０１に記録する制御を行うこともできる。このようにすると，実質的に状態を書き換えるメモリセルの個数を少なくすることができる。例えば，メモリセルがすべて”１”の消去状態において、上位装置からはすべてに”０”のデータを記録するように指示があったとする。このとき、コントローラ１６００は，データの’１’の値と’０’の値を反転させ，メモリセルにおいては，’１’を記録状態に，’０’を消去状態に対応させる。この場合は，実質的な記録動作は行なわないでよいことになる。このようにして，半導体記憶装置１０１に対して’１’の値を’０’に比べて相対的に多く送るようにする制御が可能である。この制御は，コントローラ１６００の内部で，データの’１’の値と’０’の値をカウントし、’０’が多ければデータを反転して実行できるので，上位装置側からは隠蔽された制御とすることができる。【０１１５】
図１７を用いて，相変化素子ＰＣＭのライトと消去について説明する。ライトはリセットパルスを相変化素子ＰＣＭに流し，ジュール熱を発生させることで行う。リセットパルスにより相変化素子ＰＣＭは融点以上に加熱され，急冷されることでアモルファス状態になる。リセットパルスの印加時間は例えば８ｎｓである。また，消去はセットパルスをＺ選択ＭＯＳであるＺＭＯＳに流し，ジュール熱を発生させることで行う。セットパルスにより相変化素子ＰＣＭは結晶化温度以上で一定時間，例えば５００ｎｓ保持される。相変化素子ＰＣＭはこれにより結晶状態になる。結晶状態はアモルファス状態に比べて，抵抗が低く，その抵抗の違いを利用して，例えば，低抵抗状態を’１’，高抵抗状態を’０’として，情報を記録することができる。【０１１６】
本制御方式は特にビットの書き換えに要するライト電流量が大きく，ライトデータレートが上記ライト電流量に律速されるメモリに適する。例えば，ＮＡＮＤ型フラッシュメモリではビットの書き換えに要するライト電流量は小さく，ライトデータレートが上記ライト電流量に律速されない。一方，相変化メモリやＳＴＴ−ＲＡＭ，ＲｅＲＡＭはライトデータレートが上記ライト電流量に律速されるため，本制御方式が適する。
【実施例２】
【０１１７】
本実施例では、ライトエラーが発生する可能性のある記憶素子を用いながら，ライトデータレートが高速な半導体記録装置の例説明する。【０１１８】
図１８は本発明の実施例２による動作シーケンス例を示す流れ図である。【０１１９】
ライトエラーが発生する可能のある記憶素子を用いた半導体記憶装置１０１においては，
１ページ分のライトを行うページライトにおいて，まず，１ページ分のライト動作を試みた後に，ライト動作を試みた領域のデータをリードし，ライトが成功しているかを確認し，もし，ライトが失敗している場合は，再度，ライトを行う処理を行うことが望ましい。このようにすることで，ライトエラーが発生する可能性はあるが，短期間に開発可能な記憶素子を用いることが可能になり，短期間での半導体記憶装置１０１の開発を実現できる。【０１２０】
ここで，最初のライト動作の試みを初回ライト，ライト動作を試みた領域のデータリードをベリファイリード，ライトが失敗している場合の再ライトをベリファイライトとする。【０１２１】
例えば，相変化メモリは図１７に示すように融点以上に加熱することでライト動作を行う。ところが，同じライト電流を相変化素子ＰＣＭに流しても，相変化素子の特性，例えば，膜厚により，到達する温度には，ばらつきが生じる。同じライト電流でも，ある相変化素子ＰＣＭは適切な温度まで加熱されるが，別の相変化素子ＰＣＭでは相変化材料の膜厚が薄く，融点を大幅に越え，メモリセルＣＥＬＬが破壊される温度になったり，さらに別の相変化素子ＰＣＭでは相変化材料の膜厚が厚く，融点に到達せず，ライトに失敗することがある。さらに，例えば，膜厚のばらつきはチップの特定箇所，特定のページで特に厚かったり，薄かったりする。なお，メモリセルＣＥＬＬの破壊を防ぐためには，半導体記憶装置１０１全体において，ややライト電流を少なくして初回ライトを実行することが望ましいが，これにより，初回ライトで十分な加熱が得られない相変化素子ＰＣＭの割合はさらに増加する。【０１２２】
本実施例に記載された半導体記憶装置１０１の概要を説明すると，１ページ分の初回ライトを行った後に，ベリファイリードを行い，ライトエラーが存在した場合，ライトエラービット数をポピュレーションカウンタを用いてカウントし，エラービット数が最大同時ライトビット数以下の場合は，１回のライトステップでライトを行う。エラービット数が最大同時ライトビット数より多い場合は，複数回のライトステップでライトを行う。【０１２３】
図１８を用いて本動作の詳細を説明する。【０１２４】
まず，１ページ分の初回ライトを行う（Ｓ１８０１）。１ページ分まとめて初回ライトを行うことで，ライトとリードの切り替え回数を減らすことが可能になり，切り替え時間を短縮し，ライトデータレートを高速化することが出来る。特に，ライトでライト電極ＷＲに負電圧を用い，リードでリードビット線にプリチャージする電圧に正の電圧を用いる半導体記憶装置１０１において，ライトとリードの切り替え時間が長いため，本方式が有効である。【０１２５】
なお，このときにページの一部の初回ライトを行ったのちにベリファイリードを行い，さらに残りの部分について，初回ライトが可能であることは言うまでもない。例えば，Ｘアドレス０について，初回ライト→ベリファイリード→ベリファイライトを行い，次に，Ｘアドレス１について，初回ライト→ベリファイリード→ベリファイライトを行うようにすることで，Ｘアドレスの選択回数を低減することが可能になり，Ｘアドレス選択時間を短くし，ライトデータレートの高速な半導体記憶装置１０１を実現できる。【０１２６】
次にベリファイリードを行い（Ｓ１８０２），リードした値とレジスタ内に格納されたライトするべき値を比較することによりライトエラーが存在するかを判定する（Ｓ１８０３）。もし，エラーが存在する場合，ポピュレーションカウンタにより，エラービット数をカウントする（Ｓ１８０４）。このとき，同時にライト可能な領域について，その領域に含まれるエラービット数をカウントするのが良い。例えば，図１２のサブローカルドライバＬＤにおいては，プリデコード方式によるライトビット指定の制約により例えば，ＭＣ０−０−４とＭＣ０−０−１０は同時にライトすることが出来ない。そのため，これらのビットは別々にエラービット数をカウントするのがよい。【０１２７】
次に，エラービット数と最大同時ライトビット数を比較する。もし，１回のライトステプで電力的に同時にライトが出来るなら，すなわち，エラービット数と最大同時ライトビット数以下であるなら，１回のライトステップでライトを行う。エラービット数が最大同時ライトビット数より大きい場合は，複数回のライトステップでライトを行う。【０１２８】
本制御方式は特にライトにおいてほぼ一定されたライト成功率を望めないメモリ，例えば，徐々に電荷を注入することが可能な電荷蓄積型ではなく，ライト後に温度が室温近くまで低下し，再ライト時には再びほぼ室温からの加熱が必要な相変化形のメモリや磁化反転を用いるメモリ，わずかな原子の移動が大きな抵抗変化をもたらすフィラメント形成，消滅型のメモリに適する。すなわち，相変化メモリやＳＴＴ−ＲＡＭ，ＲｅＲＡＭに適する。さらに，本制御方式は特にビットの書き換えに要するライト電流量が大きく，ライトデータレートが上記ライト電流量に律速されるメモリに適する。例えば，ＮＡＮＤ型フラッシュメモリではビットの書き換えに要するライト電流量は小さく，ライトデータレートが上記ライト電流量に律速されない。一方，相変化メモリやＳＴＴ−ＲＡＭ，ＲｅＲＡＭはライトデータレートが上記ライト電流量に律速されるため，本制御方式が適する。【０１２９】
本提案方式を用いることで，ピーク電流を一定以下に制限しつつ，ベリファイライトに要する時間を短時間化することで，ライトデータレートの高速な半導体記憶装置１０１を実現することができる。【０１３０】
以上のように，実施例３では電気抵抗の違いにより，第１の記憶状態と第２の記憶状態を有する複数のメモリセルと，所定数のメモリセルを一つのライト（あるいはセット）単位として，データ書き込み後の記憶データの検証を行い，誤りがある場合のベリファイライトを想定している。ベリファイライト時に，ライト単位にベリファイライトされる第１の記憶状態の数をカウントするカウンタ回路を有し，カウンタ回路の計算結果を基に，第１の記憶状態の数が所定数以下になる範囲で前記ライト単位が１個，もしくは，複数個，選択され，選択された１個，もしくは，複数個のベリファイライト単位のデータが一括してライトされる。
【実施例３】
【０１３１】
本実施例では、ライトデータレートが高速である，消去動作が不要なダイレクトオーバーライト（ビットオルタナティブライトと言われることもある）可能な半導体記録装置の例を説明する。【０１３２】
図１９は本発明の実施例３による動作シーケンス例を示す流れ図である。【０１３３】
本実施例ではダイレクトオーバーライト可能なＲｅＲＡＭを用いる場合を例にして説明する。ダイレクトオーバーライト可能なＲｅＲＡＭはあるビットについてライト，もしくは，消去したときに，その周辺のビットに記録された値が変化することが少ない。このときに半導体記憶装置１０１を制御する外部コントローラ，例えばＳＳＤコントローラは半導体記憶装置１０１に対して，消去命令を行わず，ライト命令を行うことができる。半導体記憶装置１０１に記録された’０’もしくは’１’の値は，外部コントローラにより，’０’もしくは’１’のどちらにも書き換えることが出来るようにすることが望ましい。このようにすることで外部コントローラが消去命令を行う必要がなくなり，高速なデータライト処理が可能なストレージシステムを実現できる。【０１３４】
なお，半導体記憶装置１０１内部では，’０’から’１’にデータを書き換える消去動作と，’１’から’０’にデータを書き換えるライト動作を行う。このときに，ライトする前にライト対象ページのデータをまず読み出し，ライト，もしくは消去が必要なビットを調べ，そのビットのみをライト，もしくは消去し，値の変わらないビットはライトと消去を行わないことが望ましい。このようにすることで，ライト，もしくは消去を行うビット数を低減し，ライトデータレートの高速な半導体記憶装置１０１を実現できる。【０１３５】
本提案の実施例の概略を述べると，ページライト時に，まずページリードを行い，例えば，ライトに関しては，ポピュレーションカウンタはリードしたデータとライトするべきデータを比較し，’１’から’０’にライトするビットの数をカウントし，そのビット数が最大同時ライトビット数以下になる範囲で最大限多くのサブライトドライバＷＤを駆動する。なお，消去動作についても同様の制御が可能であることは言うまでもない。このときは，ポピュレーションカウンタはリードしたデータとライトするべきデータを比較し，’０’から’１’に消去するビットの数をカウントし，そのビット数が最大同時消去ビット数以下になる範囲で最大限多くのサブ消去ドライバＷＤを駆動する。【０１３６】
図１９を用いて具体的な動作シーケンスを説明する。【０１３７】
まず，ページリードを行う（Ｓ１９０１）。次に，ポピュレーションカウンタを用いてライトの必要なビット数をカウントし（Ｓ１９０２），最大ピーク電流の観点で許容される範囲で最大限多くのサブライトドライバＷＤを駆動してライトを行う（Ｓ２０８）。次に，消去を行い（Ｓ１９０３），ページの残りのライトと消去を行う（Ｓ１９０４）。【０１３８】
レジスタには’０’ライト，’１’消去と’２’の値の変更なしの３値記憶でデータを保持することができる。こうすると，リードした値を保持するレジスタとライトするべき値を保持する２値のレジスタを合わせて２個設ける場合に比べて，レジスタのデータサイズを３／４に小さくすることが出来る。【０１３９】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。【０１４０】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【０１４１】
１０１  半導体記録装置
１０２  メモリアレイ
１０３  ポピュレーションカウンタ
１０４  行デコーダ
１０５  Ｉ／Ｏ部
１０７  レジスタ
１０８  データバス
１０９  リード回路
１１０  消去回路
４０１  ポピュレーションカウンタ処理
９０１  Ｚ選択トランジスタゲート電極
９０２  層間絶縁膜
９０３  ゲート酸化膜
９０４  シリコンチャネル
９０５  相変化材料
９０６  シリコン酸化膜
ＣＥＬＬ  メモリセル
Ｆ  最小加工寸法
Ｌｏｃａｌ  Ｙ  ｄｒｉｖｅｒ  Ｙ選択線駆動回路
ＭＣ  メモリチェーン
ｍａｉｎＹ  中間Ｙメイン選択線信号
ＰＣＭ  相変化素子
ＲＢＬ  リードビット線
ＳＬ  ソース線
ｓｕｂＹ  中間Ｙサブ選択線信号
ＷＤ  サブライトドライバ
ＷＤ＿ＥＮ  サブライトドライバ活性化信号
ＷＤＧ  ライトドライバグループ
ＷＲ  ライト電極
Ｘ  ローカルＸ選択線
ＸＭＯＳ  Ｘ選択素子
Ｙ  ローカルＹ選択線
ＹＭＯＳ Ｙ選択素子
Ｚ  Ｚ選択線
ＺＭＯＳ  Ｚ選択素子
【図１】
2016042665.tif 000003
【図２】
2016042665.tif 000004
【図３】
2016042665.tif 000005
【図４】
2016042665.tif 000006
【図５】
2016042665.tif 000007
【図６】
2016042665.tif 000008
【図７】
2016042665.tif 000009
【図８】
2016042665.tif 000010
【図９】
2016042665.tif 000011
【図１０】
2016042665.tif 000012
【図１１】
2016042665.tif 000013
【図１２】
2016042665.tif 000014
【図１３】
2016042665.tif 000015
【図１４】
2016042665.tif 000016
【図１５】
2016042665.tif 000017
【図１６】
2016042665.tif 000018
【図１７】
2016042665.tif 000019
【図１８】
2016042665.tif 000020
【図１９】
2016042665.tif 000021
【手続補正書】
【提出日】平成28年10月7日(2016.10.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電気抵抗の違いにより，第１の記憶状態と第２の記憶状態を設定可能な複数のメモリセルと，
前記複数のメモリセルの一部である所定数の前記メモリセルを一つのライト単位として，当該ライト単位のメモリセルに書き込み（ライト）、消去、およびベリファイライトの少なくとも一つ（以下「セット」という）を行う際に，複数の前記ライト単位において，前記記憶状態が変更される個数の数を計算するカウンタ回路を有し，
前記カウンタ回路の計算結果を基に，前記個数の数が所定数以下になる範囲で前記ライト単位が１個，もしくは，複数個，選択され，
前記選択された１個，もしくは，複数個のライト単位のデータが一括してセットされることを特徴とする半導体記憶装置。
【請求項２】
前記カウンタ回路によるカウントと前記セットが，同時に実行されることを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記カウンタ回路の処理時間が下記の式を満たすことを特徴とする請求項１に記載の半導体記憶装置。
セット時間＞ カウンタ回路の処理時間× 最大同時駆動セット単位数
【請求項４】
前記ライト単位でセットされる複数の前記メモリセルが，メモリアレイ中の互いに隣接していない場所に分散され配置していることを特徴とする請求項１に記載の半導体記憶装置。
【請求項５】
複数の記憶状態を保持可能な，複数のメモリセルと，
前記複数のメモリセルのうち所定数のメモリセルと接続され，当該所定数のメモリセルの記憶状態を変更可能な複数のサブライトドライバと，
前記サブライトドライバにデータを入力するための入力経路と，
前記複数のサブライトドライバが，前記入力されるデータに基づいて，前記所定数のメモリセルのうち記憶状態を変更すべき個数をカウントする，カウンタを有し，
前記カウンタのカウント結果に基づいて，前記複数のサブライトドライバの動作タイミングを制御する半導体記憶装置。
【請求項６】
前記カウンタは，前記複数のサブライトドライバ毎に，順次前記記憶状態を変更すべきメモリセルの個数をカウントし，カウント結果を加算していき，
前記加算されたカウント結果が，ｎ番目（ｎは自然数）のサブライトドライバで第１の所定閾値を超えた場合には，ｎ-１番目までのサブライトドライバを一括して動作させる請求項５記載の半導体記憶装置。
【請求項７】
前記加算されたカウント結果が，ｎ番目（ｎは自然数）のサブライトドライバで前記第１の所定閾値を超えない場合であっても，ｎが第２の所定閾値に達した場合には，ｎ番目までのサブライトドライバを一括して動作させる請求項６記載の半導体記憶装置。
【請求項８】
前記ｎ-１番目までのサブライトドライバを一括して動作させている間に，ｎ番目以降の前記サブライトドライバについてのカウントを並行して行う請求項６記載の半導体記憶装置。
【請求項９】
前記サブライトドライバと接続されている前記所定数のメモリセルは，分散配置されている請求項５記載の半導体記憶装置。
【請求項１０】
半導体記憶装置と，前記半導体記憶装置を制御するコントローラを有し，
前記半導体記憶装置は，
電気抵抗の違いにより複数の記憶状態を保持可能な，複数のメモリセルと，
前記複数のメモリセルのうち所定数のメモリセルと接続され，当該所定数のメモリセルの記憶状態を変更可能な複数のサブライトドライバと，
前記サブライトドライバにデータを入力するために前記コントローラとの通信を行うインタフェースと，
前記複数のサブライトドライバが，前記入力されるデータに基づいて，前記所定数のメモリセルのうち記憶状態を変更すべき個数をカウントする，カウンタを有し，
前記コントローラは，
前記半導体記憶装置および上位装置と通信を行うためのＩ／Ｏ部と，
前記半導体記憶装置へのデータの書き込み，消去，およびベリファイの少なくとも一つを制御する制御部を有し，
前記カウンタのカウント結果に基づいて，前記複数のサブライトドライバの動作タイミングを制御するストレージ装置。
【請求項１１】
前記カウンタは，
前記複数のサブライトドライバ毎に，順次前記記憶状態を変更すべきメモリセルの個数をカウントし，カウント結果を加算していき，
前記加算されたカウント結果が，ｎ番目（ｎは自然数）のサブライトドライバで第１の所定閾値を超えた場合には，ｎ-１番目までのサブライトドライバを一括して動作させる請求項１０記載のストレージ装置。
【請求項１２】
前記コントローラは，
前記上位装置から受信したデータの第１の値と第２の値を反転させて，前記半導体記憶装置の前記メモリセルに反映する制御を行う請求項１０記載のストレージ装置。
【請求項１３】
データの書き込みにおいて，
前記サブライトドライバは，全て第１の値に設定して消去済の前記所定数のメモリセルのうち，所定のメモリセルの状態を第１の値から第２の値に変更するデータ書き込みを行うものとし，
前記カウンタは，前記第１の値から前記第２の値に変更するメモリセルの個数をカウントする請求項１０記載のストレージ装置。
【請求項１４】
データ書き込み後に記憶データの検証を行い，誤りがある場合のベリファイライトにおいて，
前記サブライトドライバは，第１の値から第２の値に変更すべきメモリセルのうち，正しく前記第２の値に変更されていないメモリセルを，再度前記第２の値に変更するベリファイライトを行うものとし，
前記カウンタは，前記正しく第２の値に変更されていないメモリセルの個数をカウントする請求項１０記載のストレージ装置。
【請求項１５】
データの書き込みまたは消去において，
前記サブライトドライバは，前記入力されたデータに基づいて，所定のメモリセルの状態を変更するデータ書き込みまたは消去を行うものとし，
前記カウンタは，現在のメモリセルの状態に基づいたデータと，前記入力されたデータを比較し，前記入力されたデータに基づいてデータ書き込みまたは消去を行うために，第１の値から第２の値に変更するべきメモリセルの個数をカウントする請求項１０記載のストレージ装置。
【国際調査報告】
2016042665.tif 000022
2016042665.tif 000023