(57)【要約】 【課題】書込み不良と判断されても、書込みデータおよび書込みアドレスを消失させることなく、外部へ出力しあるいは内部に格納可能な半導体記憶装置を提供する。【解決手段】本実施形態による半導体記憶装置はメモリセルアレイを備える。第１データラッチ部はメモリセルアレイへの書込み単位データを保持する。第１アドレスラッチ部は書込み単位データの書き込み先を示す書込みアドレスを保持する。第２データラッチ部はメモリセルアレイへの書き込みに失敗した書込み単位データをフェイルデータとして保持する。第２アドレスラッチ部は、フェイルデータの書き込み先を示すフェイルアドレスを保持する。制御部は、フェイルアドレスの出力を示す第１出力コマンドの入力に応じて、第２アドレスラッチ部からフェイルアドレスを出力し、かつ、フェイルデータの出力を示す第２出力コマンドの入力に応じて、第２データラッチ部からフェイルデータを出力する。【選択図】図２
2019045910.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイと、
前記メモリセルアレイへの書込み単位データを保持する第１データラッチ部と、
前記書込み単位データの書き込み先を示す書込みアドレスを保持する第１アドレスラッチ部と、
前記メモリセルアレイへの書き込みに失敗した前記書込み単位データをフェイルデータとして保持する第２データラッチ部と、
前記フェイルデータの書き込み先を示すフェイルアドレスを保持する第２アドレスラッチ部と、
前記フェイルアドレスの出力を示す第１出力コマンドの入力に応じて、前記第２アドレスラッチ部から前記フェイルアドレスを出力し、かつ、前記フェイルデータの出力を示す第２出力コマンドの入力に応じて、前記第２データラッチ部から前記フェイルデータを出力する制御部とを備えた半導体記憶装置。
【請求項２】
メモリセルアレイと、
前記メモリセルアレイへの書込み単位データを保持する第１データラッチ部と、
前記書込み単位データの書き込み先を示す書込みアドレスを保持する第１アドレスラッチ部と、
前記メモリセルアレイへの書き込みに失敗した前記書込み単位データをフェイルデータとして保持する第２データラッチ部と、
前記フェイルデータの書き込み先を示すフェイルアドレスを保持する第２アドレスラッチ部と、
前記フェイルデータの再書き込みを示す再書込みコマンドおよび前記フェイルアドレスとは異なる再書込みアドレスを入力し、前記再書込みコマンドに応じて前記第２データラッチ部の前記フェイルデータを、前記メモリセルアレイの前記再書込みアドレスへ書き込む制御部とを備えた半導体記憶装置。
【請求項３】
前記メモリセルアレイは抵抗変化型メモリである、請求項１または請求項２に記載の半導体記憶装置。
【請求項４】
前記メモリセルアレイに前記書込み単位データを書き込む書込みシーケンスは、書込み電圧を印加する書込み動作と、前記メモリセルアレイにデータが書き込まれたか否かを検証するベリファイ動作と、を有するｍ回（ｍは２以上の整数）の書込みループを含み、
前記制御部は、前記書込みシーケンスにおいて前記書込み単位データが書き込まれなかった場合に該書込みシーケンスを再度実行し、該書込みシーケンスの繰り返し回数がｎ（ｎは２以上の整数）に達したときに、前記第１出力コマンドを入力して前記第２アドレスラッチ部から前記フェイルアドレスを出力し、かつ、前記第２出力コマンドを入力して前記第２データラッチ部から前記フェイルデータを出力する、請求項１または請求項３に記載の半導体記憶装置。
【請求項５】
前記メモリセルアレイに前記書込み単位データを書き込む書込みシーケンスは、書込み電圧を印加する書込み動作と、前記メモリセルアレイにデータが書き込まれたか否かを検証するベリファイ動作と、を有する所定回数の書込みループを含み、
前記制御部は、前記書込みシーケンスにおいて前記書込み単位データが書き込まれなかった場合に該書込みシーケンスを再度実行し、該書込みシーケンスの繰り返し回数がｎ（ｎは２以上の整数）に達したときに、前記再書込みコマンドおよび前記再書込みアドレスを入力し、前記再書込みコマンドに応じて前記第２データラッチ部の前記フェイルデータを、前記メモリセルアレイの前記再書込みアドレスへ書き込む、請求項２または請求項３に記載の半導体記憶装置。
【請求項６】
メモリセルアレイと、前記メモリセルアレイへの書込み単位データを保持する第１データラッチ部と、前記書込み単位データの書き込み先を示す書込みアドレスを保持する第１アドレスラッチ部と、前記メモリセルアレイへの書き込みに失敗した前記書込み単位データをフェイルデータとして保持する第２データラッチ部と、前記フェイルデータの書き込み先を示すフェイルアドレスを保持する第２アドレスラッチ部とを備えた半導体記憶装置の制御方法であって、
前記フェイルアドレスの出力を示す第１出力コマンドを入力し、
前記第１出力コマンドに応じて前記第２アドレスラッチ部から前記フェイルアドレスを出力し、
前記フェイルデータの出力を示す第２出力コマンドを入力し、
前記第２出力コマンドに応じて前記第２データラッチ部から前記フェイルデータを出力することを具備する半導体記憶装置の制御方法。
【請求項７】
メモリセルアレイと、前記メモリセルアレイへの書込み単位データを保持する第１データラッチ部と、前記書込み単位データの書き込み先を示す書込みアドレスを保持する第１アドレスラッチ部と、前記メモリセルアレイへの書き込みに失敗した前記書込み単位データをフェイルデータとして保持する第２データラッチ部と、前記フェイルデータの書き込み先を示すフェイルアドレスを保持する第２アドレスラッチ部とを備えた半導体記憶装置の制御方法であって、
前記フェイルデータの再書き込みを示す再書込みコマンドおよび前記フェイルアドレスとは異なる再書込みアドレスを入力し、
前記再書込みコマンドに応じて前記第２データラッチ部の前記フェイルデータを、前記メモリセルアレイの前記再書込みアドレスへ書き込むことを具備した半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明による実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ(Dynamic RAM)は、高速アクセス可能であるが、比較的容量の小さな揮発性メモリである。また、ＮＡＮＤ型ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）やＨＤＤ（Hard Disk Drive）は、比較的容量の大きな不揮発性メモリまたはストレージであるが、アクセス速度において遅い。ＮＡＮＤ型ＥＥＰＲＯＭまたはＨＤＤのアクセス速度は、ＳＲＡＭまたはＤＲＡＭのそれに対して約１０００倍も遅い。
【０００３】
従って、ＳＲＡＭまたはＤＲＡＭとＮＡＮＤ型ＥＥＰＲＯＭまたはＨＤＤとの中間のアクセス速度を有する不揮発性メモリが開発されている。このようなメモリを本明細書では、ＳＣＭ（Storage Class Memory）と称する。
【０００４】
ＳＣＭに要求される可能性がある機能として、データ書込みにおいて書き込みに失敗しても、所定回数だけ再度書き込みを繰り返し実行する機能が考えられる。しかし、その場合、書込み失敗の回数が所定回数を超えると、書込み不良となり、その書込みデータはリセットされ消失されてしまう。この場合、ＣＰＵまたはコントローラは、書込みデータおよびその書込みデータの書込み先のアドレスを知るこができなくなってしまう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１８２５０５号公報
【特許文献２】特開２０１６−０１８４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
書込み不良と判断されても、書込みデータおよび書込みアドレスを消失させることなく、外部へ出力しあるいは内部に格納することができる半導体記憶装置を提供する。
【課題を解決するための手段】
【０００７】
本実施形態による半導体記憶装置はメモリセルアレイを備える。第１データラッチ部はメモリセルアレイへの書込み単位データを保持する。第１アドレスラッチ部は書込み単位データの書き込み先を示す書込みアドレスを保持する。第２データラッチ部はメモリセルアレイへの書き込みに失敗した書込み単位データをフェイルデータとして保持する。第２アドレスラッチ部は、フェイルデータの書き込み先を示すフェイルアドレスを保持する。制御部は、フェイルアドレスの出力を示す第１出力コマンドの入力に応じて、第２アドレスラッチ部からフェイルアドレスを出力し、かつ、フェイルデータの出力を示す第２出力コマンドの入力に応じて、第２データラッチ部からフェイルデータを出力する。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態によるＲｅＲＡＭを用いたＳＣＭを示すブロック図。
【図２】１つのバンクＢＮＫに対応するセンスアンプ、データラッチおよびアドレスラッチの構成例を示すブロック図。
【図３】第１実施形態によるＳＣＭのデータ書込み動作を示すフロー図。
【図４】フェイルアドレスおよびフェイルデータの取り扱いを示すフロー図。
【図５】フェイルアドレスおよびフェイルデータの取り扱いを示すタイミング図。
【図６】フェイルアドレスおよびフェイルデータの取り扱いを示すタイミング図。
【図７】第２実施形態によるＳＣＭの動作を示すフロー図。
【図８】第２実施形態によるＳＣＭの動作を示すタイミング図。
【図９】第３実施形態による各種のデバイスを構成要素とするメモリシステム、ストレージシステムの一例の概要図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
【００１０】
本実施形態は、メモリセルアレイと周辺回路との間に複数ページのアドレスおよびデータを保持可能なラッチ回路を有する不揮発性半導体記憶装置に適用することができる。例えば、ＲｅＲＡＭ(Resistive RAM)、ＭＲＡＭ(Magnetoresistive RAM)、ＰＣＭ(Phase Change Memory)等の半導体記憶装置に適用することができる。以下、ＲｅＲＡＭに適用した実施形態を説明する。
【００１１】
（第１の実施形態）
図１は、第１実施形態によるＲｅＲＡＭを用いたＳＣＭ（Storage Class Memory）１を示すブロック図である。ＳＣＭ１は、例えば、ＤＩＭＭ（Dual Inline Memory Module）等のモジュール化された装置であってもよい。
【００１２】
本実施形態によるＳＣＭ１は、複数のメモリチップ１０と、メモリコントローラ２０とを含み、１つのパッケージとして構成されている。複数のメモリチップ１０は、積層されており、その積層数は特に限定しない。メモリコントローラ２０は、ホストＣＰＵ２からの指示に従って複数のメモリチップ１０にコマンドおよびアドレスを出力し、そのコマンドに従って所望のアドレスのメモリセル（ページ）に格納されたデータを読み出し、あるいは、所望のアドレスのメモリセル（ページ）へデータを書き込む。ホストＣＰＵ２は、ＳＣＭ１の外部に設けられており、ホストＣＰＵ２からの指示に基づいて動作する。１ページは、データ読出し動作またはデータ書込み動作において同時に読み出しまたは書き込みを行うデータの単位あるいはメモリセルの単位である。即ち、１ページは、読出し単位データまたは書込み単位データである。あるいは、１ページは、読出し単位データまたは書込み単位データを格納するメモリセルの単位である。例えば、１ページは、６４ビットのデータあるいは６４ビットのデータを格納する複数のメモリセルでよい。
【００１３】
メモリチップ１０は、メモリセルアレイＭＣＡと、カラムデコーダＣＤと、ロウデコーダＲＤと、センスアンプＳＡと、データラッチＤＬと、アドレスラッチＡＬと、周辺回路ＰＣとを備えている。メモリチップ１０の構成は、１つの半導体チップとして組み込まれている。上記周辺回路ＰＣは、電圧ジェネレータＶＧと、リード・ライトエンジンＲＷＥと、シリアライザ・デシリアライザＳＤと、アドレスコントローラＡＣと、コマンドコントローラＣＣと、入出力回路ＩＯとを備えている。
【００１４】
メモリセルアレイＭＣＡは、例えばマトリクス状に二次元配置または三次元配置された複数のメモリセルＭＣを備えている。メモリセルＭＣは、例えば、ＲｅＲＡＭである。メモリセルＭＣは、例えば、ビット線ＢＬとワード線ＷＬとの交点に配置されている。メモリセルアレイＭＣＡは、所謂、クロスポイント型メモリセルアレイであってもよく、三次元構造を有する立体型メモリセルアレイでよい。ビット線ＢＬは、ワード線ＷＬと直交する。メモリセルアレイＭＣＡは、１チップ内において複数のバンクＢＮＫに分割されており、各バンクＢＮＫごとにセンスアンプＳＡ、データラッチＤＬ、アドレスラッチＡＬ等が設けられている。
【００１５】
センスアンプＳＡは、例えば、ビット線ＢＬを介してメモリセルＭＣに接続されており、メモリセルＭＣのデータを検出（リード）する機能を有する。
【００１６】
データラッチＤＬは、センスアンプＳＡで検出されたデータをページごとに一時的に保持し、あるいは、メモリセルアレイＭＣＡに書き込むデータをページごとに一時的に保持する。
【００１７】
アドレスラッチＡＬは、読み出したり書き込む対象となるバンクＢＮＫ内のページアドレス等を一時的に保持する。
【００１８】
ロウデコーダＲＤおよびカラムデコーダＣＤは、アドレスラッチＡＬに保持されたアドレスに基づいてメモリセルアレイＭＣＡにアクセスし、センスアンプＳＡを介してそのアドレスに格納されたデータをデータラッチＤＬに読み出す。あるいは、ロウデコーダＲＤおよびカラムデコーダＣＤは、アドレスラッチＡＬに保持されたアドレスに基づいてメモリセルアレイＭＣＡにアクセスし、センスアンプＳＡを介してデータラッチＤＬに保持されたデータをメモリセルアレイＭＣＡへ書き込む。
【００１９】
電圧ジェネレータＶＧは、データ読出し動作およびデータ書込み動作に必要なワード線ＷＬの電圧やビット線ＢＬの電圧等を生成する。
【００２０】
アドレスコントローラＡＣは、ロウアドレスおよびカラムアドレス等を受け取り、これらのアドレスをデコードし、アドレスラッチＡＬやリード・ライトエンジンＲＷＥにこれらのアドレスを送る。尚、三次元配置されたメモリセルアレイの場合、ロウアドレス、カラムアドレスおよびレイヤアドレスがアドレスラッチＡＬやリード・ライトエンジンＲＷＥに送られる。
【００２１】
コマンドコントローラＣＣは、データ読出し動作、データ書込み動作等の各種動作を示すコマンドを受け取り、それらのコマンドに従ってリード・ライトエンジンＲＷＥを制御する。
【００２２】
リード・ライトエンジンＲＷＥは、コマンドおよびアドレスに従って、入出力回路ＩＯから受け取ったデータをバンクＢＮＫ内の所望ページに書き込むようにカラムデコーダＣＤおよびロウデコーダＲＤを制御し、あるいは、所望バンクＢＮＫ内の所望ページからデータを読み出し、そのデータをシリアライザ・デシリアライザＳＥＲＤＥＳを介して入出力回路ＩＯのＤＱバッファへ転送する。また、リード・ライトエンジンＲＷＥは、アドレスラッチＡＬに保持されたアドレスを入出力回路ＩＯへ出力することができ、かつ、データラッチＤＬに保持されたデータを入出力回路ＩＯへ出力することができる。
【００２３】
入出力回路ＩＯは、コマンドおよびアドレスをＣＡ端子ＣＡから取り込み、コマンドをコマンドコントローラＣＣへ転送し、アドレスをアドレスコントローラＡＣへ転送する。コマンドは、書込み動作を指示する書込みコマンドであったり、読出し動作を指示する読出しコマンドでよい。また、本実施形態において、コマンドは、アドレスラッチＡＬからフェイルアドレスを出力するフェイルアドレス出力コマンドＦＡ、および、データラッチＤＬからフェイルデータを出力するフェイルデータ出力コマンドＦＤをも含む。アドレスは、バンクＢＮＫ内の読出しまたは書込み対象のページを示すページアドレスでよい。尚、アドレスは、メモリセルアレイＭＣＡのいずれかのバンクＢＮＫを示すバンクアドレスの場合もある。あるいは、複数のバンクＢＮＫが１つのバンクグループを構成する場合には、アドレスは、バンクグループのアドレスの場合もある。バンクアドレスあるいはバンクグループアドレスは、リード・ライトエンジンＲＷＥに一時的に保持され、活性化するバンクＢＮＫまたはバンクグループを選択するために用いられる。
【００２４】
また、入出力回路ＩＯは、書込みデータをＤＱ端子から取り込み、書込みデータを、シリアライザ・デシリアライザＳＥＲＤＥＳを介してデータラッチＤＬへ転送する。あるいは、入出力回路ＩＯは、データラッチＤＬに保持された読出しデータを、シリアライザ・デシリアライザＳＥＲＤＥＳを介して受け取り、その読出しデータをＤＱ端子から出力する。
【００２５】
シリアライザ・デシリアライザＳＥＲＤＥＳは、書込みデータおよび読出しデータをシリアル転送方式とパラレル転送方式との間で相互変換する。
【００２６】
電圧ジェネレータＶＧ、アドレスコントローラＡＣ、コマンドコントローラＣＣ、リード・ライトエンジンＲＷＥ、入出力回路ＩＯおよびシリアライザ・デシリアライザＳＤは、メモリチップ１０において周辺回路ＰＣとして設けられている。
【００２７】
メモリコントローラ２０は、積層された複数のメモリチップ１０に対して１つ設けられており、複数のメモリチップ１０全体を制御する。
【００２８】
さらに、ＳＣＭ１のパッケージの外部には、ホストＣＰＵ２が設けられていてもよい。
【００２９】
図２は、１つのバンクＢＮＫに対応するセンスアンプＳＡ、データラッチＤＬおよびアドレスラッチＡＬの構成例を示すブロック図である。ＳＣＭは、１ページ当たりのデータサイズが比較的小さく、高速アクセス可能であることが求められる。このため、メモリセルアレイＭＣＡは、バンクＢＮＫという最小アクセス単位に分割されており、バンクＢＮＫごとにアクセス可能となっている。各バンクＢＮＫには、１ページ分（例えば、６４ビット分）のデータをほぼ同時に検出可能なセンスアンプＳＡが設けられている。各センスアンプＳＡ（即ち、各バンクＢＮＫ）には、アドレスラッチＡＬおよびデータラッチＤＬが設けられている。１つのアドレスラッチＡＬは、複数のアドレスラッチ回路ＡＬ１〜ＡＬ４を含み、１つのデータラッチＤＬは、複数のデータラッチ回路ＤＬ１〜ＤＬ４を含む。アドレスラッチ回路は、データラッチ回路と対応しており、同数設けられている。例えば、各センスアンプＳＡ（即ち、各バンクＢＮＫ）には、４つのアドレスラッチ回路ＡＬ１〜ＡＬ４および４つのデータラッチ回路ＤＬ１〜ＤＬ４が設けられている。
【００３０】
データラッチ回路ＤＬ１〜ＤＬ４は、それぞれ１ページ分のデータを一時的に保持可能であり、計４ページ（例えば、６４×４ビット）分のデータを格納することができる。アドレスラッチ回路ＡＬ１〜ＡＬ４は、それぞれデータラッチ回路ＤＬ１〜ＤＬ４に格納されたデータの読出し元のアドレスまたは書込み先のアドレスを保持する。
【００３１】
例えば、データラッチ回路ＤＬ１〜ＤＬ３は、書込みデータまたはメモリセルアレイＭＣＡへの書込みに失敗したフェイルデータを保持する。書込みデータおよびフェイルデータは、データラッチ回路ＤＬ１〜ＤＬ３のうち空いているデータラッチ回路へ保持される。データラッチ回路ＤＬ４は、メモリセルアレイＭＣＡからの読出しデータを保持する読出しデータ専用のデータラッチ回路である。
【００３２】
例えば、データラッチ回路ＤＬ１がメモリセルアレイＭＣＡへ書き込む１ページ分のデータ（書込み単位データ）を保持する場合、データラッチ回路ＤＬ１が書込み単位データを保持する第１データラッチ部として機能する。このとき、データラッチ回路ＤＬ１に対応するアドレスラッチ回路ＡＬ１はこの書込み単位データの書込み先を示す書込みアドレス（例えば、ページアドレス）を保持する。尚、データラッチ回路ＤＬ２（またはＤＬ３）が書込み単位データを保持する場合には、データラッチ回路ＤＬ２（またはＤＬ３）が書込み単位データを保持する第１データラッチ部として機能する。データラッチ回路ＤＬ２（またはＤＬ３）に対応するアドレスラッチ回路ＡＬ２（またはＡＬ３）が書込みアドレスを保持する第１アドレスラッチ部として機能する。
【００３３】
一方、データラッチ回路ＤＬ１がメモリセルアレイＭＣＡへの書き込みに失敗した書込み単位データをフェイルデータとして保持する場合、データラッチ回路ＤＬ１は、フェイルデータを保持する第２データラッチ部として機能する。このとき、データラッチ回路ＤＬ１に対応するアドレスラッチ回路ＡＬ１はこのフェイルデータの書込み先を示すフェイルアドレス（例えば、バンクアドレスおよびページアドレス）を保持する。尚、データラッチ回路ＤＬ２（またはＤＬ３）がフェイルデータを保持する場合には、データラッチ回路ＤＬ２（またはＤＬ３）がフェイルデータを保持する第２データラッチ部として機能する。データラッチ回路ＤＬ２（またはＤＬ３）に対応するアドレスラッチ回路ＡＬ２（またはＡＬ３）がフェイルアドレスを保持する第２アドレスラッチ部として機能する。
【００３４】
第３データラッチ部としてのデータラッチ回路ＤＬ４は、メモリセルアレイＭＣＡから読み出された１ページ分のデータ（読出し単位データ）を保持する。第３アドレスラッチ部としてのアドレスラッチ回路ＡＬ４は、読出し単位データの格納先を示す読出しアドレスを保持する。データラッチ回路ＤＬ４は、読出しデータに専用される。
【００３５】
データラッチ回路ＤＬ４は、読出しデータに専用されているが、データラッチ回路ＤＬ１〜ＤＬ３は、書込みデータおよびフェイルデータに汎用される。従って、書込みデータまたはフェイルデータは、データラッチ回路ＤＬ１〜ＤＬ３のうち空いているデータラッチ回路に保持すればよい。
【００３６】
尚、データラッチ回路ＤＬ１〜ＤＬ３に格納される書込みデータは、次の書込みサイクルでメモリセルアレイＭＣＡへ書き込まれる予約データの場合もある。予約データは、データラッチ回路ＤＬ１〜ＤＬ３のいずれか空いているデータラッチ回路（第４データラッチ部）に保持される。予約データは、メモリセルアレイＭＣＡへの書込みデータではあるが、第４データラッチ部に保持される段階（サイクル）では、メモリセルアレイＭＣＡにはまだ書き込まれない。予約データは、第４データラッチ部に保持された後、実行コマンドが入力された段階（サイクル）でメモリセルアレイＭＣＡへ書き込まれる。第４データラッチ部に対応する第４アドレスラッチ部（ＡＬ１〜ＡＬ３のいずれか）は、予約データの書き込み先を示す予約アドレスを保持する。
【００３７】
このように、データラッチ回路ＤＬ１〜ＤＬ３には、書込みデータ、フェイルデータおよび予約データが１ページずつ格納されている場合がある。この場合、アドレスラッチ回路ＡＬ１〜ＡＬ３には、それぞれデータラッチ回路ＤＬ１〜ＤＬ３に格納されているデータに対応するアドレスが格納される。
【００３８】
次に、第１実施形態によるＳＣＭ１の動作を説明する。
【００３９】
図３は、第１実施形態によるＳＣＭ１のデータ書込み動作を示すフロー図である。尚、データ書込み動作の主体は、制御部としてのアドレスコントローラＡＣ、コマンドコントローラＣＣおよび／またはリード・ライトエンジンＲＷＥである。
【００４０】
まず、データ書込み動作においては、入出力回路ＩＯが書込みコマンドおよびそれに対応する書込みアドレスをメモリコントローラ２０から入力する（Ｓ１０）。アドレスコントローラは、このアドレスをアドレスラッチ回路ＡＬ１〜ＡＬ３のうち空いているアドレスラッチ回路に転送する。例えば、アドレスは、アドレスラッチ回路ＡＬ１に保持される。
【００４１】
次に、ＤＱ端子を介して書込みデータが入力される（Ｓ２０）。入出力回路ＩＯは、シリアライザ・デシリアライザＳＤを介して書込みデータをデータラッチＤＬへ転送する。書込みデータは、上記アドレスが格納されたアドレスラッチ回路に対応するデータラッチ回路に保持される。例えば、アドレスがアドレスラッチ回路ＡＬ１に保持されている場合、書込みデータは、データラッチ回路ＤＬ１に保持される。
【００４２】
次に、センスアンプＳＡが書込み対象のアドレスで示されるページからデータを一旦読み出す（Ｓ３０）。その読出しデータはデータラッチ回路ＤＬ４に一時的に保持される。
【００４３】
次に、リード・ライトエンジンＲＷＥは、データラッチ回路ＤＬ１に保持された書込みデータとデータラッチ回路ＤＬ４に保持された読出しデータとを比較する（Ｓ４０）。これにより、書込み対象のページのうちメモリセルのデータ状態が書込みデータと異なるメモリセル（ビット）が判明する。
【００４４】
次に、リード・ライトエンジンＲＷＥは、メモリセルのデータ状態が書込みデータと異なるメモリセル（ビット）にデータを書き込む（Ｓ５０）。リード・ライトエンジンＲＷＥは、メモリセルのデータ状態が書込みデータと同じメモリセルには書込み動作を実行しない。このとき、リード・ライトエンジンＲＷＥは、ＳＥＴ状態（低抵抗状態）を書き込み、次に、ＲＥＳＥＴ状態（高抵抗状態）を書き込む。尚、リード・ライトエンジンＲＷＥは、ＲＥＳＥＴ状態（高抵抗状態）を書き込み、次に、ＳＥＴ状態（低抵抗状態）を書き込んでもよい。
【００４５】
書込みは、ワード線ＷＬとビット線ＢＬとに電圧差を発生させて、メモリセルＭＣに書込み電圧を印加することによって実行される。ＳＥＴ状態の書込みとＲＥＳＥＴ状態の書込みとでは、ワード線ＷＬの電圧とビット線ＢＬの電圧との大小関係が逆になる。
【００４６】
次に、ベリファイ動作を実行する（Ｓ６０）。ベリファイ動作では、リード・ライトエンジンＲＷＥが書込み対象ページのデータを読み出し、その読出しデータと書込みデータとを比較する。そのページ内において書込みデータの論理と一致しないメモリセル数（即ち、ビット数）が閾値未満の場合（Ｓ７０のＹＥＳ）、そのページの書込みは成功（パス）したことになる。書込みが成功した場合、そのページの書込み動作は終了する。
【００４７】
メモリセルＭＣに書込み電圧を印加する書込み動作とメモリセルＭＣにデータが書き込まれたか否かを検証するベリファイ動作は、１つの書込みループを構成する。書込みループは、例えば、ステップＳ５０〜Ｓ７０で示す動作である。書込みシーケンスは、ページ内のメモリセルにデータを書き込むために、複数の書込みループを繰り返す。１つの書込みシーケンスには、ｍ回（ｍは２以上の整数）の書込みループが含まれる。ｍは、特に限定しないが、例えば、４つである。この場合、書込みループを４回実行しても、データが書き込まれないときに、そのアドレスおよびデータは、フェイルアドレスおよびフェイルデータとして第２データラッチ部（ＡＬ１〜ＡＬ３のいずれか）および第２データラッチ部（ＤＬ１〜ＤＬ３のいずれか）に保持される。
【００４８】
例えば、ページ内において書込みデータの論理と一致しないメモリセルのデータ数が閾値以上の場合（Ｓ７０のＮＯ）、ステップＳ５０〜Ｓ７０を再度実行する。ステップＳ５０〜Ｓ７０の書込みループは、ステップＳ７０においてベリファイをパスしない限り、ｍ回繰り返される（Ｓ８０のＮＯ）。もし、書込みループをｍ回繰り返してもベリファイをパスしない場合（Ｓ８０のＹＥＳ）、書込みデータは、フェイルデータとして第２データラッチ部（例えば、データラッチ回路ＤＬ２）に保持される。それとともに、書込みアドレスは、フェイルアドレスとして第２アドレスラッチ部（例えば、アドレスラッチ回路ＡＬ２）に保持される（Ｓ９０）。
【００４９】
次に、ＥＢＦ（Extension Buffer Flush）コマンドを受け取る（Ｓ１００）と、リード・ライトエンジンＲＷＥは、例えば、アドレスラッチ回路ＡＬ２に格納されたフェイルアドレスに従って、データラッチ回路ＤＬ２に格納されたフェイルデータをメモリセルアレイＭＣＡ内の該当ページへ再度書き込む。再書込みの書込みシーケンスは、ステップＳ３０〜Ｓ９０の書込みシーケンスと同様である。このとき、書込みループの実行回数は０にリセットされる。従って、ベリファイをパスしない限り、書込みループはｍ回繰り返される。
【００５０】
いずれかの書込みループにおいてベリファイをパスした場合、そのページの書込み動作は終了する。もし、ＥＢＦコマンドの発行後、書込みループをｍ回繰り返してもベリファイをパスしない場合（Ｓ８０のＹＥＳ）、書込みデータは、依然としてフェイルデータとして第２データラッチ部（例えば、データラッチ回路ＤＬ２）に格納され、書込みアドレスは、フェイルアドレスとして第２アドレスラッチ部（例えば、アドレスラッチ回路ＡＬ２）に格納される（Ｓ９０）。
【００５１】
ＥＢＦコマンドによる書込みシーケンスは、ｎ回（ｎは２以上の整数）だけ繰り返される。このとき、いずれかの書込みシーケンスにおいてベリファイをパスした場合、そのページの書込み動作は終了する。一方、ＥＢＦコマンドによる書込みシーケンスの繰り返し回数がｎ回に達しても、そのページのメモリセルがベリファイをパスしない場合（Ｓ１１０のＹＥＳ）、メモリセルアレイＭＣＡのそのページは不良ページと判断される（Ｓ１２０）。
【００５２】
ここで、不良ページと判断された場合のフェイルアドレスおよびフェイルデータの取り扱いについて説明する。
【００５３】
図４は、フェイルアドレスおよびフェイルデータの取り扱いを示すフロー図である。図５および図６は、フェイルアドレスおよびフェイルデータの取り扱いを示すタイミング図である。図５および図６において、信号ＣＡは、ＳＣＭ１に入力されるコマンドおよびアドレスを示す。ＦＡはフェイルアドレス出力コマンドＦＡであり、ＢＡはバンクアドレスであり、ＰＡはページアドレスである。信号ＣＡＳは、信号ＣＡをＳＣＭ１に入力するときのタイミングを示すクロックである。信号ＲＥは、ＤＱ端子から外部へデータを読み出すときのタイミングを示すクロックである。信号ＲＥは、信号ＣＡＳの入力後、遅延時間ｔＲＬの経過以降に入力される。信号ＤＱＳは、データＤＱをＳＣＭ１からメモリチップ１０の外部へ出力するタイミングを示すクロックである。信号ＤＱＳは、信号ＲＥの入力を受けて、信号ＲＥの入力後、遅延時間ｔＤＱＳＲＥ後に生成され、コントローラは信号ＤＱＳのタイミングで出力されたデータを取り込む。信号ＤＱは、ＤＱ端子から出力されるデータである。
【００５４】
図３のステップＳ１２０において不良ページと判断された後、ＳＣＭ１は、図５に示すように、信号ＣＡＳに従って、フェイルアドレスの出力指令を示す第１出力コマンドとしてのフェイルアドレス出力コマンドＦＡを入力する（Ｓ１３０）。フェイルアドレス出力コマンドＦＡは、ＳＣＭ１では今までに無い新規のコマンドであり、フェイルアドレスをアドレスラッチ回路ＡＬ２からメモリチップ１０の外部へ出力するコマンドである。フェイルアドレス出力コマンドＦＡに続いて、ＳＣＭ１は、信号ＣＡＳに従って、バンクアドレスＢＡを入力する（Ｓ１４０）。このバンクアドレスＢＡによってバンクＢＮＫを特定すると、該当バンクＢＮＫのアドレスラッチに保持された不良ページのアドレスが出力される。より詳細には、アドレスラッチＡＬ１〜ＡＬ３のうち不良アドレスを格納しているアドレスラッチにはポインタ（フラグ）が立っている。そのポインタの立っているアドレスラッチのデータをＤＱへ出力する。
バンクアドレスＢＡは、複数のバンクを１つのグループとしたバンクグループのアドレスであってもよい。
【００５５】
遅延時間ｔＲＬの経過後、信号ＲＥが入力され、その後、遅延時間ｔＤＱＳＲＥの経過後、信号ＤＱＳに従って、フェイルアドレスがアドレスラッチ回路ＡＬ２からＤＱ端子を介して出力される（Ｓ１５０）。即ち、制御部としてのリード・ライトエンジンＲＷＥは、フェイルアドレス出力コマンドＦＡの入力に応じて、アドレスラッチ回路ＡＬ２からフェイルアドレスを出力する。尚、図５の信号ＣＡにおいて、バンクアドレスＢＡおよびページアドレスＰＡの後に入力される信号は無くてもよい。また、信号ＤＱから出力されるフェイルアドレスは、例えば、４つの８ビットデータであり、その後のデータは無くてもよい。
【００５６】
次に、図６に示すように、ＳＣＭ１は、信号ＣＡＳに従って、フェイルデータの出力指令を示す第２出力コマンドとしてフェイルデータ出力コマンドＦＤを入力する（Ｓ１６０）。フェイルデータ出力コマンドＦＤに続いて、ＳＣＭ１は、信号ＣＡＳに従って、バンクアドレスＢＡおよびページアドレスＰＡを入力する（Ｓ１６５）。フェイルデータ出力コマンドＦＤは、ＳＣＭ１では今までに無い新規のコマンドであり、フェイルデータをデータラッチ回路ＤＬ２からメモリチップ１０の外部へ出力するコマンドである。このバンクアドレスＢＡによってバンクＢＮＫを特定すると、該当バンクＢＮＫのアドレスラッチに保持された不良ページのアドレスが出力される。より詳細には、アドレスラッチＡＬ１〜ＡＬ３のうち不良アドレスを格納しているアドレスラッチにはポインタ（フラグ）が立っている。そのポインタの立っているアドレスラッチのデータをＤＱへ出力する。バンクアドレスＢＡは、複数のバンクを１つのグループとしたバンクグループのアドレスであってもよい。
【００５７】
遅延時間ｔＲＬの経過後、信号ＲＥが入力され、その後、遅延時間ｔＤＱＳＲＥの経過後、信号ＤＱＳに従って、フェイルデータがデータラッチ回路ＤＬ２からＤＱ端子を介して出力される（Ｓ１７０）。即ち、リード・ライトエンジンＲＷＥは、フェイルデータ出力コマンドＦＤの入力に応じて、データラッチ回路ＤＬ２からフェイルデータを出力する。尚、図６の信号ＣＡにおいて、バンクアドレスＢＡおよびページアドレスＰＡの後に入力される信号は無くてもよい。また、信号ＤＱから出力されるデータは、例えば、８つの８ビットデータである。
【００５８】
メモリチップ１０から出力されたフェイルアドレスおよびフェイルデータは、メモリコントローラ２０に格納されてもよく、あるいは、ＳＣＭ１から出力されてホストＣＰＵ２に格納されてもよい。
【００５９】
このように、本実施形態によるＳＣＭ１は、データ書込み動作において、書込み不良となった不良ページのフェイルアドレスを、フェイルアドレス出力コマンドＦＡに応じて、アドレスラッチ回路ＡＬ２から出力する。また、ＳＣＭ１は、不良ページのフェイルデータを、フェイルデータ出力コマンドＦＤに応じて、データラッチ回路ＤＬ２から出力する。これにより、データ書込み動作において、不良ページのフェイルアドレスおよびフェイルデータをＳＣＭ１の外部へ出力することができ、チップ外部のメモリコントローラ２０あるいはＳＣＭ１の外部のホストＣＰＵ２がフェイルアドレスおよびフェイルデータを格納することができる。
【００６０】
もし、フェイルアドレス出力コマンドＦＡおよびフェイルデータ出力コマンドＦＤが設定されていない場合、フェイルアドレスおよびフェイルデータは、ＳＣＭ１の外部へ出力されず、アドレスラッチ回路ＡＬ２およびデータラッチ回路ＤＬ１においてリセットされ消去されてしまう。この場合、チップ外部のメモリコントローラ２０あるいはＳＣＭ１の外部のホストＣＰＵ２はフェイルアドレスおよびフェイルデータを格納していないので、フェイルアドレスおよびフェイルデータが不明となってしまう。
【００６１】
これに対し、本実施形態によるＳＣＭ１は、フェイルアドレスおよびフェイルデータをＳＣＭ１の外部へ出力するので、チップ外部のメモリコントローラ２０あるいはＳＣＭ１の外部のホストＣＰＵ２がフェイルアドレスおよびフェイルデータを格納することができる。その結果、書込み不良と判断されても、フェイルデータおよびフェイルアドレスを消失させることなく、これらのフェイルアドレスおよびフェイルデータの特定が容易となる。フェイルアドレスが判明することによって、メモリコントローラ２０あるいはホストＣＰＵ２は、メモリセルアレイＭＣＡのどのバンクＢＮＫのどのページが不良ページであるかを知ることができる。メモリコントローラ２０またはホストＣＰＵ２は、フェイルアドレスにアクセス制限を掛けることができ、無駄なアクセス動作を省略することができる。
【００６２】
フェイルアドレスおよびフェイルデータは、ホストＣＰＵ２を介してユーザが参照できるようにしてもよい。あるいは、フェイルデータは、フェイルアドレスとは異なる再書込みアドレスを用いてメモリセルアレイＭＣＡの別ページに再度、書き込んでもよい。フェイルデータを別ページに書き込む場合、リード・ライトエンジンＲＷＥは、フェイルデータの再書き込みを示す再書込みコマンドＲＥＰＲＯおよび再書込みアドレスを入力し、再書込みコマンドＲＥＰＲＯに応じてフェイルデータを、メモリセルアレイＭＣＡの再書込みアドレスへ書き込む。
【００６３】
これにより、メモリセルアレイＭＣＡの或るページが壊れていても、他のページへフェイルデータを格納することができる。
【００６４】
（第２実施形態）
第１実施形態において、ＳＣＭ１は、フェイルアドレスおよびフェイルデータをＳＣＭ１の外部へ出力している。これに対し、第２実施形態によるＳＣＭ１は、フェイルアドレスおよびフェイルデータを外部へ出力することなく、再書込みコマンドＲＥＰＲＯに応じて、フェイルデータをメモリセルアレイの別のアドレスへ書き込む。
【００６５】
図７は、第２実施形態によるＳＣＭ１の動作を示すフロー図である。図８は、第２実施形態によるＳＣＭ１の動作を示すタイミング図である。
【００６６】
図３のステップＳ１０〜Ｓ１２０の実行後、書込み対象のページが不良と判断された場合、フェイルアドレスおよびフェイルデータは、第２アドレスラッチ部（例えば、アドレスラッチ回路ＡＬ２）および第２データラッチ部（例えば、データラッチ回路ＤＬ２）に保持される。
【００６７】
次に、図８に示すように、ＳＣＭ１は、信号ＣＡＳに従って、フェイルデータの再書き込みを示す再書込みコマンドＲＥＰＲＯを入力する（Ｓ１３２）。再書込みコマンドＲＥＰＲＯは、ＳＣＭ１では今までに無い新規のコマンドであり、フェイルデータをアドレスラッチ回路ＡＬ２からメモリセルアレイＭＣＡへ再度書込みを指示するコマンドである。再書込みコマンドＲＥＰＲＯに続いて、ＳＣＭ１は、信号ＣＡＳに従って、バンクアドレスＢＡおよびページアドレスＰＡ１を入力する（Ｓ１４２）。再書込みアドレスとしてのページアドレスＰＡ１は、フェイルアドレスと同じバンク内における別ページのアドレスである。バンクアドレスＢＡは、複数のバンクを１つのグループとしたバンクグループのアドレスであってもよい。
【００６８】
ここで、第２実施形態では、フェイルデータは、データラッチ回路ＤＬ２に依然として保持されている。従って、リード・ライトエンジンＲＷＥは、再書込みコマンドＲＥＰＲＯおよび再書込みアドレスとしてのページアドレスＰＡ１を入力したときに、再書込みコマンドＲＥＰＲＯに応じてデータラッチ回路ＤＬ２のフェイルデータを、フェイルページとは異なるページアドレスＰＡ１へ書き込めばよい（Ｓ１５２）。即ち、ＳＣＭ１は、フェイルデータを外部から入力する必要がない。
【００６９】
このように、第２実施形態によるＳＣＭ１は、再書込みコマンドＲＥＰＲＯが入力されたときには、内部のデータラッチ回路ＤＬ２に保持されたフェイルデータを別アドレスのページに書き込む。これにより、第２実施形態のＳＣＭ１は、フェイルデータを消失することなく、別のページへ格納することができる。また、フェイルデータを外部から入力する必要がない。これにより、メモリコントローラ２０またはホストＣＰＵ２は、フェイルデータを保持する必要がなくなる。
（第３実施形態）
図９は、第３実施形態による各種のデバイスを構成要素とするメモリシステム、ストレージシステムの一例の概要図である。
図９において、縦軸はデバイスごとのアクセス時間の一例である。これらの数値は変更可能であるが、上位のデバイスのアクセス時間は一般に下位のデバイスのアクセス時間よりも短い。横軸は概念的なメモリ容量である。各デバイスを示した領域の底辺が大きいほど、メモリ容量が大きい。
図９のメモリシステムまたはストレージシステムの最上位のデバイスであるＳＲＡＭはＣＰＵと第１インタフェースを介して接続されている。或いは、ＳＲＡＭはＣＰＵに内蔵されている。
図９のメモリシステムまたはストレージシステムのＳＲＡＭの下位に位置するデバイスであるＤＲＡＭは、ＣＰＵと第１インタフェースを介してＣＰＵまたはＳＲＡＭに接続されている。ＤＲＡＭは、第１インタフェースと異なる第２インタフェースを介してＣＰＵまたはＳＲＡＭに接続されてもよい。あるいは、ＤＲＡＭは、ＣＰＵに内蔵されていてもよい。
図９のメモリシステムまたはストレージシステムのＤＲＡＭの下位に位置するデバイスであるＳＣＭは、ＣＰＵと第１インタフェースまたは第２インタフェースを介してＣＰＵまたはＤＲＡＭに接続されている。ＳＣＭは、第１および第２インタフェースと異なる第３インタフェースを介してＣＰＵまたはＤＲＡＭに接続されてもよい。あるいは、ＳＣＭは、ＣＰＵに内蔵されていてもよい。
尚、これらのＳＲＡＭ、ＤＲＡＭ、ＳＣＭは、必ずしも全てが必要ではなく、一部のみで構成されてよい。
ＳＣＭより下位のデバイスであるＨＤＤ／ＮＡＮＤ／ｅＭＭＣは、メモリシステムまたはストレージシステムとして一体に構成されてよいが、図示したように、たとえば、ｏｎ−ｌｉｎｅ  ｓｔｏｒａｇｅとして、メモリシステムまたはストレージシステムから物理的に離れて構成されていてもよい。
最下位デバイスであるＨＤＤ／Ｔａｐｅは、メモリシステムまたはストレージシステムとして一体に構成されてよいが、たとえば、ｏｆｆ−ｌｉｎｅ  ｓｔｏｒａｇｅとして、メモリシステムまたはストレージシステムから物理的に離れて構成されていてもよい。
ここで、ＳＣＭは第１実施形態または第２実施形態のＳＣＭ１であってよい。また、ＣＰＵは図１のＨｏｓｔＣＰＵ２であってよい。
図１のメモリコントローラ（コントローラ）２０はＳＣＭのメモリコントローラであるが、例えば、図９中の上位デバイスであるＤＲＡＭのメモリコントローラと兼用されてもよい。また、下位デバイスのＮＡＮＤ／ｅＭＭＣ／ＨＤＤ／Ｔａｐｅのメモリコントローラと兼用されてもよい。
【００７０】
尚、本実施形態による半導体記憶装置は、
メモリセルアレイから読み出された読出し単位データを保持する第３データラッチ部と、
読出し単位データの格納先を示す読出しアドレスを保持する第３アドレスラッチ部と、
次の書込みサイクルで前記メモリセルアレイへ書き込む書込み単位データを予約データとして保持する第４データラッチ部と、
予約データの書き込み先を示す予約アドレスを保持する第４アドレスラッチ部とをさらに備えてもよい。
【００７１】
制御部は、フェイルデータの再書き込みを示す再書込みコマンド（ＲＥＰＲＯ）およびフェイルアドレスとは異なる再書込みアドレスを入力し、再書込みコマンドに応じて第２データラッチ部のフェイルデータを、メモリセルアレイの再書込みアドレスへ書き込んでもよい。
【００７２】
制御部は、再書込みコマンドが入力されたときには、フェイルデータを外部から入力しない。
【００７３】
メモリセルアレイと、第１および第２データラッチ部と、第１および第２アドレスラッチ部と、制御部とは、１つの半導体チップに組み込まれていてもよい。
【００７４】
メモリセルアレイに書込み単位データを書き込む書込みシーケンスは、書込み電圧を印加する書込み動作と、メモリセルアレイにデータが書き込まれたか否かを検証するベリファイ動作と、を有するｍ回（ｍは２以上の整数）の書込みループを含み、
書込みシーケンスにおいて書込み単位データが書き込まれなかった場合に該書込みシーケンスを再度実行し、該書込みシーケンスの繰り返し回数がｎ（ｎは２以上の整数）に達したときに、第１出力コマンドを入力してもよい。
【００７５】
メモリセルアレイに書込み単位データを書き込む書込みシーケンスは、書込み電圧を印加する書込み動作と、メモリセルアレイにデータが書き込まれたか否かを検証するベリファイ動作と、を有するｍ回（ｍは２以上の整数）の書込みループを含み、
書込みシーケンスにおいて書込み単位データが書き込まれなかった場合に該書込みシーケンスを再度実行し、該書込みシーケンスの繰り返し回数がｎ（ｎは２以上の整数）に達したときに、再書込みコマンドおよび再書込みアドレスを入力してもよい。
本実施形態によるメモリシステムは、ＣＰＵと、
ＣＰＵに接続された揮発性メモリと、
ＣＰＵまたは揮発性メモリに接続され、揮発性メモリよりもアクセス時間が長い請求項１に記載の半導体記憶装置と、
ＣＰＵ、揮発性メモリ、または、半導体記憶装置に接続され、
半導体記憶装置よりもアクセス時間が長いストレージとを備えたメモリスステムであってもよい。
【００７６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７７】
１  ＳＣＭ、２  ホストＣＰＵ、１０  メモリチップ、２０  メモリコントローラ、ＭＣＡ  メモリセルアレイ、ＣＤ  カラムデコーダ、ＲＤ  ロウデコーダ、ＳＡ  センスアンプ、ＤＬ  データラッチ、ＡＬ  アドレスラッチ、ＰＣ  周辺回路、ＶＧ  電圧ジェネレータ、ＲＷＥ  リード・ライトエンジン、ＳＤ  シリアライザ・デシリアライザ、ＡＣ  アドレスコントローラ、ＣＣ  コマンドコントローラ、ＩＯ  入出力回路、ＡＬ１〜ＡＬ４  アドレスラッチ回路、ＤＬ１〜ＤＬ４  データラッチ回路
【図１】
2019045910.tif 000003
【図２】
2019045910.tif 000004
【図３】
2019045910.tif 000005
【図４】
2019045910.tif 000006
【図５】
2019045910.tif 000007
【図６】
2019045910.tif 000008
【図７】
2019045910.tif 000009
【図８】
2019045910.tif 000010
【図９】
2019045910.tif 000011