TWI684985B - 記憶體裝置與其編程方法 - Google Patents

記憶體裝置與其編程方法 Download PDF

Info

Publication number
TWI684985B
TWI684985B TW108116471A TW108116471A TWI684985B TW I684985 B TWI684985 B TW I684985B TW 108116471 A TW108116471 A TW 108116471A TW 108116471 A TW108116471 A TW 108116471A TW I684985 B TWI684985 B TW I684985B
Authority
TW
Taiwan
Prior art keywords
memory
specific
block
memory block
blocks
Prior art date
Application number
TW108116471A
Other languages
English (en)
Other versions
TW202032567A (zh
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 旺宏電子股份有限公司
Application granted granted Critical
Publication of TWI684985B publication Critical patent/TWI684985B/zh
Publication of TW202032567A publication Critical patent/TW202032567A/zh

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/12Programming voltage switching 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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
    • G11C11/5635Erasing 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/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/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
    • 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/24Bit-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/26Sensing or reading circuits; Data output 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/32Timing 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/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
    • 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
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
    • G11C29/789Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes using non-volatile cells or latches
    • 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
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

一種記憶體裝置(memory device)包括記憶胞陣列(memory cell array)和記憶體控制器(memory controller)。記憶胞陣列包括數個記憶區塊(memory blocks)。各該些記憶區塊包括數條字元線(word lines)。數個記憶塊(memory chunks)耦接到該些字元線之至少其中之一。記憶體控制器架構成透過執行塊操作(chunk operation)將資料編程至數個記憶塊的特定記憶塊(particular memory chunk),該塊操作包括從數條字元線中選擇特定字元線(particular word line),從耦接到特定字元線的數個記憶塊中選擇特定記憶塊,並將編程電壓施加到對應於特定記憶塊的特定記憶區塊(particular memory block),以將資料編程到特定記憶塊。

Description

記憶體裝置與其編程方法
本案是有關於一種記憶體裝置(memory device),特別是涉及將資料編程到記憶體裝置中的記憶胞(memory cell)。
在編程週期(programming cycle)期間,藉由施加一組電壓來編程記憶胞。特別是,為將資料編程到高密度記憶體裝置(high-density memory device)(例如高密度NAND快閃記憶體裝置(high-density NAND flash memory device)或NOR快閃記憶體裝置(NOR flash memory device)),在適當週期(suitable periods)的不同時序(timings)中施加不同位準(levels)的電壓至記憶體裝置。
本案描述了將資料編程(program)到記憶體裝置(memory device)中的記憶胞(memory cell)之技術。特別是在記憶體控制器(memory controller)將多級資料(multi-level data)編程到記憶區塊(memory blocks)中的數個記憶塊(memory chunks)的情況下,記憶塊之間會發生 干擾(disturbance)。此外,在記憶區塊具有磨損(wear-out)或損壞(broken)狀態的情況下,記憶區塊更容易有干擾問題。如果記憶塊之間存在干擾,則記憶體控制器無法正確地將資料編程到特定記憶塊(particular memory chunk)。因此,干擾會導致記憶體裝置中的可靠性(reliability)問題。此外,在記憶體裝置需要高可靠性(high reliability)的情況下(例如記憶體裝置用於通信設備),應該避免有干擾問題,以確保一定程度的可靠性。
本案技術可以減少或基本上消除發生於記憶體裝置中的干擾問題。特別是,記憶體控制器獲得關於記憶區塊錯誤率的資料,並確定記憶體控制器執行哪種編程操作。例如在記憶區塊具有高錯誤率的情況下,記憶體控制器可以執行單脈衝編程操作(one-shot programming operations),以避免干擾。另一方面,在記憶區塊具有低錯誤率的情況下,記憶體控制器可以執行多級編程操作(multi-level programming operations),以提高編程操作的效率。因此,該技術可在不降低記憶體裝置效率的前提下來提高記憶體裝置的可靠性。
一般來說,本說明書所描述技術可以實施於記憶體裝置,該記憶體裝置包含記憶胞陣列(memory cell array)和記憶體控制器。記憶胞陣列包括複數個記憶區塊。各記憶區塊包括數條字元線(word lines)。數個記憶塊耦接到該些字元線之至少其中之一。記憶體控制器架構成透過執行塊操作(chunk operation)將資料編程至數個記憶塊的特定記憶塊,該塊操作包括從數條字元線中選擇特定字元線(particular word line),從耦接到特定字元線的數個記憶塊中選擇特定記憶 塊,並將編程電壓施加到對應於特定記憶塊的特定記憶區塊(particular memory block),以將資料編程到特定記憶塊。
上述和其他實施方式可以各自選擇性地(optionally)單獨(alone)或組合(combination)包括以下技術特徵中的一或多個。特別是,亦可有一種實施方式包括以下所有特徵的組合。記憶體控制器可以架構成依序(sequentially)從數條字元線中選擇特定字元線。記憶體控制器可架構成依序從數個記憶塊中選擇特定記憶塊。記憶體控制器可架構成隨機地(randomly)從數條字元線中選擇特定字元線。記憶體控制器可架構成隨機地從數個記憶塊中選擇特定記憶塊。記憶體控制器可架構成透過提供12V和26V之間的編程電壓,以對特定記憶區塊執行塊操作。
記憶體裝置可以包括偵錯電路(error detection circuit),該偵錯電路架構成偵測發生於特定記憶區塊的一或多個錯誤,並產生錯誤率。當錯誤率滿足閾值(threshold value)時,記憶體控制器可以架構成執行塊操作。
記憶體裝置可包括複數條位元線(bit lines),各該些位元線分別耦接到數個記憶塊的一或多個記憶塊。在塊操作的單一週期(single cycle)期間,記憶體控制器可以架構成執行塊操作至該些位元線的一位元線中的單一記憶塊(single memory chunk)。
本說明書所描述技術可以實施於記憶體裝置,該記憶體裝置包括記憶胞陣列、偵錯電路和記憶體控制器。記憶胞陣列包括複數個記憶區塊。各該些記憶區塊包括數條字元線。數個記憶塊耦接到該些字元線之至少其中之一。偵錯電路架構成偵測發生於記憶區塊的一或多個錯 誤,並產生錯誤率。記憶體控制器架構成透過包括從偵錯電路所獲得的錯誤率之操作執行來將資料編程到數個記憶塊的特定記憶塊。當錯誤率滿足閾值時,記憶體控制器決定特定記憶區塊的狀態。根據特定記憶區塊的狀態,記憶體控制器從第一編程操作(first programming operation)和第二編程操作(second programming operation)之間決定執行哪種編程操作,以及對特定記憶區塊執行已決定的編程操作。
上述和其他實施方式可以各自選擇性地單獨或組合包括以下特徵中的一個或多個。特別是一種實施方式包括以下所有特徵的組合。第一編程操作可以包括從複數條字元線中選擇特定字元線,從耦接到特定字元線的數個記憶塊中選擇特定記憶塊,並將編程電壓施加到特定記憶區塊,以將資料編程到特定記憶塊。第二編程操作可以包括選擇特定記憶區塊中的一或多個第一記憶塊、施加第一編程電壓到特定記憶區塊來同時將資料編程到一或多個第一記憶塊,選擇特定記憶區塊中的一或多個第二記憶塊,以及將施加第二編程電壓到特定記憶區塊來同時將資料編程到一或多個第二記憶塊。
本說明書所描述技術可以用一方法來實施,在編程週期(programming cycle)期間,由記憶體控制器來編程一或多個記憶體裝置的記憶胞。該方法包括由記憶體控制器從記憶體裝置的記憶胞陣列中的複數個記憶區塊的特定記憶區塊所包括的數條字元線中選擇特定字元線,其中數個記憶塊耦接到該些字元線之至少其中之一。記憶體控制器從耦接到特定字元線的數個記憶塊中選擇特定記憶塊。記憶體控制器施加編程電壓至對應於特定記憶塊的特定記憶區塊,以將資料編程到特定記憶塊。
上述和其他實施方式可以各自單獨或組合地選擇包括以下特徵中的一個或多個。特別是一種實施方式包括以下所有特徵的組合。選擇特定字元線可以包括依序從數條字元線中選擇特定字元線。選擇特定記憶塊可以包括依序從數個記憶塊中選擇特定記憶塊。選擇特定字元線可以包括隨機地從數條字元線中選擇特定字元線。選擇特定記憶塊可以包括隨機地從數個記憶塊中選擇特定記憶塊。施加的編程電壓可以包括提供12V和26V之間的編程電壓。
該方法可以包括用於記憶體裝置中的偵錯電路來偵測發生於特定記憶區塊的一或多個錯誤。回應於所偵測的一或多個錯誤,偵錯電路可以產生錯誤率。在錯誤率滿足閾值時,記憶體控制器可以施加編程電壓至對應於特定記憶塊的特定記憶區塊,以將資料編程到特定記憶塊。
在編程週期期間,從數個記憶塊中所選擇的特定記憶塊可以包括在記憶體裝置的數條位元線的位元線中所選擇的單一記憶塊。各該些位元線可以耦接到數個記憶塊的一或多個記憶塊。
所揭露的一或多個實施方式之細節將搭配底下所附圖式來進行說明。藉由說明書、圖式和申請專利範圍,本發明的其他特徵、方面和優點將變得顯而易見。
100、200‧‧‧記憶體裝置
102‧‧‧記憶體控制器
104、204‧‧‧記憶胞陣列
106‧‧‧偵錯電路
108‧‧‧儲存器
310、320、330‧‧‧記憶塊
311、321‧‧‧第一組記憶胞
313、323‧‧‧第二組記憶胞
325‧‧‧第三組記憶胞
331、333、335、337、339‧‧‧屏蔽區域
332、334、336‧‧‧記憶胞
BL0~BL63、BLN‧‧‧位元線
MC0~MC63、MC11~MCML‧‧‧記憶塊
WL0~WL7、WLM‧‧‧字元線
MB‧‧‧記憶區塊
VverifyA、VverifyB、VverifyC‧‧‧驗證電壓
VP1~VPn‧‧‧編程電壓
Vbypass‧‧‧讀取通過電壓
第1圖示例說明記憶體裝置。
第2圖繪示記憶體裝置中的記憶胞陣列。
第3A圖、第3B圖、第3C圖繪示記憶體裝置的示例記憶塊。
第4A圖、第4B圖繪示對字元線的記憶塊執行編程操作的示例時序圖。
第5A圖、第5B圖繪示對記憶區塊的字元線執行編程操作的示例時序圖。
第6圖繪示用於記憶區塊中的特定記憶塊之單脈衝編程操作之示例圖。
第7A圖、第7B圖繪示對特定記憶區塊執行編程操作的示例圖。
各圖式中相同的參考編號和名稱表示相同的元件。 理應理解在圖中所示的各種示例性實施方式僅是說明性表示,並不需要按比例繪製。
可以對記憶體裝置(memory device)中的記憶胞(memory cell)進行編程(programmed)(例如於編程週期(programming cycle)期間,在適當的時間週期(time period)的特定時間(particular timing)中可藉由施加適當電壓至記憶胞來寫入(written)、讀取(read)或擦除(erased)來自記憶胞的資料。
第1圖示例說明記憶體裝置。記憶體裝置100包括記憶體控制器(memory controller)102和記憶胞陣列(memory cell array)104。記憶體控制器102包括硬體(hardware)和軟體(software)邏輯(logic),以執行各種操作(operations),其包括編程記憶胞陣列104,例如對記憶胞陣列104的寫入、讀取或擦除。在一些實施方式中,記憶體控制器102包括一或多個處理器 (processors),以編程記憶胞陣列104中的記憶胞。例如,記憶體控制器102可以執行操作,以編程記憶胞陣列104。透過記憶體控制器102可將操作儲存於儲存器(storage)。在一些實施方式中,操作可儲存於快閃記憶體(flash memory)或硬碟(hard disk)。在一些實施方式中,操作可儲存於儲存器(例如儲存器108)。在一些實施方式中,操作可儲存於記憶胞陣列104的專用部分,該專用部分不同於待編程的記憶胞。
在一些實施方式中,記憶體裝置100未包括記憶體控制器102。在這些實施方式中,記憶體裝置100可與記憶體裝置100外部的裝置來進行通信,並且外部裝置(external device)控制關於記憶胞陣列104所執行的各種操作。例如,外部設備可以包括一或多個計算機(computers),以對記憶胞陣列104執行編程操作。在一些實施方式中,控制信號可以透過適當的輸入/輸出埠(input/output ports)來傳輸至記憶體設備100和外部設備之間。在一些其它實施方式中,記憶體裝置100可以包括記憶體控制器102,並且該記憶體裝置100與外部設備進行通信,以對記憶胞陣列104執行操作。例如,可以由記憶體控制器102來控制一些操作,並且可以由外部設備來控制其他操作。
記憶胞陣列104包括一或多個記憶區塊。在一些實施方式中,各該些記憶區塊可包括複數條字元線。複數個記憶塊(memory chunks)可耦接到各字元線。記憶塊可包括複數個記憶胞。在一些實施方式中,特定數量的記憶胞組成一個記憶塊。例如,一個記憶塊可以包括16、32或64個記憶胞。搭配第3A圖和第3B圖將更詳細說明記憶塊。
記憶胞陣列104中的記憶胞可以是單級記憶胞(single-level cells)或多級記憶胞(multi-level cells)。在一些實施方式中,記憶胞陣列104包括非揮發性記憶胞(nonvolatile memory cells),例如快閃記憶胞(flash memory cells)。然而,記憶胞陣列104可包括任何類型的記憶胞,但不限於2D NAND快閃記憶胞(2D NAND flash memory cells)、包括U形串列(U-shaped strings)的3D NAND快閃記憶胞(3D NAND flash memory cells)、包括非U形串列的3D NAND快閃記憶胞和NOR快閃記憶胞(NOR flash memory cells)。
記憶體裝置100還包括偵錯電路(error detection circuit)106。偵錯電路106分別偵測記憶胞陣列104中的各特定記憶區塊之錯誤。例如,偵錯電路106可以是錯誤位元數(error bit count,EBC)電路,該錯誤位元數電路計算特定時間段內特定記憶區塊中所發生的錯誤數量。所計算出的錯誤數量可以報告給記憶體控制器102以使該記憶體控制器102可以根據錯誤數量來決定記憶區塊的狀態。例如,在所計算出的錯誤數量未滿足(例如小於)第一閾值(a first threshold)的情況下,記憶體控制器102可以決定記憶區塊的狀態為良好。作為另一示例,在所計算出的錯誤數量滿足(例如大於)第一閾值但未滿足(例如小於)第二閾值(a second threshold)的情況下,記憶體控制器102可以決定記憶區塊的狀態為已磨損(wear-out)。作為另一示例,在所計算出的錯誤數量滿足(例如大於)第二閾值的情況下,記憶體控制器102可以決定記憶區塊的狀態為破損(broken)。並非報告所計算出的錯誤數量,偵錯電路106可以報告記憶區塊的錯誤率(error rate)(例如每單位時間(per unit time)的錯誤數量)。記憶體控制器102可以比較錯誤率與閾值錯誤率(a threshold error rate),以決定記憶區塊的狀態。
在一些實施方式中,記憶體控制器102可根據記憶胞(cell)狀態來執行不同的編程操作。例如,在記憶胞狀態為良好情況下,記憶體控制器102可以對記憶區塊執行多級編程操作。作為另一示例,在記憶胞狀態為已磨損或損壞的情況下,記憶體控制器102可以對記憶區塊執行單脈衝(one-shot)編程操作,而非多級編程操作。
在一些實施方式中,即使在記憶胞狀態良好的情況下,記憶體控制器102可對記憶區塊執行單脈衝編程操作。例如,在記憶體裝置100需要高可靠性(high reliability)的情況下,記憶體控制器102可以對記憶區塊執行一次通過的編程操作,而不是多級編程操作。搭配第7A圖和第7B圖將更詳細說明多級編程操作和一次通過的編程操作。
在一些實施中,記憶體裝置100還可以包括儲存器108,以用於儲存在編程記憶胞陣列104之記憶胞所需之資訊。例如,該資訊可包括執行編程操作的電壓資料,用以定義在一個或多個時間週期內對記憶胞陣列104施加特定電壓位準(particular voltage levels)的時序資料(timing data)。對記憶胞陣列施加不同電壓位準之時序資料可能有多種格式(formats),例如特定電壓位準的開始時間(start timing)和結束時間(end timing),或者是特定電壓位準的開始時間和持續時間(durations)。儲存器108可以是任何合適類型的儲存器。例如,儲存器108可以是靜態隨機存取記憶體(static random access memory,SRAM)、NAND快閃記憶體(NAND flash memory)或一組暫存器(registers)。在一些實施方式中,儲存器108可以是暫存器。在一些實施方式中,儲存器108可實施為記憶胞陣列104的一部分,其可不同於待編程的記憶胞。
第2圖繪示記憶體裝置200中的記憶胞陣列204。例如,記憶胞陣列204可以是第1圖的記憶胞陣列,以及記憶體裝置200可以是第1圖的記憶體裝置100。為方便起見,第2圖所繪示的記憶體裝置200僅包括記憶胞陣列204。然而,如同第2圖的記憶體裝置100,記憶體裝置200可以包括任何合適的元件,像是如第1圖所述的記憶體控制器和儲存器。
記憶胞陣列204包括複數個記憶區塊。例如,記憶胞陣列204可包括特定數量的記憶區塊MB0-MBX-1(例如X={2,3,4,...})。記憶體裝置200的記憶體控制器可將資料編程到記憶區塊MB0-MBX-1中的一或多個記憶胞。在一些實施方式中,記憶區塊MB0-MBX-1可以具有相同結構。在一些實施方式中,記憶區塊MB0-MBX-1的一些記憶區塊可以具有相同結構,並且記憶區塊MB0-MBX-1的其他記憶區塊可以具有不同結構。
記憶區塊MB0-MBX的各記憶區塊包括複數條字元線。例如,記憶區塊MB1可以包括字元線WL0-WLY-1(例如Y={2,3,4,...})。在一些實施方式中,記憶區塊MB0-MBX-1的其他記憶區塊也可以包括相同數量的字元線。在一些實施方式中,記憶區塊MB0-MBX-1的其它記憶區塊可包括不同數目的字元線。例如,在記憶區塊MB1包括128條字元線的情況下,記憶區塊MB0可以包括64條字元線。
字元線WL0-WLY-1的各字元線包括複數個記憶塊。例如,字元線WL1可以包括記憶塊MC0-MCZ-1(例如Z={2,3,4,...})。在一些實施方式中,字元線WL0-WLY-1的其它字元線也還可包括相同數目的字元線。例如,各該些字元線WL0-WLY-1可以包括128個記憶塊。在一些實施方式中,字元線WL0-WLY-1的其它字元線可包括不同數目的字元線。 例如,在字元線WL1包括128個記憶塊的情況下,字元線WL0可以包括64個記憶塊。
第3A圖至第3C圖繪示記憶體裝置的示例記憶塊。記憶塊包括複數個記憶胞。在一些實施方式中,記憶塊可以包括一組記憶胞,其用於儲存資料。在一些實施方式中,記憶塊可以包括多組記憶胞,分別用於儲存資料或者當成冗餘(redundancy)。在一些實施方式中,記憶塊還可包括一或多個屏蔽區域(shielding areas)以保護用於儲存資料的記憶胞。
第3A圖繪示記憶塊的第一示例。例如,第3A圖的記憶塊310可以是第2圖的記憶塊MC0-MCZ-1之一記憶塊。在此示例中,記憶塊310包括用於儲存資料的第一組記憶胞311以及當成冗餘(例如錯誤校正碼(error-correction code,ECC))的第二組記憶胞313。也就是說,記憶體控制器可以將資料編程到第一組記憶胞311,並且將ECC儲存第二組記憶胞313內,ECC用於偵測或校正內部損壞資料(internal data corruption)。在一些實施方式中,第一組記憶胞311或第二組記憶胞313可包括單一記憶胞(single memory cell)。
第3B圖繪示記憶塊的第二示例。例如,第3B圖的記憶塊320可以是第2圖的記憶塊MC0-MCZ-1之一記憶塊。在此示例中,記憶塊320包括用於儲存第一資料的第一組記憶胞321、用於儲存第二資料的第二組記憶胞323以及當成冗餘(例如奇偶校驗(parity))的第三組記憶胞325。由於記憶塊320包括兩組記憶胞321和323,記憶體控制器可以將不同資料(例如資料1或資料2)分別編程到第一組記憶胞321或第二組記憶胞323。 此外,記憶體控制器可以利用第三組記憶胞325作為奇偶校驗。在記憶體控制器無法將資料編程到第一組記憶胞321或第二組記憶胞323的情況下,記憶體控制器可以利用儲存於第三組記憶胞325的資料來創建替代儲存區域(replacement sterage area)。在一些實施方式中,第一組記憶胞321、第二組記憶胞323或第三組記憶胞325可包括單一記憶胞。
第3C圖繪示記憶塊的第三示例。例如,第3C圖的記憶塊330可以是第2圖的記憶塊MC0-MCZ-1之一記憶塊。在該示例中,記憶塊330包括分別用於儲存資料(例如一位元資料)的複數個記憶胞332、334和336,以及多個屏蔽區域331、333、335、337。該些記憶胞的各記憶胞由各自的屏蔽區域來保護。例如,記憶胞332被屏蔽區域331和333所保護,記憶胞334被屏蔽區域333和335所保護,並且記憶胞336被屏蔽區域337和339所保護。在一些實施方式中,記憶塊的記憶胞(例如記憶胞332、334和336)分別耦接到位元線。關於第3C圖,記憶塊330包括n(n=2,3,4,...)個記憶胞,其分別耦接到n條位元線。例如,當n=8,則記憶塊330包括分別耦接到8條位元線的8個記憶胞。在一些實施方式中,記憶塊中的記憶胞數量與記憶區塊中的字元線數目相同。在這種情況中,例如在一個記憶塊包括8條字元線的情況下,記憶區塊的記憶塊包括分別耦接到8條位元線的8個記憶胞。
在一些實施方式中,當記憶體控制器編程記憶塊330時,記憶體控制器在一個編程週期期間僅編程記憶塊330中的一個記憶胞。例如,在一個編程週期中,記憶體控制器可以僅編程記憶胞332,而在另一編程週期中編程另一個記憶胞334。透過在一個編程週期中編程一個記憶胞,可以 防止耦接到相同記憶塊的相鄰位元線之間所發生的錯誤。
當記憶體控制器對除了記憶胞332、334和336之外的記憶胞執行讀取操作(reading operations)或編程操作時,屏蔽區域331、333、335、337和339可以保護在記憶胞332、334和336中所編程的資料。雖然第3C圖繪示由屏蔽區域所保護的一個記憶胞,由屏蔽區域所保護的記憶胞數量不限於特定數量。在一些實施方式中,可以由屏蔽區域保護多個記憶胞。例如,不只保護記憶胞332,屏蔽區域331和333可以保護兩個或更多記憶胞。
第4A圖和第4B圖繪示對字元線中的記憶塊執行編程操作的示例時序(timing)圖。例如,繪示於第4A圖和第4B圖的記憶區塊MB可以是繪示於第2圖的記憶區塊MB1。為方便起見,繪示於第4A圖和第4B圖的記憶區塊MB包括8條字元線和64個記憶塊。然而,字元線和記憶塊的數量不限於特定數量,並且可以是任何適當的數量。在此示例中,記憶區塊MB包括複數條字元線WL0-WL7。該些字元線WL0-WL7的各字元線包括複數個記憶塊MC0-MCM63。字元線WL0-WL7中的記憶塊MC0耦接到位元線BL0,字元線WL0-WL7中的記憶塊MC1耦接到位元線BL1,字元線WL0-WL7中的記憶塊MC2是耦接到位元線BL2,字元線WL0-WL7中的記憶塊MC3耦接到位元線BL3,字元線WL0-WL7中的記憶塊MC4耦接到位元線BL4,記憶塊MC5in字元線WL0-WL7耦接到位元線BL5,字元線WL0-WL7中的記憶塊MC6耦接到位元線BL6,字元線WL0-WL7中的記憶塊MC7耦接到位元線BL7,...,以及字元線WL0-WL7中的記憶塊MC63耦接到位元線BL63。雖然所述的 記憶塊耦接到一條位元線,但耦接到記憶塊的位元線數量不限於一條。任意適當數量的位元線可以耦接到記憶塊。例如,8條位元線可以耦接到記憶塊MC0。
第4A圖繪示對字元線中的記憶塊執行編程操作的第一示例時序圖。在此示例中,記憶體控制器(例如第1圖中的記憶體控制器102)可以特定順序(particular order)將資料編程到記憶塊,例如,在連續週期中,依序(sequential order)來編程字元線中的相鄰記憶塊(adjacent memory chunks)。
當記憶體控制器將資料編程到記憶區塊MB中的記憶塊時,在一個週期期間,記憶體控制器將資料編程到一條位元線中的單一記憶塊(single memory chunk),使得干擾(disturbance)不會傳播到位元線。例如,在週期T期間,記憶體控制器可以同時將資料編程到字元線WL0中的記憶塊MC0、字元線WL1中的記憶塊MC1、字元線WL2中的記憶塊MC2、字元線WL3中的記憶塊MC3、字元線WL4中的記憶塊MC4、字元線WL5中的記憶塊MC5、字元線WL6中的記憶塊MC6以及字元線WL7中的記憶塊MC7。
在下一個週期T+1期間,記憶體控制器依序地編程記憶塊(例如在週期T期間,將資料編程到鄰近於立即編程該些記憶塊的記憶塊)。例如,在週期T+1期間,記憶體控制器可以將資料編程到字元線WL0中的記憶塊MC1、字元線WL1中的記憶塊MC2、字元線WL2中的記憶塊MC3、字元線WL3中的記憶塊MC4、字元線WL4中的記憶塊MC5,字元線WL5中的記憶塊MC6,字元線WL6中的記憶塊MC7以及和字元線WL7 中的記憶塊MC8。在一些實施方式中,可以使用不同順序將資料編程到記憶塊。在一些實施方式中,記憶體控制器可以在多個週期期間編程字元線中的所有記憶塊。例如,在64個週期期間,記憶體控制器可以將資料編程到字元線中的64個記憶塊。
第4B圖繪示對字元線中的記憶塊執行編程操作的第二示例時序圖。在此該示例中,記憶體控制器(例如第1圖的記憶體控制器102)能以隨機順序(random order)將資料編程到各字元線中的記憶塊。在一些實施方式中,雖然以隨機順序來執行編程操作,但記憶體控制器不會對在一先前編程週期(previous programming cycles)內已編程記憶塊進行編程。
當記憶體控制器將資料編程到記憶區塊中的記憶塊時,記憶體控制器在一個週期期間將資料編程到一條位元線中的單一記憶塊,使得干擾不會傳播到位元線。例如,在週期T期間,記憶體控制器可以將資料編程到字元線WL0中的記憶塊MC3、字元線WL1中的記憶塊MC0、字元線WL2中的記憶塊MC5、字元線WL3中的記憶塊MC1、字元線WL4中的記憶塊MC6、字元線WL5中的記憶塊MC4、字元線WL6中的記憶塊MC2、字元線WL7中的記憶塊MC7。
在下一個週期T+1期間,記憶體控制器可以將資料編程至週期T期間未被編程的記憶塊。此外,記憶體控制器在一個週期期間將資料編程到一條位元線中的單一記憶塊。例如,在週期T+1期間,記憶體控制器可以將資料編程到字元線WL0中的記憶塊MC0、字元線WL1中的記憶塊MC2、字元線WL2中的記憶塊MC6、字元線WL3中的記憶塊MC5、 字元線WL4中的記憶塊MC4、字元線WL5中的記憶塊MC7、字元線WL6中的記憶塊MC1、字元線WL7中的記憶塊MC3。在一些實施方式中,記憶體控制器可以在多個週期期間對字元線中的所有記憶塊進行編程。例如,在64個週期期間,記憶體控制器可以將資料編程到字元線中的64個記憶塊。
第5A圖、第5B圖繪示對記憶區塊的字元線執行編程操作的示例時序圖。例如,繪示於第4A圖和第4B圖的記憶區塊MB可以是繪示於第2圖的記憶區塊MB1。為方便起見,繪示於第4A圖和第4B圖的記憶區塊MB包括8條字元線。然而,字元線數量不限於特定數量,並且可以是任何適當的數量。
第5A圖繪示對記憶區塊MB的字元線執行編程操作的第一示例時序圖。記憶區塊MB包括複數條字元線WL0-WL7。在此示例中,記憶體控制器(例如第1圖的記憶體控制器102)以特定順序(例如依照字元線的順序)來選擇字元線,以編程字元線的記憶塊。
如第5A圖所示,在週期T期間,記憶體控制器選擇字元線WL1來將資料編程到字元線WL1中的一個或多個記憶塊。在下一個週期T+1期間,記憶體控制器依序地選擇字元線(例如字元線WL1旁邊的字元線WL2),以將資料編程到字元線WL2中的記憶塊。
然而,在一些實施方式中,使用不同順序來選擇字元線。例如,記憶體控制器可以在週期T期間選擇字元線WL1,在週期T+1期間選擇字元線WL3,並且在週期T+2期間選擇字元線WL5。在一些實施方式中,記憶體控制器架構成一組週期數量(a set number of cycles)內選擇所有 字元線。例如,在各週期內,記憶體控制器可以選擇先前未選擇的字元線,直到選擇所有字元線。此時,該過程可以重置。例如,在8個週期期間,記憶體控制器可以選擇8條字元線。
在一些實施方式中,如參照第5B圖的描述,記憶體控制器(例如第1圖的記憶體控制器102)以隨機順序來選擇字元線,以編程記憶塊。在這種情況下,儘管以隨機順序來執行編程操作,但記憶體控制器不會對在一先前編程週期內已編程的字元線進行編程。
如第5B圖所示,在週期T期間,記憶體控制器選擇字元線WL1,以將資料編程到字元線WL1中的一或多個記憶塊。在下一個週期T+1期間,記憶體控制器以隨機順序來選擇另一條字元線(例如在週期T期間未選擇的字元線WL5),以將資料編程到字元線WL5中的記憶塊。在週期T+2期間,記憶體控制器尚可隨機地選擇另一條字元線(例如在先前週期T和T+1期間未選擇的字元線WL3),以將資料編程到字元線WL3中的記憶塊。在一些實施方式中,記憶體控制器架構成數個週期內選擇所有字元線。例如,在各週期中,記憶體控制器可以選擇先前未選擇的字元線,直到已經選擇了所有字元線。此時,該過程可以重置。例如,記憶體控制器可以在8個週期期間選擇8條字元線。
第6圖繪示用於記憶區塊中的特定記憶塊(particular memory chunk)之單脈衝編程操作之示例圖。第6圖的記憶區塊MB可以是第2圖的記憶區塊MB1。記憶區塊MB包括複數條字元線WL1、WL2、...、WLM(M=2,3,4,...)。各這些字元線包括複數個記憶塊。例如,字元線WL2包括L(L=2,3,4,...)個記憶塊MC21、MC22、...MC2L。在 一些實施方式中,記憶塊耦接到特定數目的位元線。例如,各記憶塊MC12、MC22、...MCM2中可以耦接到N(N=2,3,4,...)條位元線BL1-BLN。在一些實施方式中,該些記憶塊的各記憶塊MC21、MC22、...MC2L耦接到相同數目的位元線。在其他實施方式中,該些記憶塊的不同記憶塊MC21、MC22、...MC2L耦接到不同數量的位元線。
在該示例中,偵錯電路(例如第1圖1的偵錯電路106)偵測記憶區塊MB的錯誤率,並將錯誤率報告至記憶體控制器(例如第1圖的記憶體控制器102)。在一些實施方式中,偵錯電路106可以報告記憶區塊的錯誤率(例如每單位時間的錯誤數量),而非報告所計算出的錯誤數量。根據記憶區塊MB的錯誤率,記憶體控制器決定記憶區塊MB的狀態(例如記憶體控制器102可以將錯誤率與閾值錯誤率進行比較,以決定記憶區塊的狀態)。
一旦記憶體控制器決定記憶區塊MB的狀態,記憶體控制器將可以決定執行哪種編程操作來將資料編程到記憶區塊MB。例如,在記憶區塊MB的狀態為磨損或不良的情況下,記憶體控制器可以決定執行一次通過的編程操作,以將資料編程到記憶區塊。在其它情況中,在記憶區塊MB狀態良好的情況下,記憶體控制器可以決確定執行多級編程操作,以將資料編程到記憶區塊MB。在一些實施方式中,即使在記憶區塊MB狀態良好的情況下,若記憶體裝置需要高可靠性,則記憶體控制器可以決定執行一次通過的編程操作,以將資料編程到記憶區塊MB。在一些實施方式中,單脈衝編程操作也稱為塊操作,其中,藉由施加編程電壓至包含特定記憶塊的記憶區塊,耦接到字元線的數個記憶塊之一特定記憶塊係在編程周期 內被編程。
在記憶體控制器決定要執行塊操作或一次通過的編程操作的情況中,記憶體控制器使用參考第5A圖與第5B圖所述的方法來選擇記憶區塊MB中的特定字元線,以及使用關於第4A圖與第4B圖所述的方法來選擇已選定字元線(selected word line)中的特定記憶塊。例如,在一些實施方式中,記憶體控制器以選定字元線的順序來選擇各條字元線,如第5A圖所述。在其他實施方式中,記憶體控制器以選定字元線的隨機順序來選擇各條字元線,如第5B圖所述。在任一情況下,在一些實施中,於連續編程週期中,記憶體控制器依序對相關於選定字元線的該些記憶塊進行編程(如第4A圖所述)。然而,在其他實施方式中,於連續編程週期中,記憶體控制器以隨機順序將相關於選定字元線的該些記憶塊進行編程(如第4B圖所述)。
在一些實施方式中,在單脈衝編程操作中,於一周期內,記憶體控制器對耦接到數條位元線的數個記憶塊中之一記憶塊進行編程。例如,如第6圖所示,多個記憶塊MC12、MC22、...MCM2耦接到一組位元線BL1,...,BLN。在此示例中,在執行塊操作時,記憶體控制器在特定編程週期中將資料編程到耦接到位元線BL1,...,BLN的記憶塊MC12、MC22、...MCM2之一個。藉由在一個週期內,編程單一記憶塊,可以顯著減少或消除耦接到相同位元線的多個記憶塊之間所發生的干擾。這提高記憶體裝置的可靠性(reliability)。
在一些實施方式中,記憶體控制器根據特定規則(rules)來執行塊操作。例如,記憶體控制器可以根據以下規則來執行塊操作: 規則1:0
Figure 108116471-A0305-02-0022-1
XM
Figure 108116471-A0305-02-0022-2
M
規則2:X1+X2+...+XM
Figure 108116471-A0305-02-0022-3
M XM表示特定字元線WLM(M=1,2,3,...)的已編程記憶塊(programmed memory chunks)數量。例如,X1表示字元線WL1的已編程記憶塊數量,而X2表示字元線WL2的已編程記憶塊數量。為了驗證編程操作是否已正確執行,記憶體控制器計算各字元線的已編程記憶塊數量。例如,如第6圖所示,對於字元線WL1,記憶塊MC11-MC1L之任一記憶塊未被編程。對於字元線WL2,在記憶塊MC21-MC2L之中,記憶塊MC22已經編程。對於字元線WLM,在記憶塊MCM1-MCML之中,記憶塊MCM1和MCML已經編程。根據計算,記憶體控制器決定X1為0,X2為1,以及XM為2。假設M=192,記憶體控制器決定X1,X2和X192滿足規則1以及X1+X2+...+X192滿足規則2。因此,記憶體控制器可以根據規則來驗證該些記憶塊已經正確編程。
第7A圖、第7B圖繪示對特定記憶區塊執行編程操作的示例圖。在此示例中,記憶體控制器(例如第1圖的記憶體控制器102)可以執行編程操作,以將資料編程到記憶區塊(例如第6圖的記憶區塊MB)。
第7A圖繪示在一個編程週期期間執行多級編程操作的示例圖。編程週期包括複數個階段(stages)400。在各階段中,記憶體控制器提供編程電壓脈衝,接著是一系列驗證電壓脈衝。階段400的數量可以等於記憶胞能編程的資料狀態數量(或者比包含擦除狀態(erase state)的狀態總數少一個)。例如,如果可以將記憶胞編程為資料A、資料B或資料C,則可 以有三個階段。
如果記憶體控制器正在編程目標字元線,則施加編程電壓脈衝到目標字元線。例如,記憶體控制器可以在第一階段施加編程電壓VP1,在第二階段施加編程電壓VP2等。各連續階段的編程電壓可以大於前一階段的編程電壓。
如果目標字元線中的記憶胞需要保持其當前狀態(present state)(擦除或處於特定資料狀態(given Data state)的其中之一),則記憶體控制器施加“開(on)”或“高(high)”電壓(例如Vcc電壓)到記憶胞的位元線。這將抑制(inhibit)記憶胞的編程。否則,例如若編程目標字元線中的記憶胞,則記憶體控制器將接地線(ground)施加於記憶胞的位元線上。這將編程所選定的記憶胞(selected cell)。
在各階段內,施加編程電壓脈衝之後,記憶體控制器施加一系列驗證電壓脈衝。驗證電壓脈衝的數量可以等於能設置記憶胞的資料狀態數量(或者比包含擦除狀態的狀態總數少一個)。例如,如果有四種狀態(資料A、資料B、資料C和擦除),則記憶體控制器可施加三個驗證電壓脈衝,個別具有驗證電壓VverifyA、VverifyB和VverifyC。各驗證電壓脈衝的驗證電壓可以大於前一個驗證電壓脈衝的驗證電壓。各驗證電壓可以與各自的資料狀態相關聯。例如,驗證電壓VverifyA、VverifyB和VverifyC可分別與資料A,資料B,資料C相關聯。
使用驗證電壓脈衝,記憶體控制器可以確認特定記憶胞(given cell)的閾值電壓是否已達到驗證電壓。如果記憶胞的電壓閾值已達到與記憶胞所需資料相關聯的驗證電壓,則不在下一階段編程記憶胞。另一 方面,如果記憶胞的電壓閾值尚未達到與記憶胞所需資料相關聯的驗證電壓,則在下一階段編程記憶胞。例如,若記憶體控制器要編程記憶胞至資料B,則記憶體控制器可以在各編程脈衝之後確認記憶胞的閾值電壓是否已達到VverifyB。如果記憶胞的閾值電壓已達到VverifyB,則在下一階段期間不該編程記憶胞,所以記憶體控制器應施加Vcc到位元線上。另一方面,如果記憶胞的閾值電壓尚未達到VverifyB,則在下一階段期間,記憶體控制器應將接地線施加於位元線上,以編程記憶胞。
第7B圖繪示在一個編程週期內執行塊編程操作或一次通過的編程操作之示例圖。在編程週期期間,記憶體控制器提供編程電壓VP來將資料編程到記憶區塊的特定記憶塊(例如第6圖的記憶塊MC1)。在此示例中,由於記憶體控制器利用編程電壓VP(例如,高於編程電壓VP1的電壓)來編程資料,則不需要資料擦除程序。當使用編程電壓VP來編程資料時,編程於記憶塊的資料可以不用額外的擦除程序來擦除。此外,由於記憶體控制器將資料編程到單一記憶塊,則不需要多個程序來編程多級資料(例如資料A、資料B和資料C)。因此,記憶體控制器所執行的編程操作的速度快於多級編程操作。此外,記憶體控制器將資料編程到單一記憶塊,使得兩個記憶塊之間的干擾不會發生於記憶區塊中。在一些實施方式中,編程電壓VP設定為介於12V(伏特)與26V之間的值。
關於第7A圖與7B圖,擦除電壓位準和編程電壓位準之間的間隙(gap)“間隙B”大於擦除電壓位準和最低編程電壓位準之間的間隙“間隙A”。因此,藉由減少或消除讀取干擾,利用第7B圖的一次通過的編程方法所編程的記憶體裝置相較於利用第7A圖的方法來編程的記憶體 裝置具有更大的容許偏差(tolerance)。
本揭露和其他示例可以實現為一個或多個計算機編程產品(computer program products),例如,在計算機可讀取介質(a computer readable medium)上執行編碼(encoded)的一或多個計算機編程操作模組(modules of computer program operations),或者是控制資料處理設備(data processing apparatus)的操作。該實施可包括算法的單一或分散式(distributed)演算法處理(processing of algorithms)。計算機可讀取介質可以是機器可讀取儲存裝置(machine-readable storage device)、機器可讀儲存基板(machine-readable storage substrate)、記憶體裝置、或是一或多個的組合。術語“資料處理設備”包括用於處理資料的所有設備、裝置和機器、由可編程處理器(programmable processor)、計算機或多個處理器或計算機所包括的示例方式。除了硬體之外,設備可以包括代碼(code),其創造正在討論中的計算機編程(computer program)之執行環境,例如,代碼可構成處理器韌體(processor firmware)、協定堆疊(protocol stack)、資料庫管理系統(database management system)、操作系統(operating system)或其組合。
計算機編程(也稱為編程(program)、軟體、軟體應用程序(software application)、腳本(script)或代碼)可以用任何形式的編程語言(programming language)來編寫,該編程語言包括編譯(compiled)或解釋語言(interpreted languages),並且可以以任何形式來配置,包括作為獨立編程(standalone program)或模組(module)、元件(component)、子程序(subroutine)、或適用於計算環境(computing environment)的其他單元(unit)。
本文所描述的程序和邏輯流程(logic flows)可以由執行一或 多個計算機編程的一或多個可編程處理器(programmable processors)來執行,以執行本文所描述的功能。也可以由程序和邏輯流程來執行,以及設備也可以實施為專用邏輯電路(special purpose logic circuitry)(例如FPGA(現場可程式閘陣列)或ASIC(本申請專用積體電路)。
作為示例,適合執行計算機編程的處理器包括通用和專用微處理器兩者,以及任何類型的數位計算機的任一或多個處理器。適合儲存計算機編程操作和資料的計算機可讀取媒體(Computer readable media)可包括所有形式的非揮發性記憶體、媒體和記憶體裝置、由半導體(semiconductor)記憶體裝置(例如EPROM,EEPROM和快閃記憶體裝置)所包括的示例方式。處理器和記憶體可以由專用邏輯電路來輔助或併入。
雖然本文件描述了許多特定例子,但這些例子不應被用來限制本發明所要主張的範圍或可以被主張的範圍,而應被認為是對特定實施例的特定特徵的描述。相反地,在單個實施例的上下文中描述的各種特徵也可在多個實施例中單獨或以任何合適的子組合來實現。此外,儘管上文將特徵描述為在某些組合下起作用,即使最初主張如此,但是在一些情況下,來自所要求保護的組合的一或多個特徵可從該組合中刪除,並且所要求保護的組合可針對子組合或子組合的變形。相似地,儘管在圖式中以特定的順序描述操作,但這不應被理解為必須要以所示出的特定順序或順序執行這樣的操作,或者要執行所有示出的操作,以實現所要的結果。
本文僅公開了一些示例和實施方式。本領域具有通常知識者可基於所公開的內容對所描述的示例和實現以及其他實施做出變化、修改和增強。
100‧‧‧記憶體裝置
102‧‧‧記憶體控制器
104‧‧‧記憶胞陣列
106‧‧‧偵錯電路
108‧‧‧儲存器

Claims (17)

  1. 一種記憶體裝置,包括:一記憶胞陣列,該記憶胞陣列包括複數個記憶區塊,其中各該些記憶區塊包括複數條字元線,其中複數個記憶塊耦接到該些字元線之至少其中之一;一偵錯電路,該偵錯電路架構成偵測在該特定記憶區塊所發生的一或多個錯誤,並產生一錯誤率;以及一記憶體控制器,該記憶體控制器架構成透過執行一塊操作來將資料編程到該些記憶塊的一特定記憶塊,該塊操作包括:從複數條字元線中選擇一特定字元線;從耦接到該特定字元線的該些記憶塊中選擇該特定記憶塊;以及將一編程電壓施加到對應於該特定記憶塊的一特定記憶區塊,以將資料編程到該特定記憶區塊;其中在該錯誤率滿足一閾值時,該記憶體控制器架構成執行該塊操作。
  2. 如申請專利範圍第1項所述之裝置,其中該記憶體控制器架構成依序從該些字元線中選擇該特定字元線。
  3. 如申請專利範圍第1項所述之裝置,其中該記憶體控制器架構成依序從該些記憶塊中選擇該特定記憶塊。
  4. 如申請專利範圍第1項所述之裝置,其中該記憶體控制器架構成隨機地從該些字元線中選擇該特定字元線。
  5. 如申請專利範圍第1項所述之裝置,其中該記憶體控制器架構成隨機地從該些記憶塊中選擇該特定記憶塊。
  6. 如申請專利範圍第1項所述之裝置,其中該記憶體控制器架構成透過提供介於12V與26V之間的該編程電壓,以對該特定記憶區塊執行該塊操作。
  7. 如申請專利範圍第1項所述之裝置,還包括:複數條位元線,各該些位元線分別耦接到該些記憶塊的一或多個記憶塊;其中在該塊操作的一單一週期內,該記憶體控制器架構成對該些位元線的一位元線中的一單一記憶塊執行該塊操作。
  8. 一種記憶體裝置,包括: 一記憶胞陣列,該記憶胞陣列包括複數個記憶區塊,其中各該些記憶區塊包括複數條字元線,複數個記憶塊耦接到該些字元線之至少其中之一;一偵錯電路,該偵錯電路架構成偵測在該特定記憶區塊所發生的一或多個錯誤,並產生一錯誤率;以及一記憶體控制器,該記憶體控制器架構成透過執行複數個操作來將資料編程到該些記憶塊的一特定記憶塊,該些操作包括:從該偵錯電路獲得該錯誤率;當該錯誤率滿足一閾值時,決定一特定記憶區塊的一狀態;根據該特定記憶區塊的該狀態,在一第一編程操作和一第二編程操作之間決定執行哪種編程操作;以及對該特定記憶區塊執行所決定的該編程操作。
  9. 如申請專利範圍第8項所述之裝置,其中該第一編程操作包括:從該些字元線中選擇一特定字元線;從耦合到該特定字元線的該些記憶塊中選擇一特定記憶塊;以及將一編程電壓施加到該特定記憶區塊,以將資料編程到該特定記憶塊。
  10. 如申請專利範圍第8項所述之裝置,其中該第二編程操作包括:選擇該特定記憶區塊中的一或多個第一記憶塊;將一第一編程電壓施加到該特定記憶區塊,以同時將資料編程到該一或多個第一記憶塊;選擇特定記憶區塊中的一或多個第二記憶塊;以及將一第二編程電壓施加到該特定記憶區塊,以同時將資料編程到該一或多個第二記憶塊。
  11. 一種在一編程週期內由一記憶體控制器對一記憶體裝置的一或多個記憶胞進行編程的方法,該方法包括:由該記憶體控制器從該記憶體裝置的一記憶胞陣列的複數個記憶區塊的一特定記憶區塊的複數條字元線中選擇一特定字元線,其中複數個記憶塊耦接到該些字元線之至少其中之一;使用該記憶體裝置中的一偵錯電路來偵測在該特定記憶區塊所發生的一或多個錯誤;回應於所偵測到的該一或多個錯誤,由該偵錯電路產生一錯誤率;由該記憶體控制器從耦接到該特定字元線的該些記憶塊中選擇一特定記憶塊;以及 在該錯誤率滿足一閾值時,由該記憶體控制器將一編程電壓施加到對應於該特定記憶塊的該特定記憶區塊,以將資料編程到該特定記憶塊。
  12. 如申請專利範圍第11項所述之方法,其中選擇該特定字元線的方法包括依序從該些字元線中選擇該特定字元線。
  13. 如申請專利範圍第11項所述之方法,其中選擇該特定記憶塊的方法包括依序從該些記憶塊中選擇該特定記憶塊。
  14. 如申請專利範圍第11項所述之方法,其中選擇該特定字元線的方法包括隨機地從該些字元線中選擇該特定字元線。
  15. 如申請專利範圍第11項所述之方法,其中選擇該特定記憶塊的方法包括隨機地從該些記憶塊中選擇該特定記憶塊。
  16. 如申請專利範圍第11項所述之方法,其中施加該編程電壓的方法包括提供12V和26V之間的該編程電壓。
  17. 如申請專利範圍第11項所述之方法,其中從該些記憶塊中選擇該特定記憶塊的方法包括:於一編程週期內,在該記憶體裝置中的複數條位元線的一位元線中選擇一單一記憶塊,其中各該些位元線耦接到該些記憶塊中的一或多個記憶塊。
TW108116471A 2019-02-21 2019-05-13 記憶體裝置與其編程方法 TWI684985B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/281,258 2019-02-21
US16/281,258 US11257552B2 (en) 2019-02-21 2019-02-21 Programming a memory device

Publications (2)

Publication Number Publication Date
TWI684985B true TWI684985B (zh) 2020-02-11
TW202032567A TW202032567A (zh) 2020-09-01

Family

ID=70413302

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108116471A TWI684985B (zh) 2019-02-21 2019-05-13 記憶體裝置與其編程方法

Country Status (3)

Country Link
US (2) US11257552B2 (zh)
CN (1) CN111599398B (zh)
TW (1) TWI684985B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11145336B2 (en) * 2019-10-30 2021-10-12 Micron Technology, Inc. Program pulse control using environmental parameters
US11340982B1 (en) 2020-11-02 2022-05-24 Micron Technology, Inc. Memory block defect detection and management
US11282564B1 (en) 2020-11-11 2022-03-22 Micron Technology, Inc. Selective wordline scans based on a data state metric

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015034954A1 (en) * 2013-09-03 2015-03-12 Sandisk Technologies Inc. Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses
US20160078960A1 (en) * 2014-09-12 2016-03-17 Sandisk Technologies Inc. Method and apparatus for writing data to non-volatile memory
US20180032276A1 (en) * 2015-12-20 2018-02-01 Apple Inc. Data storage in a multi-level memory device using one-pass programming

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
KR20130034919A (ko) * 2011-09-29 2013-04-08 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9378792B2 (en) 2011-12-15 2016-06-28 Everspin Technologies, Inc. Method of writing to a spin torque magnetic random access memory
US8824214B2 (en) * 2012-12-10 2014-09-02 Apple Inc. Inter-word-line programming in arrays of analog memory cells
US9263137B2 (en) * 2013-06-27 2016-02-16 Aplus Flash Technology, Inc. NAND array architecture for multiple simutaneous program and read
KR102221752B1 (ko) * 2014-03-20 2021-03-02 삼성전자주식회사 메모리 장치의 프로그램 방법 및 이를 포함하는 데이터 독출 방법
KR20160075195A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 반도체 장치
US9727276B2 (en) * 2014-12-22 2017-08-08 Sandisk Technologies Llc Measuring memory wear and data retention individually based on cell voltage distributions
CN106297881B (zh) 2015-05-27 2020-09-11 旺宏电子股份有限公司 非挥发性存储器的健康管理
KR102415385B1 (ko) * 2015-07-22 2022-07-01 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 저장 장치
TWI596476B (zh) * 2015-11-27 2017-08-21 群聯電子股份有限公司 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元
US10157680B2 (en) * 2015-12-22 2018-12-18 Sandisk Technologies Llp Sub-block mode for non-volatile memory
US10304549B2 (en) * 2016-12-29 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device that applies different recovery voltages to word lines in transition from verification operation to bit line setup operation and program method of the same
KR20180118840A (ko) * 2017-04-21 2018-11-01 에스케이하이닉스 주식회사 메모리소자의 쓰기 디스터번스 억제를 위한 어드레스 분산 장치 및 방법
US10140040B1 (en) * 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10134474B1 (en) * 2017-10-20 2018-11-20 Sandisk Technologies Llc Independent state completion for each plane during flash memory programming
US10937512B2 (en) * 2019-01-22 2021-03-02 International Business Machines Corporation Managing programming errors in NAND flash memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015034954A1 (en) * 2013-09-03 2015-03-12 Sandisk Technologies Inc. Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses
US20160078960A1 (en) * 2014-09-12 2016-03-17 Sandisk Technologies Inc. Method and apparatus for writing data to non-volatile memory
US20180032276A1 (en) * 2015-12-20 2018-02-01 Apple Inc. Data storage in a multi-level memory device using one-pass programming

Also Published As

Publication number Publication date
TW202032567A (zh) 2020-09-01
CN111599398A (zh) 2020-08-28
US20220122677A1 (en) 2022-04-21
US11257552B2 (en) 2022-02-22
CN111599398B (zh) 2022-07-19
US11798640B2 (en) 2023-10-24
US20200273529A1 (en) 2020-08-27

Similar Documents

Publication Publication Date Title
US9117530B2 (en) Preserving data from adjacent word lines while programming binary non-volatile storage elements
US9053810B2 (en) Defect or program disturb detection with full data recovery capability
JP4754486B2 (ja) オーバー・プログラミングされたメモリを検出する技術
JP4680904B2 (ja) 隣接するメモリセルのプログラミングの後にオーバー・プログラミングされたメモリセルを検出する技術
US10665312B2 (en) Nonvolatile memory device configured to adjust a read parameter based on a degradation level
US8839074B2 (en) On chip data recovery for non-volatile storage
KR102429452B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
US11798640B2 (en) Programming a memory device
US9224494B2 (en) Erase speed adjustment for endurance of non-volatile storage
KR20160117713A (ko) 반도체 장치 및 그것의 동작 방법
US20220130476A1 (en) Erase operations
EP3084769B1 (en) Asymmetric state detection for non-volatile storage
US10665303B1 (en) Erasing blocks with few programmed pages
WO2014137631A1 (en) Internal data load for non-volatile storage
US9152497B2 (en) Data recovery from blocks with gate shorts
US8830745B2 (en) Memory system with unverified program step
TWI648743B (zh) 半導體裝置及其操作方法
KR20170104839A (ko) 반도체 메모리 장치 및 그것의 동작 방법
US11322214B1 (en) Gaussian modeling for soft-read threshold estimation in non-volatile memory devices
US11848054B2 (en) Memory device determining precharge time based on a number of times that a program voltage is applied to word line and operating method of memory device
US10290360B2 (en) Methods, systems, and media for programming a storage device
US8923068B2 (en) Low margin read operation with CRC comparision
US11894079B2 (en) Memory controller, memory system with improved threshold voltage distribution characteristics, and operation method
US20230187002A1 (en) Storage controller using history data, method of operating the same, and method of operating storage device including the same
KR20230147525A (ko) 머신 러닝을 이용한 비휘발성 메모리의 경판정 디코딩