CN107112044A - 多芯片双写入 - Google Patents
多芯片双写入 Download PDFInfo
- Publication number
- CN107112044A CN107112044A CN201580071503.0A CN201580071503A CN107112044A CN 107112044 A CN107112044 A CN 107112044A CN 201580071503 A CN201580071503 A CN 201580071503A CN 107112044 A CN107112044 A CN 107112044A
- Authority
- CN
- China
- Prior art keywords
- nonvolatile memory
- memory chip
- chip
- memory
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
- G11C29/765—Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
通过以下方式来将相同数据写入连接至存储器总线的多个非易失性存储器芯片中:向第一非易失性存储器芯片和第二非易失性存储器芯片发送地址信息;选择所述第一和第二非易失性存储器芯片;当所述第一非易失性和第二非易失性存储器芯片都被选择时,通过所述存储器总线向所述第一和第二非易失性存储器芯片并行地发送用户数据;并且并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中对所述用户数据进行编程。
Description
背景技术
本申请涉及对如半导体闪存等可重新编程非易失性存储器的操作。
能够对电荷进行非易失性存储的固态存储器(特别是采取被封装为小形状因数卡的EEPROM和闪速EEPROM的形式)已经变成各种移动和手持式设备(尤其是信息电器和消费者电子产品)中的精选存储设备。不像同样作为固态存储器的RAM(随机存取存储器),闪存是非易失性的并且甚至在关掉电源之后保留其存储数据。而且,不像ROM(只读存储器),类似于磁盘存储设备,闪存是可重写的。
闪速EEPROM类似于EEPROM(电可擦除可编程只读存储器),因为它是可以被擦除的并且使新数据写入或“编程”到其存储器单元中的非易失性存储器。两者都利用场效应晶体管结构中被定位在半导体衬底中在源极区域与漏极区域之间的沟道区域之上的浮置(未连接的)导电栅极。然后,通过浮栅提供控制栅极。晶体管的阈值电压特性由保留在浮栅上的电荷的量控制。也就是说,对于浮栅上的给定电荷水平,在“接通”晶体管以便允许其源极区域与漏极区域之间导电之前,存在将向控制栅极施加的相应电压(阈值)。如闪速EEPROM等闪存允许同时擦除整个存储器单元块。
浮栅可以保持一些电荷,并且因此可以被编程到阈值电压窗口内的任何阈值电压水平。阈值电压窗口的大小由设备的最小和最大阈值水平界定,所述最小和最大阈值水平进而与可以编程到浮栅上的所述一些电荷相对应。阈值窗口通常取决于存储器设备的特性、操作条件和历史。原则上,窗口内的每个不同的可分解阈值电压水平范围可以用于指定单元的确切存储器状态。
非易失性存储器设备还由具有用于存储电荷的介电层的存储器单元制成。使用介电层而不是此前描述的导电浮栅元件。ONO介电层延伸跨过源极扩散与漏极扩散之间的沟道。一个数据位的电荷被定位在与漏极相邻的介电层中,而另一个数据位的电荷被定位在与源极相邻的介电层中。通过分别读取电介质内的空间分离电荷储存区域的二进制状态来实施多状态数据存储。
许多非易失性存储器沿着衬底(例如,硅衬底)表面形成为二维(2D)或平面存储器。其他非易失性存储器是三维(3D)存储器,所述3D存储器单片地形成于具有被布置在衬底上方的有源区域的一个或多个物理存储器单元级中。
在一些情况下,两个或更多个裸片连接至公共总线,例如,向和从存储器控制器发送数据的存储器总线。存储器控制器可以管理一个这种存储器总线或者可以管理两个或更多个存储器总线,并且每个存储器总线可以具有两个或更多个存储器裸片。因此,可以根据一起操作的多个裸片建立大型存储器***。
发明内容
在一些非易失性存储器***中,可以将待存储的数据并行地写入连接至公共总线的两个不同裸片中。可以在每个裸片中写入相同数据,并且如果在一个裸片中发生编程失败,则可以忽略失败并且仅使用成功写入的副本。如果没有发生编程失败,则可以做出关于哪个副本更优选的某项决策。然后,维护优选副本,并且丢弃其他副本。可以通过同时使能两个芯片来对数据进行并行传送并且然后并行编程。还可以通过使能这两个裸片并传送地址信息来并行地传送地址信息。如果不同裸片中使用不同物理地址,则可以通过一次使能一个裸片并将裸片指定地址信息传送至每个裸片来顺序地传送地址信息。
一种将相同数据写入连接至存储器总线的多个非易失性存储器芯片的方法的示例包括:向第一非易失性存储器芯片和第二非易失性存储器芯片发送地址信息;选择所述第一非易失性存储器芯片;选择所述第二非易失性存储器芯片;当所述第一非易失性存储器芯片和所述第二非易失性存储器芯片都被选择时,通过所述存储器总线向所述第一非易失性存储器芯片发送用户数据,并且通过所述存储器总线向所述第二非易失性存储器芯片并行地发送所述用户数据;并且并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中对所述用户数据进行编程。
向所述第一非易失性存储器芯片和所述第二非易失性存储器芯片发送所述地址信息可以包括:选择所述第一非易失性存储器芯片;通过所述存储器总线向所述第一非易失性存储器芯片发送第一地址信息;随后选择所述第二非易失性存储器芯片;以及通过所述存储器总线向所述第二非易失性存储器芯片发送第二地址信息,所述第二地址信息不同于所述第一地址信息。所述第一地址信息可以受限于所述第一非易失性存储器芯片中的好块,所述第二地址信息可以受限于所述第二非易失性存储器芯片中的好块,所述第一非易失性存储器芯片中的所述好块和所述第二非易失性存储器芯片中的所述好块位于对应块中的不同物理位置。向所述第一非易失性存储器芯片和所述第二非易失性存储器芯片发送所述地址信息可以包括:同时选择所述第一非易失性存储器芯片和所述第二非易失性存储器芯片;以及通过所述存储器总线向所述第一非易失性存储器芯片和所述第二非易失性存储器芯片发送所述地址信息,所述地址信息包括一个或多个地址,所述一个或多个地址中的每个地址与所述第一非易失性存储器芯片中的物理位置和所述第二非易失性存储器芯片中的相应物理位置相对应。可以在所述第一芯片和所述第二芯片中相应物理位置处对所述用户数据进行编程。随后可以确定所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中的编程状态。如果所述第一非易失性存储器芯片中的编程状态是失败状态,则可以将所述用户数据在所述第一非易失性存储器芯片中的副本标记为坏的,并且随后可以将对所述用户数据的读取请求指向所述用户数据在所述第二非易失性存储器芯片中的所述副本。存储在所述第一非易失性存储器芯片中的所有用户数据也可以存储在所述第二非易失性存储器芯片中。在并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中对所述用户数据进行编程之后,可以将所述用户数据在所述第一或第二非易失性存储器芯片中的副本标识为废弃副本,并且随后可以擦除所述废弃副本同时维护在所述第一和第二非易失性存储器芯片中的另一个非易失性存储器芯片中的有效副本。可以根据以下各项中的至少一项标识所述废弃副本:当并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中对所述用户数据进行编程时的写入时间、写入循环计数和/或写入错误。
多芯片非易失性存储器***的示例包括:第一非易失性存储器芯片;第二非易失性存储器芯片;数据总线,所述数据总线向和从所述第一非易失性存储器芯片和所述第二非易失性存储器芯片传送数据;地址总线,所述地址总线将地址信息传送至所述第一非易失性存储器芯片和所述第二非易失性存储器芯片;以及存储器控制器,所述存储器控制器被配置成用于在双写入模式下同时选择所述第一非易性存储器芯片和所述第二非易失性存储器芯片,并且通过所述数据总线并行地发送将要存储在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中的用户数据。
第一芯片选择线可以从所述存储器控制器延伸到所述第一非易失性存储器芯片,并且第二芯片选择线可以从所述存储器控制器延伸到所述第二非易失性存储器芯片,所述存储器控制器被配置成用于:在所述双写入模式下,在所述地址总线上发送第一地址信息,同时在所述第一芯片选择线上施加选择信号,并且随后在所述地址总线上发送第二地址信息,同时在所述第二芯片选择线上施加选择信号,所述第一地址信息不同于所述第二地址信息。所述第一非易失性存储器芯片可以包含第一坏块,所述第二非易失性存储器芯片可以包含第二坏块,所述存储器控制器可以维护第一坏块和第二坏块的地图,并且所述第一地址信息可以仅指向所述第一非易失性存储器芯片中不在第一坏块的所述地图上的块,并且所述第二地址信息可以仅指向所述第二非易失性存储器芯片中不在第二坏块的所述地图上的块。第一芯片选择线可以从所述存储器控制器延伸到所述第一非易失性存储器芯片,并且第二芯片选择线可以从所述存储器控制器延伸到所述第二非易失性存储器芯片,所述存储器控制器被配置成用于:在所述双写入模式下,在所述第一芯片选择线和所述第二芯片选择线上并行地施加选择信号,并且当在所述第一芯片选择线和所述第二芯片选择线上施加所述选择信号时,在所述数据总线上发送地址信息。所述存储器控制器可以被配置成用于:在所述双写入模式下,当在所述第一芯片选择线和所述第二芯片选择线上施加所述选择信号时,向所述第一非易失性存储器芯片和所述第二非易失性存储器芯片并行地发送地址信息。所述存储器控制器可以被配置成用于:在所述双写入模式下,在通过所述数据总线发送所述用户数据之后,对所述第一非易失性存储器芯片和所述第二非易失性存储器芯片执行状态检查。所述存储器控制器可以被进一步配置成用于维护编程失败记录并将任何随后的读取请求指向不产生编程失败的写入数据副本。所述存储器控制器可以被配置成用于在单裸片写入模式下在任何时间选择一个且仅一个裸片。
将相同数据写入连接至存储器总线的多个存储器芯片的方法的示例包括:通过地址总线向第一非易失性存储器芯片和第二非易失性存储器芯片发送地址信息;选择所述第一非易失性存储器芯片和所述第二非易失性存储器芯片;当所述第一非易失性存储器芯片和所述第二非易失性存储器芯片都被选择时,通过数据总线向所述第一非易失性存储器芯片发送用户数据,并且通过所述数据总线并行地向所述第二非易失性存储器芯片发送所述用户数据;并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中对所述用户信息进行编程;以及随后,基于以下各项中的至少一项判定是从所述第一非易失性存储器芯片还是从所述第二非易失性存储器芯片中读取所述用户数据:检测到的编程错误、检测到的读取错误、高错误率。
所述存储器芯片可以被配置成用于响应于确定所述存储器芯片具有高编程失败率或高读取失败率而存储相同数据。
各种方面、优点、特征和实施例包括在其示例性示例的以下描述中,所述描述应当结合附图进行。
附图说明
图1示意性地展示了存储器***的主要硬件部件。
图2示意性地展示了非易失性存储器单元。
图3展示了针对浮栅可以在任何时候以任何固定漏极电压选择性地存储的四种不同电荷Q1至Q4的源极-漏极电流ID与控制栅极电压VCG之间的关系。
图4A示意性地展示了组织成NAND串的存储器单元串。
图4B展示了存储器单元的NAND阵列210的示例,所述NAND阵列由NAND串50(如图4A中所示出的NAND串)构成。
图5展示了以NAND配置来组织的被并行读出或编程的存储器单元页。
图6A至图6C展示了对存储器单元群进行编程的示例。
图7示出了3D NAND串的物理结构的示例。
图8示出了U形3D NAND串的物理结构的示例。
图9在y-z平面中示出了具有U形NAND串的3D NAND存储器阵列的横截面的示例。
图10示出了y-z平面上具有直NAND串的3D NAND存储器的截面的示例。
图11展示了具有通过共享总线连接至存储器控制器的两个存储器裸片的安排。
图12A至图12B展示了将数据存储在两个裸片中的相应物理地址处。
图13A至图13C展示了将数据存储在两个裸片中的不同物理地址处。
图14展示了具有坏块的多平面裸片的示例。
图15展示了成对裸片的示例。
图16展示了将数据存储在两个裸片中的相应物理地址处的步骤。
图17展示了将数据存储在两个裸片中的不同物理地址处的步骤。
图18展示了双写入和随后的操作的示例。
具体实施方式
存储器***
半导体存储器设备包括易失性存储器设备(如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”))、非易失性存储器设备(如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存(其还可以被考虑为EEPROM的子集)、铁电随机存取存储器(“FRAM”)、和磁阻随机存取存储器(“MRAM”))、以及能够存储信息的其他半导体元件。每种类型的存储器设备可以具有不同配置。例如,闪存设备可以被配置成NAND或NOR配置。
存储器设备可由无源和/或有源元件以任何组合来形成。通过非限制性示例的方式,无源半导体存储器元件包括ReRAM设备元件,在一些实施例中,所述元件包括如反熔丝相变材料等电阻率切换存储元件以及(可选地)如二极管等操控元件。进一步通过非限制性示例的方式,有源半导体存储器元件包括EEPROM和闪存设备元件,在一些实施例中,所述元件包括如浮栅、导电纳米颗粒、或电荷存储介电材料等包含了电荷存储区域的元件。
多个存储器元件可以被配置为使得它们串联或使得每个元件是可单独访问的。通过非限制性示例的方式,NAND配置(NAND存储器)中的闪存设备通常包含串联的存储器元件。NAND存储器阵列可以被配置为使得阵列包括多个存储器串,其中,串包括共享单个位线并作为群组被访问的多个存储器元件。替代性地,存储器元件可以被配置为使得每一个元件是可单独访问的(例如,NOR存储器阵列)。NAND和NOR存储器配置是示例性的,并且存储器元件可以以其他方式配置。
位于基板内和/或上方的半导体存储器元件可以被安排在两个或三个维度(如二维存储器结构或三维存储器结构)中。
在二维存储器结构中,半导体存储器元件被安排在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被安排在基本上平行于支撑存储器元件的基板的主表面而延伸的平面中(例如,在x-z方向平面中)。基板可以是在其上方或在其中形成存储器元件层的晶片,或者其可以是在形成存储器元件之后附接至其上的载体基板。作为非限制性示例,基板可以包括如硅等半导体。
可以在单个存储器设备级中将存储器元件安排成有序阵列,如在多个行和/或列中。然而,可以在非规则或非正交配置中排列存储器元件。存储器元件可以各自具有两个或更多个电极或接触线,如位线和字线。
三维存储器阵列被安排成使得存储器元件占据多个平面或多个存储器设备级,由此在三个维度(即,在x方向、y方向和z方向上,其中,y方向基本上垂直于并且x和z方向基本上平行于基板的主表面)中形成结构。
作为非限制性示例,三维存储器结构可以被垂直地安排成多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可以被安排成多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),每列在每列中具有多个存储器元件。可以采用二维配置中(例如,在x-z平面中)来安排所述列,导致存储器元件的三维安排,元件位于多个垂直堆叠的存储器平面上。存储器元件在三个维度中的其他配置也可以构成三维存储器阵列。
通过非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以被耦合在一起,以便在单个水平(例如,x-z)存储器设备级内形成NAND串。替代性地,存储器元件可以被耦合在一起,以便形成横跨多个水平存储器设备级的垂直NAND串。可以设想其他三维配置,其中,一些NAND串包含单个存储器级中的存储器元件,而其他串包含跨越多个存储器级的存储器元件。还可以在NOR配置中和在ReRAM配置中设计三维存储器阵列。
通常,在单片式三维存储器阵列中,在单个基板上方形成一个或多个存储器设备级。可选地,单片式三维存储器阵列还可以具有至少部分地位于单个基板内的一个或多个存储器层。作为非限制性示例,基板可以包括如硅等半导体。在单片式三维阵列中,构成阵列的每个存储器设备级的层通常在阵列的基础存储器设备级的层上形成。然而,单片式三维存储器阵列的相邻存储器设备级的层可以被共享或在存储器设备级之间具有中间层。
然后,再次,二维阵列可以被分别形成并且然后封装在一起以便形成具有多个存储器层的非单片式存储器设备。例如,非单片式堆叠存储器可以通过在单独衬底上形成存储器级然后将存储器级堆叠在彼此顶上来构造。可以减薄衬底或者可以在堆叠之前将其从存储器设备级中移除,但是因为存储器设备级最初地在单独衬底上方形成,所以所产生的存储器阵列不是单片式三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片式或非单片式)可以在单独芯片上形成然后封装在一起以便形成堆叠芯片存储器设备。
对存储器元件的操作以及与存储器元件的通信通常需要相关联电路***。作为非限制性示例,存储器设备可以具有用于控制和驱动存储器元件完成如编程和读取等功能的电路***。此相关联电路***可以处于与存储器元件相同的衬底上和/或处于单独衬底上。例如,用于存储器读-写操作的控制器可以位于单独控制器芯片上和/或位于与存储器元件相同的衬底上。
在其他实施例中,可以使用除了此处所描述的二维和三维示例性结构以外的存储器类型。
图1示意性地展示了适合于实施此处所描述的技术中的一些技术的存储器***的主要硬件部件。存储器***90通常通过主机接口与主机80一起操作。存储器***可以采用如存储器卡等可移除存储器的形式或者可以采用嵌入式存储器***的形式。存储器***90包括存储器102,所述存储器的操作由控制器100控制。存储器102包括分布在一个或多个集成电路芯片上的一个或多个非易失性存储器单元阵列。控制器100可以包括接口电路110、处理器120、ROM(只读存储器)122、RAM(随机存取存储器)130、可编程非易失性存储器124以及附加部件。控制器通常被形成为ASIC(专用集成电路),并且包括在这种ASIC中的部件通常取决于特定应用。在各种不同环境中,存储器***可以与各种主机一起使用。例如,主机可以是移动设备,比如,蜂窝电话、膝上型计算机、音乐播放器(例如,MP3播放器)、全球定位***(GPS)设备、平板计算机等。这种存储器***可以是长时期不活动且没有电力的,在所述长时期期间它们可能经受包括高温度、振动、电磁场等各种状况。可以为了宽范围环境条件(例如,宽温度范围)下的低功耗、高数据保留以及可靠性而选择这种主机的存储器***(无论是可移除的还是嵌入式的)。其他主机可以是固定的。例如,用于互联网应用的服务器可以使用非易失性存储器***来存储通过互联网发送和接收的数据。这种***可以在延长的时段(例如,一年或更多)内保持上电而不中断,并且可以贯穿这些时段被频繁地访问。单独块可以被频繁写入和擦除,从而使得耐久性可能是主要关注问题。
物理存储器结构
图2示意性地展示了非易失性存储器单元。存储单元10可以由具有电荷存储单元20的场效应晶体管实施,如浮栅或电荷俘获(介电)层。存储器单元10还包括源极14、漏极16和控制栅极30。
存在许多现今使用的商业上成功的非易失性固态存储器设备。这些存储器设备可以采用不同类型的存储器单元,每种类型具有一个或多个电荷存储器元件。
在实践中,通常通过当参考电压被施加到控制栅极时读出跨单元的源极电极和漏极电极的传导电流来读取单元的存储器状态。因此,对单元的浮栅上的每个给定电荷而言,可以检测关于固定参考控制栅极电压的相应传导电流。类似地,可编程到浮栅上的电荷的范围限定相应阈值电压窗口或相应传导电流窗口。
替代性地,代替在划分的电流窗口当中检测传导电流,有可能在控制栅极处设置测试中的给定存储器状态的阈值电压,并且在传导电流低于或高于阈值电流(单元读取参考电流)时进行检测。在一个实施方式中,通过检查传导电流通过位线的电容放电的速率来完成对相对于阈值电流的传导电流的检测。
图3展示了针对浮栅可以在任何时候选择性地存储的四种不同电荷Q1至Q4的源极-漏极电流ID与控制栅极电压VCG之间的关系。对于固定漏极电压偏置,四条实线ID对VCG曲线表示可以编程到存储器单元的浮栅上的七种可能电荷水平中分别对应于四种可能存储器状态的四种可能电荷水平。作为示例,单元群的阈值电压窗口可以是从0.5V到3.5V的范围。可以通过将阈值窗口划分成每个0.5V间隔的区域来界定七种可能的编程存储器状态“0”、“1”、“2”、“3”、“4”、“5”、“6”和擦除状态(未示出)。例如,如果使用如所示出的2μA的参考电流I参考,则使用Q1来编程的单元可以被视为处于存储器状态“1”,因为其曲线与I参考相交于由VCG=0.5V和1.0V界定的阈值窗口区域中。类似地,Q4处于存储器状态“5”。
如从以上描述中可看出的,使存储器单元存储的状态越多,其阈值电压窗口被划分得越精细。例如,存储器设备可以具有存储器单元,所述存储器单元具有范围为从-1.5V到5V的阈值电压窗口。这提供了6.5V的最大宽度。如果存储器单元用于存储16种状态,则每种状态在阈值窗口中可以占据从200mV到300mV。这将需要编程和读取操作的更高精度,以便能够达到所需要的分辨率。
NAND结构
图4A示意性地展示了组织成NAND串的存储器单元串。NAND串50包括通过其源极和漏极菊链的存储器晶体管M1、M2、...、Mn(例如,n=4、8、16或更高)系列。选择晶体管S1、S2对控制存储器晶体管链的分别经由NAND串的源极端子54和漏极端子56连接至外界。在存储器阵列中,当源极选择晶体管S1接通时,源极端子耦合至源极线(见图4B)。类似地,当漏极选择晶体管S2接通时,NAND串的漏极端子耦合至存储器阵列的位线。链中的每个存储器晶体管10充当存储器单元。其具有用于存储给定量的电荷的电荷存储元件20以便表示预期存储器状态。每个存储器晶体管的控制栅极30允许对读取和写入操作进行控制。如将在图4B中看到的,NAND串一行的相应存储器晶体管的控制栅极30都连接至同一字线。类似地,选择晶体管S1、S2中的每个选择晶体管的控制栅极32提供对分别经由其源极端子54和漏极端子56对NAND串的访问的控制。同样地,NAND串行的相应选择晶体管的控制栅极32全部连接至同一选择线。
当在编程期间读取或验证NAND串内的寻址存储器晶体管10时,其控制栅极30被供应有适当的电压。同时,NAND串50中的非寻址存储器晶体管的剩余部分通过在其控制栅极上应用足够的电压而被完全接通。以此方式,有效地创建从单独存储器晶体管的源极到NAND串的源极端子54的导电路径,并且对单独存储器晶体管的漏极到单元的漏极端子56同样如此。
图4B展示了存储器单元的NAND阵列210的示例,所述NAND阵列由NAND串50(如图4A中所示出的NAND串)构成。沿着每个NAND串列,位线(比如,位线36)耦合至每个NAND串的漏极端子56。沿着个NAND串排,源极线(比如,源极线34)耦合至每个NAND串的源极端子54。而且,沿着NAND串排中的存储器单元行的控制栅极连接至字线(比如,字线42)。沿着NAND串排中的选择晶体管行的控制栅极连接至选择线(比如,选择线44)。NAND串排中的整个存储器单元行可以通过所述NAND串排的字线和选择线上的适当电压而被寻址。
图5展示了以NAND配置来组织的被并行读出或编程的存储器单元页。图5本质上示出了图4B的存储器阵列210中的NAND串50排,其中,像图4A中那样明确地示出了每个NAND串的细节。物理页(比如,页60)是能够并行读出或编程的存储器单元组。这通过读出放大器212的相应页完成。将读出结果锁存在相应锁存器组214中。每个读出放大器可以经由位线耦合至NAND串。页由页的单元的共同连接至字线42的控制栅极使能,并且每个单元可由读出放大器访问,所述读出放大器可经由位线36访问。作为示例,当分别读出或编程单元60的页时,分别将读出电压或编程电压连同位线上的适当电压一起施加到共同字线WL3。
存储器的物理组织
闪存与其他类型的存储器之间的一个差别是闪存单元通常从擦除状态编程。也就是说,通常排空浮栅的电荷。然后编程将期望量的电荷添加回至浮栅中。闪存通常支持从浮栅中移除电荷的一部分以便从更多编程状态到更少编程状态。这意味着更新的数据无法覆写现有数据,并且相反写入到之前的未写入位置。
此外,擦除用于将所有电荷从浮栅中排空,并且通常花费相当多的时间。由于这个原因,逐单元或者甚至逐页地擦除将是繁琐且非常慢的。在实践中,存储器单元阵列被分成大量存储器单元块。如对于闪速EEPROM***普通的,块是擦除单位。也就是说,每个块包含同时被擦除的最小数量的存储器单元。尽管在待擦除块中并行地聚合大量单元将提高擦除性能,但是大尺寸块还需要处理大量更新和过时数据。
每个块通常被划分成许多物理页。逻辑页是包含等于物理页中的单元数量的许多位的编程或读取的单位。在每单元存储一个位的存储器中(单级单元,或“SLC”存储器),一个物理页存储一个逻辑页的数据。在每单元存储两个位的存储器中,物理页存储两个逻辑页。存储在物理页中的逻辑页的数量因此反映每单元存储的位的数量。术语多级单元(或“MLC”)通常用于指每单元存储多于一个位的存储器,包括每单元存储三个位(TLC)、每单元存储四个位、或每单元存储更多位的存储器。在一个实施例中,单独的页可以被划分成多个段,并且每个段可以包含作为基本编程操作一次写入的最小数量的单元。一个或多个逻辑页的数据通常存储在一个存储器单元行中。页可以存储一个或多个扇区。扇区包括用户数据和开销数据。
MLC编程
图6A至图6C展示了对4状态存储器单元群进行编程的示例。图6A展示了可编程到分别表示存储器状态“E”、“A”、“B”和“C”的阈值电压的四种不同分布中的存储器单元群。图6B展示了擦除存储器的“擦除”阈值电压的初始分布。图6C展示了在存储器单元中的许多存储器单元已经被编程之后的存储器的示例。实质上,单元最初具有“擦除”阈值电压,并且编程将其移动到更高值进入由验证水平vV1、vV2和vV3界定的三个区域中的一个区域中。以此方式,每个存储器单元可以被编程到三种编程状态“A”、“B”和“C”之一或者在“擦除”状态下保持未编程。随着存储器得到更多编程,如图6B中所示出的“擦除”状态的初始分布将变得更窄,并且擦除状态由“0”状态表示。
具有低位和高位的2位代码可以用于表示四种存储器状态中的每种存储器状态。例如,“E”、“A”、“B”和“C”状态分别由“11”、“01”、“00”和“10”表示。可以通过在“完整序列”模式下进行读出来从存储器中读取2位数据,在所述模式下,通过分别相对于三个子通带中的读取界定阈值rV1、rV2和rV3进行读出来一起读出这两个位。
3D NAND结构
常规二维(2D)NAND阵列的替代性安排是三维(3D)阵列。相比于2D NAND阵列(其沿着半导体晶片的平面表面形成),3D阵列从晶片表面向上延伸并且通常包括向上延伸的存储器单元堆或列。各种3D安排是可能的。在一种安排中,与晶片表面处的一端(例如,源极)以及顶部的另一端(例如,漏极)垂直地形成NAND串。在另一种安排中,以U形形状来形成NAND串,从而使得可以在顶部访问NAND串的两端,从而促进这种串之间的连接。
图7示出了在垂直于衬底的x-y平面的垂直方向上延伸(即,在z方向上延伸)的NAND串701的第一示例。在垂直位线(局部位线)703穿过字线(例如,WL0、WL1等)的地方形成存储器单元。局部位线与字线之间的电荷俘获层存储电荷,所述电荷影响由耦合至其所包围的垂直位线(沟道)的字线(栅极)形成的晶体管的阈值电压。可以通过形成字线堆叠并且然后蚀刻出要在其处形成存储器单元的存储器孔来形成这种存储器单元。然后,将存储器孔衬以电荷俘获层并填充以适当的局部位线/沟道材料(填充以适当的介电层以便进行隔离)。
与平面NAND串一样,选择栅极705、707被定位在串的任一端处以便允许NAND串选择性地连接至外部元件709、711或与其隔离。这种外部元件通常为导线(比如,为大量NAND串服务的共用源极线)。可以以与平面NAND串类似的方式来操作垂直NAND串并且单级单元(SLC)或多级单元(MLC)两者都是可能的。虽然图7示出了具有串联连接的32个单元(0至31)的NAND串的示例,但是NAND串中的单元数可以是任何适当数量。为了清晰起见,未示出所有单元。将理解的是,在字线3至29(未示出)与局部垂直位线相交的地方形成附加单元。
图8示出了在垂直方向(z方向)上延伸的NAND串815的第二示例。在这种情况下,NAND串815形成U形形状,与位于结构顶部的外部元件(源极线“SL”和位线“BL”)连接。连接NAND串815的两个翼816A、816B的可控制栅极(背栅“BG”)处于NAND串815的底部。在字线WL0至WL63与垂直局部位线817相交的地方形成总共64个单元(尽管在其他示例中,可以提供其他数量的单元)。选择栅极SGS、SGD被定位在NAND串815的任一端处以便控制对NAND串815的连接/隔离。
垂直NAND串可以被安排成以各种方式形成3D NAND阵列。图9示出了块中的多个U形NAND串连接至位线的示例。在这种情况下,在块中存在连接至位线(“BL”)的n个串(串1至串n)。“n”的值可以是任何适当数字,例如,8、12、16、32或更多。串在取向上与其源极连接处于左方的奇数串以及其源极处于右方的偶数串交替。这种安排是合宜的但不是必要的,并且其他图案也是可能的。
共用源极线“SL”连接至每个NAND串的一端(与连接至位线的端相反)。可以将这视为NAND串的源极端,将位线端视为NAND串的漏极端。可以将共用源极线连接成使得块的所有源极线可由***电路一起控制。因此,块的NAND串在一端在位线之间平行地延伸并且在另一端在共用源极线之间平行的延伸。
图10示出了存储器结构,其中,直线垂直NAND串从基板中或附近的共用源极连接延伸到在存储器单元的物理级上延伸的全局位线(BL0至BL3)。在块中的给定物理级中的字线由导电材料片形成。存储器孔结构向下延伸穿过这些导电材料板以便形成存储器单元。在给定块内,存在连接至给定位线的多个NAND串。NAND串被分组到共享共用选择栅极的串集合中。因此,例如,由SGS0和SGD0选择的NAND串可以被视为集合,并且可以被指定为串0,而由SGS1和SGD1选择的NAND串可以被视为集合并且可以被指定为如所示出的串1。块可由任何适当数量的这种串集合组成。将理解的是,图10的截面示出了BL0至BL3的部分,这些位线在y方向上进一步延伸。此外,附加位线与BL0至BL3平行地延伸(例如,在沿着x轴的不同位置处,在图10的截面的位置前面或后面)。其他三维存储器基于电阻式元件而不是电荷存储元件。
存储器单元(无论在3D存储器中还是在平面存储器中)通常在单独裸片上形成,每个裸片具有一些***电路和用于外部通信的一些接口(例如,用于粘合与外部电路接触的电线的接触焊盘)。可以由一个或多个存储器控制器对多个裸片一起操作,从而使得它们一起形成能够以有效的方式存储大量数据的存储器***。存储器控制器与存储器裸片之间的通信可以使用专用通信路径。替代性地,多个存储器裸片可以共享将存储器裸片与存储器控制器连接的公共总线。通常,存储器控制器管理这种总线,从而使得裸片被顺序地寻址,其中使一个裸片能够在任何给定时间处通信。
图11示出了通过共享数据总线141与两个裸片(裸片0和裸片1)通信的存储器控制器或闪存接口模块(“FIM”)的示例。共享地址总线143还从FIM延伸到裸片0和裸片1,以便允许控制器发送与将要存储数据的物理地址有关的地址信息。专用芯片使能(CE)线145从FIM延伸到裸片0,并且单独的专用CE线147从FIM延伸到裸片1。这允许每次使能或选择一个裸片,从而使得数据和/或地址总线可以用于与使能的裸片通信。在另一个安排中,可以将多于两个裸片连接至相同总线,并且FIM可以管理多条总线。
当将数据存储在存储器中并且稍后将其读出时,可能出现各种问题。可以通过纠错码(ECC)或者一些其他***冗余来纠正少量错误。大量错误可能不容易纠正,并且可能使数据不可恢复。当存储器***是新的时,一些存储器***可以具有大量数据错误,例如,由于制造期间的一个或多个物理缺陷。在其他存储器***中,错误数量随时间增加并在使用某一时段后变大。在任一情况下,期望避免大量错误。
一些错误可能由编程引起。在一些情况下,当在某段时间之后或在许多编程验证周期之后(在达到最大循环计数之后)数据编程失败时,发生编程失败。这可能需要对存储器中其他地方的数据进行编程,所述编程可能花费大量时间。即使在没有发生编程失败时,大量坏位可能从编程数据中呈现(即硬错误可能存在于所存储的数据中,从而使得位翻转并且产生坏位)。在其他情况下,对位进行编程,从而使得它们最初被正确读取,但是接近被误读(例如,阈值电压接近用于读取存储器单元状态的辨别电压)。这些可以产生软错误,所述软错误可以随时间变成硬错误。
在此处所呈现的示例中,并行地对两个不同位置中的一部分数据进行编程,从而使得在编程之后,可能期望至少一个副本是好的(例如,一个副本可能不遭受编程失败或者不具有大量硬错误或软错误)。尽管当存储一部分数据时这种方案使最初占据的空间量加倍,但是在确定存在至少一个好副本之后,可以丢弃副本之一。通过以有效方式并行地对两个副本进行编程,可以在不显著增加写入时间的情况下对两个副本进行写入。
图12A示出了将一部分数据的两个相同副本写入两个存储器裸片(裸片0和裸片1)中的第一步的示例。图12A示出了被两个CE线145、147上的使能信号(选择信号)使能的裸片0和裸片1两者。当使能裸片0和裸片1两者时,通过地址总线143发送地址信息“X,Y,Z”。因此,裸片0和裸片1两者同时接收相同地址信息。可以将此地址信息锁存在裸片0和裸片1两者中,以便允许在裸片0和裸片1中的地址X、Y、Z处对随后的数据进行写入。
随后,如图12B中所示出的,当通过数据总线147向两个裸片发送数据“A,B,C”时,使能裸片0和裸片1两者。因此,裸片0和裸片1两者同时接收数据A、B、C。然后,并行地对裸片0和裸片1的每个裸片中的位置X、Y、Z处的数据A、B、C进行编程。结果是,两个裸片在相应位置处包含相同数据。将理解的是,位置可以是块、页或其他单元,并且裸片可以是相同的,从而使得对裸片0中的每一个块、页等而言,在裸片1中存在相应的块、页等。可以看到,对此示例中的数据A、B、C的两个副本进行写入所需要的时间可以等于对一个副本进行写入的时间。因此,在没有时间损失的情况下,对第二副本进行写入。
在一些情况下,可能不期望或可能不可能在两个裸片中的相同位置处对副本进行写入。例如,坏块可能存在于裸片中,从而使得当写入到另一个裸片中的相应好块(具有相应物理地址的好块)中时,无法将数据写入到这种坏块中。一个裸片可以包含不包含在另一个裸片中的一些数据(即并不是所有数据可以被并行地写入两个裸片中),从而使得两个这种裸片的剩余空闲区域可能不同。图13A至图13C示出了将副本写入具有不同地址的两个裸片中的有效方案。
图13A示出了裸片0接收CE线145上的使能信号,而裸片1不接收CE线147上的使能信号。地址信息X、Y、Z通过地址总线143发送并由裸片0(不是由裸片1)接收。
随后,如图13B中所示出的,裸片1接收CE线147上的使能信号,而裸片0不接收CE线145上的使能信号。地址信息X’、Y’、Z’通过地址总线143发送并由裸片1(不是裸片0)接收。地址信息X’、Y’、Z’不同于地址信息X、Y、Z,从而使得每个裸片在此点处配置有不同地址信息。
图13C示出了数据A、B、C通过数据总线141发送,而通过CE线145、147向裸片0和裸片1两者发送使能信号。因此,两个裸片并行地接收相同数据。然后,对每个裸片中对应裸片先前接收的物理地址处的此数据进行编程。因此,裸片0在位置X、Y、Z处存储数据A、B、C,而裸片1在位置X’、Y’、Z’处存储数据A、B、C。这导致每个裸片中数据的不同安排。根据此方案对两个副本进行写入可能比对单个副本进行写入花费更长的时间,因为向裸片0和裸片1串行地发送地址信息两次。然而,传送这种地址信息所需要的时间通常是总编程时间的一小部分(即少于数据传送或数据编程时间),从而使得这可能不表示总写入时间的显著增加。
各种存储器***可以受益于在此所描述的包括使用多平面裸片的***的技术。图14示出了两个裸片(裸片A和裸片B)的示例,所述裸片中的每个裸片具有两个平面(平面0和平面1)。裸片B的平面0示出了可以包含一个或多个坏块的坏块(“BB”)区域。因此,写入跳过坏块并继续到此平面中的下一个好块。结果是,数据被区别地写入裸片A和裸片B中(可以由存储器控制器发送不同地址以便允许这一点)。尽管平面1中的数据(数据E)被同样地写入裸片A和裸片B中,但是平面0中的数据(数据D)由于裸片B中的坏块而具有偏移。
多于两个裸片可以连接至相同总线。尽管可以将数据的相同副本写入任何数量的裸片,但是对两个副本进行写入可能是足够的。因此,在具有四个或更多个存储器裸片的***中,可能期望成对裸片,并将副本并行地写入裸片对。
图15示出了连接至存储器控制器的四个裸片的示例。裸片A和裸片B是成对的,并且都在相应位置处存储相同数据(数据F)。裸片C和裸片D是成对的,并且在不同位置处存储相同数据(数据G)(例如,因为坏块或一个裸片中不在另一个裸片中的先前写入数据)。
尽管在所示出的示例中所有裸片都是成对的,但是在其他示例中,一些裸片可以保持不成对,并且可以存储数据的唯一副本。例如,在具有多个裸片的存储器***中,一些裸片可以被标识为可能存在编程相关错误,而其他裸片可以被标识为不可能存在这种错误。可能存在这种错误的裸片可以经历双写入方案,由此,写入到这种裸片中的数据被一次写入到两个裸片中。可以以常规方式操作不可能存在这种错误的裸片,从而使得将它们单独地使能以便传送数据并进行编程。因此,这种裸片可以包含数据的唯一副本。存储器***可以使用双写入方案操作一些裸片,并且可以同时使用常规方案操作其他裸片。块可以从常规操作变成双写入操作,从而使得操作模式响应于增加错误或其他因素是可变的。
存储器***可以被配置成用于从初始化开始(例如,根据设计)或者根据指示高编程错误风险的测试结果进行双写入。在其他情况下,双写入被应用为在存储器的寿命期间需要的。最初,可能很少需要或不需要双写入。由于存储器被使用并且遭受磨损相关损坏,因此可以针对双写入对裸片进行标识,并且因此其可以是成对的并可以***作。因此,双写入模式下操作的裸片的数量可以随产品的寿命而增加。可以基于磨损(例如,写入擦除循环计数)错误率(例如,通过ECC或以其他方式发现的误比特率“BER”)或一些其他度量来确定在双写入模式下操作裸片。
图16展示了在两个裸片中使用相同寻址的双写入方案。使能两个裸片(裸片0和裸片1)664。然后,当使能两个裸片时,向裸片0和裸片1两者并行地发送相同地址信息666。随后,随着两个裸片仍然被使能,向裸片0和裸片1发送数据668。然后,并行地对裸片0和裸片1进行编程670。
图17展示了两个裸片使用不同寻址的另一个双写入方案。使能裸片0 762,并且向裸片0发送地址信息774。然后,切断到裸片0的使能信号776,并且向裸片1发送使能信号778。然后,向裸片1发送地址信息780。此地址信息不同于向裸片0发送的地址信息。然后,裸片0和裸片1两者并行地接收使能信号782。然后,向裸片0和裸片1并行地发送数据784。然后,并行地对裸片0和裸片1进行编程786。在一些情况下,相同寻址和不同寻址可以同时用于相同存储器***。通常,相同寻址更快且更简单,并且因此可能是更期望的。在双写入模式下操作的一对裸片可以使用相同寻址作为默认方案,并且使用不同寻址作为无法维护相同寻址时(例如,当遇到坏块时)的需要。因此,一对块可以使用相同寻址被部分写入,并且随后可以使用不同寻址被进一步写入。
在一些情况下,可能期望维护两个相同副本持续延伸的时间段,以便在一个副本变损坏(例如,由于数据保持问题或数据干扰)的情况下提供冗余。在其他情况下,可能期望在做出对至少一个好副本进行写入的确定之后仅维护一个副本。
其中,将一个副本成功写入一个裸片中,并且在将另一个副本写入另一个裸片期间发生编程失败,则编程失败可以忽略,并且可以维护成功写入的副本。如果编程失败发生在两个裸片中,则可以将数据写入相同裸片或其他地方中。当在没有编程失败的情况下对两个副本进行写入时,则可以做出某个判定:应该维护哪个副本以及应该丢弃哪个副本。例如,可以对对每个裸片中的数据进行编程所需要的编程验证周期的数量(循环计数)进行比较。更高的循环计数可以是编程问题的指示符,从而使得可以丢弃数据的具有更高循环计数的副本,并且可以维护具有更低循环计数的副本。在另一个示例中,可以从每个裸片中读取数据,并且可以丢弃产生一个或多个读取错误的副本。还可以对读取步骤的数量(读取循环计数)进行比较,并且可以丢弃具有更高读取循环计数的副本。可以对错误数量进行比较。例如,一些数据可以被读出并经受ECC解码,以便确定每个副本的BER(至少来自每个副本的一些样本)。可以丢弃具有更高错误率的副本。
在一些情况下,可以将要丢弃的副本标记为废弃的,并且可以在那之后的任何时间将其擦除。在其他情况下,可以将要丢弃的副本作为冗余副本维护一些时间段,并且然后将其丢弃。例如,在一些存储器***中,初始地以低密度格式(例如,每单元一位,SLC格式)对数据进行写入,并且稍后折叠成更高密度格式(例如,每单元两位、三位或更多位,MLC格式)。可以维护冗余副本直到数据被折叠为止,并且MLC副本被配置为成功写入。
图18示出了裸片0和裸片1被编程有相同数据888的示例。然后,执行一些分析以便将裸片0副本或者裸片1副本标识为废弃副本890。这可以基于一些质量度量,如编程失败、编程循环计数、读取失败、读取循环计数、误比特率、或其他度量或度量的组合。随后,标记废弃副本以便进行擦除,同时维护好副本892。随后,针对数据的任何请求(例如,主机读取命令)指向好(未废弃的)副本。
结语
为了解释和说明的目的给出了前述具体实施方式。其不旨在是穷尽的或者限制所附权利要求书。鉴于以上教导,许多修改和变体都是可能的。
Claims (20)
1.一种将相同数据写入连接至存储器总线的多个非易失性存储器芯片的方法,所述方法包括:
向第一非易失性存储器芯片和第二非易失性存储器芯片发送地址信息;
选择所述第一非易失性存储器芯片;
选择所述第二非易失性存储器芯片;
当所述第一非易失性存储器芯片和所述第二非易失性存储器芯片都被选择时,通过所述存储器总线向所述第一非易失性存储器芯片发送用户数据,并且通过所述存储器总线并行地向所述第二非易失性存储器芯片发送所述用户数据;以及
并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中对所述用户数据进行编程。
2.如权利要求1所述的方法,其中,向所述第一非易失性存储器芯片和所述第二非易失性存储器芯片发送所述地址信息包括:
选择所述第一非易失性存储器芯片;
通过所述存储器总线向所述第一非易失性存储器芯片发送第一地址信息;
随后选择所述第二非易失性存储器芯片;以及
通过所述存储器总线向所述第二非易失性存储器芯片发送第二地址信息,所述第二地址信息不同于所述第一地址信息。
3.如权利要求2所述的方法,其中,所述第一地址信息受限于所述第一非易失性存储器芯片中的好块,所述第二地址信息受限于所述第二非易失性存储器芯片中的好块,所述第一非易失性存储器芯片中的所述好块和所述第二非易失性存储器芯片中的所述好块位于对应块中的不同物理位置处。
4.如权利要求1所述的方法,其中,向所述第一非易失性存储器芯片和所述第二非易失性存储器芯片发送所述地址信息包括:
同时选择所述第一非易失性存储器芯片和所述第二非易失性存储器芯片;以及
通过所述存储器总线向所述第一非易失性存储器芯片和所述第二非易失性存储器芯片发送所述地址信息,所述地址信息包括一个或多个地址,所述一个或多个地址中的每个地址与所述第一非易失性存储器芯片中的物理位置和所述第二非易失性存储器芯片中的相应物理位置相对应。
5.如权利要求4所述的方法,其中,在所述第一芯片和所述第二芯片中在相应物理位置处编程所述用户数据。
6.如权利要求1所述的方法,进一步包括:
随后确定所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中的编程状态。
7.如权利要求6所述的方法,其中,如果所述第一非易失性存储器芯片中的编程状态是失败状态,则将所述用户数据在所述第一非易失性存储器芯片中的副本标记为坏的,并且随后将对所述用户数据的读取请求指向所述用户数据在所述第二非易失性存储器芯片中的所述副本。
8.如权利要求1所述的方法,其中,存储在所述第一非易失性存储器芯片中的所有用户数据还存储在所述第二非易失性存储器芯片中。
9.如权利要求8所述的方法,进一步包括:在并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中编程所述用户数据之后,将所述用户数据在所述第一或第二非易失性存储器芯片中的副本标识为废弃副本,并且随后擦除所述废弃副本同时维护在所述第一和第二非易失性存储器芯片中的另一个非易失性存储器芯片中的有效副本。
10.如权利要求9所述的方法,其中,根据以下各项中的至少一项标识所述废弃副本:当并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中编程所述用户数据时的写入时间、写入循环计数和/或写入错误。
11.一种多芯片非易失性存储器***,包括:
第一非易失性存储器芯片;
第二非易失性存储器芯片;
数据总线,所述数据总线向和从所述第一非易失性存储器芯片和所述第二非易失性存储器芯片传送数据;
地址总线,所述地址总线将地址信息传送至所述第一非易失性存储器芯片和所述第二非易失性存储器芯片;以及
存储器控制器,所述存储器控制器被配置成用于在双写入模式下同时选择所述第一非易失性存储器芯片和所述第二非易失性存储器芯片,并且通过所述数据总线并行地发送将要存储到所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中的用户数据。
12.如权利要求11所述的多芯片非易失性存储器***,进一步包括从所述存储器控制器延伸到所述第一非易失性存储器芯片的第一芯片选择线以及从所述存储器控制器延伸到所述第二非易失性存储器芯片的第二芯片选择线,所述存储器控制器被配置成用于:在所述双写入模式下,在所述地址总线上发送第一地址信息,同时在所述第一芯片选择线上施加选择信号,并且随后在所述地址总线上发送第二地址信息,同时在所述第二芯片选择线上施加选择信号,所述第一地址信息不同于所述第二地址信息。
13.如权利要求12所述的多芯片非易失性存储器***,其中,所述第一非易失性存储器芯片包含第一坏块,所述第二非易失性存储器芯片包含第二坏块,所述存储器控制器维护第一坏块和第二坏块的地图,并且其中,所述第一地址信息仅指向所述第一非易失性存储器芯片中不在第一坏块的所述地图上的块,并且所述第二地址信息仅指向所述第二非易失性存储器芯片中不在第二坏块的所述地图上的块。
14.如权利要求11所述的多芯片非易失性存储器***,进一步包括从所述存储器控制器延伸到所述第一非易失性存储器芯片的第一芯片选择线以及从所述存储器控制器延伸到所述第二非易失性存储器芯片的第二芯片选择线,所述存储器控制器被配置成用于:在所述双写入模式下,在所述第一芯片选择线和所述第二芯片选择线上并行地施加选择信号,并且当在所述第一芯片选择线和所述第二芯片选择线上施加所述选择信号时,在所述数据总线上发送地址信息。
15.如权利要求14所述的多芯片非易失性存储器***,其中,所述存储器控制器被配置成用于:在所述双写入模式下,当在所述第一芯片选择线和所述第二芯片选择线上施加所述选择信号时,向所述第一非易失性存储器芯片和所述第二非易失性存储器芯片并行地发送地址信息。
16.如权利要求11所述的多芯片非易失性存储器***,其中,所述存储器控制器被配置成用于:在所述双写入模式下,在通过所述数据总线发送所述用户数据之后,对所述第一非易失性存储器芯片和所述第二非易失性存储器芯片执行状态检查。
17.如权利要求16所述的多芯片非易失性存储器***,其中,所述存储器控制器被进一步配置成用于维护编程失败记录并将任何随后的读取请求指向不产生编程失败的写入数据副本。
18.如权利要求11所述的多芯片非易失性存储器***,其中,所述存储器控制器被配置成用于在单裸片写入模式下在任何时间选择一个且仅一个裸片。
19.一种将相同数据写入连接至存储器总线的多个存储器芯片中的方法,所述方法包括:
通过地址总线向第一非易失性存储器芯片和第二非易失性存储器芯片发送地址信息;
选择所述第一非易失性存储器芯片和所述第二非易失性存储器芯片;
当所述第一非易失性存储器芯片和所述第二非易失性存储器芯片都被选择时,通过数据总线向所述第一非易失性存储器芯片发送用户数据,并且通过所述数据总线并行地向所述第二非易失性存储器芯片发送所述用户数据;
并行地在所述第一非易失性存储器芯片和所述第二非易失性存储器芯片中对所述用户信息进行编程;以及
随后,基于以下各项中的至少一项判定是从所述第一非易失性存储器芯片还是从所述第二非易失性存储器芯片中读取所述用户数据:检测到的编程错误、检测到的读取错误、高错误率。
20.如权利要求19所述的方法,其中,所述存储器芯片被配置成用于响应于确定所述存储器芯片具有高编程失败率或高读取失败率而存储相同数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/645,102 US9952784B2 (en) | 2015-03-11 | 2015-03-11 | Multichip dual write |
US14/645,102 | 2015-03-11 | ||
PCT/US2015/060936 WO2016144395A1 (en) | 2015-03-11 | 2015-11-16 | Multichip dual write |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107112044A true CN107112044A (zh) | 2017-08-29 |
CN107112044B CN107112044B (zh) | 2020-11-03 |
Family
ID=54771193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580071503.0A Active CN107112044B (zh) | 2015-03-11 | 2015-11-16 | 多芯片双写入 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9952784B2 (zh) |
CN (1) | CN107112044B (zh) |
DE (1) | DE112015006285T5 (zh) |
TW (1) | TW201702880A (zh) |
WO (1) | WO2016144395A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733324A (zh) * | 2018-05-25 | 2018-11-02 | 郑州云海信息技术有限公司 | 一种固态硬盘的数据读写方法、装置、设备及存储介质 |
CN112764682A (zh) * | 2021-01-22 | 2021-05-07 | 南昌黑鲨科技有限公司 | 应用于智能终端的数据存储结构及智能终端 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10078448B2 (en) * | 2015-07-08 | 2018-09-18 | Samsung Electronics Co., Ltd. | Electronic devices and memory management methods thereof |
US20170206165A1 (en) * | 2016-01-14 | 2017-07-20 | Samsung Electronics Co., Ltd. | Method for accessing heterogeneous memories and memory module including heterogeneous memories |
US10007545B2 (en) * | 2016-03-15 | 2018-06-26 | International Business Machines Corporation | Dynamic altering of SRIOV virtual function (VF) resources including DMA windows without bringing down the VF |
US10481799B2 (en) * | 2016-03-25 | 2019-11-19 | Samsung Electronics Co., Ltd. | Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories |
US10153046B1 (en) | 2017-10-30 | 2018-12-11 | Western DigitalTechnologies, Inc. | Non-volatile memory with backing up of programmed data |
US10437557B2 (en) * | 2018-01-31 | 2019-10-08 | Micron Technology, Inc. | Determination of a match between data values stored by several arrays |
US11024385B2 (en) * | 2019-05-17 | 2021-06-01 | Sandisk Technologies Llc | Parallel memory operations in multi-bonded memory device |
KR20210017109A (ko) | 2019-08-07 | 2021-02-17 | 삼성전자주식회사 | 스토리지 장치 |
FR3100347B1 (fr) | 2019-09-04 | 2022-07-22 | St Microelectronics Rousset | Détection d'erreurs |
FR3100346B1 (fr) * | 2019-09-04 | 2022-07-15 | St Microelectronics Rousset | Détection d'erreurs |
US11062756B2 (en) | 2019-10-14 | 2021-07-13 | Western Digital Technologies, Inc. | Extending operating temperature of storage device |
US11442666B2 (en) | 2020-11-17 | 2022-09-13 | Western Digital Technologies, Inc. | Storage system and dual-write programming method with reverse order for secondary block |
US11935622B2 (en) * | 2022-04-20 | 2024-03-19 | Sandisk Technologies Llc | Free flow data path architectures |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060198202A1 (en) * | 2005-02-18 | 2006-09-07 | M-Systems Flash Disk Pioneers Ltd. | Flash memory backup system and method |
CN1322441C (zh) * | 2003-10-30 | 2007-06-20 | 株式会社东芝 | 多芯片封装型存储器*** |
US20090094406A1 (en) * | 2007-10-05 | 2009-04-09 | Joseph Ashwood | Scalable mass data storage device |
US20130080683A1 (en) * | 2011-09-22 | 2013-03-28 | Hiroshi Sukegawa | Memory system provided with nand flash memory and method of controlling the same |
US20130138871A1 (en) * | 2011-11-30 | 2013-05-30 | Silicon Motion, Inc. | Flash Memory Device and Data Access Method for Same |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603001A (en) * | 1994-05-09 | 1997-02-11 | Kabushiki Kaisha Toshiba | Semiconductor disk system having a plurality of flash memories |
US7123512B2 (en) * | 2002-07-19 | 2006-10-17 | Micron Technology, Inc. | Contiguous block addressing scheme |
US7577806B2 (en) * | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Systems and methods for time dependent data storage and recovery |
US7873803B2 (en) | 2007-09-25 | 2011-01-18 | Sandisk Corporation | Nonvolatile memory with self recovery |
US8291181B2 (en) | 2008-10-28 | 2012-10-16 | Micron Technology, Inc. | Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation |
US8554963B1 (en) | 2012-03-23 | 2013-10-08 | DSSD, Inc. | Storage system with multicast DMA and unified address space |
-
2015
- 2015-03-11 US US14/645,102 patent/US9952784B2/en active Active
- 2015-11-16 WO PCT/US2015/060936 patent/WO2016144395A1/en active Application Filing
- 2015-11-16 CN CN201580071503.0A patent/CN107112044B/zh active Active
- 2015-11-16 DE DE112015006285.8T patent/DE112015006285T5/de active Granted
- 2015-12-03 TW TW104140593A patent/TW201702880A/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1322441C (zh) * | 2003-10-30 | 2007-06-20 | 株式会社东芝 | 多芯片封装型存储器*** |
US20060198202A1 (en) * | 2005-02-18 | 2006-09-07 | M-Systems Flash Disk Pioneers Ltd. | Flash memory backup system and method |
US20090094406A1 (en) * | 2007-10-05 | 2009-04-09 | Joseph Ashwood | Scalable mass data storage device |
US20130080683A1 (en) * | 2011-09-22 | 2013-03-28 | Hiroshi Sukegawa | Memory system provided with nand flash memory and method of controlling the same |
US20130138871A1 (en) * | 2011-11-30 | 2013-05-30 | Silicon Motion, Inc. | Flash Memory Device and Data Access Method for Same |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733324A (zh) * | 2018-05-25 | 2018-11-02 | 郑州云海信息技术有限公司 | 一种固态硬盘的数据读写方法、装置、设备及存储介质 |
CN112764682A (zh) * | 2021-01-22 | 2021-05-07 | 南昌黑鲨科技有限公司 | 应用于智能终端的数据存储结构及智能终端 |
Also Published As
Publication number | Publication date |
---|---|
DE112015006285T5 (de) | 2018-01-18 |
WO2016144395A1 (en) | 2016-09-15 |
US20160266821A1 (en) | 2016-09-15 |
US9952784B2 (en) | 2018-04-24 |
CN107112044B (zh) | 2020-11-03 |
TW201702880A (zh) | 2017-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107112044A (zh) | 多芯片双写入 | |
US9558847B2 (en) | Defect logging in nonvolatile memory | |
US9361991B1 (en) | Efficient scanning of nonvolatile memory blocks | |
US9312026B2 (en) | Zoned erase verify in three dimensional nonvolatile memory | |
US9792175B2 (en) | Bad column management in nonvolatile memory | |
CN108108272B (zh) | 三维存储器的适应性操作 | |
US9349479B1 (en) | Boundary word line operation in nonvolatile memory | |
US9760303B2 (en) | Partially-bad block operation in 3-D nonvolatile memory | |
US9483339B2 (en) | Systems and methods for fast bit error rate estimation | |
CN105810249B (zh) | 用于非易失性存储器装置的操作参数的快速适应性整理 | |
US9659666B2 (en) | Dynamic memory recovery at the sub-block level | |
US9411669B2 (en) | Selective sampling of data stored in nonvolatile memory | |
WO2017074570A1 (en) | Data folding in 3d nonvolatile memory | |
US9484098B1 (en) | Smart reread in nonvolatile memory | |
US9804785B2 (en) | Nonvolatile memory adaptive to host boot up routine | |
CN105895160A (zh) | 具有减少的读取干扰的边界字线搜索和开放的块读取方法 | |
CN107111574A (zh) | 存储器总线管理 | |
US9269446B1 (en) | Methods to improve programming of slow cells | |
CN107924704B (zh) | 3d nand存储器的自适应操作 | |
US8918577B1 (en) | Three dimensional nonvolatile memory with variable block capacity | |
US9583207B2 (en) | Adaptive data shaping in nonvolatile memory | |
US9934858B2 (en) | Use of dummy word lines for metadata storage | |
US20160124664A1 (en) | Block Level Local Column Redundancy Methods for Higher Yield | |
WO2016057158A1 (en) | Nonvolatile memory and method with state encoding and page-by-page programming yielding invariant read points | |
CN107077892A (zh) | 平均电压带检测以及用于调整asic中电压的用途 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |