JP5112566B1 - 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム - Google Patents

半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム Download PDF

Info

Publication number
JP5112566B1
JP5112566B1 JP2012086657A JP2012086657A JP5112566B1 JP 5112566 B1 JP5112566 B1 JP 5112566B1 JP 2012086657 A JP2012086657 A JP 2012086657A JP 2012086657 A JP2012086657 A JP 2012086657A JP 5112566 B1 JP5112566 B1 JP 5112566B1
Authority
JP
Japan
Prior art keywords
block
writing
semiconductor memory
error
firmware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012086657A
Other languages
English (en)
Other versions
JP2013145545A (ja
Inventor
大輔 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012086657A priority Critical patent/JP5112566B1/ja
Priority to US13/602,763 priority patent/US8539315B2/en
Priority to TW101132404A priority patent/TWI419308B/zh
Application granted granted Critical
Publication of JP5112566B1 publication Critical patent/JP5112566B1/ja
Publication of JP2013145545A publication Critical patent/JP2013145545A/ja
Priority to US13/964,316 priority patent/US9263153B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/06Acceleration testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】製品出荷後の信頼性を向上させる。
【解決手段】半導体記憶装置1は、不揮発性半導体メモリ3と、電源供給部5と、制御部2とを含む。制御部2は、電源供給部5から電圧が供給された場合に、不揮発性半導体メモリ3からファームウェアを読み出し、通常モード又は自走モードを実行する。ファームウェアが自走モードである場合に、制御部2は、通常モードよりも高いセル印加電圧でユーザ領域の書き込みを行い、その後通常モードの電圧でユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返し、消去時に消去エラーが発生した場合、または書き込み時に書き込みエラーが発生した場合に、当該ブロックをバッドブロック管理テーブルに追加する。
【選択図】 図8

Description

本発明の実施形態は、半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラムに関する。
パーソナルコンピュータなどの情報処理装置の外部記憶装置として、HDD(Hard Disk Drive)以外に、SSD(Solid State Drive)が用いられている。SSDは、不揮発性半導体メモリとしてNAND型フラッシュメモリを備えている。
例えば、SSDをHDDと同じ環境で使用する場合、データの書き換えが頻発するとSSDのエージングが進んでしまう。よって、製品出荷前の検査(スクリーニング)が不十分であると、製品出荷後の不良率が増加してしまう。
また、SSDの信頼性を向上させるために、スクリーニング工程においてSSDに対してデータの書き換えを繰り返し行うことが考えられる。しかしながら、このようなスクリーニングを行う場合、検査時間及び検査コストが増大してしまう。
特許第4439539号公報 特許第4635061号公報 特開2010−161199号公報 特開2011−29586号公報
ATA/ATAPI Command Set - 2 (ACS-2) d2015r6 Feb.22.2011http://www.t13.org/Documents/UploadedDocuments/docs2011/d2015r6-ATAATAPI_Command_Set_-_2_ACS-2.pdf
実施形態は、製品出荷後の信頼性を向上させることが可能な半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラムを提供する。
実施形態に係る半導体記憶装置は、不揮発性半導体メモリ、電源供給部、及び第1の制御部を具備する。前記不揮発性半導体メモリは、複数のメモリセルを含むブロックを複数備えるメモリセルアレイと、前記複数のメモリセルへの書き込み、読み出し、及び消去を制御する第2の制御部と、を具備する。前記メモリセルアレイは、前記第1の制御部が、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、ユーザデータを格納可能なユーザ領域と、を具備する。前記電源供給部は、前記半導体記憶装置外部から電源供給を受けて、前記不揮発性半導体メモリ及び前記第1の制御部に所定の電圧を供給する。前記第1の制御部は、前記電源供給部から電圧が供給された場合に、前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、前記ファームウェアが前記自走検査モードに設定されている場合に、第1の工程、第2の工程及び第3の工程を順に実行する。前記第1の工程は、前記通常モードで使用される電圧よりも高い第1のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行う工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない。前記第2の工程は、前記通常モードで使用され、かつ前記第1のセル印加電圧よりも低い第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返す工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない。前記第3の工程は、前記第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返す工程を含み、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する。
第1の実施形態に係るメモリシステムの構成を示すブロック図。 NAND型フラッシュメモリの構成を示すブロック図。 NANDメモリチップの構成を示すブロック図。 メモリセルアレイの構成を示すブロック図。 メモリセルアレイに含まれる1個のプレーンの構成を示す回路図。 2ビットデータとメモリセルの閾値電圧分布との関係を示す図。 SSDの起動シーケンスを示すフローチャート。 SSDのスクリーニング動作を示すフローチャート。 スクリーニング時の読み出し動作を示すフローチャート。 スクリーニング装置の構成示す概略図。 スクリーニング装置の構成示す概略図。 第2の実施形態に係るSSDのスクリーニング動作を示すフローチャート。 変形例に係るSSDのスクリーニング動作を示すフローチャート。 第3の実施形態に係る通常モードと自走モードとの切り替え動作を示す状態遷移図。 第4の実施形態に係る通常モードと自走モードとの切り替え動作を示す状態遷移図。 第5の実施形態に係るSSDの構成を示すブロック図。 SSDの起動シーケンスを示すフローチャート。 慣らし工程を含むSSDの動作を示すフローチャート。 慣らし工程を示すフローチャート。 疑似慣らし工程を含むSSDの動作を示すフローチャート。 疑似慣らし工程を示すフローチャート。
以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らないことに留意すべきである。また、図面の相互間で同じ部分を表す場合においても、互いの寸法の関係や比率が異なって表される場合もある。特に、以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。どの機能ブロックによって特定されるかによって実施形態が限定されるものではない。
[第1の実施形態]
[1.メモリシステムの構成]
図1は、第1の実施形態に係るメモリシステムの構成を示すブロック図である。メモリシステムは、ホスト装置10、及び外部記憶装置としての半導体記憶装置1とを備えている。半導体記憶装置1としては、NAND型フラッシュメモリを備えたSSD(Solid State Drive)が用いられる。
SSD1は、SSDコントローラ(記憶装置制御部)2、不揮発性半導体メモリとしてのNAND型フラッシュメモリ3、インターフェースコントローラ(インターフェース部)4、及び電源供給部5を備えている。SSDコントローラ2、インターフェースコントローラ4、及びNAND型フラッシュメモリ3は、バス6で相互に接続されている。
電源供給部5は、電源線12によってホスト装置10に接続され、ホスト装置10から供給される外部電源を受ける。電源供給部5とNAND型フラッシュメモリ3とは電源線7aで接続され、電源供給部5とSSDコントローラ2とは電源線7bで接続され、電源供給部5とインターフェースコントローラ4とは電源線7cで接続されている。電源供給部5は、外部電源を昇圧及び降圧して各種電圧を生成し、SSDコントローラ2、NAND型フラッシュメモリ3、及びインターフェースコントローラ4に各種電圧を供給する。
インターフェースコントローラ4は、インターフェース(I/F)11によってホスト装置10に接続されている。インターフェースコントローラ4は、ホスト装置10とのインターフェース処理を実行する。インターフェース(I/F)11としては、SATA(Serial Advanced Technology Attachment)、PCI Express(Peripheral Component Interconnect Express)、SAS(Serial Attached SCSI)、USB(Universal Serial Bus)などが用いられる。本実施形態では、I/F11として、SATAを用いる場合を例に説明する。
NAND型フラッシュメモリ3は、データを不揮発に記憶する。NAND型フラッシュメモリ3の物理アドレス空間には、ファームウェア(FW)を格納するFW領域3Aと、管理情報を格納する管理情報領域3Bと、ユーザデータを格納するユーザ領域3Cとが確保されている。NAND型フラッシュメモリ3の回路構成については後述する。
SSDコントローラ2は、SSD1の各種動作を制御する。SSDコントローラ2は、作業領域としてRAM(DRAMやSRAMなどの揮発性RAM、又はMRAM、FeRAMなどの不揮発性RAM)を備えている。SSDコントローラ2は、電源線7bから電源を受けると、FW領域3Aからファームウェアを読み出し、以後、読み出したファームウェアに基づいて処理を行う。
図2は、NAND型フラッシュメモリ3の構成を示すブロック図である。NAND型フラッシュメモリ3は、1つ以上のNANDメモリチップ20を備えている。図3は、NANDメモリチップ20の構成を示すブロック図である。
メモリセルアレイ22は、データを電気的に書き換え可能なメモリセルがマトリクス状に配置されて構成されている。メモリセルアレイ22には、複数のビット線、複数のワード線、及び共通ソース線が配設されている。ビット線とワード線との交差領域には、メモリセルが配置されている。
ロウデコーダとしてのワード線制御回路25は、複数のワード線に接続され、データの読み出し、書き込み、及び消去時に、ワード線の選択及び駆動を行う。ビット線制御回路23は、複数のビット線に接続され、データの読み出し、書き込み、及び消去時に、ビット線の電圧を制御する。また、ビット線制御回路23は、データの読み出し時にビット線のデータを検知し、データの書き込み時に書き込みデータに応じた電圧をビット線に印加する。カラムデコーダ24は、アドレスに応じて、ビット線を選択するためのカラム選択信号を生成し、このカラム選択信号をビット線制御回路23に送る。
メモリセルアレイ22から読み出された読み出しデータは、ビット線制御回路23、データ入出力バッファ29を介してデータ入出力端子28から外部へ出力される。また、外部からデータ入出力端子28に入力された書き込みデータは、データ入出力バッファ29を介してビット線制御回路23に入力される。
メモリセルアレイ22、ビット線制御回路23、カラムデコーダ24、データ入出力バッファ29、及びワード線制御回路25は、制御回路26に接続されている。制御回路26は、外部から制御信号入力端子27に入力される制御信号に基づいて、メモリセルアレイ22、ビット線制御回路23、カラムデコーダ24、データ入出力バッファ29、及びワード線制御回路25を制御するための制御信号及び制御電圧を発生させる。NANDメモリチップ20のうち、メモリセルアレイ22以外の部分を纏めてメモリセルアレイ制御部(NANDコントローラ)21と呼ぶ。
図4は、メモリセルアレイ22の構成を示すブロック図である。メモリセルアレイ22は、1つ又は複数のプレーン(またはDistrict)を備えている。図4では、メモリセルアレイ22が2つのプレーン(プレーン0及びプレーン1)を備える場合を例示している。各プレーンは、複数のブロックBLKを備えている。各ブロックBLKは、複数のメモリセルにより構成され、このブロックBLKを単位としてデータが消去される。
図5は、メモリセルアレイ22に含まれる1個のプレーンの構成を示す回路図である。プレーンに含まれる各ブロックBLKは、複数のNANDユニットを備えている。各NANDユニットは、直列接続された複数のメモリセルMCからなるメモリストリングMSと、その両端に接続された選択ゲートS1、S2とにより構成されている。選択ゲートS1はビット線BLに接続され、選択ゲートS2は共通ソース線SRCに接続されている。同一のロウに配置されたメモリセルMCの制御ゲートはワード線WL0〜WLm−1のいずれかに共通接続されている。また、選択ゲートS1はセレクト線SGDに共通接続され、選択ゲートS2はセレクト線SGSに共通接続されている。
メモリセル(メモリセルトランジスタ)MCは、半導体基板のP型ウェル上に形成された積層ゲート構造を備えたMOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される。積層ゲート構造は、P型ウェル上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、及び浮遊ゲート電極上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。
本実施形態では、個々のメモリセルが上位ページ及び下位ページを使用しての2bit/cellの4値記憶方式である場合について説明するが、個々のメモリセルが単一ページ及を使用しての1bit/cellの2値記憶方式、または上位ページ、中位ページ及び下位ページを使用しての3bit/cellの8値記憶方式である場合、あるいは4bit/cell以上の多値記憶方式を採用する場合であっても本実施形態の本質は変わらない。また、メモリセルは浮遊ゲート電極を有する構造に限らず、MONOS(Metal-Oxide-Nitride-Oxide-Silicon)型など、電荷蓄積層としての窒化界面に電子をトラップさせることで閾値電圧を変化させる構造であってもよい。MONOS型のメモリセルについても同様に、1ビットを記憶するように構成されていてもよいし、多値を記憶するように構成されていてもよい。また、特開2010−161199や特開2011−29586に記述されるような3次元的にメモリセルが配置された不揮発性半導体メモリであってもよい。
1つのワード線に接続された複数のメモリセルは、1物理セクタを構成する。この物理セクタ毎にデータが書き込まれ、またデータが読み出される。なお、物理セクタは、ホスト装置が管理しているLBA(Logical Block Addressing)の論理セクタと関係なく定義可能であり、物理セクタのサイズは、論理セクタのサイズと同じであってもよいし、違っていてもよい。本実施形態の2bit/cell書き込み方式(4値)の場合、1物理セクタには2ページ分のデータが記憶される。また、1bit/cell書き込み方式(2値)の場合、1物理セクタには1ページ分のデータが記憶され、3bit/cell書き込み方式(8値)の場合、1物理セクタには3ページ分のデータが記憶される。
読み出し動作、ベリファイ動作及びプログラム動作時において、SSDコントローラ2から受信した物理アドレスに応じて、1本のワード線が選択され、1物理セクタが選択される。この物理セクタ内のページの切り替えは、物理アドレスによって行われる。なお、本実施形態では、書き込みをプログラムと表現する場合もあるが、書き込みとプログラムとは同意である。2bit/cell書き込み方式の場合、SSDコントローラ2は、物理セクタには上位ページ(Upper Page)及び下位ページ(Lower Page)の2ページを割り当てられていると取り扱い、それら全ページに対して物理アドレスが割り当てられている。2bit/cell書き込み方式の場合、1つのメモリセルにおける閾値電圧が、4通りの分布を持ち得るように構成されている。
図6は、2ビットデータ(データ“11”、“01”、“10”、“00”)とメモリセルの閾値電圧分布との関係を示す図である。VA1は、下位ページのみ書き込み済みで上位ページが未書き込みの物理セクタについて、2つのデータを読み出す場合に選択ワード線に印加される電圧であり、VA1Vは、閾値電圧分布A1への書き込みを行う場合において、書き込みが完了したかどうかを確認するために選択ワード線に印加されるベリファイ電圧である。
A2、VB2、VC2は、下位ページ及び上位ページが書き込み済みの物理セクタについて、4つのデータを読み出す場合に選択ワード線に印加される電圧であり、VA2V、VB2V、VC2Vは、各閾値電圧分布への書き込みを行う場合において、書き込みが完了したかどうかを確認するために選択ワード線に印加されるベリファイ電圧である。Vread1、Vread2は、データの読み出しを行う場合に、非選択メモリセルに印加され、その保持データに拘わらず当該非選択メモリセルを導通させる読み出し電圧である。
ev、Vev1、Vev2は、メモリセルのデータを消去する場合において、その消去が完了したか否かを確認するためにメモリセルに印加される消去ベリファイ電圧であり、負の値を有する。その大きさは、隣接メモリセルの干渉の影響を考慮して決定される。
上述の各電圧の大小関係は、以下の通りである。
ev1<VA1<VA1V<Vread1
ev2<VA2<VA2V<VB2<VB2V<VC2<VC2V<Vread2
なお、消去ベリファイ電圧Vev、Vev1、Vev2は、前述の通り負の値であるが、実際に消去ベリファイ動作においてメモリセルの制御ゲートに印加される電圧は、負の値ではなく、ゼロ又は正の値である。すなわち、実際の消去ベリファイ動作においては、メモリセルのバックゲートに正の電圧を印加し、メモリセルの制御ゲートには、ゼロ又はバックゲート電圧より小さい正の電圧を印加している。換言すれば、消去ベリファイ電圧Vev、Vev1、Vev2は、等価的に負の値を有する電圧である。
ブロック消去後のメモリセルの閾値電圧分布ERは、その上限値も負の値であり、データ“11”が割り当てられる。下位ページ及び上位ページ書き込み状態のデータ“01”、“10”、“00”のメモリセルは、それぞれ正の閾値電圧分布A2、B2、C2を有し(A2、B2、C2の下限値も正の値である)、データ“01”の閾値電圧分布A2が最も電圧値が低く、データ“00”の閾値電圧分布C2が最も電圧値が高く、各種閾値電圧分布の電圧値はA2<B2<C2の関係を有する。下位ページ書き込みかつ上位ページ未書き込み状態のデータ“10”のメモリセルは、正の閾値電圧分布A1を有する(A1の下限値も正の値である)。
なお、図6に示す閾値電圧分布はあくまでも一例であって、本実施形態はこれに限定されるものではない。例えば、図6では、閾値電圧分布A2,B2,C2は全て正の閾値電圧分布であるとして説明したが、閾値電圧分布A2は負の電圧の分布であり、閾値電圧分布B2、C2が正の電圧の分布であるような場合も、本実施形態の範囲に含まれる。また、閾値電圧分布ER1、ER2は正の値であったとしても、本実施形態はこれに限定されるものではない。また、本実施形態では、ER2、A2、B2、C2のデータの対応関係がそれぞれ“11”、“01”、“10”、“00”であるとしているが、例えばそれぞれ“11”、“01” 、“00”、“10”であるような他の対応関係であってもよい。
1つのメモリセルの2ビットデータは、下位ページデータと上位ページデータとからなり、下位ページデータと上位ページデータとは別々の書き込み動作、つまり、2回の書き込み動作により、メモリセルに書き込まれる。データを“XY”と標記するとき、“X”は上位ページデータを、“Y”は下位ページデータを表している。
まず、下位ページデータの書き込みを、図6の1段目〜2段目を参照して説明する。下位ページデータの書き込みは、チップの外部から入力される書き込みデータ(下位ページデータ)に基づいて行われる。全てのメモリセルは、消去状態の閾値電圧分布ERを有し、データ“11”を記憶しているものとする。下位ページデータの書き込みを行うと、メモリセルの閾値電圧分布ERは、下位ページデータの値(“1”、或いは“0”)に応じて、2つの閾値電圧分布(ER1、A1)に分けられる。下位ページデータの値が“1”の場合には、消去状態の閾値電圧分布ERを維持するのでER1=ERであるが、ER1>ERであってもよい。
一方、下位ページデータの値が“0”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、浮遊ゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。具体的には、ベリファイ電圧VA1Vを設定し、このベリファイ電圧VA1V以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、メモリセルは、書き込み状態(データ“10”)に変化する。書き込み動作を所定回繰り返しても所定の閾値電圧に到達しなかった場合(または所定の閾値電圧に到達しないメモリセル数が所定値以上の場合)、当該物理ページに対する書き込みは「書き込みエラー」となる。
次に、上位ページデータの書き込みを、図6の2段目〜3段目を参照して説明する。上位ページデータの書き込みは、チップの外部から入力される書き込みデータ(上位ページデータ)と、メモリセルに既に書き込まれている下位ページデータとに基づいて行われる。
すなわち、上位ページデータが“1”の場合には、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Vthの上昇を防止する。その結果、データ“11”(消去状態の閾値電圧分布ER1)のメモリセルは、データ“11”をそのまま維持し(閾値電圧分布ER2)、データ“10”(閾値電圧分布A1)のメモリセルは、データ“10”をそのまま維持する(閾値電圧分布B2)。ただし、各分布間の電圧マージンを確保するという点で、上述のベリファイ電圧VA1Vよりも大きい正のベリファイ電圧VB2Vを用いて閾値電圧分布の下限値を調整し、これにより閾値電圧分布の幅を狭めた閾値電圧分布B2を形成するのが望ましい。下限値調整を所定回繰り返しても所定の閾値電圧に到達しなかった場合(または所定の閾値電圧に到達しないメモリセル数が所定値以上の場合)、当該物理ページに対する書き込みは「書き込みエラー」となる。
一方、上位ページデータの値が“0”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、浮遊ゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。具体的には、ベリファイ電圧VA2V、VC2Vを設定し、このベリファイ電圧VA2V、VC2V以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、データ“11”(消去状態の閾値電圧分布ER1)のメモリセルは、閾値電圧分布A2のデータ“01”に変化し、データ“10”(閾値電圧分布A1)のメモリセルは、閾値電圧分布C2のデータ“00”に変化する。書き込み動作を所定回繰り返しても所定の閾値電圧に到達しなかった場合(または所定の閾値電圧に到達しないメモリセル数が所定値以上の場合)、当該物理ページに対する書き込みは「書き込みエラー」となる。
消去動作においては、消去ベリファイ電圧Vevを設定し、この消去ベリファイ電圧Vev以下の閾値電圧となるまで消去動作が繰り返される。その結果、メモリセルは、消去状態(データ“11”)に変化する。消去動作を所定回繰り返しても所定の閾値電圧以下にならなかった場合(または所定の閾値電圧以下にならないメモリセル数が所定値以上の場合)、当該物理ページに対する消去は「消去エラー」となる。
以上が、一般的な4値記憶方式におけるデータ書き込み方式の一例である。3ビット以上の多値記憶方式においても、上記の動作に更に上位のページデータに応じ、閾値電圧分布を8通り以上に分割する動作が加わるのみであるので、基本的な動作は同様である。
[2.SSD1の動作]
次に、SSD1の各種動作について説明する。まず、SSD1の起動シーケンスについて説明する。
NAND型フラッシュメモリ3のFW領域3aに格納されたファームウェアは、少なくとも通常モードと自走モードとの2つのモードを実行可能なファームウェアを備えている。通常モードとは、ユーザやホスト装置10の指示に応じた動作を実行するモードであり、通常の読み出し動作、書き込み動作、消去動作が含まれる。自走モードとは、SSD1の外部からの操作によらず、SSD1が自動で特定の動作を実行するモードであり、この特定の動作が自走モード用のファームウェアによって規定される。
図7は、SSD1の起動シーケンスを示すフローチャートである。まず、外部から電源線12経由でSSD1に外部電圧が供給される。続いて、電源供給部5は、電源線7a〜7cに各種電圧を供給する(ステップS100)。電源線7aが規定電圧に到達すると(ステップS101)、SSDコントローラ2が起動する(ステップS102)。
続いて、SSDコントローラ2は、NAND型フラッシュメモリ3のFW領域3aに格納されたファームウェアを読み出す(ステップS103)。そして、SSDコントローラ2は、FW領域3aが通常モード状態である場合(ステップS104)、以後、ファームウェアに基づいて通常モードを実行する。また、SSDコントローラ2は、FW領域3aが自走モード状態である場合(ステップS105)、以後、ファームウェアに基づいて自走モードを実行する。また、SSDコントローラ2は、FW領域3aが通常モード及び自走モード以外のその他のモード状態である場合、以後ファームウェアに応じた他のモードを実行する。
FW領域3Aに格納されたファームウェアは、例えば、非特許文献1に記載のINCITS ACS-2準拠のコマンドである92h DOWNLOAD MICROCODEや93h DOWNLOAD MICROCODE DMAによって書き換え可能である。あるいはINCITS ACS-2準拠のSCTコマンドやその他ベンダー独自のコマンドによって書き換えられてもよい。あるいは、FW領域3aに格納されたファームウェアは、通常モードと自走モードとで共通のファームウェアが用いられ、INCITS ACS-2準拠のSCTコマンドやその他ベンダー独自のコマンドによってファームウェア内部の不揮発に保持されているトリガ(フラグ)が書き換えられることで、通常モードと自走モードとで切り替えられるようにしてもよい。
次に、本実施形態の検査方法(スクリーニング動作)について説明する。SSDコントローラ2は、自走モードが開始されると、NAND型フラッシュメモリ3のスクリーニング動作を実行する(NANDスクリーニング)。NANDスクリーニングとは、ブロックの消去、プログラム、及び読み出しを繰り返しながらNAND型フラッシュメモリ3をエージングさせて、初期不良(infant mortality failure)になりうるブロックの信頼性を加速させる。そして、それらブロックの消去エラー、プログラムエラー、及びECC(Error Checking and Correcting)訂正不能エラー(読み出しエラー)となったブロックをバッドブロック化する(バッドブロック管理テーブルに登録する)ことで、将来不良原因となりうるブロックがユーザに使用されることを予め防止することである。
図8は、SSD1のスクリーニング動作を示すフローチャートである。本実施形態のスクリーニング動作は、ストレス工程と、スクリーニング工程とを含む。すなわち、スクリーニングの効率を向上させるために、スクリーニング工程の前にストレス工程を導入している。
自走モードが開始されると、SSDコントローラ2は、ストレス工程に含まれるプログラム動作時にメモリセルに印加する電圧を増加させる(ステップS200)。すなわち、SSDコントローラ2は、ストレス工程に含まれるプログラム動作時に選択ワード線に印加されるプログラム電圧を、通常モードのプログラム動作時に使用する通常のプログラム電圧よりも増加させる。通常モードのプログラム動作とは、ホスト装置10からのプログラム命令に応じてSSDコントローラ2がNAND型フラッシュメモリ3に行うプログラムである。続いて、SSDコントローラ2は、ストレス工程が済んだブロックを管理するリスト(処理済みリスト)をクリアする(ステップS201)。この処理済みリストは、SSDコントローラ2内のRAMに格納されている。
続いて、SSDコントローラ2は、NAND型フラッシュメモリ3のユーザ領域3Cから1つのブロックを選択する(ステップS202)。ブロック選択は、例えば、(1)自走モード開始後にブロックアドレス=0のブロックを選択し、その後、“ブロックアドレス+1”を繰り返すことでシーケンシャルにブロックを選択してもよいし、(2)ブロックアドレスがランダムに並んだブロックアドレスリストを作成し、自走モード開始後にブロックアドレスリスト先頭のブロックを選択し、その後“ブロックアドレスリスト行数+1”を繰り返すことでシーケンシャルにブロックアドレスリストを選択していくことでランダムにブロックを選択してもよい。
続いて、SSDコントローラ2は、選択ブロックのデータを消去する(ステップS203)。続いて、SSDコントローラ2は、ステップS200で増加させたプログラム電圧を用いて、選択ブロックにデータをプログラムする(ステップS204)。この時のデータは、SSDコントローラ2によって生成される。このプログラム動作では、メモリセルのワード線及びソース/ドレイン間や、ワード線及び浮遊ゲート間にかかる電圧が通常モードに比べて増加している。これにより、たとえばワード線及びソース/ドレイン間や、ワード線及び浮遊ゲート間の絶縁が十分でないようなメモリセルを大電圧により意図的に破壊することにより、選択ブロックの信頼性加速が行われる。また、たとえば選択ワード線及び非選択ワード線間にかかる電圧を増大させることにもなり、絶縁が十分でないワード線間の層間絶縁膜を大電圧により意図的に破壊することにより、選択ブロックの信頼性加速が行われる。
ステップS203の消去時に消去エラーが発生した場合、選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しても良い。また、ステップS204のプログラム時にプログラムエラーが発生した場合、選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しても良い。
また、メモリセルへのストレス印加を均一に行うために、ブロックにプログラムされるデータは乱数であることが望ましく、さらに望ましくは、ステップごと或いはループごとにSSDコントローラ2により生成される乱数であることが望ましい。プログラムは、選択ブロック内の全ページ(下位ページ及び上位ページの両方を含む)に対して行われる。
続いて、SSDコントローラ2は、選択ブロックを処理済みリストに追加する(ステップS205)。ステップS201で処理済みリストのかわりに、RAMに格納されている未処理リストを初期化するようにし、ステップS205で選択ブロックを未処理リストから削除するようにしてもよい。続いて、SSDコントローラ2は、NAND型フラッシュメモリ3のユーザ領域3Cの全ブロックを選択したか否かを判定する(ステップS206)。ステップS206において全ブロックを選択していない場合、ステップS202に戻って、次のブロックが選択される。
ステップS206において全ブロックを選択した場合、SSDコントローラ2は、プログラム動作時に選択ワード線に印加されるプログラム電圧を元に戻す、すなわち、通常モード時のプログラム電圧に戻す(ステップS207)。ここまでで、ストレス工程が終了する。なお、メモリセルに与えるストレスをより増大させるという観点では、ステップS201〜S206またはステップS200〜S207を複数回繰り返すことが望ましい。
続いて、スクリーニング工程に移行する。SSDコントローラ2は、スクリーニング工程が済んだブロックを管理するリスト(処理済みリスト)をクリアする(ステップS300)。この処理済みリストは、SSDコントローラ2内のRAMに格納されている。続いて、SSDコントローラ2は、NAND型フラッシュメモリ3のユーザ領域3Cから1つのブロックを選択する(ステップS301)。ブロック選択は、ストレス工程と同じである。
続いて、SSDコントローラ2は、選択ブロックに対して、プレリード(Pre-read)と呼ばれる消去前読み出しを行う(ステップS302)。プレリードS302を行わずに消去S303に移行してもよいが、不良の検出度を高めるためには、プレリードS302が行われることが望ましい。このステップS302は、あるブロックにアクセス中に他のブロックのデータが破壊されるような不良を検出するためのものである。このような不良としては、例えば、メモリセルアレイ22の周辺回路の不良や配線不良などが挙げられる。
例えば1ループ目あるループで処理済みのブロックに、同一ループまたはその後のループにおける別のブロックへのアクセスによってデータが誤って書き込まれてしまうことがある。プレリードが無ければ、この誤書き込みされたブロックについてのその後のループ での処理はデータ消去から開始するので、このような誤書き込みを検出できない。一方、プレリードがあれば、そのような誤書き込みされたブロックを検出できる。
あるいは、例えばあるループで処理済みのブロックが、同一ループまたはその後のループにおける別のブロックへのアクセスによってデータが誤って消去されてしまうことがある。プレリードが無ければ、この誤消去されたブロックについてのその後のループでの処理はデータ消去から開始するので、このような誤書き込みを検出できない。一方、プレリードがあれば、そのような誤消去されたブロックを検出できる。
あるいは、例えばあるブロックにデータを書き込んだ後にデータ消去されるまで一定の時間間隔を空け、消去前にプレリードによりデータを再度読みだすことにより、データリテンションの悪いブロックを不良品としてスクリーニングすることができる。
プレリードにおいて、SSDコントローラ2は、選択されているブロック中のあるページからデータを順次読み出し、読み出されたデータに対してECCを用いて誤り訂正を行う。この一連の処理を全ページに対して行う。例えば選択されているブロック中の各ページのデータが誤り訂正不可能の場合、または誤り訂正ビット数が所定数X以上であった場合、当該ブロックは不良品と判断され、バッドブロックに追加される。
データが誤り訂正不可能か、または誤り訂正ビット数が所定数X以上のブロックがあった場合、SSD1を不良品とみなしてスクリーニング処理を即座に終了してもよい。その場合、ループを終了してスクリーニングを即座に終了し、電源線12内のたとえばDAS/DSS信号線を介してLEDを高速点滅させることにより、スクリーニングが異常終了して記憶装置1が不良品であることを外部に通知するようにすることが望ましい。
続いて、SSDコントローラ2は、選択ブロックのデータを消去する(ステップS303)。続いて、SSDコントローラ2は、選択ブロックにデータをプログラムする(ステップS304)。ステップS304のプログラムでは、本体データと誤り訂正用冗長ビットとの両方を選択ブロックにプログラムする。また、メモリセルのエージングとスクリーニングとを均一に行うために、本体データは乱数であることが望ましく、さらに望ましくは、ステップごと或いはループごとにSSDコントローラ2により生成される乱数であることが望ましい。プログラムは、選択ブロック内の全ページ(下位ページ及び上位ページの両方を含む)に対して行われる。なお、ステップS303において消去エラーとなったブロック、及びステップS304においてプログラムエラーとなったブロックは、バッドブロック化される。
続いて、SSDコントローラ2は、選択ブロックのデータを読み出す(ステップS305)。ステップS302及びS305の読み出しにおいては、本体データが誤り訂正用冗長ビットを用いて誤り訂正される。そして、誤り訂正ビット数が所定数を超えた場合、選択ブロックは、読み出しエラーとなり、バッドブロック化される。なお、信頼性の悪いブロックをより確実にバッドブロック化するという観点では読み出しエラーが発生したブロックをバッドブロック化することが望ましいが、消去エラーとプログラムエラーが発生したブロックのみバッドブロック化し、読み出しエラーが発生したブロックはバッドブロック化しないようにしてもよい。
図9は、ステップS302及びS305の読み出し動作を示すフローチャートである。SSDコントローラ2は、選択ブロックからデータ(本体データ及び誤り訂正用冗長ビット)を読み出すとともに、誤り訂正用冗長ビットを用いて誤り訂正を行う(ステップS400)。続いて、SSDコントローラ2は、選択ブロック内の誤り訂正ビット数が所定数Xを超えたか否か、または誤り訂正に失敗したか否かを判定する(ステップS401)。
ステップS401において誤り訂正ビット数が所定数Xを超えていない場合、または誤り訂正に成功した場合、選択ブロックの誤りビット数が少ないため、読み出し処理は終了する。一方、ステップS401において誤り訂正ビット数が所定数Xを超えた場合、または誤り訂正に失敗した場合、SSDコントローラ2は、選択ブロックの誤りビット数が多いため、選択ブロックをバッドブロック化する(ステップS402)。すなわち、SSDコントローラ2は、管理情報領域3Bのバッドブロック管理テーブル3Dに選択ブロックを追加する。これにより、以後、バッドブロック化されたブロックは、データの書き込みに使用されない。
なお、誤り訂正ビット数が所定数X以上、または誤り訂正不可能なブロック(バッドブロック)があった場合、SSD1を不良品とみなしてもよい。その場合、たとえば、誤り訂正ビット数が所定数X以上であった場合、または誤り訂正不可能なブロックがあった場合、スクリーニングを即座に終了し、電源線12内のたとえばDAS/DSS信号線を介してLEDを高速点滅させることにより、スクリーニングが異常終了してSSD1が不良品であることを外部に通知するようにすることが望ましい。
また、誤り訂正ビット数が所定数X以上、または誤り訂正不可能なブロック(バッドブロック)が所定数以上あった場合、SSD1を不良品とみなしてもよい。また、個々のNANDメモリチップ20におけるバッドブロック数を管理し、何れか1つのNANDメモリチップ20において所定数以上のバッドブロックがあった場合、SSD1を不良品とみなしてもよい。また、所定数以上のNANDメモリチップ20において所定数以上のバッドブロックがあった場合にSSD1を不良品とみなしてもよいし、全てのNANDメモリチップ20において所定数以上のバッドブロックがあった場合にSSD1を不良品とみなしてもよい。
図8に戻り、SSDコントローラ2は、選択ブロックを処理済みリストに追加する(ステップS306)。ステップS300で処理済みリストのかわりに、RAMに格納されている未処理リストを初期化するようにし、ステップS306で選択ブロックを未処理リストから削除するようにしてもよい。続いて、SSDコントローラ2は、NAND型フラッシュメモリ3のユーザ領域3Cの全ブロックを選択したか否かを判定する(ステップS307)。ステップS307において全ブロックを選択していない場合、ステップS301に戻って、次のブロックが選択される。
ステップS307において全ブロックを選択した場合、SSDコントローラ2は、所定時間が経過したか否かを判定する(ステップS308)。または、ステップS308では、所定ループ回数に到達したか否かを判定するようにしてもよい。ステップS308において所定時間が経過していない場合(又は所定ループ回数に到達していない場合)、ステップS300〜S307が繰り返される。一方、ステップS308において所定時間が経過した場合(又は所定ループ回数に到達した場合)、スクリーニング動作が終了する。
このように、ストレス工程において信頼性加速を行った後に、スクリーニング工程を行うことにより、より効率的に信頼性の悪いブロックをスクリーニングすることができる。そして、スクリーニング動作時に消去エラー・プログラムエラー・ECC訂正不能エラーが発生したブロックをバッドブロック化することで、信頼性の悪いブロックがユーザによって利用されることを防止することができる。
なお、NANDスクリーニング中はホスト装置10が必要でないため、NANDスクリーニング装置のコスト低減の観点では、NANDスクリーニング中には図10のように電源装置40のみがSSD1に接続されることが望ましい。具体的には、SSD1は、電源線12を介して電源装置40に接続される。インターフェース11は、外部に接続されていない。このように、SSD1用の外部電源が用意できる電源装置40のみを準備するだけで、NANDスクリーニングを実行することができる。
また、図11に示すように、複数のSSD1を同一の設備でスクリーニングすることが、コストやスループットの観点から好ましい。複数のSSD1は、電源線12を介して電源装置40に接続される。複数のSSD1及び電源装置40は、恒温槽41に収納される。恒温槽41は、内部を所定の温度に設定可能である。このような装置を用いて複数のSSD1を一度にスクリーニングすることで、スクリーニング時間を低減できるとともに、スクリーニングコストを低減できる。
[効果]
以上詳述したように第1の実施形態では、SSDコントローラ2は、電源供給部5から電圧が供給された場合に、NAND型フラッシュメモリ3のFW領域3Aからファームウェアを読み出し、ファームウェアに基づいて通常モード又は自走モードを実行する。ファームウェアが通常モードである場合、SSDコントローラ2は、ホスト装置10の命令に応じて書き込み動作、読み出し動作及び消去動作を行う。一方、ファームウェアが自走モードである場合、SSDコントローラ2は、スクリーニング動作を実行する。すなわち、SSDコントローラ2は、まず、通常モードよりも高いセル印加電圧でユーザ領域3Cの書き込みを行うことでユーザ領域3Cにストレスを印加する。続いて、SSDコントローラ2は、通常モードの電圧でユーザ領域3Cのブロックごとに消去、書き込み及び読み出しを繰り返し、かつ読み出し時に誤りビットを訂正する。そして、消去エラーが発生した場合、プログラムエラーが発生した場合、および選択ブロックの誤り訂正ビット数が所定値を超えた場合に、当該選択ブロックをバッドブロック化するようにしている。
従って第1の実施形態によれば、スクリーニング動作においてユーザ領域3Cのブロックに通常動作時よりも大きなストレスを印加することができる。これにより、スクリーニング動作時に、信頼性の低いブロックを不良にすることができる。そして、プログラム不良、消去不良、及び読み出し不良(ECC訂正不能不良)が発生したブロックをバッドブロック化することで、信頼性の低いブロックがユーザに使用されるのを防ぐことができる。この結果、製品出荷後の信頼性を向上させることができ、また、製品出荷後の故障率を低減することができる。
また、ストレス工程において書き込み動作を行い、この書き込み動作の際に書き込み電圧を通常モードの電圧に比べて高くするようにしている。これにより、SSD1を短時間でエージングさせることができるため、スクリーニングにかかる検査時間を短縮させることができる。
また、スクリーニング工程において、プレリード(Pre-read)と呼ばれる消去前読み出しを行い、このプレリードにおいてECC訂正不能不良が発生したブロックをバッドブロック化するようにしている。これにより、あるブロックにアクセス中に他のブロックのデータが破壊されるような不良を検出することができる。
[第2の実施形態]
第2の実施形態は、より大きなストレスをメモリセルに印加するために、メモリセルのデータを消去する際に使用する消去電圧を通常モード時に比べて増加させる。そして、スクリーニング動作に含まれるストレス工程において、増加させた消去電圧を用いて、メモリセルの消去動作を行うようにしている。図12は、第2の実施形態に係るSSD1のスクリーニング動作を示すフローチャートである。
自走モードが開始されると、SSDコントローラ2は、ストレス工程に含まれる消去動作時にメモリセルに印加する電圧を増加させる(ステップS500)。すなわち、SSDコントローラ2は、ストレス工程に含まれる消去動作時にメモリセルが形成されるボディ(P型ウェル)に印加する消去電圧を、通常モードの消去動作時に使用する消去電圧よりも増加させる。続いて、図8のストレス工程と同様に、SSDコントローラ2は、処理済みリストをクリアまたは未処理リストを初期化し(ステップS501)、続いて、ブロック選択を行う(ステップS502)。
続いて、SSDコントローラ2は、ステップS500で増加させた消去電圧を用いて、選択ブロックのデータを消去する(ステップS503)。この消去動作では、メモリセルのワード線及びボディ間にかかる電圧が通常モードに比べて増加している。これにより、ワード線及びボディ間の絶縁が十分でないようなメモリセルを大電圧により意図的に破壊することにより、選択ブロックの信頼性加速が行われる。
続いて、SSDコントローラ2は、選択ブロックにデータをプログラムする(ステップS504)。続いて、SSDコントローラ2は、選択ブロックを処理済みリストに追加または未処理リストから消去する(ステップS505)。続いて、SSDコントローラ2は、ユーザ領域3Cの全ブロックを選択するまで、ステップS502〜S504を繰り返す(ステップS506)。なお、本実施例においては、増加させた消去電圧を用いてストレスを与えるのが目的であるため、ステップS504のプログラムは行わなくても良い。
ステップS506において全ブロックを選択した場合、SSDコントローラ2は、消去動作時にボディに印加される消去電圧を元に戻す、すなわち、通常モード時の消去電圧に戻す(ステップS507)。ここまでで、ストレス工程が終了する。その後、図8と同様に、スクリーニング工程が実行される。
ステップS503の消去時に消去エラーが発生した場合、選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しても良い。また、ステップS504のプログラム時にプログラムエラーが発生した場合、選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しても良い。
このように、ストレス工程において信頼性加速を行った後に、スクリーニング工程を行うことにより、より効率的に信頼性の低いブロックをスクリーニングすることができる。そして、スクリーニング動作時にECC訂正不能エラーが発生したブロックをバッドブロック化することで、信頼性の低いブロックがユーザによって利用されることを防ぐことができる。
なお、第1の実施形態に第2の実施形態を組み合わせてもよい。図13は、変形例に係るSSD1のスクリーニング動作を示すフローチャートである。
自走モードが開始されると、SSDコントローラ2は、プログラム動作時にメモリセルに印加する電圧を増加させるとともに、消去動作時にメモリセルに印加する電圧を増加させる(ステップS200)。すなわち、SSDコントローラ2は、プログラム動作時に選択ワード線に印加されるプログラム電圧を、通常モードのプログラム動作時に使用するプログラム電圧よりも増加させる。さらに、SSDコントローラ2は、消去動作時にメモリセルが形成されるボディ(P型ウェル)に印加される消去電圧を、通常モードの消去動作時に使用する消去電圧よりも増加させる。
そして、SSDコントローラ2は、ステップS200で増加させた消去電圧を用いて、選択ブロックのデータを消去し(ステップS203)、さらに、ステップS200で増加させたプログラム電圧を用いて、選択ブロックにデータをプログラムする(ステップS204)。
これにより、より大きなストレスを選択ブロックに印加させることできるため、選択ブロックの信頼性加速が行われる。
[第3の実施形態]
第3の実施形態は、通常モードと自走モードとの切り替え方式の例について示している。図14は、第3の実施形態に係る通常モードと自走モードとの切り替え動作を示す状態遷移図である。
通常モードと自走モードとの切り替え手段として、通常ファームウェア(通常FW)と自走ファームウェア(自走FW)との2種類のファームウェアを用意する。
ファームウェアの書き換えは、SSD1がサポートするインターフェースにおいて定義されているコマンドを用いて行うことができる。例えば、上記のように、ASC-2準拠のDownload Microcodeコマンドが用いられる。通常モード用および自走モード用ファームウェアは、例えばインターネット接続されたサーバに保存されている。テスタ装置がインターネット接続を通じてこのサーバに通信可能に接続され、ファームウェアがインターネット接続を通じてテスタ装置にダウンロードされ、テスタ装置により、インターフェース11を介して上記のコマンドを用いてファームウェアがSSD1のファームウェア領域3Aに書き込まれる。
あるいは、通常モード用および自走モード用ファームウェアは、例えばDVD-ROMのような光学メディアやUSBメモリのような不揮発性記憶メディアに保存されていてもよい。テスタ装置がこれら記憶媒体に接続され、テスタ装置により、インターフェース11を介して上記のコマンドを用いてファームウェアがSSD1のファームウェア領域3Aに書き込まれる。
ステップS600は、SSD1が通常モードであり、かつNAND型フラッシュメモリ3のFW領域3Aに通常FWが書き込まれている状態である。ステップS600の状態では、SSD1の電源をオフ(切)からオン(入)した場合、SSD1は、FW領域3Aに書き込まれた通常ファームウェアを実行して通常モードになる。
例えば検査工程時にテスタ装置がATAのDownload Microcodeコマンドを用いて自走FWをSSD1に書き込むと、SSD1は、ステップS600からステップS601に遷移し、すなわち、SSD1は、通常モードであり、かつFW領域3Aには自走FWが書き込まれている。ステップS601の状態で、SSD1の電源をオフからオンした場合、SSD1は、ステップS601からステップS602に遷移し、SSD1は、FW領域3Aに書き込まれた自走ファームウェアを実行して自走モードになる。このステップS602の状態で、SSD1は、前述したスクリーニング動作を実行することになる。また、ステップS602の状態でSSD1の電源をオフからオンした場合、SSD1は、FW領域3Aに書き込まれた自走ファームウェアを実行して自走モードになる。
スクリーニング終了後に、テスタ装置がDownload Microcodeコマンドを用いて通常FWをSSD1に書き込むと、SSD1は、ステップS602からステップS603に遷移し、すなわち、SSD1は、自走モードであり、かつFW領域3Aには通常FWが書き込まれている。ステップS603の状態で、SSD1の電源をオフからオンした場合、SSD1は、ステップS603からステップS600に遷移し、FW領域3Aに書き込まれた通常ファームウェアを実行して通常モードになる。
テスタ装置は、図1のホスト装置10と同等の構成や記憶装置1との同等の接続携帯をとり、スクリーニングの前の前処理や、スクリーニング後のテスト工程のために使用される。スクリーニングの前には図1のように記憶装置1とテスタ装置10とが電源線12とインターフェース11とで接続され、ファームウェア領域3Aが書き換えられ(状態S600から状態S601への遷移後)に記憶装置1とテスタ装置10との間の電源線12およびインターフェース11とが切断され、記憶装置と電源装置40とが電源線12で接続されて状態S602に移行し、スクリーニングが開始され、スクリーニング終了後に記憶装置1と電源装置40との間の電源線12が切断され、記憶装置1とテスタ装置10とが電源線12とインターフェース11とで接続され、ファームウェア領域3Aが書き換えられ(状態S602から状態S603への遷移)、電源線12切断後に再度電源線12が接続されることで最終的に状態がS600に遷移する。
なお、download microcodeコマンドの使用によるFW領域2Fの書き換え後、電源切入を経ないとS601からS602や、S603からS600への状態遷移は起こらないとしたが、download microcodeコマンドの受信後即座にS600→S601→S602やS6002→S603→S600の状態遷移が起こるようにしてもよい。
以上詳述したように第3の実施形態によれば、外部からコマンドを用いてSSD1の通常モードと自走モードとを切り替えることが可能である。これにより、通常モードと自走モードとの切り替えを簡単かつ正確に行うことが可能となる。
[第4の実施形態]
第4の実施形態は、通常モードと自走モードとの両方を実行可能な1つの通常FWのみを用い、コマンドをトリガとして通常FW内で実行されるモードを選択するようにしている。図15は、第4の実施形態に係る通常モードと自走モードとの切り替え動作を示す状態遷移図である。
第4の実施形態では、通常モードと自走モードとの切り替え手段として、通常モードと自走モードとの両方を実行可能な1つの通常FWを用意する。そして、通常FW内の通常モードと自走モードとのどちらを実行するかを決めるトリガとしてテスタ装置から発行されるATAコマンドを用いる(ACS2準拠のSCTコマンドやベンダー独自のコマンドなど)。
ステップS700は、通常FWをNAND型フラッシュメモリ3のFW領域3Aに書き込んだ初期設定状態であり、SSD1が通常モードであり、かつ通常モードがトリガされている。ステップS700の状態では、SSD1の電源をオフからオンした場合、SSD1は、トリガされた通常モードになる。
テスタ装置が自走モードをトリガするコマンド(自走モード移行コマンド)をSSD1に送信すると、SSD1は、ステップS700からステップS701に遷移し、すなわち、SSD1は、通常モードであり、かつ自走モードがトリガされた状態となる。ステップS701の状態で、SSD1の電源をオフからオンした場合、SSD1は、ステップS701からステップS702に遷移し、SSD1は、通常FWのうちトリガされた自走モードを実行して自走モードに移行する。このステップS702の状態で、SSD1は、前述したスクリーニング動作を実行することになる。また、ステップS702の状態でSSD1の電源をオフからオンした場合、通常FWのうち自走モードがトリガされているため、SSD1は自走モードのままである。
スクリーニング終了後に、テスタ装置が通常モードをトリガするコマンド(通常モード移行コマンド)をSSD1に送信すると、SSD1は、ステップS702からステップS703に遷移し、すなわち、SSD1は、自走モードであり、かつ通常モードがトリガされた状態となる。ステップS703の状態で、SSD1の電源をオフからオンした場合、SSD1は、ステップS703からステップS700に遷移し、通常FWのうちトリガされた通常モードを実行して通常モードに移行する。
テスタ装置は、図1のホスト装置10と同等の構成や記憶装置1との同等の接続携帯をとり、スクリーニングの前の前処理や、スクリーニング後のテスト工程のために使用される。スクリーニングの前には図1のように記憶装置1とテスタ装置10とが電源線12とインターフェース11とで接続され、状態S700から状態S701への遷移コマンドがテスタ装置から発行され、記憶装置1とテスタ装置10との間の電源線12およびインターフェース11とが切断され、記憶装置と電源装置40とが電源線12で接続されて状態S702に移行し、スクリーニングが開始され、スクリーニング終了後に記憶装置1と電源装置40との間の電源線12が切断され、記憶装置1とテスタ装置10とが電源線12とインターフェース11とで接続され、状態S702から状態S703への遷移コマンドがテスタ装置から発行され、電源線12切断後に再度電源線12が接続されることで最終的に状態がS700に遷移する。
なお、状態遷移コマンド発行後、電源切入を経ないとS701からS702や、S703からS700への状態遷移は起こらないとしたが、状態遷移コマンドの受信後即座にS700→S701→S702やS7002→S703→S700の状態遷移が起こるようにしてもよい。
以上詳述したように第4の実施形態によれば、外部からコマンドを用いてSSD1の通常モードと自走モードとを切り替えることが可能である。これにより、通常モードと自走モードとの切り替えを簡単かつ正確に行うことが可能となる。
また、1つのファームウェアのみで通常モードと自走モードとを切り替えることができる。これにより、スクリーニング終了後に製品を出荷する際に、ファームウェアを書き換える必要がない。
[第5の実施形態]
ストレス工程をより効率よく行うという観点では、前述した電圧ストレスのみではなく熱ストレスを加えることが望ましい。そこで、第5の実施形態は、SSD1に熱ストレスを加えた後に、自走モードを行うようにしている。
図16は、第5の実施形態に係るSSD1の構成を示すブロック図である。SSD1は、図1の構成に加えて、温度計8を備えている。SSDコントローラ2は、温度計8によって測定された温度を監視することで、SSD1の内部温度を検知することができる。
図17は、SSD1の起動シーケンスを示すフローチャートである。SSD1は、図11と同様に、電源装置40に接続された状態で恒温槽41に収納されている。すなわち、第5の実施形態では、SSD1は、恒温槽41内で自走モードを実行する。
図17のステップS100〜S105までは、図7と同じである。続いて、SSDコントローラ2は、FW領域3aが自走モード状態である場合(ステップS105)、温度計8で測定された温度を判定する。そして、SSDコントローラ2は、温度計8の温度が所定温度TXを超えた場合、以後自走モードを実行する(ステップS106)。
以上詳述したように第5の実施形態によれば、SSDコントローラ2がSSD1の内部温度を常にモニタし、自走モード(具体的には、ストレス工程)を実行するターゲット温度に到達した後に、自走モードを行うことが可能となる。これにより、恒温槽41の加熱効率の影響を受けることなく、常に一定温度以上でストレス工程を実施することができる。
[第6の実施形態]
第1及び第2の実施形態において、ストレス工程の後にスクリーニング工程を実施する検査工程について説明してきた(図18(a))。
ストレス工程においては、メモリセルに対して通常動作よりも高い電圧が加えられるため、NANDメモリセルの動作が一時的に不安定になる可能性がある。たとえば、ストレス工程直後のメモリセルに対して書き込み動作を行った場合、書き込みエラーの発生確率が一時的に高くなる可能性がある。たとえば、ストレス工程直後のメモリセルに対して消去動作を行った場合、消去エラーの発生確率が一時的に高くなる可能性がある。たとえば、ストレス工程直後のメモリセルに対して読み出し動作を行った場合、ECC訂正不能エラーの発生確率が一時的に高くなる可能性がある。たとえば、ストレス工程直後のメモリセルにデータ書き込みを行うと、当該メモリセルの閾値分布が変動しやすくなっていて、書き込み動作時の閾値電圧分布下限値調整を所定回数繰り返しても下限値が所定電圧に到達せずに書き込みエラーとなる場合がある。あるいは、たとえば、ストレス工程直後のメモリセルにデータを書き込むと、当該メモリセルの閾値分布が変動しやすくなり、当該メモリセルの読み出し動作を行った時にECC訂正不能エラーの発生確率が一時的に高くなる場合がある。
一方、ストレス工程直後のメモリセルに対し消去動作と書き込み動作を繰り返していくうちに動作が安定しエラー発生確率が減少する場合がある。そのようなメモリセルは出荷後に不良する確率は低いため、スクリーニング工程でエラーが発生した時点ですぐにバッドブロック化してしまうと、本来はバッドブロック化する必要のないブロックも過剰にバッドブロック化してしまうことになり、検査工程歩留まり改善の観点から好ましくない。
本実施形態においては、ストレス工程とスクリーニング工程の間に、ブロックに対して消去と書き込みを繰り返し行い、かつあるブロックにおいて消去エラーや書き込みエラーが発生しても当該ブロックをバッドブロック化しない工程(慣らし工程(Idle Write Process)を入れることによって、上記の過剰なバッドブロック化(Overkill)を抑制することが可能になる(図18(b))。ストレス工程と異なり、慣らし工程は通常のセル印加電圧を用いて行われる。
図19は、慣らし工程を示すフローチャートである。慣らし工程が開始されると(ステップS901)、SSDコントローラ2は、慣らし工程が済んだブロックを管理するリスト(処理済みリスト)をクリアする(ステップS902)。この処理済みリストは、SSDコントローラ2内のRAMに格納されている。
続いて、SSDコントローラ2は、NAND型フラッシュメモリ3のユーザ領域3Cから1つのブロックを選択する(ステップS903)。ブロック選択は、例えば、(1)慣らし工程開始後にブロックアドレス=0のブロックを選択し、その後、“ブロックアドレス+1”を繰り返すことでシーケンシャルにブロックを選択してもよいし、(2)ブロックアドレスがランダムに並んだブロックアドレスリストを作成し、慣らし工程開始後にブロックアドレスリスト先頭のブロックを選択し、その後“ブロックアドレスリスト行数+1”を繰り返すことでシーケンシャルにブロックアドレスリストを選択していくことでランダムにブロックを選択してもよい。
続いて、SSDコントローラ2は、選択ブロックのデータを消去する(ステップS904)。この消去動作において消去エラーが発生しても、SSDコントローラ2は選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しない。
続いて、SSDコントローラ2は、選択ブロックにデータをプログラムする(ステップS905)。この時のデータは、SSDコントローラ2によって生成される。メモリセルに書き込まれるデータはランダムデータであってもよいし、全メモリセルに対して図6のC2レベルのデータを書き込んでもよい。このプログラム動作時に書き込みエラーが発生しても、SSDコントローラ2は選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しない。プログラムは、選択ブロック内の全ページ(下位ページ及び上位ページの両方を含む)に対して行われる。
続いて、SSDコントローラ2は、選択ブロックを処理済みリストに追加する(ステップS906)。ステップS902で処理済みリストのかわりに、RAMに格納されている未処理リストを初期化するようにし、ステップS906で選択ブロックを未処理リストから削除するようにしてもよい。続いて、SSDコントローラ2は、NAND型フラッシュメモリ3のユーザ領域3Cの全ブロックを選択したか否かを判定する(ステップS907)。ステップS907において全ブロックを選択していない場合、ステップS903に戻って、次のブロックが選択される。
ステップS907において全ブロックが選択されていた場合、慣らし工程が終了する(ステップS908)。なお、スクリーニング工程時においてメモリセルをより安定化させるという観点では、ステップS902〜S907を複数回繰り返すことが望ましい。
ステップS904の消去動作とステップS905のプログラム動作の両方においてエラーが発生しても選択ブロックをバッドブロック化しないことが望ましいが、ステップS904の消去動作で消去エラーが発生した場合には選択ブロックをバッドブロック化し、ステップS905のプログラム動作で書き込みエラーが発生した場合には選択ブロックをバッドブロック化しないようにしてもよい。
以上のようにして、ストレス工程とスクリーニング工程の間に慣らし工程を行うことにより、メモリセルの動作が安定化し、正常なブロックの不必要なバッドブロック化(過剰なバッドブロック化)を抑制することができる。
なお、図18(b)の慣らし工程の代わりに、スクリーニング工程と当該スクリーニング工程で発生したバッドブロックを消去する工程(バッドブロック消去工程)を行なっても同様の効果が得られる(図20)。スクリーニング工程及びバッドブロック消去工程を疑似慣らし工程と呼ぶ。
図21は、疑似慣らし工程を示すフローチャートである。疑似慣らし工程が開始されると(ステップS1001)、SSDコントローラ2は、スクリーニング工程を行う(ステップS1002〜S1009)。このスクリーニング工程(ステップS1002〜S1009)は、第1の実施形態のスクリーニング工程(図8のステップS300〜S307)と同じである。SSDコントローラ2は、ステップS1004とS1005で発生したバッドブロックをバッドブロック管理テーブルから削除する(ステップS1010)。その後、疑似慣らし工程が終了する(ステップS1011)。
擬似慣らし工程の間にECC訂正不能エラーが発生しても、これはメモリセルの動作が一時的に不安定になっている可能性があるため、そのSSDは不良としなくてもよい。この場合、正常なブロックであっても一旦はバッドブロック管理テーブルに登録されるが、その後バッドブロック消去工程(ステップS1011)においてバッドブロック管理テーブルから削除されることで正常なブロックとして再認識される。
疑似慣らし工程は、慣らし工程(図18(b))と比べて工程数が増えるが、一方で、メモリセルへアクセスする工程は通常のスクリーニング工程と同じ工程を再利用できるため、実装が比較的簡単になる可能性がある。ブロックの消去回数を不必要に増やさないという観点と検査時間を削減するという観点では、擬似慣らし工程内のスクリーニング工程のS1002〜S1009の繰り返し回数は、通常のスクリーニング工程(たとえばS300〜S307)の繰り返し回数よりも少ないことが望ましい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…SSD、2…SSDコントローラ、3…NAND型フラッシュメモリ、4…インターフェースコントローラ、5…電源供給部、6…バス、7a〜7c…電源線、10…ホスト装置、11…インターフェース、12…電源線、20…NANDメモリチップ、21…NANDコントローラ、22…メモリセルアレイ、23…ビット線制御回路、24…カラムデコーダ、25…ワード線制御回路、26…制御回路、27…制御信号入力端子、28…データ入出力端子、29…データ入出力バッファ、40…電源装置、41…恒温槽。

Claims (9)

  1. 不揮発性半導体メモリ、電源供給部、及び第1の制御部を具備する半導体記憶装置であって、
    前記不揮発性半導体メモリは、
    複数のメモリセルを含むブロックを複数備えるメモリセルアレイと、
    前記複数のメモリセルへの書き込み、読み出し、及び消去を制御する第2の制御部と、を具備し、
    前記メモリセルアレイは、
    前記第1の制御部が、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、
    ユーザデータを格納可能なユーザ領域と、を具備し、
    前記電源供給部は、
    前記半導体記憶装置外部から電源供給を受けて、前記不揮発性半導体メモリ及び前記第1の制御部に所定の電圧を供給し、
    前記第1の制御部は、
    前記電源供給部から電圧が供給された場合に、前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、
    前記ファームウェアが前記自走検査モードに設定されている場合に、第1の工程、第2の工程及び第3の工程を順に実行し、
    前記第1の工程は、
    前記通常モードで使用される電圧よりも高い第1のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行う工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録せず、
    前記第2の工程は、
    前記通常モードで使用され、かつ前記第1のセル印加電圧よりも低い第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返す工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録せず、
    前記第3の工程は、
    前記第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返す工程を含み、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する、
    ことを特徴とする半導体記憶装置。
  2. 不揮発性半導体メモリ、電源供給部、及び第1の制御部を具備する半導体記憶装置であって、
    前記不揮発性半導体メモリは、
    複数のメモリセルを含むブロックを複数備えるメモリセルアレイと、
    前記複数のメモリセルへの書き込み、読み出し、及び消去を制御する第2の制御部と、を具備し、
    前記メモリセルアレイは、
    前記第1の制御部が、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、
    ユーザデータを格納可能なユーザ領域と、を具備し、
    前記電源供給部は、
    前記半導体記憶装置外部から電源供給を受けて、前記不揮発性半導体メモリ及び前記第1の制御部に所定の電圧を供給し、
    前記第1の制御部は、
    前記電源供給部から電圧が供給された場合に、前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、
    前記ファームウェアが前記自走検査モードに設定されている場合に、第1の工程、第2の工程及び第3の工程を順に実行し、
    前記第1の工程は、
    前記通常モードで使用される電圧よりも高い第1のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行う工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録せず、
    前記第2の工程は、
    前記通常モードで使用され、かつ前記第1のセル印加電圧よりも低い第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返す工程を含み、かつ前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録し、前記第3の工程を実行する前に当該バッドブロックの登録を削除し、
    前記第3の工程は、
    前記第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返す工程を含み、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する、
    ことを特徴とする半導体記憶装置。
  3. 前記第1の制御部は、前記第3の工程において、前記第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに第1の読み出し、消去、書き込み、及び第2の読み出しをこの順に少なくとも2周繰り返し、
    2周目以降の周期における前記第1の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去する前に実行され、前記2周目以降の周期における前記第2の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去し、その後新たに書き込まれたデータに対して実行される、
    ことを特徴とする請求項1または2に記載の半導体記憶装置。
  4. 複数のメモリセルを含むブロックを複数備えるメモリセルアレイを具備し、前記メモリセルアレイは、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、ユーザデータを格納可能なユーザ領域と、を含む不揮発性半導体メモリの検査方法であって、
    前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、
    前記ファームウェアが前記自走検査モードに設定されている場合に、前記通常モードで使用される電圧よりも高い第1のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行い、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第1の工程を実行し、
    前記第1の工程を実行した後、前記通常モードで使用され、かつ前記第1のセル印加電圧よりも低い第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返し、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第2の工程を実行し、
    前記第2の工程を実行した後、前記第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返し、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第3の工程を実行する、
    ことを特徴とする不揮発性半導体メモリの検査方法。
  5. 複数のメモリセルを含むブロックを複数備えるメモリセルアレイを具備し、前記メモリセルアレイは、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、ユーザデータを格納可能なユーザ領域と、を含む不揮発性半導体メモリの検査方法であって、
    前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、
    前記ファームウェアが前記自走検査モードに設定されている場合に、前記通常モードで使用される電圧よりも高い第1のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行い、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第1の工程を実行し、
    前記第1の工程を実行した後、前記通常モードで使用され、かつ前記第1のセル印加電圧よりも低い第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返し、かつ前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第2の工程を実行し、
    前記第2の工程を実行した後、前記第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返し、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第3の工程を実行し、
    前記第2の工程を実行した後、前記第3の工程を実行する前に、前記バッドブロックの登録を削除する、
    ことを特徴とする不揮発性半導体メモリの検査方法。
  6. 前記第3の工程において、前記第2のセル印加電圧を用いて前記ユーザ領域のブロックごとに第1の読み出し、消去、書き込み、及び第2の読み出しをこの順に少なくとも2周繰り返し、
    2周目以降の周期における前記第1の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去する前に実行され、前記2周目以降の周期における前記第2の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去し、その後新たに書き込まれたデータに対して実行される、
    ことを特徴とする請求項4または5に記載の不揮発性半導体メモリの検査方法。
  7. 複数のメモリセルを含むブロックを複数備えるメモリセルアレイを具備する不揮発性半導体メモリを検査するためのファームウェアプログラムであって、
    前記プログラムは、前記不揮発性半導体メモリを制御する制御部に、
    ホスト装置の指示に応じた動作を行う通常モードで使用される電圧よりも高い第1のセル印加電圧を用いて前記不揮発性半導体メモリのブロックへ書き込みを行い、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第1の工程と、
    前記第1の工程を実行した後、前記通常モードで使用され、かつ前記第1のセル印加電圧よりも低い第2のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに消去及び書き込みを繰り返し、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第2の工程と、
    前記第2の工程を実行した後、前記第2のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに消去、書き込み及び読み出しを繰り返し、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第3の工程と、
    を実行させるためのプログラム。
  8. 複数のメモリセルを含むブロックを複数備えるメモリセルアレイを具備する不揮発性半導体メモリを検査するためのファームウェアプログラムであって、
    前記プログラムは、前記不揮発性半導体メモリを制御する制御部に、
    ホスト装置の指示に応じた動作を行う通常モードで使用される電圧よりも高い第1のセル印加電圧を用いて前記不揮発性半導体メモリのブロックへ書き込みを行い、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第1の工程と、
    前記第1の工程を実行した後、前記通常モードで使用され、かつ前記第1のセル印加電圧よりも低い第2のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに消去及び書き込みを繰り返し、かつ前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第2の工程と、
    前記第2の工程を実行した後、前記第2のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに消去、書き込み及び読み出しを繰り返し、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第3の工程と、
    前記第2の工程を実行した後、前記第3の工程を実行する前に、前記バッドブロックの登録を削除すること、
    を実行させるためのプログラム。
  9. 前記第3の工程において、前記第2のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに第1の読み出し、消去、書き込み、及び第2の読み出しをこの順に少なくとも2周繰り返し、
    2周目以降の周期における前記第1の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去する前に実行され、前記2周目以降の周期における前記第2の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去し、その後新たに書き込まれたデータに対して実行される、
    ことを特徴とする請求項7または8に記載のプログラム。
JP2012086657A 2011-12-16 2012-04-05 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム Active JP5112566B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012086657A JP5112566B1 (ja) 2011-12-16 2012-04-05 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム
US13/602,763 US8539315B2 (en) 2011-12-16 2012-09-04 Semiconductor storage device, nonvolatile semiconductor memory test method, and medium
TW101132404A TWI419308B (zh) 2011-12-16 2012-09-05 半導體儲存裝置、非揮發性半導體記憶體測試方法、及媒體
US13/964,316 US9263153B2 (en) 2011-12-16 2013-08-12 Semiconductor storage device, nonvolatile semiconductor memory test method, and medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011275867 2011-12-16
JP2011275867 2011-12-16
JP2012086657A JP5112566B1 (ja) 2011-12-16 2012-04-05 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP5112566B1 true JP5112566B1 (ja) 2013-01-09
JP2013145545A JP2013145545A (ja) 2013-07-25

Family

ID=47676444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012086657A Active JP5112566B1 (ja) 2011-12-16 2012-04-05 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム

Country Status (3)

Country Link
US (2) US8539315B2 (ja)
JP (1) JP5112566B1 (ja)
TW (1) TWI419308B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014154186A (ja) * 2013-02-08 2014-08-25 Mega Chips Corp 記憶装置検査システム、記憶装置検査方法および不揮発性半導体記憶装置

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5740296B2 (ja) 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
JP5586718B2 (ja) 2012-06-19 2014-09-10 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US9081664B2 (en) * 2012-08-10 2015-07-14 Kabushiki Kaisha Toshiba Memory system capable of preventing data destruction
US8966343B2 (en) * 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US9460813B2 (en) 2013-03-14 2016-10-04 Kabushiki Kaisha Toshiba Memory system
US9032264B2 (en) 2013-03-21 2015-05-12 Kabushiki Kaisha Toshiba Test method for nonvolatile memory
CN103345942B (zh) * 2013-07-03 2016-03-02 上海华力微电子有限公司 解析存储器操作类型错误的方法及其装置
US9304685B2 (en) 2013-09-10 2016-04-05 Kabushiki Kaisha Toshiba Storage array system and non-transitory recording medium storing control program
JP6255282B2 (ja) * 2014-02-28 2017-12-27 ルネサスエレクトロニクス株式会社 半導体装置
WO2015147861A1 (en) * 2014-03-28 2015-10-01 Hewlett-Packard Development Company, L.P. Testing electronic devices
US20170139699A1 (en) * 2015-01-05 2017-05-18 Hewlett Packard Enterprise Development Lp Storage device flashing operation
US9899102B2 (en) * 2015-03-31 2018-02-20 SK Hynix Inc. Semiconductor device and operating method thereof
US20160321010A1 (en) 2015-04-28 2016-11-03 Kabushiki Kaisha Toshiba Storage system having a host directly manage physical data locations of storage device
KR102415385B1 (ko) 2015-07-22 2022-07-01 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 저장 장치
US10283209B2 (en) * 2015-09-08 2019-05-07 Storart Technology (Shenzhen) Co. Ltd Method for detecting problem cells of SATA SSD and SATA SSD having self-detecting function looking for problem cells
TWI629588B (zh) * 2015-09-17 2018-07-11 深圳衡宇芯片科技有限公司 用來偵測sata固態硬碟問題單元的方法及具有自我偵測尋找問題單元功能的sata固態硬碟
KR102413755B1 (ko) * 2015-11-20 2022-06-28 삼성전자주식회사 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법
US10476958B2 (en) 2015-12-16 2019-11-12 Toshiba Memory Corporation Hyper-converged flash array system
US10425484B2 (en) * 2015-12-16 2019-09-24 Toshiba Memory Corporation Just a bunch of flash (JBOF) appliance with physical access application program interface (API)
US9946596B2 (en) 2016-01-29 2018-04-17 Toshiba Memory Corporation Global error recovery system
US10599333B2 (en) 2016-03-09 2020-03-24 Toshiba Memory Corporation Storage device having dual access procedures
US10101939B2 (en) 2016-03-09 2018-10-16 Toshiba Memory Corporation Storage system having a host that manages physical data locations of a storage device
US9858003B2 (en) 2016-05-02 2018-01-02 Toshiba Memory Corporation Storage system that reliably stores lower page data
US9653180B1 (en) * 2016-05-26 2017-05-16 Sandisk Technologies Llc System method and apparatus for screening a memory system
KR102678654B1 (ko) * 2017-02-23 2024-06-27 에스케이하이닉스 주식회사 비휘발성 메모리 장치, 데이터 저장 장치 및 그것의 동작 방법
KR20180110482A (ko) * 2017-03-29 2018-10-10 에스케이하이닉스 주식회사 메모리 테스트 시스템 및 방법
JP2019179885A (ja) * 2018-03-30 2019-10-17 ソニーセミコンダクタソリューションズ株式会社 半導体記憶装置、積和演算装置及び電子機器
KR102424372B1 (ko) * 2018-03-30 2022-07-25 에스케이하이닉스 주식회사 메모리 장치 및 그것의 동작 방법
US10777295B2 (en) 2018-04-12 2020-09-15 Micron Technology, Inc. Defective memory unit screening in a memory system
JP2020144554A (ja) * 2019-03-05 2020-09-10 キオクシア株式会社 記憶装置およびデータ読出方法
JP2020149745A (ja) 2019-03-13 2020-09-17 キオクシア株式会社 半導体記憶装置
US11403217B2 (en) * 2019-10-30 2022-08-02 Qualcomm Incorporated Memory bank group interleaving
CN111352593B (zh) * 2020-02-29 2022-03-22 杭州电子科技大学 一种区分快写和正常写的固态硬盘数据写入方法
US12014073B2 (en) * 2022-05-17 2024-06-18 Micron Technology, Inc. Techniques for sequential access operations
CN116880782B (zh) * 2023-09-08 2023-12-05 合肥康芯威存储技术有限公司 一种内嵌式存储器及其测试方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226200B1 (en) * 1999-11-17 2001-05-01 Motorola Inc. In-circuit memory array bit cell threshold voltage distribution measurement
JP2001318126A (ja) * 2000-05-09 2001-11-16 Mitsubishi Electric Corp 半導体集積回路の試験方法、半導体試験装置、及び半導体集積回路
US6684173B2 (en) * 2001-10-09 2004-01-27 Micron Technology, Inc. System and method of testing non-volatile memory cells
DE60302473T2 (de) * 2002-07-22 2006-08-24 Advanced Micro Devices Inc., Sunnyvale Built-in-self-test für flash speicherzellen
TWI220962B (en) * 2003-01-20 2004-09-11 Mediatek Inc Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating
US7325177B2 (en) * 2004-11-17 2008-01-29 Silicon Storage Technology, Inc. Test circuit and method for multilevel cell flash memory
KR100680462B1 (ko) * 2005-04-11 2007-02-08 주식회사 하이닉스반도체 비휘발성 메모리 장치 및 그것의 핫 일렉트론 프로그램디스터브 방지방법
JP2007004955A (ja) * 2005-05-27 2007-01-11 Sharp Corp 不揮発性半導体記憶装置
US7590509B2 (en) * 2005-06-23 2009-09-15 Hewlett-Packard Development Company, L.P. System and method for testing a processor
JP4439539B2 (ja) 2007-07-09 2010-03-24 株式会社東芝 不揮発性半導体メモリ及びそのテスト方法
JP2011502326A (ja) * 2007-10-29 2011-01-20 アギア システムズ インコーポレーテッド メモリ・デバイスをテストする方法および機器
JP4635061B2 (ja) 2008-02-27 2011-02-16 株式会社東芝 半導体記憶装置の評価方法
US20090228641A1 (en) 2008-03-07 2009-09-10 Kabushiki Kaisha Toshiba Information processing apparatus and non-volatile semiconductor memory drive
US7808819B2 (en) * 2008-04-29 2010-10-05 Sandisk Il Ltd. Method for adaptive setting of state voltage levels in non-volatile memory
US7872930B2 (en) * 2008-05-15 2011-01-18 Qualcomm, Incorporated Testing a memory device having field effect transistors subject to threshold voltage shifts caused by bias temperature instability
US8037380B2 (en) 2008-07-08 2011-10-11 International Business Machines Corporation Verifying data integrity of a non-volatile memory system during data caching process
US20100061207A1 (en) * 2008-09-09 2010-03-11 Seagate Technology Llc Data storage device including self-test features
JP5275052B2 (ja) 2009-01-08 2013-08-28 株式会社東芝 不揮発性半導体記憶装置
KR101759926B1 (ko) 2009-07-23 2017-07-21 삼성전자주식회사 메모리 반도체 장치, 그 제조 방법 및 동작 방법
US8787022B2 (en) 2009-07-24 2014-07-22 Kabushiki Kaisha Toshiba Semiconductor storage device and method of manufacturing the same
US8456926B2 (en) * 2010-11-18 2013-06-04 Grandis, Inc. Memory write error correction circuit
US8199577B2 (en) * 2009-11-30 2012-06-12 Texas Instruments Incorporated Ripple programming of memory cells in a nonvolatile memory
KR101806807B1 (ko) * 2010-11-08 2017-12-11 삼성전자주식회사 메모리 카드
JP5002719B1 (ja) 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
US8693271B2 (en) * 2011-08-10 2014-04-08 Texas Instruments Incorporated Method of stressing static random access memories for pass transistor defects
US10803970B2 (en) 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
JP5740296B2 (ja) 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014154186A (ja) * 2013-02-08 2014-08-25 Mega Chips Corp 記憶装置検査システム、記憶装置検査方法および不揮発性半導体記憶装置

Also Published As

Publication number Publication date
TW201330234A (zh) 2013-07-16
US20130332802A1 (en) 2013-12-12
JP2013145545A (ja) 2013-07-25
TWI419308B (zh) 2013-12-11
US9263153B2 (en) 2016-02-16
US8539315B2 (en) 2013-09-17
US20130159814A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
JP5112566B1 (ja) 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム
JP5740296B2 (ja) 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
TWI533314B (zh) Non-volatile semiconductor memory inspection methods and storage of inspection procedures recorded in the media
US10020072B2 (en) Detect developed bad blocks in non-volatile memory devices
US9588714B2 (en) Method of operating memory controller and data storage device including memory controller
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
KR102609130B1 (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
TWI459391B (zh) Memory system
JP5138319B2 (ja) メモリーシステム及び該動作方法。
US20160098216A1 (en) System and method for refreshing data in a memory device
US11194655B2 (en) Storage controller and storage device including the same
JP6258399B2 (ja) 半導体装置
US20160078966A1 (en) Method of performing wear management in non-volatile memory devices
US10002676B2 (en) Nonvolatile memory device detecting defective bit line at high speed and test system thereof
TWI741128B (zh) 記憶體系統及用於操作半導體記憶體裝置的方法
JP2011181155A (ja) 不揮発性半導体記憶装置及びメモリシステム
US11562804B2 (en) Storage devices and methods of operating storage devices
US9152497B2 (en) Data recovery from blocks with gate shorts
US12039190B2 (en) Memory system and operating method of the memory system for calibrating a history read bias based on a number of error bits generated in a read operation
US10754571B2 (en) Storage device and method of operating the same
US11966625B2 (en) Memory device and operating method for setting and repairing data errors
US20240086079A1 (en) Memory pattern management for improved data retention in memory devices

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120911

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121010

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5112566

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350