JP6727365B1 - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP6727365B1
JP6727365B1 JP2019060533A JP2019060533A JP6727365B1 JP 6727365 B1 JP6727365 B1 JP 6727365B1 JP 2019060533 A JP2019060533 A JP 2019060533A JP 2019060533 A JP2019060533 A JP 2019060533A JP 6727365 B1 JP6727365 B1 JP 6727365B1
Authority
JP
Japan
Prior art keywords
block
address information
physical address
holding
status
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
JP2019060533A
Other languages
English (en)
Other versions
JP2020160871A (ja
Inventor
規男 服部
規男 服部
Original Assignee
ウィンボンド エレクトロニクス コーポレーション
ウィンボンド エレクトロニクス コーポレーション
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 ウィンボンド エレクトロニクス コーポレーション, ウィンボンド エレクトロニクス コーポレーション filed Critical ウィンボンド エレクトロニクス コーポレーション
Priority to JP2019060533A priority Critical patent/JP6727365B1/ja
Priority to TW108144904A priority patent/TWI706249B/zh
Priority to CN201911357506.7A priority patent/CN111768808B/zh
Priority to US16/742,872 priority patent/US11221945B2/en
Priority to KR1020200013719A priority patent/KR102294042B1/ko
Application granted granted Critical
Publication of JP6727365B1 publication Critical patent/JP6727365B1/ja
Publication of JP2020160871A publication Critical patent/JP2020160871A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/54Arrangements for designing test circuits, e.g. design for test [DFT] tools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • 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

Abstract

【課題】 ブロック間のプログラム/消去のサイクル数の平滑化を図ることができる半導体記憶装置を提供する。【解決手段】 本発明のフラッシュメモリ100は、NAND型のメモリセルアレイ110と、論理アドレス情報を物理アドレス情報との関係を規定するアドレス変換テーブルと、消去すべきブロックを識別するための物理アドレス情報を管理する無効ブロックテーブルと、消去済みの使用可能なブロックを識別するための物理アドレス情報を管理するフリーブロックテーブルと、ブロックを消去する消去手段と、コントローラ140とを有する。コントローラ140は、外部から消去コマンドおよび論理アドレス情報を受け取ったとき、プログラム/消去回数に基づき無効ブロックテーブルの中から選択された物理アドレス情報のブロックを消去させ、プログラム/消去回数に基づきフリーブロックテーブルの中から選択された物理アドレス情報を外部からの論理アドレス情報に対応するようにアドレス変換テーブルを書き換える。【選択図】 図2

Description

本発明は、半導体記憶装置に関し、特に、NAND型フラッシュメモリのブロック間のプログラム/消去回数を平滑化するためのウエアレベリング(wear leveling)に関する。
通常、NAND型フラッシュメモリは、パッケージ内に、メモリチップと当該メモリチップを制御するためのメモリコントローラとを含んで構成される。メモリコントローラに、メモリチップのエラー訂正やバッドブロックの管理等の一定の負荷を負わせることで、ホスト側のコンピュータの負荷を軽減させることができる。
例えば、特許文献1のフラッシュメモリシステムは、図1に示すように、フラッシュメモリ10と、ホストデバイス40とを含み、フラッシュメモリ10は、メモリコントローラ20とメモリチップ30とを含む。メモリコントローラ20は、ホストデバイス40との間でデータの転送を行うホストインターフェース22、メモリチップ30との間でデータの転送を行うメモリインターフェース24、データ転送やメモリチップの動作を制御するMPU、プログラムやデータを記憶するROM、RAMなどを備えている。メモリチップ30は、例えばNAND型フラッシュメモリのチップである。
特開2009−175877号公報
NAND型のフラッシュメモリでは、読出しおよびプログラムはページ単位で行われ、消去はブロック単位で行われる。ホストデバイスは、これらの動作を指示するとき、読み出し、プログラム、消去のための論理アドレスをメモリコントローラに出力する。メモリコントローラは、受け取った論理アドレスを、SRAMに保持された変換テーブルを参照して物理アドレスに変換し、メモリセルアレイへのプログラム等を行う。変換テーブルは、電源投入時に、メモリセルアレイに用意された領域からSRAMにロードされる。
また、フラッシュメモリでは、プログラム/消去のサイクル数が増加すると、エンデュランス特性やデータ保持特性の劣化が顕著になることが知られている。これは、プログラム/消去のサイクル数が増加するにつれ、ゲート酸化膜に電子がトラップされたり、電子のトンネリングによりゲート酸化膜そのものが劣化することが原因と考えられている。特定のブロックへのプログラム/消去のサイクル数が増加してしまうと、最終的に使用できなブロックが発生してしまい、メモリセルアレイの利用効率が低下してしまう。それ故、メモリセルアレイの各ブロック間のプログラム/消去のサイクル数は、できるだけ均一化されることが望ましい。
さらにフラッシュメモリでは、現在のブロックのステータスを表す情報や上記した論理アドレス/物理アドレスの変換テーブル等をSRAMに保持しているが、突然の電源ダウンに対処するため、これらのバックアップ情報をメモリセルアレイの決められた領域、例えば、スペア領域に格納している。そして、電源が再投入されたとき、スペア領域から読み出した情報に基づき変換テーブル等をSRAMに再構築している。しかしながら、スペア領域へのプログラムは、プログラム数を増加させることであり、同時に、同一ページ上のレギュラー領域がプログラム電圧の印加によりディスターブされるおそれがある。このディスターブは、プログラムゲートディスターブ(PGD)と呼ばれている。プログラム数の増加やPGDは、最悪の場合、レギュラー領域のデータが劣化されてしまう。
本発明は、上記したような従来の課題を解決するものであり、ブロック間でプログラム/消去のサイクル数の平滑化を図ることができる半導体記憶装置を提供することを目的とする。
さらに本発明は、プログラム数を抑制しつつスペア領域を有効に利用することができる半導体記憶装置を提供することを目的とする。
本発明に係る半導体記憶装置は、複数のブロックを含むNAND型のメモリセルアレイと、論理アドレス情報を物理アドレス情報に変換するための変換情報を保持する第1の保持手段と、消去すべきブロックを識別するための物理アドレス情報を保持する第2の保持手段と、プログラム/消去回数に基づき選択された消去済みの使用可能なブロックを識別するための物理アドレス情報を保持する第3の保持手段と、前記メモリセルアレイのブロックを消去する消去手段と、制御手段とを有し、前記制御手段は、外部から消去コマンドおよび論理アドレス情報を受け取ったとき、前記変換情報に基づき前記論理アドレスを第1の物理アドレス情報に変換し、前記第2の保持手段で保持された第2の物理アドレス情報が第1の物理アドレス情報に一致しない場合には、第2の物理アドレス情報に該当するブロックを前記消去手段に消去させ、さらに前記第3の保持手段で保持された第3の物理アドレス情報が前記論理アドレス情報に対応するように前記第1の保持手段の変換情報を更新する。
ある実施態様では前記制御手段は、第1の物理アドレス情報を前記第2の保持手段に追加し、第3の物理アドレス情報を前記第3の保持手段から削除する。ある実施態様では半導体記憶装置はさらに、前記メモリセルアレイの選択ページにデータをプログラムするためのプログラム手段を含み、前記制御手段は、前記プログラム手段に、第3の物理アドレス情報に該当するブロックの選択されたページのスペア領域に前記論理アドレス情報と当該ブロックが使用中になったことを示すステータスとをプログラムさせる。ある実施態様では前記制御手段は、前記プログラム手段に、第1の物理アドレス情報に該当するブロックの選択されたページのスペア領域に当該ブロックが消去すべきブロックになったことを示すステータスをプログラムさせる。ある実施態様ではメモリセルアレイの決められた領域にブロックのステータスに関する情報がプログラムされ、前記制御手段は、前記ステータスに関する情報に基づき前記第1、第2、第3の保持手段で保持される情報を生成する。ある実施態様では前記制御手段は、電源投入時に前記メモリセルアレイから前記ステータスに関する情報を読み出す。ある実施態様では半導体記憶装置はさらに、消去動作時に各ブロックのステータスに関する情報を保持する第4の保持手段を含み、前記制御手段は、プログラム動作時に、前記第4の保持手段に保持されたステータスに関する情報をメモリセルアレイの該当するスペア領域にプログラムさせる。ある実施態様では前記第4の保持手段は、不揮発性メモリにステータスに関する情報を保持する。
本発明によれば、メモリセルアレイのブロックのプログラム/消去回数の平滑化を図り、メモリセルアレイの利用効率を改善することができる。さらに本発明によれば、スペア領域にステータスに関する情報をプログラムする場合にプログラム回数の削減を図ることができる。
従来の半導体メモリの一例を示す図である。 本発明の実施例に係るフラッシュメモリの全体構成を示す図である。 本発明の実施例に係るメモリセルアレイのブロックの内部構成を示す図である。 本実施例のフラッシュメモリのブロック内の構成を示す図である。 図5(A)は、SRAMに保持されるアドレス変換テーブルの一例を示し、図5(B)は、SRAMに保持されるカレント参照テーブルの一例を示す。 メモリセルアレイの各ブロックのステータスを模式的に示す図である。 ホストデバイスから入力された論理アドレスを物理アドレスに変換する動作を説明する図である。 本発明の実施例に係るフリーブロックテーブル、無効ブロックテーブル、ステータスブロックテーブルを示す図である。 本発明の実施例に係る消去動作のフローを示す図である。 本発明の実施例に係る消去動作のフローを示す図である。 消去動作時に書換えられたアドレス変換テーブルとカレント参照テーブルを示す図である。 消去動作時のメモリセルアレイの各ブロックのステータスを模式的に示す図である。 消去動作時に書換えられたフリーブロックテーブル、無効ブロックテーブル、ステータスブロックテーブルを示す図である。
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明のフラッシュメモリは、NAND型ストリングのメモリセルを有するメモリ装置と、メモリ装置を制御するコントローラとを含んで構成される。コントローラは、メモリ装置を形成するチップと同一のチップ上に形成されてもよいし、異なるチップ上に形成されてもよい。また、フラッシュメモリが複数のチップから構成されるとき、複数のチップは積層されるように構成されてもよい。
図2は、本発明の実施例に係るフラッシュメモリ100の内部構成を示す図である。本実施例のフラッシュメモリ100は、ホストデバイスから各種制御信号(コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALEなど)、データ、コマンド等を受け取り、これらの信号等に基づき読出し、プログラム(書込み)、消去等を行う。また、フラッシュメモリ100は、メモリの動作状態を示すReady信号やBusy信号をホストデバイスに出力する。
フラッシュメモリ100は、複数のメモリセルが行列状に配列されたメモリアレイ110と、外部入出力端子I/Oに接続された入出力バッファ120と、入出力バッファ120からアドレスデータを受け取るアドレスレジスタ130と、入出力バッファ120からコマンドデータ等を受け取り、各部を制御するコントローラ140と、アドレスレジスタ130から行アドレス情報Axを受け取り、行アドレス情報Axをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路150と、ワード線選択回路150によって選択されたページから読み出されたデータを保持したり、選択されたページにプログラムすべき入力データを保持するページバッファ/センス回路160と、アドレスレジスタ130から列アドレス情報Ayを受け取り、列アドレス情報Ayをデコードし、当該デコード結果に基づきページバッファ/センス回路160内の列アドレスのデータを選択する列選択回路170と、データの読出し、プログラムおよび消去等のために必要な種々の電圧(書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど)を生成する内部電圧発生回路180とを含んで構成される。
メモリアレイ110は、列方向にm個のブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。1つのブロックには、図3に示すように、複数のメモリセルを直列に接続したNANDストリングが行方向にn個配列されている。1つの行方向のメモリセルは、1ページ(例えば、2KB)を構成する。1つのNANDストリングNUは、直列に接続された複数のメモリセルMCi(i=1、2、3・・・、64)と、一方の端部であるメモリセルMC64のドレイン側に接続されたビット線側選択トランジスタTdと、メモリセルMC0のソース側に接続されたソース線側選択トランジスタTsとを含む。ビット線側選択トランジスタTdのドレインは、対応する1つのビット線BLに接続され、ソース線側選択トランジスタTsのソースは、共通のソース線SLに接続される。メモリセルは、1ビットのデータを記憶するもの、あるいはビットのデータを記憶するものいずれであってもよい。さらにメモリセルアレイは、基板上に2次元的に形成されるもの、あるいは基板上に3次元的に形成されるものいずれであってもよい。
メモリセルアレイ110の各ブロック、つまりブロックを構成する各ページには、ユーザーが使用するレギュラー領域と、種々の管理情報などを記憶するために使用するスペア領域とが割り当てられている。例えば、メモリセルアレイ110の1つのページは、図4に示すように、セクタ0〜セクタ7の8つのセクタを含むレギュラー領域200と、スペア0、スペア1、スペア2、スペア3の4つのセクタを含むスペア領域210とを有する。例えば、レギュラー領域200の1つのセクタが256バイト(全体で2Kバイト)、スペア領域210の1つのセクタが16バイトである(全体で64バイト)。
スペア領域には、不良メモリ素子を含むバッドブロックを識別する情報212、当該ブロックの物理ブロックアドレスPBAが対応する論理ブロックアドレスLBAを識別する情報214、当該ブロックのステータスに関する情報216、レギュラー領域の誤り訂正符号(パリティビット)218などが記憶される。ステータスに関する情報は、後述するように、例えば、消去済みのブロック(E)、使用中の有効なブロック(V)、消去すべき無効なブロック(I)、プログラム/消去の回数EWなどを含む。
コントローラ140は、例えば、マイクロプロセッサ(MPU)やROMなどを含み、ROMに格納されたソフトウエアプログラムを実行することで、フラッシュメモリ100の読出し、プログラムおよび消去等の動作を制御する。さらに本実施例のコントローラ140は、SRAM142およびRRAM(抵抗変化型メモリ)144を含み、SRAM142およびRRAM144の読み書き制御等を行う。
ここでのSRAM142は、複数のレジスタ等を含む高速で読出し書込みが可能な揮発性メモリの総称である。SRAM142は、電源投入時にコントローラ140によってパワーオンシーケンスが実行されたとき、メモリセルアレイ110の特定ブロックの特定ページ、あるいは予め決められたスペア領域等からロードされたデータを保持する。コントローラ140は、SRAM142にロードされたデータに基づき各種テーブルを作成することができ、作成したテーブルをSRAM142に保持させ、また必要に応じてテーブルを書換えることができる。テーブルは、例えば、論理ブロックアドレスLBAと物理アドレスアドレスPBAとの関係を規定する変換テーブル、メモリセルアレイ110の各ブロックのステータスに関する情報を示すテーブルなどである。
SRAM142は揮発性メモリであるため、電源がダウンした場合には、SRAM142に保持されたテーブル等のデータは喪失されてしまう。これに対処するため、SRAM142に保持されたデータが書き換えられた場合には、メモリセルアレイのスペア領域にそのバックアップデータがプログラムされる。そして、電源再投入時に、スペア領域から読み出されたデータによってSRAM142のテーブル等が再構築される。
RRAM144は、可逆的かつ不揮発性の可変抵抗素子にデータを記憶することができる可変抵抗型ランダムアクセスメモリである。RRAM144は、SRAM142と同様に高速でデータの読み書きが可能であり、かつ電源が喪失してもデータを保持することができる不揮発性のメモリである。
RRAM144は、SRAM142にバックアップとして機能することができる。RRAM144は、SRAM142に保持されたデータの一部を記憶し、SRAM142のテーブル等に変更があったとき、その変更内容を記憶し、メモリセルアレイのスペア領域へのプログラムを延期させることができる。コントローラ140は、適切なタイミングで、RRAM144に記憶されたデータをメモリセルアレイのスペア領域にプログラムすることができる。ある実施態様では、レギュラー領域にデータをプログラムするとき、RRAM144のデータをスペア領域に同時にプログラムする。これにより、プログラム数を削減することができ、スペア領域にのみプログラムするときに生じ得るレギュラー領域へのプログラムゲートディスターブ(PGD)を抑制する。
フラッシュメモリの読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線側選択トランジスタTd、ソース線側選択トランジスタTsをオンし、共通ソース線SLを0Vにする。プログラム動作では、選択されたワード線に高電圧のプログラム電圧(例えば、15〜20V)を印加し、非選択のワード線に中間電位(例えば10V)を印加し、ビット線側選択トランジスタTdをオンさせ、ソース線側選択トランジスタTsをオフさせ、データ「0」または「1」に応じた電位をビット線BLに供給する。消去動作では、ブロック内の選択されたワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
次に、本実施例のフラッシュメモリ100の動作について説明する。フラッシュメモリ100に電源が投入されると、コントローラ140がパワーオンシーケンスを実行し、図6に示すようなメモリセルアレイ110の先頭ブロックの特定ページに格納されたデータや各ブロックのスペア領域に格納された論理ブロックアドレスLBAやステータスに関するデータがSRAM142にロードされる。コントローラ140は、ロードされた情報に基づき、図5(A)に示すようなアドレス変換テーブル300、図5(B)に示すようなカレント参照テーブル310を作成し、これをSRAM142に保持させる。
ここで、図5(B)や図6のステータスで使用されるシンボル「S」は、システムが使用するブロックを表し、「E」は消去済みであり使用可能なブロックを表し、「V」は使用中の有効なブロックを表し、「I」は消去すべき無効なブロックを表し、「BB」は使用することができないバッドブロックを表す。
1つのブロック内に(V)と(I)の2つのステータスが含まれる場合、(1)のステータスが優先され、(V)と(E)が含まれる場合には、(V)が優先される。(BB)と(E)が含まれる場合には、(BB)が優先される。例えば、図6に示すメモリセルアレイの物理ブロックアドレスPBA(03h)では、ページ(00h)に「V」がプログラムされ、ページ(03h)に「I」がプログラムされているが、「1」が優先されるため、このブロックは消去すべき無効なブロックと識別される。それ故、スペア領域の論理ブロックアドレスLBA(01h)は、有効なものとして使用されず、つまり、図5(A)の変換テーブルには反映されないし、図5(B)のカレント参照テーブルでは「I」が反映される。また、図6の物理ブロックアドレスPBA(02h)では、ステータスが「BB」がプログラムされているため、カレント参照テーブルには「BB」が反映される。
コントローラ140は、図5(A)に示すアドレス変換テーブルを参照して、ホストデバイスから入力された論理アドレスLADを物理アドレスPADに変換する。論理アドレスLADは、図7に示すように、論理ブロックアドレスLBA、論理ページアドレスLPAおよび論理カラムアドレスLCAを含んで構成される。例えば、フラッシュメモリ100をアクセスするための行アドレスは18ビットであり、列アドレスは12ビットである。行アドレスの上位12ビットがブロックを指定するアドレスであり、下位6ビットがページを指定するアドレスである。論理ページアドレスLPAおよび論理列アドレスLACは、変換されることなくそのまま物理アドレスを構成する。こうして、論理アドレスLADが、フラッシュメモリをアクセスするための物理アドレスPDA(=PBA+LAP+LCA)に変換される。
コントローラ140は、図5(B)に示すカレント参照テーブルを用いて各ブロックのプログラム/消去のサイクル数の平滑化を管理することは可能であるが、本実施例では、ブロックのサーチ時間を短縮しその処理速度を高めるために、図8(A)、(B)、(C)に示すような3つのテーブルを生成する。
図8(A)に示すフリーブロックテーブル(FBT)は、消去済みのブロックであって、次に使用できるブロックを管理するテーブルである。FBTは、図5(B)のカレント参照テーブルにおいて、ステータスが「E」のブロックとそのプログラム/消去回数EWに基づき生成される。FBTは、例えば、先に書込まれた物理ブロックアドレスPBAから順に読み出されるFIFOタイプのレジスタに格納され、ここでは、プログラム/消去回数EWが少ないブロックから先に書込まれる。プログラム/消去回数EWは、1つのブロック内の各ページにおいて必ずしも同一にはならない。消去はブロック単位であるため各ページに均一に反映されるが、プログラムはページ単位であるため各ページ間でプログラム数は異なる。本実施例のプログラム/消去回数EWは、ブロック単位であり、つまり、ブロック内の1つのページがプログラムされた場合であっても、プログラム/消去回数EWは1つ加算される。
図8(B)に示す無効ブロックテーブル(IBT)は、次に消去すべきブロックを管理するテーブルである。IBTは、図5(B)のカレント参照テーブルにおいて、ステータスが「I」であるブロックとそのプログラム/消去回数EWに基づき生成される。IBTもまた、FIFOタイプのレジスタに格納され、プログラム/消去回数EWが少ないページから先に書込まれる。
図8(C)に示すステータブロックステーブル(SBT)は、図5(B)に示すカレント参照テーブルのステータスを記憶する。SBTは、図5(B)のカレント参照テーブルにおいて、全てのブロックのステータスを利用して生成される。SBTは、RRAM144に格納され、仮に動作中にブロックの状態の変更が生じた際、その変更を保存する。
次に、フラッシュメモリ100においてブロックを消去するときの動作を図9、図10のフローを参照して説明する。メモリセルアレイ110は、図6に示すステータスを有するものとする。外部のホストデバイスが消去コマンドおよび消去すべきブロックを示す論理ブロックアドレスLBA(01h)を出力し、フラッシュメモリ100がこれを受け取る(S101)。
コントローラ140は、図5(A)に示す変換テーブルを参照し、論理ブロックアドレスLBA(01h)を物理ブロックアドレスPBA(07h)に変換する(S102)。次に、コントローラ140は、プログラム/消去回数の少ない次に消去すべきブロックを決定するため、図8(B)に示すIBTの先頭の物理ブロックアドレスPBA(01h)を読み出す(S103)。
次に、コントローラ140は、IBTから読み出された物理ブロックアドレスPBA(01h)で特定されるブロックの消去を実行する(S104)。ここでは、ホストデバイスから指示された論理アドレスブロック(001h)に対応する物理ブロックアドレス(007h)は、IBTから読み出された物理ブロックアドレスPBA(001h)に一致しないので、物理ブロックアドレスPBA(007)のブロックは消去されず、このブロックは消去すべき無効なブロック(ステータス「I」)として管理される。コントローラ140の指示に応答して、ワード線選択回路150がPBA(01h)の選択ブロックの全ワードに0Vを印加し、また、Pウエルには消去電圧が印加される。このときのPBA(01h)のブロックの状態を図12に示す。PBA(01h)のスペア領域は、消去済の使用可能な状態Eになる。
次に、メモリセルアレイ120のPBA(01h)のステータスを反映させるべく、コントローラ140は、図5(B)に示すカレント参照テーブルのPBA(01h)のステータスを「I」から「E」に書換え、かつプログラム/消去回路EWに1を加算し「2」に書換える(S105)。書換え後のカレント参照テーブルを図11(B)に示す。書き換えられた部分を破線で示す。
次に、コントローラ140は、メモリセルアレイ110の物理ブロックアドレスPBA(07h)のページ(03h)のステータスを「I」にプログラムする(S106)。先頭ページのスペア領域のステータスには既に「V」がプログラムされているため、この領域を使用することができない。このため、未使用であるページ(03h)のスペア領域が使用される。
次に、コントローラ140は、メモリセルアレイ110の物理ブロックアドレスPBA(07h)のステータスをカレント参照テーブルに反映させるべく、カレント参照テーブルの物理ブロックアドレスPBA(07h)のステータスを「I」に書換える(S107)。この様子を図11(B)に示す(破線部分)。
次に、コントローラ140は、IBTに物理ブロックアドレスPBA(07h)を書込む(S108)。IBTは、FIFOであるため、図13(B)に示すように、物理ブロックアドレスPBA(03h)が先頭のエントリ#0に移動し、物理ブロックアドレスPBA(07h)が最後のエントリ#1に追加される。
こうして、ホストデバイスからの消去命令に対応する消去動作を完了させた後、次に、コントローラ140は、論理ブロックアドレスLBA(01h)に割り当てるべき物理ブロックアドレスをFBTからサーチする。つまり、コントローラ140は、図8(A)に示すFBTの先頭のエントリ#0の物理ブロックアドレスPBA(08h)を読出す(S109)。
次に、コントローラ140は、FBTから読み出した物理ブロックアドレスPBA(08h)に従い、メモリセルアレイのPBA(08h)のページ(00h)のスペア領域の論理ブロックアドレスLBAに(001)をステータスに「V」をプログラムする(S110)。
次に、コントローラ140は、メモリセルアレイの物理ブロックアドレスPBA(08h)において、当該ブロックを使用中の有効なブロックに割り当てたことに伴い、カレント参照テーブルの内容を書き換える。つまり、カレント参照テーブルの物理ブロックアドレスPBA(08h)の論理ブロックアドレスLBAを(01h)に書換え、かつステータスを「E」から「V」に書換える(S111)。この様子を図11(B)に示す(破線部分)。
次に、コントローラ140は、図5(A)の変換テーブルの論理ブロックアドレスLBA(01h)が物理ブロックアドレス(08h)に対応するように、変換テーブルを書き換える(S112)。この様子を図11(A)に示す(破線部分)。
次に、コントローラ140は、FBTに物理ブロックアドレスを追加するため、カレント参照テーブルの中からプログラム/消去回数EWが小さくかつステータスが「E」であり、しかもFBIに登録されていない物理ブロックアドレスをサーチする(S113)。本例では、物理ブロックアドレスPBA(01h)がサーチされている。
次に、コントローラ140は、サーチされた物理ブロックアドレスPBA(01h)をFBTに追加すべく書込みをする(S114)。この様子を図13(A)に示す(破線部分)。こうして、論理ブロックアドレスPBA(01h)に、プログラム/消去回数が少ない新しい物理ブロックアドレス(08h)が割り当てられ、かつFBTにプログラム/消去回数が少ない物理ブロックアドレス(01h)が追加される。
本実施例によれば、消去動作時に上記のようなアルゴリズムによりブロックの消去やブロックの使用を行うことで、メモリセルアレイ内のブロックのプログラム/消去回数を平滑化し、ブロック間のウエアレベリングを行うことができる。その結果として、フラッシュメモリの利用効率の改善を図ることができる。
次に本発明の第2の実施例について説明する。上記の消去動作時のフローのステップS110において、コントローラ140がメモリセルアレイの物理ブロックアドレスPBA(08h)のページ(01h)のスペア領域に、論理ブロックアドレスLBA(01h)とステータス「V」をプログラムしたが、このプログラムにより同一ページに許容される最大プログラム回数が1回消費されてしまう。本実施例では、この無駄をなくすため、図8(C)に示すような、消去状態のブロックのステータスを管理するためのステータスブロックテーブルSBTを不揮発性メモリ144に格納し、これを活用する。
SBTは、図8(C)に示すように、カレント参照ブロックのステータスを抽出したものであり、各物理ブロックアドレスPBAのステータスが示されている。コントローラ140は、消去動作中にブロックのステータスが変化した場合、図13(C)に示すようにSBTを書換える(破線部分)。すなわち、物理ブロックアドレスPBA(01h)は、消去すべき無効なブロック「I」から消去済みのブロック「E」に書換えられ、物理ブロックアドレスPBA(07h)は、使用中の有効なブロック「V」から消去すべき無効なブロック「I」に書換えられ、物理ブロックアドレスPBA(08h)は、消去済みのブロック「E」から使用中の有効なブロック「V」に書換えられる。
コントローラ140は、ステータスが「E」から「V」に変更された物理ブロックアドレスPBA(08h)に関しては、消去動作中にプログラムを行わず、ホストデバイスから、物理ブロックアドレスPBA(08h)のページ(00h)へのプログラム命令を受け取ったとき、同時スペア領域に、論理ブロックアドレスLBA(01h)とステータス「V」をプログラムする。これにより、物理ブロックアドレスPBA(08h)のページ(00h)のプログラム回数の消費を1回減らす。このプログラムが完了するまでの間、不揮発性メモリ144のSBTを代用し、その後、STBを消去する。なお、ブロックのステータスを「V」に変更した場合には、論理ブロックアドレスが新たに対応付けられることになるため、SBTには、論理ブロックアドレスLBAも一緒に記憶され、論理ブロックアドレスLBAも同時にスペア領域にプログラムされる。
なお、上記実施例では、不揮発性メモリとしてRRAMを使用したが、NAND型メモリよりも高速にデータを書込むことができるものであれば、RRAM以外にもMRAM(磁性体メモリ)を使用することも可能である。
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100:フラッシュメモリ
110:メモリセルアレイ
120:入力バッファ
130:アドレスレジスタ
140:コントローラ
142:SRAM
144:RRAM
150:ワード線選択回路
160:ページバッファ/センス回路
170:列選択回路
200:レギュラー領域
210:スペア領域

Claims (8)

  1. 複数のブロックを含むNAND型のメモリセルアレイと、
    論理アドレス情報を物理アドレス情報に変換するための変換情報を保持する第1の保持手段と、
    消去すべきブロックを識別するための物理アドレス情報を保持する第2の保持手段と、
    プログラム/消去回数に基づき選択された消去済みの使用可能なブロックを識別するための物理アドレス情報を保持する第3の保持手段と、
    前記メモリセルアレイのブロックを消去する消去手段と、
    制御手段とを有し、
    前記制御手段は、
    外部から消去コマンドおよび論理アドレス情報を受け取ったとき、前記変換情報に基づき前記論理アドレスを第1の物理アドレス情報に変換し、
    前記第2の保持手段で保持された第2の物理アドレス情報が第1の物理アドレス情報に一致しない場合には、第2の物理アドレス情報に該当するブロックを前記消去手段に消去させ、
    さらに前記第3の保持手段で保持された第3の物理アドレス情報が前記論理アドレス情報に対応するように前記第1の保持手段の変換情報を更新する、半導体記憶装置。
  2. 前記制御手段は、第1の物理アドレス情報を前記第2の保持手段に追加し、第3の物理アドレス情報を前記第3の保持手段から削除する、請求項1に記載の半導体記憶装置。
  3. 半導体記憶装置はさらに、前記メモリセルアレイの選択ページにデータをプログラムするためのプログラム手段を含み、
    前記制御手段は、前記プログラム手段に、第3の物理アドレス情報に該当するブロックの選択されたページのスペア領域に前記論理アドレス情報と当該ブロックが使用中になったことを示すステータスとをプログラムさせる、請求項1に記載の半導体記憶装置。
  4. 前記制御手段は、前記プログラム手段に、第1の物理アドレス情報に該当するブロックの選択されたページのスペア領域に当該ブロックが消去すべきブロックになったことを示すステータスをプログラムさせる、請求項3に記載の半導体記憶装置。
  5. メモリセルアレイの決められた領域にブロックのステータスに関する情報がプログラムされ、
    前記制御手段は、前記ステータスに関する情報に基づき前記第1、第2、第3の保持手段で保持される情報を生成する、請求項1ないし4いずれか1つに記載の半導体記憶装置。
  6. 前記制御手段は、電源投入時に前記メモリセルアレイから前記ステータスに関する情報を読み出す、請求項5に記載の半導体記憶装置。
  7. 半導体記憶装置はさらに、消去動作時に各ブロックのステータスに関する情報を保持する第4の保持手段を含み、
    前記制御手段は、プログラム動作時に、前記第4の保持手段に保持されたステータスに関する情報をメモリセルアレイの該当するスペア領域にプログラムさせる、請求項1ないし6いずれか1つに記載の半導体記憶装置。
  8. 前記第4の保持手段は、不揮発性メモリにステータスに関する情報を保持する、請求項7に記載の半導体記憶装置。
JP2019060533A 2019-03-27 2019-03-27 半導体記憶装置 Active JP6727365B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019060533A JP6727365B1 (ja) 2019-03-27 2019-03-27 半導体記憶装置
TW108144904A TWI706249B (zh) 2019-03-27 2019-12-09 半導體儲存裝置
CN201911357506.7A CN111768808B (zh) 2019-03-27 2019-12-25 半导体存储装置
US16/742,872 US11221945B2 (en) 2019-03-27 2020-01-14 Semiconductor memory device
KR1020200013719A KR102294042B1 (ko) 2019-03-27 2020-02-05 반도체 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019060533A JP6727365B1 (ja) 2019-03-27 2019-03-27 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP6727365B1 true JP6727365B1 (ja) 2020-07-22
JP2020160871A JP2020160871A (ja) 2020-10-01

Family

ID=71663970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019060533A Active JP6727365B1 (ja) 2019-03-27 2019-03-27 半導体記憶装置

Country Status (5)

Country Link
US (1) US11221945B2 (ja)
JP (1) JP6727365B1 (ja)
KR (1) KR102294042B1 (ja)
CN (1) CN111768808B (ja)
TW (1) TWI706249B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416405B1 (en) 2020-02-07 2022-08-16 Marvell Asia Pte Ltd System and method for mapping memory addresses to locations in set-associative caches

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US6772274B1 (en) * 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
JP4058322B2 (ja) * 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
EP1713085A1 (en) * 2002-10-28 2006-10-18 SanDisk Corporation Automated wear leveling in non-volatile storage systems
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
EP2977906A1 (en) * 2004-04-28 2016-01-27 Panasonic Corporation Nonvolatile storage device and data write method
KR100671625B1 (ko) * 2004-12-28 2007-01-19 주식회사 하이닉스반도체 블록 사이즈를 변경할 수 있는 난드 플래시 메모리 장치
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
KR101297283B1 (ko) * 2006-07-10 2013-08-19 삼성전자주식회사 낸드형 셀 스트링을 가지는 비휘발성 기억 장치
JP2009175877A (ja) 2008-01-22 2009-08-06 Toshiba Corp 半導体メモリ
JP2009266258A (ja) * 2008-04-22 2009-11-12 Hitachi Ltd 半導体装置
US20110161560A1 (en) * 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
CN102841852B (zh) * 2011-06-24 2015-06-17 华为技术有限公司 磨损均衡方法、存储装置及信息系统
WO2013030866A1 (en) * 2011-08-29 2013-03-07 Hitachi, Ltd. Semiconductor storage device comprising electrically rewritable nonvolatile semiconductor memory
JP5619812B2 (ja) * 2012-04-24 2014-11-05 ウィンボンドエレクトロニクス コーポレーション 半導体記憶装置
KR102233808B1 (ko) * 2014-03-14 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 테이블 관리 방법
JP5734492B1 (ja) * 2014-05-08 2015-06-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10365835B2 (en) * 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
KR101633442B1 (ko) * 2014-10-10 2016-06-24 윈본드 일렉트로닉스 코포레이션 반도체 메모리 장치, 반도체 시스템 및 독출 방법
US9431116B2 (en) 2014-11-19 2016-08-30 Sandisk Technologies Llc Configuration parameter management using a configuration tool
KR102403202B1 (ko) * 2015-03-13 2022-05-30 삼성전자주식회사 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법
TWI537964B (zh) 2015-04-20 2016-06-11 華邦電子股份有限公司 反及閘快閃記憶體和其操作方法
CN106297881B (zh) 2015-05-27 2020-09-11 旺宏电子股份有限公司 非挥发性存储器的健康管理
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
KR102294042B1 (ko) 2021-08-26
TWI706249B (zh) 2020-10-01
CN111768808B (zh) 2022-06-07
US20200310960A1 (en) 2020-10-01
KR20200116019A (ko) 2020-10-08
JP2020160871A (ja) 2020-10-01
CN111768808A (zh) 2020-10-13
TW202036302A (zh) 2020-10-01
US11221945B2 (en) 2022-01-11

Similar Documents

Publication Publication Date Title
US11150808B2 (en) Flash memory system
JP4746598B2 (ja) 半導体記憶装置
US7039775B2 (en) Non-volatile storage device and rewrite control method thereof
TWI665682B (zh) Semiconductor memory device and memory system
US11262939B2 (en) Memory system, memory controller, and operation method
US11061616B2 (en) Memory device and method of operating the same
KR20220055717A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
JP6727365B1 (ja) 半導体記憶装置
KR20210157544A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR102351933B1 (ko) 반도체 기억장치
KR20220118004A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210143387A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20210071314A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
JP4661748B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KR20210028335A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11709610B2 (en) Memory system, memory controller and operating method
KR20220029903A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
JP3908238B2 (ja) 不揮発性半導体メモリ装置のデータ書き込み方法
KR20220022139A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20210132806A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
JP4050250B2 (ja) 不揮発性半導体メモリ装置
KR20210079556A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190327

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: 20200624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200630

R150 Certificate of patent or registration of utility model

Ref document number: 6727365

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250