CN103098029A - Dynamic optimization of back-end memory system interface - Google Patents
Dynamic optimization of back-end memory system interface Download PDFInfo
- Publication number
- CN103098029A CN103098029A CN2011800437906A CN201180043790A CN103098029A CN 103098029 A CN103098029 A CN 103098029A CN 2011800437906 A CN2011800437906 A CN 2011800437906A CN 201180043790 A CN201180043790 A CN 201180043790A CN 103098029 A CN103098029 A CN 103098029A
- Authority
- CN
- China
- Prior art keywords
- circuit
- memory
- controller
- data
- interface
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 497
- 238000005457 optimization Methods 0.000 title description 7
- 238000012546 transfer Methods 0.000 claims abstract description 111
- 238000000034 method Methods 0.000 claims abstract description 107
- 230000005540 biological transmission Effects 0.000 claims abstract description 38
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000012937 correction Methods 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 26
- 239000000872 buffer Substances 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 2
- 230000001186 cumulative effect Effects 0.000 claims description 2
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 238000013500 data storage Methods 0.000 abstract description 4
- 238000003860 storage Methods 0.000 description 21
- 101150071746 Pbsn gene Proteins 0.000 description 14
- 239000000758 substrate Substances 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008713 feedback mechanism Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000005669 field effect Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000005684 electric field Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000002784 hot electron Substances 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 230000005689 Fowler Nordheim tunneling Effects 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000007853 buffer solution Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000013643 reference control Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- 239000000377 silicon dioxide Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000035882 stress Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Images
Classifications
-
- 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
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/022—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
给出了用于诸如闪存卡或者其他类似结构的器件的存储器系统的内部控制器与存储器电路接口的结构及相应的操作技术。控制器电路和存储器电路之间的接口包括反馈处理,其中监视由于控制器-存储器传输而出现的错误量并且可以据此修改传输特性(比如时钟速率、驱动强度等等)。还给出了用于动态地优化非易失性存储器系统的控制器-存储器(或“后台”)接口的性能的技术。存储器系统通常设计为具有对于然后可以通过ECC校正的错误的某个错误容限量。在许多情形下,比如当器件是新的时,系统的ECC能力超过了校正数据存储错误所需的能力。在这些情形下,存储器系统将此错误校正能力的非零部分内部地分配给后台接口。这允许该接口以例如更高速度或更低功率而操作,尽管这将很可能导致传输路径错误。该系统还可以校准后台接口以确定从各个操作条件得到的错误量,允许根据分配给传输处理的错误量来设置后台接口的操作参数。
The architecture and corresponding operating techniques of the internal controller and memory circuit interface of a memory system such as a flash memory card or other similarly structured devices are given. The interface between the controller circuit and the memory circuit includes a feedback process where the amount of errors due to the controller-memory transfer is monitored and transfer characteristics (such as clock rate, drive strength, etc.) can be modified accordingly. Techniques for dynamically optimizing the performance of the controller-memory (or "background") interface of a non-volatile memory system are also presented. Memory systems are usually designed with some amount of error tolerance for errors that can then be corrected by ECC. In many cases, such as when the device is new, the ECC capability of the system exceeds what is needed to correct data storage errors. In these cases, the memory system internally allocates a non-zero portion of this error correction capability to the background interface. This allows the interface to operate eg at higher speed or at lower power, although this will most likely result in transmission path errors. The system can also calibrate the backend interface to determine the amount of error resulting from various operating conditions, allowing the operating parameters of the backend interface to be set according to the amount of error allocated to the transfer process.
Description
技术领域technical field
本申请涉及诸如半导体闪存的可再编程非易失性存储器系统的操作,更具体地,涉及存储器系统的控制器和存储器电路之间的内部接口。The present application relates to the operation of reprogrammable non-volatile memory systems, such as semiconductor flash memory, and more particularly, to the internal interface between the memory system's controller and the memory circuits.
背景技术Background technique
能够非易失性存储电荷的固态存储器、特别是被封装为小型规格卡的EEPROM和快闪EEPROM形式的固态存储器最近成为各种移动和手持设备、特别是信息装置和消费电子产品中的存储选择。不同于也是固态存储器的RAM(随机存取存储器),快闪存储器是非易失性的,并且即使在切断电源之后仍保持它所存储的数据。而且,不像ROM(只读存储器),快闪存储器类似于盘存储设备而可重写。尽管成本更高,但是快闪存储器正被更多地用于大容量存储应用中。基于诸如硬盘驱动器和软盘的旋转磁介质的传统大容量存储不适合于移动和手持环境。这是因为盘驱动器倾向于体积大,易出现机械故障,并且具有高等待时间和高功率要求。这些不希望的属性使得基于盘的存储在大部分移动和便携式应用中不实用。另一方面,嵌入式和可移动卡形式这两种的快闪存储器由于其小尺寸、低功耗、高速和高可靠性特征而理想地适合于移动和手持环境。Solid state memory capable of non-volatile storage of charge, particularly in the form of EEPROM and flash EEPROM packaged as small form factor cards, has recently become the storage of choice in a variety of mobile and handheld devices, especially information appliances and consumer electronics . Unlike RAM (Random Access Memory), which is also solid-state memory, flash memory is non-volatile and retains its stored data even after power is cut off. Also, unlike ROM (Read Only Memory), flash memory is rewritable similar to a disk storage device. Although more costly, flash memory is being used more in mass storage applications. Traditional mass storage based on rotating magnetic media such as hard drives and floppy disks is not suitable for mobile and handheld environments. This is because disk drives tend to be bulky, prone to mechanical failure, and have high latency and high power requirements. These undesirable properties make disk-based storage impractical for most mobile and portable applications. On the other hand, flash memory, both embedded and in the form of a removable card, is ideally suited for mobile and handheld environments due to its small size, low power consumption, high speed and high reliability features.
快闪EEPROM类似于EPROM(电可擦除可编程只读存储器)在于其是可被擦除并且使新数据被写到或“编程”到其存储器单元中的非易失性存储器。在场效应晶体管结构中,两者利用在源极和漏极区域之间的、位于半导体衬底中的沟道区之上的浮置(未连接的)导电栅极。然后在浮置栅极之上提供控制栅极。由被保留在浮置栅极上的电荷量来控制晶体管的阈值电压特性。也就是,对于浮置栅极上给定水平的电荷,存在必须在“导通”晶体管之前施加到控制栅极以允许在其源极和漏极区之间导电的相应电压(阈值)。具体地,诸如快闪EEPROM的快闪存储器允许同时擦除整个块的存储器单元。Flash EEPROM is similar to EPROM (Electrically Erasable Programmable Read Only Memory) in that it is a non-volatile memory that can be erased and have new data written or "programmed" into its memory cells. In a field effect transistor structure, both utilize a floating (unconnected) conductive gate over a channel region in a semiconductor substrate between source and drain regions. A control gate is then provided over the floating gate. The threshold voltage characteristics of the transistor are controlled by the amount of charge that is retained on the floating gate. That is, for a given level of charge on the floating gate, there is a corresponding voltage (threshold) that must be applied to the control gate to allow conduction between its source and drain regions before "turning on" the transistor. In particular, flash memory, such as flash EEPROM, allows an entire block of memory cells to be erased at the same time.
浮置栅极可以保持一个范围的电荷,因此可以被编程到在阈值电压窗内的任何阈值电压电平。由器件的最小和最大阈值电平来界定(delimit)阈值电压窗的大小,该最小和最大阈值电平又对应于可以被编程到浮置栅极上的电荷的范围。阈值窗通常取决于存储器器件的特性、工作条件和历史。在该窗内的每个不同的可分辨的阈值电压电平范围原则上可以用于指定单元的明确的存储器状态。The floating gate can hold a range of charges and thus can be programmed to any threshold voltage level within the threshold voltage window. The size of the threshold voltage window is delimited by the device's minimum and maximum threshold levels, which in turn correspond to the range of charge that can be programmed onto the floating gate. The threshold window generally depends on the characteristics, operating conditions and history of the memory device. Each distinct range of resolvable threshold voltage levels within this window can in principle be used to specify a distinct memory state for the cell.
通常通过两种机制之一来将充当存储器单元的晶体管编程到“已编程”状态。在“热电子注入”中,施加到漏极的高电压加速了穿过衬底沟道区的电子。同时,施加到控制栅极的高电压拉动热电子经过薄栅极电介质到浮置栅极上。在“隧穿注入”中,相对于衬底,高电压被施加到控制栅极。以此方式,将电子从衬底拉到中间的(intervening)浮置栅极。尽管历史上已经使用术语“编程”来描述通过将电子注入到存储器单元的初始被擦除的电荷存储单元以便更改存储器状态的向存储器的写入,但是现在已经可与诸如“写入”或“记录”的更常用的术语互换使用。Transistors that function as memory cells are typically programmed to a "programmed" state by one of two mechanisms. In "hot electron injection", a high voltage applied to the drain accelerates electrons across the channel region of the substrate. At the same time, a high voltage applied to the control gate pulls hot electrons through the thin gate dielectric onto the floating gate. In "tunneling implantation", a high voltage is applied to the control gate relative to the substrate. In this way, electrons are pulled from the substrate to the intervening floating gate. Although the term "programming" has historically been used to describe writing to memory by injecting electrons into the memory cell's initially erased charge storage unit in order to change the state of the memory, it has now been used with terms such as "writing" or "programming" The more common term "record" is used interchangeably.
可以通过多种机制来擦除存储器器件。对于EEPROM,可通过相对于控制栅极向衬底施加高电压以便诱导浮置栅极中的电子遂穿过薄氧化物到衬底沟道区(即,Fowler-Nordheim隧穿)而电擦除存储器单元。通常,EEPROM可逐字节擦除。对于快闪EEPROM,该存储器可一次性全部电擦除或一次一个或多个最小可擦除块地电擦除,其中最小可擦除块可以由一个或多个扇区组成,并且每个扇区可以存储512字节或更多的数据。Memory devices can be erased by a variety of mechanisms. For EEPROM, it can be electrically erased by applying a high voltage to the substrate with respect to the control gate in order to induce electrons in the floating gate to tunnel through the thin oxide to the substrate channel region (i.e., Fowler-Nordheim tunneling) memory unit. Typically, EEPROMs are erased byte by byte. For flash EEPROM, the memory can be electrically erased all at once or one or more minimum erasable blocks at a time, where the minimum erasable block can be composed of one or more sectors, and each sector An area can store 512 bytes or more of data.
存储器器件通常包括可以被安装在卡上的一个或多个存储器芯片。每个存储器芯片包括由诸如解码器和擦除、写和读电路的外围电路支持的存储器单元的阵列。更复杂的存储器器件还与进行智能和更高级的存储器操作和接口的外部存储器控制器一起工作。A memory device typically includes one or more memory chips that may be mounted on a card. Each memory chip includes an array of memory cells supported by peripheral circuits such as decoders and erase, write and read circuits. More complex memory devices also work with external memory controllers that perform intelligent and more advanced memory operations and interfaces.
存在现今正使用的许多商业上成功的非易失性固态存储器器件。这些存储器器件可以是快闪EEPROM,或可以使用其他类型的非易失性存储器单元。在美国专利No.5,070,032、5,095,344、5,315,541、5,343,063和5,661,053、5,313,421和6,222,762中给出了闪存和系统及其制造方法的例子。具体地,在美国专利No.5,570,315、5,903,495、6,046,935中描述了具有NAND串结构的闪存器件。而且,还由具有用于存储电荷的介电层的存储器单元制造非易失性存储器器件。取代先前描述的导电浮置栅极元件,使用介电层。由Eitan等人的“NROM:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell”,IEEE Electron Device Letters,Vol.21,No.11,2000年11月,543-545页描述了利用介电存储元件的这种存储器器件。ONO介电层延伸穿过在源极和漏极扩散之间的沟道。用于一个数据位的电荷被定位在与漏极相邻的介电层中,且用于另一数据位的电荷被定位在与源极相邻的电介质层中。例如,美国专利No.5,768,192和6,011,725公开了具有夹在两个二氧化硅层之间的俘获(trapping)电介质的非易失性存储器单元。通过分别读取该电介质内的空间上分离的电荷存储区域的二进制状态来实现多状态数据存储。There are many commercially successful non-volatile solid-state memory devices in use today. These memory devices may be flash EEPROMs, or other types of non-volatile memory cells may be used. Examples of flash memories and systems and methods of making them are given in US Pat. Specifically, flash memory devices having a NAND string structure are described in US Patent Nos. 5,570,315, 5,903,495, 6,046,935. Furthermore, non-volatile memory devices are also fabricated from memory cells having a dielectric layer for storing charges. Instead of the previously described conductive floating gate elements, a dielectric layer is used. "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell" by Eitan et al., IEEE Electron Device Letters, Vol.21, No.11, November 2000, pages 543-545 describe the use of dielectric memory elements of this memory device. The ONO dielectric layer extends across the channel between the source and drain diffusions. Charge for one data bit is located in the dielectric layer adjacent to the drain, and charge for the other data bit is located in the dielectric layer adjacent to the source. For example, US Patent Nos. 5,768,192 and 6,011,725 disclose non-volatile memory cells with a trapping dielectric sandwiched between two silicon dioxide layers. Multi-state data storage is achieved by separately reading the binary states of the spatially separated charge storage regions within the dielectric.
为了提高读取和编程性能,并行地读取或编程阵列中的多个电荷存储元件或者存储器晶体管。因此,一“页”存储器元件一起被读取或编程。在现有的存储器架构中,行通常包含几个交织的页或者其可以构成一页。一页的所有存储器元件将被一起读取或编程。To improve read and program performance, multiple charge storage elements or memory transistors in the array are read or programmed in parallel. Thus, a "page" of memory elements are read or programmed together. In existing memory architectures, a row usually consists of several interleaved pages or it can constitute one page. All memory elements of a page will be read or programmed together.
在快闪存储器系统中,擦除操作可能花费比读取和编程操作长几乎一个数量级。因此,期望具有充分大小的擦除块。以此方式,擦出时间可以分摊在大群的存储器单元上。In flash memory systems, erase operations can take almost an order of magnitude longer than read and program operations. Therefore, it is desirable to have erase blocks of sufficient size. In this way, the erase time can be amortized over a large group of memory cells.
快闪存储器的本性预示着数据必须被写到被擦除的存储器位置。如果来自主机的某个逻辑地址的数据要被更新,则一种方式是在相同的网络存储器位置中重写更新数据。也就是,逻辑到物理地址映射不改变。但是,这将意味着包含该物理位置的整个擦除块将需要首先被擦除,然后用被更新的数据重写。此更新方法效率低,因为其需要擦出并重写整个擦除块,尤其是如果要被更新的数据仅占据了擦除块的一小部分的情况。还将导致存储器块的更高频率的擦除再循环,考虑到此类型的存储器期间的有效的耐久性,这是不希望的。The nature of flash memory dictates that data must be written to the memory locations to be erased. If data from a certain logical address of the host is to be updated, one way is to overwrite the updated data in the same network memory location. That is, the logical-to-physical address mapping does not change. However, this would mean that the entire eraseblock containing that physical location would need to be erased first and then rewritten with the updated data. This update method is inefficient because it requires erasing and rewriting the entire eraseblock, especially if the data to be updated occupies only a small portion of the eraseblock. It will also result in a higher frequency of erase recycling of memory blocks, which is undesirable in view of the effective endurance of this type of memory.
通过主机系统、存储器系统和其他电子系统的外部接口传送的数据被寻址并映射到快闪存储器系统的物理位置。通常,由系统产生或接收的数据文件的地址按照数据的逻辑块被映射到为系统建立的不同范围的连续逻辑地址空间中(下文中称为“LBA接口”)。地址空间的广度通常足够覆盖系统能够处理的地址的全部范围。在一个例子中,磁盘存储驱动器通过这样的逻辑地址空间与计算机或者其他主机系统通信。此地址空间具有足够寻址盘驱动器的全部数据存储容量的广度。Data communicated through external interfaces of host systems, memory systems, and other electronic systems are addressed and mapped to physical locations in the flash memory system. Generally, addresses of data files generated or received by the system are mapped into different ranges of continuous logical address spaces established for the system according to logical blocks of data (hereinafter referred to as "LBA interfaces"). The address space is usually wide enough to cover the full range of addresses that the system can handle. In one example, a disk storage drive communicates with a computer or other host system through such a logical address space. This address space has a breadth sufficient to address the entire data storage capacity of the disk drive.
正在努力通过降低功耗以及增加器件速度来提高存储器器件的性能。如上所述,非易失性存储器器件通常由控制器电路以及通过总线结构彼此连接的一个或多个存储器芯片形成。诸如所使用的电压值和频率的控制器/存储器器件接口的的设置通常根据预期最差情况的情形来设置以便具有足够的安全余量从而避免设备故障。因而,在大多数情况下,接口以未达最佳的条件而操作。因此该接口可能是器件性能方面的限制因素,因此这是用于对此接口的设计的改进的空间。Efforts are ongoing to improve the performance of memory devices by reducing power consumption and increasing device speed. As mentioned above, a non-volatile memory device is typically formed of a controller circuit and one or more memory chips connected to each other by a bus structure. Settings of the controller/memory device interface such as voltage values and frequencies used are typically set according to expected worst-case scenarios in order to have sufficient safety margins to avoid device failure. Thus, in most cases the interface operates in sub-optimal conditions. This interface can therefore be the limiting factor in terms of device performance, so there is room for improvement in the design of this interface.
发明内容Contents of the invention
根据本发明的一般方面,给出了操作非易失性存储器系统的方法。该非易失性存储器系统包括:控制器电路,具有存储器接口;存储器电路,具有非易失性存储器单元的阵列和控制器接口;以及总线结构,连接到所述控制器电路的存储器接口以及所述存储器电路的控制器接口,用于在所述控制器电路和所述存储器电路之间传输数据和命令。所述存储器系统能够容忍从数据从控制器传输以写到存储器阵列直到数据在随后从存储器阵列被读回之后在控制器处被接收为止的第一非零量的累积错误。该方法包括:所述控制器电路向所述控制器电路和所述存储器电路之间的经由总线结构的数据传输分配第一错误量的第一非零部分,所述第一错误量的剩余被分配给所述存储器电路上的数据的写入、存储和读取。所述控制器电路设置所述控制器电路和所述存储器电路之间的传输特性以操作来允许达第一部分的错误。According to a general aspect of the invention, a method of operating a non-volatile memory system is presented. The non-volatile memory system includes: a controller circuit having a memory interface; a memory circuit having an array of non-volatile memory cells and the controller interface; and a bus structure connected to the memory interface of the controller circuit and the A controller interface of the memory circuit for transferring data and commands between the controller circuit and the memory circuit. The memory system is tolerant of a first non-zero amount of cumulative errors from the transfer of data from the controller to be written to the memory array until the data is received at the controller after being subsequently read back from the memory array. The method includes the controller circuit allocating a first non-zero portion of a first error amount to data transfers between the controller circuit and the memory circuit via a bus structure, the remainder of the first error amount being divided by Writing, storing and reading of data on the memory circuit is allocated. The controller circuit sets transfer characteristics between the controller circuit and the memory circuit to operate to tolerate up to a first portion of errors.
在其他方面,给出了操作具有控制器电路和存储器电路的非易失性存储器系统的方法。所述控制器电路通过对连接控制器与所述存储器电路的总线结构的一个或多个操作参数的每个的多个值的每个进行处理来进行传输错误校准。此处理包括:将已知数据样式的数据集从所述控制器经过所述控制器上的传输电路传输到所述总线结构;以及通过所述存储器电路上的接收电路接收来自所述总线结构的数据集。将接收的数据集存储在所述存储器电路上的缓冲存储器中,然后将存储在所述存储器电路上的所述缓冲存储器中的数据集通过所述存储器电路上的传输电路传输到所述总线结构而不写到所述阵列中。通过所述控制器上的接收电路接收来自所述总线结构的数据集;并且进行接收的数据集与已知样式的比较。基于该比较,确定对于所使用的一个或多个参数的与传输处相关联的错误量。随后操作所述存储器系统以允许在所述控制器电路和存储器电路之间的数据传输中的第一非零错误量,其中所述控制器电路根据基于所确定的相关联的错误量的传输错误校准处理来选择操作参数的值。In other aspects, methods of operating a nonvolatile memory system having a controller circuit and a memory circuit are presented. The controller circuit performs transfer error calibration by processing each of a plurality of values of each of one or more operating parameters of a bus structure connecting the controller to the memory circuit. This process includes: transmitting a data set of known data pattern from the controller to the bus structure through the transmission circuit on the controller; and receiving the data from the bus structure through the receiving circuit on the memory circuit. data set. storing the received data set in a buffer memory on the memory circuit, and then transferring the data set stored in the buffer memory on the memory circuit to the bus structure via a transmission circuit on the memory circuit without writing to the array. A data set from the bus structure is received by receiving circuitry on the controller; and a comparison of the received data set to a known pattern is performed. Based on the comparison, an amount of error associated with the transmission is determined for the one or more parameters used. The memory system is then operated to allow a first non-zero amount of error in data transfer between the controller circuit and the memory circuit, wherein the controller circuit calculates a transfer error based on the determined associated error amount The calibration process selects values for operating parameters.
根据本发明的另一一般方面,非易失性存储器系统具有:控制器电路,包括存储器接口和逻辑电路;以及存储器电路,包括非易失性存储器单元的阵列、控制器接口和逻辑电路。该存储器系统还包括总线结构,连接到所述控制器电路的存储器接口以及所述存储器电路的控制器接口用于在控制器和存储器电路之间传输数据和命令。反馈处理电路在所述控制器和所述存储器电路之间的数据传输期间连接到所述控制器电路和所述存储器电路上的逻辑电路以接收关于由于传输而产生的错误量的信息,并且连接到所述存储器接口和所述控制器接口之一或两者以响应于所述错误量而调整在所述控制器电路和所述存储器电路之间的传输的特性。According to another general aspect of the invention, a non-volatile memory system has a controller circuit including a memory interface and logic; and a memory circuit including an array of non-volatile memory cells, the controller interface and logic. The memory system also includes a bus structure connected to the memory interface of the controller circuit and the controller interface of the memory circuit for transferring data and commands between the controller and the memory circuit. a feedback processing circuit connected to logic on the controller circuit and the memory circuit during data transfer between the controller and the memory circuit to receive information on the amount of error due to the transfer, and to to one or both of the memory interface and the controller interface to adjust a characteristic of a transfer between the controller circuit and the memory circuit in response to the error amount.
在其他方面,给出了操作包括非易失性存储器电路和控制器电路的非易失性存储器系统的方法。在所述控制器电路和存储器电路中的第一个上的逻辑电路中从数据集产生第一哈希值。通过所述控制器电路和存储器电路中的第一个上的接口向总线结构传输所述数据集和第一哈希值,并通过所述控制器电路和存储器电路中的第二个上的接口从所述总线结构接收所述数据集和所述第一哈希值。然后在所述控制器电路和存储器电路中的第二个上的逻辑电路中从接收的数据集产生第二哈希值,然后在所述控制器电路和存储器电路中的第二个上比较接收的第一哈希值和所述第二哈希值。基于所述控制器电路和存储器电路中的第二个上的逻辑电路对接收的第一哈希值和所述第二哈希值的比较,所述系统确定是否更改所述控制器电路和所述存储器电路之间的数据传输的特性。In other aspects, methods of operating a nonvolatile memory system including a nonvolatile memory circuit and a controller circuit are presented. A first hash value is generated from a data set in logic circuitry on a first of the controller circuitry and memory circuitry. transferring said data set and first hash value to a bus structure via an interface on a first of said controller circuit and memory circuit, and via an interface on a second of said controller circuit and memory circuit The data set and the first hash value are received from the bus structure. A second hash value is then generated from the received data set in logic circuitry on a second of said controller circuitry and memory circuitry, and the received hash value is then compared at a second of said controller circuitry and memory circuitry. The first hash value and the second hash value. Based on a comparison of the received first hash value and the second hash value by logic circuitry on a second of the controller circuit and the memory circuit, the system determines whether to alter the controller circuit and the second hash value. characteristics of data transfers between memory circuits.
本发明的各个方面、优点、特征和实施例被包括在其示例例子的以下描述中,该描述应该结合附图考虑。在此引用的所有专利、专利申请、文章、其他出版物、文献和事物为了所有目的通过对其全部的此引用而合并于此。至于在任意所并入的出版物、文献或事物与本申请之间的术语的定义或使用的任何不一致或者矛盾之处,应以本申请的定义或使用为准。Various aspects, advantages, features and embodiments of the invention are included in the following description of illustrative examples thereof, which description should be considered in conjunction with the accompanying drawings. All patents, patent applications, articles, other publications, documents and things cited herein are hereby incorporated by this reference in their entirety for all purposes. To the extent of any inconsistency or contradiction in the definition or usage of terms between any incorporated publication, document or matter and the present application, the definition or usage in the present application shall control.
附图说明Description of drawings
图1示意性例示适合于实现本发明的存储器系统的主要硬件组件。Figure 1 schematically illustrates the main hardware components of a memory system suitable for implementing the invention.
图2示意性例示非易失性存储器单元。Fig. 2 schematically illustrates a non-volatile memory cell.
图3例示对于浮置栅极可以在任意一个时间选择性存储的四个不同的电荷Q1-Q4的源极-漏极电流ID和控制栅极电压VCG之间的关系。Figure 3 illustrates the relationship between source-drain current ID and control gate voltage V CG for four different charges Q1-Q4 that the floating gate can selectively store at any one time.
图4A示意性例示被组织为NAND串的存储器单元的串。Figure 4A schematically illustrates a string of memory cells organized as a NAND string.
图4B例示由诸如图5A所示的NAND串50构成的存储器单元的NAND阵列210的例子。FIG. 4B illustrates an example of a
图5例示被并行感测或编程的例如按NAND配置组织的一页存储器单元。Figure 5 illustrates a page of memory cells organized, eg, in a NAND configuration, being sensed or programmed in parallel.
图6(0)-6(2)例示编程一群4-状态存储器单元的例子。6(0)-6(2) illustrate an example of programming a group of 4-state memory cells.
图7A-7E例示用给定的2位代码编码的4-状态存储器的编程或读取。7A-7E illustrate the programming or reading of a 4-state memory encoded with a given 2-bit code.
图8例示存储器由作为存在于控制器中的软件组件的存储器管理器来管理。FIG. 8 illustrates that memory is managed by a memory manager as a software component residing in the controller.
图9例示后台系统的软件模块。Figure 9 illustrates the software modules of the backend system.
图10A(i)-10A(iii)示意性例示逻辑组和元块之间的映射。10A(i)-10A(iii) schematically illustrate the mapping between logical groups and metablocks.
图10B示意性例示逻辑组和元块之间的映射。Fig. 10B schematically illustrates the mapping between logical groups and metablocks.
图11是示出用于基于现有构造确定接口完整性的反馈机制的框图。11 is a block diagram illustrating a feedback mechanism for determining interface integrity based on existing configurations.
图12是例示其中反馈机制使用散列引擎来确定接口完整性的实施例的框图。Figure 12 is a block diagram illustrating an embodiment in which the feedback mechanism uses a hash engine to determine interface integrity.
图13是示出通过总线接口传输数据和产生的散列值的例子的图。FIG. 13 is a diagram showing an example of data transfer through a bus interface and generated hash values.
图14示意性例示对存储器系统中的位错误的贡献者。Figure 14 schematically illustrates contributors to bit errors in a memory system.
图15可以用于例示后台接口中的伪回送方法的操作。Figure 15 may be used to illustrate the operation of the pseudo-loopback method in the backend interface.
图16和图17分别对应于图15的块705和709。Figures 16 and 17 correspond to blocks 705 and 709 of Figure 15, respectively.
图18是示出传输BER相对数据总线电压和数据传送速率的模拟图。FIG. 18 is a simulated graph showing transmit BER versus data bus voltage and data transfer rate.
图19是例示总线结构使用多存储器数据总线的存储器系统中的此串扰的框图。Figure 19 is a block diagram illustrating this crosstalk in a memory system whose bus structure uses multiple memory data buses.
具体实施方式Detailed ways
存储器系统memory system
图1到图7提供其中可以实现或例示本发明的各个方面的示例存储器系统。1 through 7 provide example memory systems in which various aspects of the present invention may be implemented or illustrated.
图8到图10例示用于实现本发明的各个方面的优选的存储器和块架构。8-10 illustrate preferred memory and block architectures for implementing various aspects of the invention.
图11-13例示控制器和一个或多个存储器电路之间的适应性内部接口的使用。11-13 illustrate the use of an adaptive internal interface between a controller and one or more memory circuits.
图1示意性例示适合于实现本发明的存储器系统的主要硬件组件。存储器系统90通常通过主机接口与主机80一起操作。存储器系统通常是存储卡或者嵌入的存储器系统的形式。存储器系统90包括其操作由控制器100控制的存储器200。存储器200包括分布在一个或多个集成电路芯片上的非易失性存储器单元的一个或多个阵列。控制器100包括接口110、处理器120、可选的协处理器121、ROM122(只读存储器)、RAM130(随机存取存储器)和可选的可编程非易失性存储器124。接口110具有将控制器与主机相接口的一个组件以及接口到存储器200的另一组件。存储在非易失性ROM122和/或可选的非易失性存储器124中的固件为处理器120提供代码以实现控制器100的功能。错误校正码可以由处理器120或者可选的协处理器121来处理。在一个替换实施例中,控制器100由状态机(未示出)实现。在另一实施例中,控制器100实现在主机内。Figure 1 schematically illustrates the main hardware components of a memory system suitable for implementing the invention. Memory system 90 typically operates with
物理存储器结构physical memory structure
图2示意性例示非易失性存储器单元。存储器单元10可以由具有诸如浮置栅极或者电介质层的电荷存储单元20的场效应晶体管实现。存储器单元10还包括源极14、漏极16和控制栅极30。Fig. 2 schematically illustrates a non-volatile memory cell. The
存在许多现今正使用的商业上成功的非易失性固态存储器。这些存储器器件可以采用不同类型的存储器单元,每种类型具有一个或多个电荷存储元件。There are many commercially successful non-volatile solid-state memories in use today. These memory devices may employ different types of memory cells, each type having one or more charge storage elements.
典型的非易失性存储器单元包括EEPROM和快闪EEPROM。在美国专利no.5,595,924中给出了EEPROM单元及其制造方法的例子。在美国专利No.5,070,032、5,095,344、5,315,541、5,343,063、5,661,053、5,313,421和6,222,762中给出了快闪EEPROM单元、其在存储器系统中的使用及其制造方法的例子。具体地,在美国专利No.5,570,315、5,903,495和6,046,935中描述了具有NAND单元结构的存储器器件的例子。而且,已经由Eitan等人在“NORM:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell”,IEEEElectron Device Letters,Vol.21,No.11,2000年11月,543-545页中以及在美国专利No.5,768,192和6,011,725中描述了利用电介质存储元件的存储器器件的例子。Typical non-volatile memory cells include EEPROM and flash EEPROM. An example of an EEPROM cell and its method of manufacture is given in US Patent no. 5,595,924. Examples of flash EEPROM cells, their use in memory systems and their methods of manufacture are given in US Patent Nos. 5,070,032, 5,095,344, 5,315,541, 5,343,063, 5,661,053, 5,313,421 and 6,222,762. Specifically, examples of memory devices having a NAND cell structure are described in US Patent Nos. 5,570,315, 5,903,495, and 6,046,935. Moreover, it has been published by Eitan et al. in "NORM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Letters, Vol.21, No.11, November 2000, pages 543-545 and in US Patent Examples of memory devices utilizing dielectric storage elements are described in Nos. 5,768,192 and 6,011,725.
实际上,通常通过在向控制栅极施加参考电压时感测跨过单元的源极和漏极电极的导电电流来读取该单元的存储器状态。因此,对于在单元的浮置栅极上的每个给定电荷,可以检测关于固定的参考控制栅极电压的相应导电电流。类似地,可编程到浮置栅极上的电荷的范围定义了相应的阈值电压窗或相应的导电电流窗。In practice, the memory state of a cell is typically read by sensing the conduction current across the cell's source and drain electrodes when a reference voltage is applied to the control gate. Thus, for each given charge on the cell's floating gate, a corresponding conduction current with respect to a fixed reference control gate voltage can be detected. Similarly, the range of charge programmable onto the floating gate defines a corresponding threshold voltage window or a corresponding conduction current window.
或者,取代检测在划分的电流窗之间的导电电流,能够在控制栅极处为处于测试下的给定存储器状态设置阈值电压,并检测导电电流是低于还是高于阈值电流。在一个实施方式中,通过检查导电电流经过位线的电容放电的速率来实现相对于阈值电流对导电电流的检测。Alternatively, instead of detecting conduction current between divided current windows, it is possible to set a threshold voltage at the control gate for a given memory state under test and detect whether the conduction current is below or above the threshold current. In one embodiment, detection of conduction current relative to a threshold current is accomplished by examining the rate at which conduction current discharges through the capacitance of the bit line.
图3例示对于在任何一个时间时浮置栅极可以选择性存储的四个不同的电荷Q1-Q4的源极-漏极电流ID和控制栅极电压VCG之间的关系。四个实线的ID相对VCG曲线表示分别对应于四个可能的存储器状态的、可以被编程在存储器单元的浮置栅极上的四个可能的电荷水平。作为例子,一群单元的阈值电压窗范围可以从0.5V到3.5V。通过将阈值窗以每个0.5V的间隔划分为五个区域,可以划界分别表示一个已擦除和六个已编程的状态的七个可能的存储器状态“0”、“1”、“2”、“3”、“4”、“5”、“6”。例如,如果如所示使用2μA的参考电流IREF,则用Q1编程的单元可以被认为处于存储器状态“1”,因为其曲线在由VCG=0.5V和1.0V划界的阈值窗的区域中与IREF相交。类似地,Q4处于存储器状态“5”。FIG. 3 illustrates the relationship between source-drain current ID and control gate voltage V CG for four different charges Q1-Q4 that the floating gate can selectively store at any one time. The four solid ID versus VCG curves represent four possible charge levels that can be programmed on the floating gate of a memory cell, corresponding to four possible memory states, respectively. As an example, the threshold voltage window for a group of cells may range from 0.5V to 3.5V. By dividing the threshold window into five regions at intervals of 0.5 V each, it is possible to demarcate the seven possible memory states "0", "1", "2" representing one erased and six programmed states, respectively. ", "3", "4", "5", "6". For example, if a reference current IREF of 2µA is used as shown, a cell programmed with Q1 can be considered to be in memory state "1" because its curve is in the region of the threshold window delimited by VCG = 0.5V and 1.0V with IREFs intersect. Similarly, Q4 is in memory state "5".
如从以上描述可以看出,使得存储器单元存储的状态越多,其阈值窗划分得越精细。例如,存储器器件可以具有含有范围从-1.5V到5V的阈值窗的存储器单元。这提供了6.5V的最大宽度。如果存储器单元要存储16个状态,则每个状态可以占据阈值窗中的从200mV到300mV。这将要求在编程和读取操作中的更高的精确度以便能够实现要求的分辨率。As can be seen from the above description, the more states the memory cell stores, the finer its threshold window is divided. For example, a memory device may have memory cells with a threshold window ranging from -1.5V to 5V. This provides a maximum width of 6.5V. If a memory cell were to store 16 states, each state could occupy from 200mV to 300mV in the threshold window. This will require higher precision in programming and reading operations in order to be able to achieve the required resolution.
图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全部连接到相同的选择线。Figure 4A schematically illustrates a string of memory cells organized as a NAND string.
当在编程期间读取或验证NAND串内的被寻址的存储器晶体管10时,为其控制栅极30提供适当的电压。同时,NAND串50中的其余未被寻址的存储器晶体管通过施加在其控制栅极上的充分的电压而完全导通。以此方式,从各个存储器晶体管的源极到NAND串的源极端有效地建立了导电路径,且同样从各个存储器晶体管的漏极到该单元的漏极端56有效地建立了导电路径。在美国专利No.5,570,315、5,903,495、6,046,935中描述了具有这种NAND串结构的存储器器件。When an addressed
图4B例示由诸如图4A所示的NAND串50构成的存储器单元的NAND阵列210的例子。沿着NAND串的每列,诸如位线36的位线耦接到每个NAND串的漏极端56。沿着每排NAND串,诸如源极线34的源极线耦接到每个NAND串的源极端54。而且,沿着一排NAND串中的一行存储器单元的控制栅极连接到诸如字线42的字线。沿着一排NAND串中的一行选择晶体管的控制栅极连接到诸如选择线44的选择线。可以通过在一排NAND串的字线和选择线上的适当的电压来寻址该排NAND串中的整行存储器单元。当NAND串内的存储器晶体管正被读取时,该串中的剩余的存储器晶体管经由其相关的字线而硬导通(turn on hard),以便流经该串的电流实质上依赖于被读取的单元中存储的电荷的水平。FIG. 4B illustrates an example of a
图5例示被并行感测或编程的例如按NAND配置组织的一页存储器单元。图5主要示出图4V的存储器阵列210中的一堆NAND串50,其中每个NAND串的细节如图4A中明确示出。诸如页60的“页”是被使得能够被并行感测或编程的存储器单元的组。这通过相应页的感测放大器212来实现。感测的结果被锁存在相应组的锁存器214中,每个感测放大器可以经由位线耦接到NAND串。通过共同连接到字线42的页的单元的控制栅极使能页,并且可由感测放大器访问的每个单元可经由位线36访问。作为例子,当分别感测或编程单元的页60时,感测电压或者编程电压与位线上的适当的电压一起分别被施加到公共字线WL3。Figure 5 illustrates a page of memory cells organized, eg, in a NAND configuration, being sensed or programmed in parallel. Figure 5 generally shows a bank of NAND strings 50 in the
存储器的物理组织physical organization of memory
快闪存储器和其他类型的存储器之间的一个重要差别是单元必须从被擦除状态编程。即,浮置栅极首先必须没有电荷。然后编程将希望量的电荷添加回到浮置栅极。其不支持从浮置栅极移除一部分电荷以从较多编程状态来到较少编程状态。这意味着,更新数据不能盖写(overwrite)现有数据并且必须被写到先前未被写入的位置。An important difference between flash memory and other types of memory is that cells must be programmed from an erased state. That is, the floating gate must first be free of charge. Programming then adds the desired amount of charge back to the floating gate. It does not support removing a portion of the charge from the floating gate to go from a more programmed state to a less programmed state. This means that updated data cannot overwrite existing data and must be written to a location that was not previously written.
此外,擦除要从浮置栅极清空所有电荷并通常花费可观的时间。为此原因,逐个单元或甚至逐页擦除将是令人厌烦并且非常慢的。实践中,存储器单元的阵列被划分为大量的存储器单元的块。如对于快闪EEPROM普遍的,块是擦除的单位。即,每块包含一起被擦除的最少数量的存储器单元。尽管在块中聚集大量单元以并行被擦除将提高擦除性能,但是大尺寸的块也使得必须应对大量的更新和废弃数据。就在块被擦除之前,需要垃圾回收以挽救块中的非废弃的数据。Furthermore, erasing removes all charge from the floating gate and typically takes a considerable amount of time. For this reason, erasing cell by cell or even page by page would be tedious and very slow. In practice, an array of memory cells is divided into a large number of blocks of memory cells. As is common for flash EEPROMs, a block is the unit of erase. That is, each block contains a minimum number of memory cells that are erased together. Although aggregating a large number of cells in a block to be erased in parallel will improve erase performance, the large size of the block also makes it necessary to deal with a large number of updates and obsolete data. Just before a block is erased, garbage collection is required to rescue non-obsolete data in the block.
每个块通常被划分为多页。页是编程或读取的单位。在一个实施例中,各个页可以被划分为段并且段可以包含作为基本编程操作一次被写入的最少数量的单元。一页或多页数据通常存储在一行存储器单元中。一页可以存储一个或多个扇区。扇区包括用户数据和开销数据。跨越多个阵列分布的多个块和页也可以作为元块和元页一起操作。如果它们分布在多个芯片上,则它们可以作为元块和元页一起操作。Each block is usually divided into pages. A page is a unit of programming or reading. In one embodiment, individual pages may be divided into segments and a segment may contain the minimum number of cells that are written at one time as a basic programming operation. One or more pages of data are typically stored in one row of memory cells. A page can store one or more sectors. A sector includes user data and overhead data. Multiple blocks and pages distributed across multiple arrays can also be operated together as metablocks and metapages. If they are spread across multiple chips, they can be operated together as metablocks and metapages.
多级单元(“MLC”)存储器划分的例子Example of Multi-Level Cell (“MLC”) memory partitioning
已经结合图3描述了其中每个存储器单元存储多位数据的非易失性存储器。具体例子是由场效应晶体管的阵列形成的存储器,每个场效应晶体管具有在其沟道区和其控制栅极之间的电荷存储层。电荷存储层或单元可以存储一个范围的电荷,引起对于每个场效应晶体管的一个范围的阈值电压。可能的阈值电压的范围跨度是阈值窗。当阈值窗被划分为阈值电压的多个子范围或者区域时,每个可分辨的区域用于表示存储器单元的不同存储器状态。可以通过一个或多个二进制位来编码多个存储器状态。例如,被划分为四个区域的存储器单元可以支持可以被编码为2位数据的四个状态。类似地,被划分为八个区域的存储器单元可以支持可以被编码为3位数据的八个存储器状态,等等。A nonvolatile memory in which each memory cell stores multiple bits of data has been described in connection with FIG. 3 . A specific example is a memory formed by an array of field effect transistors, each field effect transistor having a charge storage layer between its channel region and its control gate. A charge storage layer or cell can store a range of charges, resulting in a range of threshold voltages for each field effect transistor. The range span of possible threshold voltages is the threshold window. When the threshold window is divided into multiple sub-ranges or regions of threshold voltage, each distinguishable region is used to represent a different memory state of the memory cell. Multiple memory states can be encoded by one or more binary bits. For example, a memory cell divided into four regions can support four states that can be encoded as 2-bit data. Similarly, a memory cell divided into eight regions can support eight memory states that can be encoded as 3 bits of data, and so on.
所有位,全序列MLC编程All bits, full sequence MLC programming
图6(0)-6(2)例示编程一群4状态存储器单元的例子。图6(0)例示可编程为分别表示存储器状态“0”、“1”、“2”和“3”的四个不同的阈值电压分布的该群存储器单元。图6(1)例示对于被擦除的存储器的“被擦除”阈值电压的初始分布。图6(2)例示在许多存储器单元已经被编程之后存储器的例子。实质上,单元初始具有“被擦除”阈值电压并且编程会将其移动到更高的值而进入由验证电平vV1、vV2和vV3划界的三个区域之一。以此方式,每个存储器单元可以被编程到三个被编程状态“1”、“2”和“3”之一或者在“被擦除”状态中保持未被编程。随着存储器得到更多编程,如图6(1)所示的“被擦除”状态的初始分布将变得更窄并且被擦除状态由“0”状态表示。6(0)-6(2) illustrate an example of programming a group of 4-state memory cells. Figure 6(0) illustrates the group of memory cells programmable to four different threshold voltage distributions representing memory states "0", "1", "2" and "3", respectively. Figure 6(1) illustrates the initial distribution of "erased" threshold voltages for an erased memory. Figure 6(2) illustrates an example of a memory after many memory cells have been programmed. Essentially, the cell initially has an "erased" threshold voltage and programming will move it to a higher value into one of the three regions delimited by verify levels vV 1 , vV 2 and vV 3 . In this way, each memory cell can be programmed to one of three programmed states "1", "2" and "3" or remain unprogrammed in the "erased" state. As the memory gets more programmed, the initial distribution of "erased" states as shown in Figure 6(1) will become narrower and the erased states are represented by the "0" state.
可以使用具有较低位和较高位的2-位码来表示四个存储器状态的每个。例如,“0”、“1”、“2”和“3”状态分别由“11”、“01”、“00”和“10”表示。可以通过在“全序列”模式下感测而从存储器读取2-位数据,在该“全序列”模式中,通过分别在三个子遍中相对于读取划界阈值rV1、rV2和rV3进行感测来一起感测两位。Each of the four memory states can be represented using a 2-bit code with lower and upper bits. For example, "0", "1", "2" and "3" states are represented by "11", "01", "00" and "10", respectively. 2-bit data can be read from memory by sensing in "full sequence" mode by demarcating thresholds rV 1 , rV 2 and rV 3 senses to sense two bits together.
逐位MLC编程和读取Bit-by-bit MLC programming and reading
图7A-7E例示用给定的2位码编码的4状态存储器的编程和读取。图7A例示当每个存储器单元使用2-位码存储两位数据时4状态存储器阵列的阈值电压分布。这样的2位码已经在美国专利No.7,057,939中公开。7A-7E illustrate programming and reading of a 4-state memory encoded with a given 2-bit code. 7A illustrates threshold voltage distributions for a 4-state memory array when each memory cell stores two bits of data using a 2-bit code. Such a 2-bit code has been disclosed in US Patent No. 7,057,939.
图7B例示使用2位码的2遍编程方案的较高页编程(较高位)。在将较高页位编程到“0”的第二遍中,如果较低页位处于“1”,则如通过将“未被编程的”存储器状态“0”编程到“1”所表示的,逻辑状态(1,1)转变到(0,1)。如果较低页位处于“0”,则通过从“中间”状态编程到“3”,获得逻辑状态(0,0)。类似地,如果较高页要保持在“1”,而较低页已经被编程到“0”,则如通过将“中间”状态编程到“2”所表示的,将需要从“中间”状态到(1,0)的变换。FIG. 7B illustrates upper page programming (upper bits) of a 2-pass programming scheme using a 2-bit code. In the second pass of programming the upper page bits to "0", if the lower page bits are at "1", as represented by programming the "unprogrammed" memory state "0" to "1" , the logical state (1,1) transitions to (0,1). If the lower page bit is at "0", the logic state (0,0) is obtained by programming from the "middle" state to "3". Similarly, if the upper page is to remain at a "1" and the lower page has been programmed to a "0", then it will be necessary to start from the "middle" state as represented by programming the "middle" state to a "2". Transformation to (1,0).
图7C例示使用2位码的2遍编程方案中的较高页编程(较高位)。在将较高位编程到“0”的第二遍中,如果较低页位处于“1”,则如通过将“未被编程的”存储器状态“0”编程到“1”而表示的,逻辑状态(1,1)转变到(0,1)。如果较低页位处于“0”,则通过从“中间”状态编程到“3”获得逻辑状态(0,0)。类似地,如果较高页要保持在“1”,而较低页已经被编程到“0”,则如通过将“中间”状态编程到“2”所表示的,将需要从“中间”状态到(1,0)的转变。Figure 7C illustrates upper page programming (upper bits) in a 2-pass programming scheme using 2-bit codes. In the second pass of programming the upper bits to "0", if the lower page bits are at "1", as represented by programming the "unprogrammed" memory state "0" to "1", the logic State (1,1) transitions to (0,1). If the lower page bit is at "0", the logic state (0,0) is obtained by programming from the "middle" state to "3". Similarly, if the upper page is to remain at a "1" and the lower page has been programmed to a "0", then it will be necessary to start from the "middle" state as represented by programming the "middle" state to a "2". Transformation to (1,0).
图7D例示辨别用2位码编码的4状态存储器的较低位所需的读操作。首先进行读取B操作以确定是否可以读取LM标志。如果可以,较高页已经被编程并且读取B操作将正确地产生较低页数据。另一方面,如果较高页还没有被编程,则较低页数据将通过读取A操作被读取。Figure 7D illustrates the read operations required to discern the lower bits of a 4-state memory encoded with a 2-bit code. A read B operation is done first to determine if the LM flag can be read. If it can, the upper page has already been programmed and the read B operation will correctly produce the lower page data. On the other hand, if the upper page has not been programmed, the lower page data will be read by a read A operation.
图7E例示辨别用2位码编码的4状态存储器的较高位所需的读操作。如从图中清楚的,较高页读取将需要分别相对于分界阈值电压DA、DB和DC的读取A、读取B和读取C的3遍读取。Figure 7E illustrates the read operations required to discern the upper bits of a 4-state memory encoded with a 2-bit code. As is clear from the figure, a higher page read would require 3 read passes of Read A , Read B and Read C with respect to the demarcation threshold voltages DA, DB and DC, respectively.
在对于2位存储器的逐位方案中,存储器单元的物理页将存储两个逻辑数据页:对应于较低位的较低数据页和对应于较高位的较高数据页。In a bit-by-bit scheme for 2-bit memory, a physical page of memory cells will store two logical pages of data: a lower data page corresponding to the lower bits and an upper data page corresponding to the upper bits.
二进制和MLC存储器划分Binary and MLC memory partitioning
图6和图7例示2位(也称为“D2”)存储器的例子。如可见,D2存储器具有被划分为四个区域的其阈值范围或者阈值窗,指定4个状态。类似地,在D3中,每个单元存储3位(较低、之间和较高位),并且存在8个区域。在D4中,存在4位和16个区域,等等。随着存储器的有限的阈值窗被划分为更多的区域,编程和读取的分辨率必然将变得更精细。随着存储器单元配置为存储更多位,出现两个问题。6 and 7 illustrate examples of 2-bit (also referred to as "D2") memory. As can be seen, the D2 memory has its threshold range or threshold window divided into four regions, specifying 4 states. Similarly, in D3, each cell stores 3 bits (lower, middle, and upper bits), and there are 8 regions. In D4, there are 4 bits and 16 regions, and so on. As the memory's finite threshold window is divided into more regions, the programming and reading resolution will necessarily become finer. As memory cells are configured to store more bits, two problems arise.
首先,当单元的阈值必须更准确地编程或读取时,编程或读取将更慢。事实上,在实践中,(编程和读取中所需的)感测时间将随着划分的级别的数量的平方而增加。First, programming or reading will be slower when the cell's threshold has to be programmed or read more accurately. In fact, in practice the sensing time (required in programming and reading) will increase as the square of the number of divided levels.
第二,快闪存储器随着使用老化而具有耐用性问题。当电源重复地被编程和擦除时,通过跨过电介质的隧穿,电荷来回进出浮置栅极20(见图2)。每次一些点和可能变得被俘获在电介质中并将修改单元的阈值。事实上,随着使用,阈值窗将逐渐缩窄。因此,MLC存储器通常被设置为在容量、性能和可靠性之间具有折衷。Second, flash memory has endurance issues as it ages with use. As the power source is repeatedly programmed and erased, charge travels to and from the floating
相反,将看出对于二进制存储器,存储器的阈值窗仅被划分为两个区域。这将允许错误的最大余量。因此,尽管二进制划分在存储容量上减少但是将提供最大的性能和可靠性。In contrast, it will be seen that for binary memory, the threshold window of the memory is only divided into two regions. This will allow maximum margin for error. Thus, binary partitioning will provide maximum performance and reliability despite the reduction in storage capacity.
结合图7所述的多遍、逐位编程和读取技术提供了MLC和二进制划分之间的顺利转变。在此情况下,如果仅用较低位编程存储器,则其有效地成为二进制划分的存储器。尽管此方法没有向在单级单元(“SLC”)存储器的情况下那样完全优化阈值窗的范围,但是其具有使用与在MLC存储器的较低位的操作中系统的分界或感测电平的优点。如稍后将描述的,此方法允许MLC存储器被“征用”以用作二进制存储器,或者反之依然。但是,应该理解MLC存储器趋向于具有更严格的使用规范。The multi-pass, bit-by-bit programming and reading technique described in connection with Figure 7 provides a smooth transition between MLC and binary partitioning. In this case, if the memory is programmed with only the lower bits, it effectively becomes a binary partitioned memory. Although this method does not fully optimize the range of the threshold window as in the case of single-level cell ("SLC") memory, it has the advantage of using a demarcation or sensing level that is different from the system in the operation of the lower bits of MLC memory. advantage. As will be described later, this approach allows MLC memory to be "commanded" for use as binary memory, or vice versa. However, it should be understood that MLC memories tend to have stricter usage specifications.
二进制存储器和部分页编程Binary memory and partial page programming
被编程到要个存储器单元的电荷存储元件中的电荷产生干扰相邻存储器单元的电场的电场。这将影响实际上是具有电荷存储元件的场效应晶体管的相邻存储器单元的特性。具体地,当被感测时,存储器单元将看起来具有比其更少被干扰时更高的阈值水平(或更多被编程)。The charges programmed into the charge storage elements of individual memory cells generate electric fields that interfere with the electric fields of neighboring memory cells. This will affect the properties of adjacent memory cells which are actually field effect transistors with charge storage elements. Specifically, when sensed, a memory cell will appear to have a higher threshold level (or be more programmed) than if it were less disturbed.
通常,如果存储器单元在第一场环境下被编程验证并且稍后由于相邻的单元随后被编程有不同的电荷而在不同的场环境下再次被读取,由于在被称为“Yupin效应”的现象中的相邻浮置栅极之间的耦合,读取准确性可能受影响。随着半导体存储器中不断更高的集成,随着内部蜂窝间距收缩,存储器单元之间的由于存储的电荷引起的电场的微扰(Yupin效应)变得日益可观。Typically, if a memory cell is program-verified in a first field environment and later read again in a different field environment due to adjacent cells being subsequently programmed with a different charge, due to a phenomenon known as the "Yupin effect" In the phenomenon of coupling between adjacent floating gates, read accuracy may be affected. With ever-higher integration in semiconductor memories, perturbations in the electric field between memory cells due to stored charges (Yupin effect) become increasingly appreciable as the intercellular pitch shrinks.
以上结合图7所述的逐位MLC编程技术被设计为最小化来自沿着相同字线的队员的编程干扰。如从图7B可见,在两遍编程的第一遍中,单元的阈值最多移动在阈值窗以上的一半路程。第一遍的影响被最终遍压制(overtake)。在最终遍,阈值仅移动路程的四分之一。换句话说,对于D2,相邻单元之间的电荷差被限制到其最大的四分之一。对于D3,通过三遍,最终遍将把电荷差限制到其最大的八分之一。The bit-by-bit MLC programming technique described above in connection with FIG. 7 is designed to minimize program disturb from team members along the same word line. As can be seen from Figure 7B, in the first pass of the two-pass programming, the cell's threshold moves at most half way above the threshold window. The influence of the first pass is overtaken by the final pass. In the final pass, the threshold moves only a quarter of the way. In other words, for D2, the charge difference between adjacent cells is limited to a quarter of its maximum. For D3, through three passes, the final pass will limit the charge difference to one-eighth of its maximum.
但是,逐位多遍编程技术将被部分页编程损害。页是通常沿着一行字线的存储器单元的组,其作为单位一起被编程。能够分别通过多遍编程来编程一页的不重叠的部分。但是,由于不是该页的所有单元都在最终遍中一起被编程,可能在一页完成之后创建在单元之间的在被编程的电荷中的大的差别。因此,部分页编程将导致更大的编程干扰,并且将需要更大的余量用于感测准确性。However, bit-by-bit multi-pass programming techniques will be compromised by partial page programming. A page is a group of memory cells, usually along a row of word lines, that are programmed together as a unit. Non-overlapping portions of a page can be programmed by multi-pass programming respectively. However, since not all cells of the page are programmed together in the final pass, large differences in programmed charge between cells may be created after a page is complete. Therefore, partial page programming will result in larger program disturb and will require a larger margin for sensing accuracy.
在存储器被配置为二进制存储器的情况下,操作的余量与MLC的操作的余量更宽。在优选实施例中,二进制存储器配置为支持部分页编程,在该部分页编程中,可以分别在队一页的多遍编程的一遍中编程该页的不重叠的部分。通过以大尺寸的页操作,可以提高编程和读取性能。但是,当页尺寸比主机的写单位(通常512字节的扇区)大得多时,其使用将是低效的。以比一页更精细的粒度操作允许这样的页的更有效的使用。In the case where the memory is configured as a binary memory, the margin of operation is wider than that of MLC. In a preferred embodiment, the binary memory is configured to support partial page programming, in which non-overlapping portions of a page can be programmed in each of multiple pass programming passes of a page. Program and read performance can be improved by operating with large-sized pages. However, its use will be inefficient when the page size is much larger than the host's write unit (typically 512-byte sectors). Operating at a granularity finer than a page allows more efficient use of such pages.
已经在二进制相对MLC之间给出例子。应该理解,通常,相同的原理适用于具有第一数量的等级的存储器和具有比第一存储器多得第二数量的等级的存储器之间。Examples have been given between binary versus MLC. It should be understood that, in general, the same principles apply between a memory having a first number of ranks and a memory having a second number of ranks more than the first memory.
逻辑和物理块结构Logical and Physical Block Structure
图8例示存储器单元由作为存在于控制器中的软件组件的存储器管理器来管理。存储器200被组织为块,每块单元是擦除的最小单位。依赖于实现方式,存储器系统可以利用通过将块聚合为“元块”以及还有“多个元块”而形成的甚至大量的擦除的单位来操作。为了方便,此描述将把擦除的单位称为元块,尽管将理解一些系统利用诸如通过元块的聚合而形成的“元块”的甚至更大的擦出单位而操作。FIG. 8 illustrates that memory units are managed by a memory manager as a software component residing in the controller. The
主机80在运行在操作系统的文件系统下得应用时访问存储器200。通常,主机系统寻址其中录入每个扇区存储512字节的数据的逻辑扇区的单元中的数据。而且,主机通常按逻辑簇的单位向存储器系统读取或写入,每个逻辑簇由一个或多个逻辑扇区组成。在一些主机系统中,可以存在可选的主机侧存储器管理器以进行主机处的较低级存储器管理。在大多数情况下,在读取或写入操作期间,主机80实际上向存储器系统90发出命令来读取或写入包含具有连续地址的一串逻辑扇区的数据的段。The
存储器侧的存储器管理器300实现在存储器系统90的控制器100中以管理在快闪存储器200的元块之间的主机逻辑扇区的数据的存储和取回。存储器管理器包括前台系统310和后台系统320。前台系统310包括主机接口312。后台系统320包括用于管理元块的擦除、读取和写入操作的多个软件模块。存储器管理器还维持与其在快闪存储器200和控制器RAM130之间的操作相关联的系统控制数据和目录数据。The memory manager 300 on the memory side is implemented in the
图9例示后台系统的软件模块。后台系统主要包括两个功能模块:媒体管理层330以及数据流和排序层340。Figure 9 illustrates the software modules of the backend system. The background system mainly includes two functional modules:
媒体管理层330负责组织快闪存储器元块结构内的逻辑数据存储。稍后将在关于“媒体管理层”的部分中提供更多细节。The
数据流和排序层340负责在前台系统和快闪存储器之间的数据的扇区的排序和传送。该层包括命令排序器342、低级排序器344和快闪控制层346。稍后将在关于“低级系统说明”的部分中提供更多细节。The data flow and
存储器管理器300优选实现在控制器100中。其将从主机接收的逻辑地址翻译为其中实际存储数据的存储器阵列内的物理地址,然后掌握这些地址翻译。The memory manager 300 is preferably implemented in the
图10A(i)-10A(iii)示意性例示逻辑组和元块之间的映射。物理存储器的元块具有用于存储逻辑组的N个逻辑扇区的数据的N个物理扇区。图10A(i)示出来自逻辑组LGi的数据,其中逻辑扇区按连续的逻辑顺序0、1、……、N-1。图10A(ii)示出相同的数据按相同的逻辑顺序被存储在元块中。元块在按此方式存储时被称为是“顺序的”。通常,元块可以具有按不同顺序存储的数据,在此情况下,元被称为是“非顺序的”或者“混乱的”。10A(i)-10A(iii) schematically illustrate the mapping between logical groups and metablocks. A metablock of physical memory has N physical sectors for storing data of a logical group of N logical sectors. FIG. 10A(i) shows data from a logical group LG i , where the logical sectors are in consecutive
在逻辑组的最低地址和其被映射到的元块的最低地址之间可能存在偏移。在此情况下,逻辑扇区地址回绕作为从元块内的逻辑组的底部回到逻辑组的顶部的循环。例如,在图10A(iii)中,元块在以逻辑扇区k的数据开始的其第一位置进行存储。当达到最后的逻辑扇区N-1时,其绕回到扇区0并最终在其最后的物理扇区中存储与逻辑扇区k-1相关联的数据。在优选实施例中,使用页标签来标识任何偏移,比如标识元块的第一物理扇区中存储的数据的开始的逻辑扇区地址。当两个块仅页标签不同时,将认为它们具有以类似顺序存储的其逻辑扇区。There may be an offset between the lowest address of a logical group and the lowest address of the metablock to which it is mapped. In this case, the logical sector address wraps around as a loop from the bottom of the logical group within the metablock back to the top of the logical group. For example, in FIG. 10A(iii), the metablock is stored in its first location starting with the data of logical sector k. When the last logical sector N-1 is reached, it wraps back to
图10B示意性例示逻辑组和元块之间的映射。除了其中数据当前正被更新的少量逻辑组之外,每个逻辑组380被映射到唯一的元块370。在逻辑组已经被更新之后,其可以被映射到不同的元块。映射信息被维持在逻辑到物理目录集中,这将在稍后更详细地描述。Fig. 10B schematically illustrates the mapping between logical groups and metablocks. Each logical group 380 is mapped to a
适应性的控制器-存储器接口Adaptive Controller-Memory Interface
此部分给出反馈机制和处理单元的使用,其监视存储器系统的内部控制器-存储器接口的传送完整性,并且可以因此调整接口设置。这允许该系统优化接口性能。例如,该系统的功率能够降低或者该接口的总线时钟能够加速,因为这通常是内部性能瓶颈,所以从存储器系统的外部(即从主机)来看,这允许性能的增加。在传输错误的情况下,通过接口完整性反馈的帮助并且依赖于实施例通过其他传感器或参数的帮助,反馈处理单元可以决定是否调整接口设置、进行传输重试或者忽略该错误。以下的讨论也将在如图4A、4B和图5中所示的对于存储器阵列使用NAND型架构的存储卡的上下文中给出,但是很容易扩展到对于其他架构的类似的内部接口、其他形式的存储器以及非卡得使用,比如嵌入式系统、SSD、等等。This section presents the use of feedback mechanisms and processing units that monitor the transfer integrity of the internal controller-memory interface of the memory system and can adjust interface settings accordingly. This allows the system to optimize interface performance. For example, the power of the system can be reduced or the bus clock of the interface can be sped up, since this is usually an internal performance bottleneck, this allows an increase in performance from the outside of the memory system (ie from the host). In case of a transmission error, with the help of interface integrity feedback and, depending on the embodiment, other sensors or parameters, the feedback processing unit can decide whether to adjust the interface settings, perform a transmission retry, or ignore the error. The following discussion will also be given in the context of memory cards using NAND-type architectures for memory arrays as shown in Figures 4A, 4B and 5, but can be easily extended to other architectures with similar internal interfaces, other forms of Memory and non-card use, such as embedded systems, SSDs, and so on.
尽管以下讨论可以基于各个示例实施例以提供具体例子,但是在此的技术和结构通常完全可以适用于具有控制器和可以独立地操作的多个堆的存储器系统,其中堆包括一些量的可以用于存储系统数据的无论是快闪的还是其他种类的非易失性存储器,控制器可以使用该系统数据来管理存储器系统。除了以上列出的其他参考之外,这些可以包括在以下美国专利、专利公开和专利号中给出的各种存储器系统:7,840,766;US-2005-0154819-A1;US-2007-0061581-A1;US-2007-0061597-A1;US-2007-0113030-A1;US-2008-0155178-A1;US-2008-0155228-A1;US-2008-0155176-A1;US2008-0155177-A1;US-2008-0155227-A1;US-2008-0155175A1;12/348,819;12/348,825;12/348,891;12/348,895;12/348,899;12/642,584;12/642,611;US12/642,649;12/642,728;12/642,740和61/142,620。Although the following discussion may be based on various example embodiments to provide specific examples, the techniques and structures herein are generally well applicable to memory systems having a controller and multiple heaps that can operate independently, where the heaps include some amount of available Whether it is flash or some other kind of non-volatile memory that stores system data, the controller can use the system data to manage the memory system. These may include, in addition to the other references listed above, the various memory systems given in the following US patents, patent publications and patent numbers: 7,840,766; US-2005-0154819-A1; US-2007-0061581-A1; US-2007-0061597-A1; US-2007-0113030-A1; US-2008-0155178-A1; US-2008-0155228-A1; 0155227-A1; US-2008-0155175A1; 12/348,819; 12/348,825; 12/348,891; 61/142,620.
在讨论示例实施例之前,此部分将通过进一步考虑以上克服的问题而开始。使用控制器-存储器器件接口来在控制器(100,图1)和一个或多个NAND(示例实施例中)器件(200,图1)之间传送数据。(注意,此讨论涉及在控制器100和快闪存储器200之间的在存储器系统90上的内部接口,而接口110是控制使用来与存储器系统的外部通信的主机接口。)已经开发了不同的NAND接口模式来增加对速度、功耗等等折衷的接口性能。由于此接口通常是性能瓶颈,所以这些接口被推到了对于最大化系统性能的限制。为了避免数据错误,接口设置(比如电压、频率、驱动强度和转换速率控制)正被设置为用于最差情况的情形(极端温度、极端负载电容、极端电压等等)。从而,器件通常被设计为具有最差情况安全余量,其变为通常条件下的大的余量。在这样的通常条件下,接口设置可以被优化到高得多的接口性能而不损害产品可靠性。不用诸如在以下给出的机制,存储器器件将继续操作在最差情况性能设置。This section will begin by further considering the problems overcome above before discussing example embodiments. Data is transferred between the controller (100, FIG. 1) and one or more NAND (in example embodiments) devices (200, FIG. 1) using a controller-memory device interface. (Note that this discussion refers to the internal interface on memory system 90 between
例如,在以33MHz到加速的40MH到过加速的50MHz和超级过加速的60MHz的标定总线频率时对于16位正常模式的突发数据传送时间之间的简单比较分别得到大约17%、33%和45%的极大的等待时间降低。这示出在表1中,其中列是频率、对应的周期(tcyc)、传送2142字节数据的时间以及相对于在33MHz时的速度的速度比率。For example, a simple comparison between the burst transfer times for 16-bit normal mode at nominal bus frequencies of 33MHz to overboosted 40MH to overboosted 50MHz and super overboosted 60MHz yields approximately 17%, 33%, and Huge wait time reduction of 45%. This is shown in Table 1, where the columns are frequency, corresponding cycle (t cyc ), time to transfer 2142 bytes of data, and speed ratio relative to speed at 33 MHz.
在现有技术中,对于给定的产品,快闪接口性能通常被设置为固定性能。然后,设计考虑到最差情况设计。在一些产品中,快闪接口被设置用于“接近最差情况”,允许一些接口性能优化,但是冒着一些较低的器件产出或者增加的数据错误的风险。In the prior art, for a given product, the performance of the flash interface is usually set as a fixed performance. Then, the design takes into account the worst case design. In some products, the flash interface is configured for "near worst case", allowing some optimization of interface performance, but at the risk of some lower device yield or increased data errors.
此部分给出反馈机制和处理单元,该反馈机制和处理单元监视接口性能完整性并且据此调整接口设置以便优化接口性能。在传输错误的情况下,反馈处理单元(通过接口完整性反馈以及可能通过其他传感器或者参数的帮助)可以决定是否调整接口设置、进行传输重试或者忽略该错误。在没有传输错误的情况下,该反馈处理单元可以决定照原样留下接口设置或者修改接口设置以便增加接口性能。另外,可以以这样的方式设计接口完整性反馈机制:反馈处理单元可以得到不同等级的信息,比如二进制的通过/失败指示、通过/失败加上错误的数量或者通过/失败加上错误的数量加上错误位置。This section presents a feedback mechanism and processing unit that monitors interface performance integrity and adjusts interface settings accordingly in order to optimize interface performance. In case of a transmission error, the feedback processing unit (via interface integrity feedback and possibly with the help of other sensors or parameters) can decide whether to adjust the interface settings, retry the transmission, or ignore the error. In the absence of transmission errors, the feedback processing unit may decide to leave the interface settings as they are or to modify the interface settings in order to increase interface performance. In addition, the interface integrity feedback mechanism can be designed in such a way that the feedback processing unit can get different levels of information, such as binary pass/fail indication, pass/fail plus the number of errors or pass/fail plus the number of errors plus wrong position.
根据该实施例,反馈机制可以利用现有期间基础结构或者可以通过诸如哈希引擎的专用机制进一步被优化。这样的专用机制可以以硬件、软件或者它们的组合来实现。还可以通过能够校正传输错误的错误校正引擎来补充哈希引擎。这样的方法将允许接口应对一个级别的位错误率,同时仍达到最佳性能。传输校正能力是有价值的,因为在现有技术中对于NAND位故障的ECC的设计仅考虑了存储器本身上的错误,并且未考虑在数据在控制器和存储器器件之间传送时可能发生的接口错误。随着接口性能升高,传输错误的可能性升高。使遗留ECC来应对接口错误降低了遗留ECC在性能以及对于不可恢复的错误的概率方面的能力。设计专用接口错误校正引擎可以允许“分而治之”,让遗留ECC仅关注于NAND产生的错误。(关于ECC的另外的背景细节可以在以下美国专利、专利公开和专利申请号中找到:2009/0094482;7,502,254;2007/0268745;2007/0283081;7,310,347;7,493,457;7,426,623;2007/0065119;2007/0061502;2007/0091677;2007/0180346;2008/0181000;2007/0260808;2005/0213393;6,510,488;7,058,818;2008/0244338;2008/0244367;2008/0250300以及2008/0104312。)Depending on the embodiment, the feedback mechanism may utilize existing session infrastructure or may be further optimized by a dedicated mechanism such as a hash engine. Such dedicated mechanisms may be implemented in hardware, software or a combination thereof. The hashing engine can also be supplemented by an error correction engine capable of correcting transmission errors. Such an approach would allow the interface to cope with a level of bit error rate while still achieving optimal performance. The transfer correction capability is valuable because the design of ECC for NAND bit failures in the prior art only considers errors on the memory itself, and does not consider the interface that may occur when data is transferred between the controller and the memory device mistake. As the performance of the interface increases, the possibility of transmission errors increases. Having legacy ECC cope with interface errors reduces the capabilities of legacy ECC in terms of performance and probability for unrecoverable errors. Designing a dedicated interface error correction engine allows for “divide and conquer” where legacy ECC only focuses on NAND-generated errors. (Additional background details on ECC can be found in the following US patents, patent publications and patent application numbers: 2009/0094482; 7,502,254; 2007/0268745; 2007/0283081; 7,310,347; ; 2007/0091677; 2007/0180346; 2008/0181000; 2007/0260808; 2005/0213393; 6,510,488; 7,058,818; 2008/0244338;
图11是示出这样的反馈机制但是基于通常的现有技术已有的NAND/控制器基础结构的框图。这将帮助进一步例示所涉及的概念中的一些以及提供适应性接口的替换实施例。在图11中,仅明确示出了与本讨论有关的元件,并且删除了其他元件以简化本讨论。在控制器100上的是ASIC核411、ECC电路413、输出缓冲器415、输入缓冲器425、传输电路417和接收电路427。尽管在此示出为分离的,但是在实际的实现中可以不这样:输入或输出缓冲器可以重叠或者可以相同;传输和接收可以是共享的元件或者甚至可以相同;ECC电路可以实现为ASIC核中的软件;等等。在存储器侧200,示出的元件是读电路431和传送电路441(它们再次可以部分或完全重叠)、输入数据缓冲器433和输出数据缓冲器443(类似地,它们可以是单个缓冲器)以及NAND核435。然后控制器100和存储器电路通过总线结构401连接。Figure 11 is a block diagram illustrating such a feedback mechanism but based on a common prior art existing NAND/controller infrastructure. This will help further illustrate some of the concepts involved as well as provide alternative embodiments of adaptive interfaces. In FIG. 11, only elements relevant to this discussion are explicitly shown, and other elements are deleted to simplify this discussion. On the
用于一旦在控制器100处接收到主机数据集的一般流程是从ASIC核411经过传输电路417并到总线结构401之上而到输出数据缓冲器415。在存储器200上,数据由接收电路431从总线传送到输入数据缓冲器433中,然后被写到NAND核435中。随后,当主机想要访问该数据时,该数据被从NAND核435读出到输出数据缓冲器443,由传输电路441传送到总线结构401上,然后由接收电路427从总线读出到控制器的输入数据缓冲器425中.存储器系统通常使用错误校正码(ECC)来检测并矫正可能进入数据的错误,其中控制器产生相应的ECC,该相应的ECC与数据一起传输并写到NAND核中,然后与数据一起读回。然后ECC引擎413具有对该数据及其相应的ECC的访问,如需要,允许数据在被传递到主机上之前被检验并校正。The general flow for a host data set once received at
尽管ECC可以用于校正数据错误,但是其仅可以校正有限量的错误,其中该量是设计选择。在这些能力内,ECC引擎413可以叫正在来回行程期间累积的任意错误,包括传输错误以及与NAND核435本身相关联的错误,比如写错误、读错误和干扰以及在存储时的数据的其他损失;但是,ECC的选择通常仅基于对与NAND核435有关的错误的考虑。在一些布置中,比如在对于ECC的以上列出的参考文献的一些中公开的具有“强ECC”的布置中,代码是基于存储器的特性以及数据状态如何映射到存储器中。控制器和存储器之间的传输远被忽视并被认为没有添加错误。因而,接口需要据此设置,导致根据最差情况或者接近最差情况设置参数,如上所述。Although ECC can be used to correct data errors, it can only correct a limited amount of errors, where the amount is a design choice. Within these capabilities, the ECC engine 413 can call any errors that are accumulating during the round trip, including transmission errors as well as errors associated with the NAND core 435 itself, such as write errors, read errors, and disturbances and other losses of data while storing However, the choice of ECC is usually only based on the consideration of errors related to NAND core 435 . In some arrangements, such as those with "strong ECC" disclosed in some of the above-listed references for ECC, the code is based on the characteristics of the memory and how the data states are mapped into the memory. Transfers between the controller and memory were largely ignored and considered free of error additions. Thus, the interface needs to be set accordingly, resulting in setting parameters according to worst case or near worst case, as described above.
第一实施例集是基于图11的元件以提供用于优化接口特性的反馈。数据集与相应的ECC一起在来回行程中从控制器发送到存储器并回到控制器,很像以上所述的标准写入后跟随读取,除了数据(和相应的ECC)实际上不写入到存储器核中。在写入传送正从控制器100发出到存储器电路200时,控制器可以使用缓冲器锁存器433和443来读回该数据。这由路径437表示,尽管如果输入和输出缓冲器系统,则将没有实际的传送。由于此来回行程移除了与435本身的阵列相关联的错误,所以这隔离了传输的影响并且允许ECC引擎413确定存储器接口的完整性。然后可以修改接口参数并且可以重新发出处理。这样,可以优化读和写接口参数两者。The first set of embodiments is based on the elements of Figure 11 to provide feedback for optimizing interface characteristics. The data set is sent with the corresponding ECC in a round trip from the controller to the memory and back to the controller, much like the standard write followed by a read described above, except the data (and corresponding ECC) are not actually written into the memory core. While a write transfer is being issued from
图12是例示另一实施例集的框图,但是其中反馈机制使用哈希引擎和可选的对于接口特定的数据校正引擎。不是涉及控制器和存储器芯片,在发送器侧520和接收器侧530上的电路方面给出图12,因为如以下进一步描述的,依赖于是读处理还是写处理以及两侧是否需要对称,这些的任意一个可以是控制器并且另一个是存储器。Figure 12 is a block diagram illustrating another set of embodiments, but where the feedback mechanism uses a hash engine and an optional data correction engine specific to the interface. Instead of referring to the controller and memory chips, Figure 12 is given in terms of circuitry on the transmitter side 520 and receiver side 530, because as described further below, depending on whether it is a read or a write process and whether symmetry is required on both sides, these Either one can be a controller and the other a memory.
发送器侧520将再次包括写数据缓冲器521和传输接口电路529。还将包括哈希值发生器525和复用器527。在传送处理中,要写入的数据(523)从写缓冲器520传送到哈希值发生器525以及MUX527两者。哈希值发生器525从该数据相应地产生哈希值,该哈希值然后被传递到MUX527。然后该复用器将其后跟随着其哈希值的数据提供给传输接口电路529,然后提高到总线结构550上。The transmitter side 520 will again include a write data buffer 521 and a transmission interface circuit 529 . A hash generator 525 and a multiplexer 527 will also be included. In the transfer process, the data to be written ( 523 ) is transferred from the write buffer 520 to both the hash value generator 525 and the MUX 527 . A hash value generator 525 accordingly generates a hash value from the data, which is then passed to MUX 527 . The multiplexer then provides the data followed by its hash value to the transport interface circuit 529 and then onto the
接收器侧再次包括接收器接口电路和读数据缓冲器535加上一些另外的元件。在读接口电路532从总线550取得数据和相应的哈希值之后,解复用电路533将哈希值与数据分离,读取的数据被发送到缓冲器535,并并且还发送到接收器侧哈希值发生器539,该接收器侧哈希值发生器539从该数据集产生哈希值。然后在比较电路541中将接收器侧产生的哈希值与接收的哈希值比较。依赖于实施例,比较的结果可以仅确定这些值是否匹配或者进一步确定由于传送处理引起的错误量。数据校正引擎537也可以被包括在一些实施例中以矫正接口错误而无需进行数据重传。在示例实施例中,哈希发生器(和在接收器侧的可选的数据校正引擎)与用于使用的NAND核错误的ECC分离,尽管在电路中可以存在一些重叠;并且,事实上,两者可以实现在控制器的相同逻辑电路上,但是通过不同的固件代码实现。(尽管对于此讨论认为是分离的,但是如下所述在更普遍的实施例中两个错误检测/叫这部分也可以交互。)通常,将基于被发送的信息的整体(用户数据、相应的ECC、头部信息、等等)而产生哈希值,但是在替换实施例中,可以通过比如除去各种开销并且仅使用用于产生哈希值的用户数据本身而今从一部分产生哈希值。The receiver side again includes receiver interface circuitry and read data buffer 535 plus some additional elements. After the read interface circuit 532 fetches the data and the corresponding hash value from the
图12还包括连接以接收哈希比较电路541的输出的反馈处理单元560。然后在561分析此反馈,依赖于实施例,这可以考虑温度、供应电压电平以及NAND核的预处理有关的性质中的一个或多个。在563,然后此反馈的结果可以用于调整传输处理并且相应地连接到传输接口电路529和读取接口电路531之一或两者。对于写操作(其中控制器是发送器侧),在从控制器向存储器器件发出写传送之后,反馈处理单元可以仅读回产生的哈希值的比较并通过此确定写方向存储器接口完整性。基于此,可以修改接口写参数并且如希望可以重新发出处理。对称地,可以对其中存储器是发送器侧的读方向采用相同的操作。FIG. 12 also includes a feedback processing unit 560 connected to receive the output of the hash comparison circuit 541 . This feedback is then analyzed at 561, which, depending on the embodiment, may take into account one or more of temperature, supply voltage level, and pre-processing related properties of the NAND core. At 563, the results of this feedback may then be used to adjust the transfer process and interface to one or both of the transfer interface circuit 529 and the read interface circuit 531 accordingly. For write operations (where the controller is the sender side), after a write transfer is issued from the controller to the memory device, the feedback processing unit may simply read back a comparison of the resulting hash values and determine write direction memory interface integrity from this. Based on this, the interface write parameters can be modified and the process can be re-issued if desired. Symmetrically, the same operation can be employed for the read direction where the memory is the transmitter side.
图13是示出用于通过总线接口传输数据和产生的哈希值的例子的图。如上部所示,相应的哈希值自动附于数据,以便当器件工作在此模式时它们将一起传输。在下部所示的第二选项中,传输数据有效负荷,接收侧请求相应的哈希值,然后产生并传输该哈希值。该数据有效负荷可以是预定长度或者随机长度。如果数据有效负荷长度是预定的,则如在第一选项中那样,哈希值可以被附于该数据,或者,该哈希值可以经请求而发送。如果数据有效负荷长度是随机的,则可以在发出具体命令之后发送该哈希值。FIG. 13 is a diagram showing an example for transferring data through a bus interface and a generated hash value. As shown in the upper part, the corresponding hash values are automatically appended to the data so that they will be transmitted together when the device operates in this mode. In the second option shown in the lower part, the data payload is transmitted, the receiving side requests the corresponding hash value, which is then generated and transmitted. The data payload can be a predetermined length or a random length. If the data payload length is predetermined, a hash value can be appended to the data as in the first option, or the hash value can be sent on request. If the data payload length is random, the hash can be sent after the specific command is issued.
多个变化对于关于图12所述的技术和相应的电路是可能的。关于哈希值引擎和哈希值,哈希引擎可以是奇偶校验码(循环冗余检验或CRC)、ECC、等等。例如,可以使用将返回通过/失败的“二进制”实施例,其可以基于错误位计数(CRC)而建立并且具有用于实现的低门计数的益处。或者,“软”实施例可以返回错误位计数(EBC),并且可以选地返回失败位的位置,并且其可以基于诸如BCH或里德-所罗门码的ECC码而建立,提供更多信息来帮助系统进行准确的决定。哈希引擎可选地还具有例如校正接口故障的补充特征,类似于校正来自存储器核的翻转位,如图12的数据校正引擎537所表示的。基于来自传送的反馈,系统可以重复传送。可以基于二进制传送状态或者基于软传送状态决定传送重试。此外,可以基于传送状态和NAND为翻转的数量的组合来决定传送重试;例如,如果接口引入了N个错误并且NAND引入了M个错误并且控制器错误校正能力是P,并且P>N+M,则系统可以决定不重新传输。Many variations are possible to the technique and corresponding circuitry described with respect to FIG. 12 . Regarding the hash engine and the hash value, the hash engine may be a parity check code (cyclic redundancy check or CRC), ECC, or the like. For example, a "binary" embodiment that would return pass/fail could be used, which could be built on error bit count (CRC) and have the benefit of a low gate count for implementation. Alternatively, a "soft" embodiment could return the Errored Bit Count (EBC), and optionally the position of the failed bit, and it could be built based on an ECC code such as BCH or Reed-Solomon code, providing more information to help The system makes accurate decisions. The hash engine optionally also has complementary features such as correcting interface failures, similar to correcting flipped bits from memory cores, as represented by data correction engine 537 of FIG. 12 . Based on feedback from the transfer, the system can repeat the transfer. Delivery retries may be decided based on binary delivery status or based on soft delivery status. In addition, transfer retries can be decided based on a combination of the transfer state and the number of NAND flips; for example, if the interface introduces N errors and the NAND introduces M errors and the controller error correction capability is P, and P>N+ M, the system can decide not to retransmit.
该系统还可以按各种其它方式配置。配置可以是对称的,其中在控制器和存储器侧的哈希引擎相同或者对称。在对称配置中,对于不同的传输方向使用不同的配置;例如,可以涉及更快的机制用于读传输,而设计更可靠的机制用于写传输。而且,应该注意,即使接口对称地配置,因为在数据的初始写入和随后的读取之间的间隔期间设置可能改变,所以关于给定的数据集其可能不对称地运作。The system can also be configured in various other ways. The configuration can be symmetric, where the hash engines on the controller and memory side are the same or symmetric. In a symmetric configuration, different configurations are used for different transfer directions; for example, faster mechanisms may be involved for read transfers while more reliable mechanisms are designed for write transfers. Also, it should be noted that even if the interface is configured symmetrically, it may behave asymmetrically with respect to a given data set because settings may change during the interval between the initial write of the data and the subsequent read.
反馈处理单元530可以不同地位于控制器100上、位于存储器200上、在这两者上或者分布在两者之间。其还可以形成在分离的电路上。在许多应用中,在控制器上实现反馈处理单元将是最实际的,因为控制器电路通常包括更高级的处理能力并且还因为存储器系统经常由多个存储器芯片形成,但是在此给出的技术不限于这样。在这些变化的任意一个中,对于数据传送状态阶段的检查是反馈处理单元的责任。The feedback processing unit 530 may be variously located on the
进一步考虑其中反馈处理单元位于控制器侧的例子:在读方向,在空中其读取数据和哈希值之后,它们将经过反馈机制传递,并且控制器将确定通过/设备状态并且可以据此调整(或不调整)接口设置。因为控制器已经读取了数据和哈希值,所以没有对于来自快闪侧的信息以确定状态的进一步需要,因为这可以在控制器的逻辑中完成。在写方向,数据有效负荷和相应的哈希值被发送到存储器侧,并且控制器然后可以按几种不同的方式操作:从存储器侧读取通过/失败状态;读回哈希值并确定通过/失败;从存储器读回错误位计数(EBC);从NAND读回EBC和错误位置;或者从存储器侧读取通过/失败状态以及校正的位的数量。Consider further the example where the feedback processing unit is on the controller side: in the read direction, after it reads the data and hash over the air, they will be passed through the feedback mechanism, and the controller will determine the pass/device state and can adjust accordingly ( or not adjusted) interface settings. Since the controller has already read the data and the hash, there is no further need for information from the flash side to determine the state, as this can be done in the logic of the controller. In the write direction, the data payload and corresponding hash value are sent to the memory side, and the controller can then operate in several different ways: read pass/fail status from the memory side; read back the hash value and determine pass /fail; read back error bit count (EBC) from memory; read back EBC and error location from NAND; or read pass/fail status and number of corrected bits from memory side.
反馈处理单元可以决定修改接口设置。例如,可以修改以下接口设置:驱动强度;总线频率或其他定时参数;接口电压;接口模式(例如从正常/传统模式切换到触发模式);等等。然后可以按适应性反馈方式修改这些接口设置。因为诸如处理变化、供应电压电平和温度的因素影响接口错误的可能性,这些因素也可以作为对图12上的反馈分析561的输入而被包括。The feedback processing unit may decide to modify the interface settings. For example, the following interface settings can be modified: drive strength; bus frequency or other timing parameters; interface voltage; interface mode (e.g. switching from normal/legacy to trigger mode); etc. These interface settings can then be modified in an adaptive feedback manner. Because factors such as process variations, supply voltage levels, and temperature affect the likelihood of interface errors, these factors may also be included as inputs to the feedback analysis 561 on FIG. 12 .
总线频率和其他参数设置可以基于较早前的缓解(remission),标定参数设置也可按各种方式设置。例如,可以使用具有用于不同的总线容量/NAND配置的不同值的查找表(LUT)。这样的查找表(LUT)还可以具有用于不同的操作处理参数、电压供应电平、温度等等的不同值。代替在LUT中预定,处理参数、电压供应电平和温度也可以是按函数(公式)可变的。Bus frequency and other parameter settings can be based on earlier remissions, and calibration parameter settings can also be set in various ways. For example, a look-up table (LUT) with different values for different bus sizes/NAND configurations may be used. Such look-up tables (LUTs) may also have different values for different operational process parameters, voltage supply levels, temperatures, and the like. Instead of being predetermined in the LUT, process parameters, voltage supply levels and temperature can also be variable as a function (formula).
可以在后台操作接口设置优化任务。诸如电压供应或者温度改变的特殊事件也可以用于触发接口设置训练任务。接口训练任务还可以使用跨过NAND核传输而不写到NAND核的已知的样式,比如以上关于图11所述的以及路径437。接口设置也可以不同,并且可以基于读方向和写方向,或者基于不同的数据保持要求。Optimization tasks can be set in the background operation interface. Special events such as voltage supply or temperature changes can also be used to trigger interface setup training tasks. The interface training task may also use known patterns of transfer across the NAND core without writing to the NAND core, such as described above with respect to FIG. 11 and path 437 . The interface settings can also be different, and can be based on read and write directions, or on different data retention requirements.
以上讨论主要将存储器系统考虑为具有控制器和单个存储器器件电路。更普遍地,该系统可以包括可以使用各种总线拓扑连接到控制器(和反馈处理单元-如果其是分离的电路)的几个存储器芯片。例如,所有存储器芯片可以共享单个系统总线;或者每个存储器电路可以具有其自己的控制器-存储器总线;或者可以使用各种混合布置。然后不同的接口设置可以应用于此多个NAND器件(例如,如果与几个器件相接口,则这可以并行地完成)。基于被访问的具体NAND器件,也可以使用不同的接口设置,因为接口性质可以是具体NANF器件的负载和/或单元/块性质的函数)。此外,在给定的存储器器件内,不同的接口设置也可以应用于NAND核内的块,因为接口性质可以是具体块的性质的函数。The above discussion has primarily considered a memory system as having a controller and a single memory device circuit. More generally, the system may include several memory chips that may be connected to the controller (and the feedback processing unit - if it is a separate circuit) using various bus topologies. For example, all memory chips could share a single system bus; or each memory circuit could have its own controller-memory bus; or various hybrid arrangements could be used. Different interface settings can then be applied to this multiple NAND devices (eg if interfacing several devices this can be done in parallel). Based on the specific NAND device being accessed, different interface settings may also be used, as the interface properties may be a function of the load and/or cell/block properties of the specific NANF device). Furthermore, within a given memory device, different interface settings may also apply to blocks within a NAND core, as the interface properties may be a function of the properties of the specific block.
关于以上部分的技术的更多细节可以在2010年7月13日提交的美国专利申请号12/835,292中找到。More details on the techniques of the above sections can be found in US Patent Application No. 12/835,292, filed July 13, 2010.
后台存储器系统接口的动态优化Dynamic Optimization of Background Memory System Interface
此部分将进一步考虑存储器系统的控制器-存储器(或者“后台”)接口并给出用于动态地优化适合于高速存储器系统、包括具有多个存储器数据总线的那些系统的后台读和写性能的一些方法。如上所讨论的,存储器系统通常被设计为具有某个量的错误容限;并且尽管此错误可能出现在控制器-存储器传输处理以及实际的存储器上存储处理两者中,但是传统上对于ECC处理仅考虑两者中的后一者,并且后台接口通常被优化为消除或者至少尽可能最小化传输信道错误。不过,在许多情况下,从存储处理得到的数据错误(包括读和写错误)可能很好地在系统的ECC能力以下。例如,尽管大量循环过的器件可能需要完全的可用数据校正,但是新的器件可能具有相对很少的错误,为系统留下过剩的错误校正能力。此部分给出通过其存储器系统将此错误校正能力的非零部分内部地分配给传输信道的方法。这允许接口以例如较高速度或者较低功率而操作,即使这将很可能导致传输路径错误。当存储器部分需要更高量的错误校正时,可以动态地调整分配。在补充的方面中,该系统可以校准传输路径以确定对于不同的操作参数的得到的传输错误量,然后基于多少被允许而选择参数。This section will further consider the memory system's controller-memory (or "background") interface and present guidelines for dynamically optimizing background read and write performance suitable for high-speed memory systems, including those with multiple memory data buses. some way. As discussed above, memory systems are typically designed to have some amount of error tolerance; and while this error can occur both in the controller-to-memory transfer process as well as in the actual on-memory store process, traditionally for ECC processes Only the latter of the two is considered, and the background interface is usually optimized to eliminate or at least minimize transmission channel errors as much as possible. However, in many cases, data errors resulting from storage processing (including read and write errors) may be well below the system's ECC capabilities. For example, while a heavily cycled device may require full usable data correction, a new device may have relatively few errors, leaving excess error correction capability for the system. This section gives the method for internally allocating a non-zero portion of this error correction capability to a transport channel by its memory system. This allows the interface to operate eg at higher speeds or at lower power even though this would most likely result in transmission path errors. Allocation can be dynamically adjusted when a higher amount of error correction is required for a memory portion. In a complementary aspect, the system can calibrate the transmission path to determine the resulting amount of transmission error for different operating parameters, and then select parameters based on how much is allowed.
进一步考虑控制器和存储器部分之间的后台接口,通常的存储器系统由存储器控制器和诸如NAND快闪存储器模块的存储器器件构成。后台接口是存储器及其控制器之间的数据总线。该接口通常按两种方式之一而建立。在第一方式中,如果控制器和存储器器件是离散的组件,则通过在印刷电路板(PCB)上进行布线(trace)来建立后台接口,其中这些组件布置在该印刷电路板上。在第二方式中,控制器和存储器可以封装在单个包装中,比如包装的系统(SIP)或者多芯片包装(MCP)。在此第二情况下,通过包装基板建立后台接口。Considering further the background interface between the controller and the memory section, a typical memory system consists of a memory controller and memory devices such as NAND flash memory modules. The background interface is the data bus between the memory and its controller. This interface is typically established in one of two ways. In a first approach, if the controller and memory devices are discrete components, the background interface is established by tracing on a printed circuit board (PCB) on which these components are arranged. In a second approach, the controller and memory can be packaged in a single package, such as a system in package (SIP) or a multi-chip package (MCP). In this second case, the background interface is established through the packaging substrate.
如在先前部分中所讨论的,存储器系统中的整体位错误率(BER)可以由两个主要因素贡献:诸如NAND快闪存储器的存储器器件中的数据保持的可靠性;以及后台接口的缺陷,这可能导致传输错误。然后可以在存储器系统中采用错误校正编码(ECC)以应对此整体BER。图14示意性例示对于存储器系统中的位错误有贡献者。As discussed in the previous sections, the overall bit error rate (BER) in a memory system can be contributed by two main factors: the reliability of data retention in a memory device such as NAND flash memory; and the imperfection of the background interface, This may cause transmission errors. Error Correction Coding (ECC) can then be employed in the memory system to account for this overall BER. Figure 14 schematically illustrates contributors to bit errors in a memory system.
如图14所示,整体位错误率BER605的主要源之一。由于(来自电荷泄漏、干扰等等的)存储的数据的数据损失引起的此错误以及在读和写处理中引入的任何错误的影响示出在NAND保持601。传统上,使用数据校正来仅解决此因素,当数据被读取时观察到此因素。由于信道缺陷引起的错误示出在603,并且该错误影响数据读和写两者,但是在读取时将再次观察到影响。信道影响错误的源可以包括码间干扰(ISI)、相同数据总线(总线内)串扰、总线间串扰(在多数据总线设计上)、印刷电路板(PCB)噪声、硅晶片噪声、包装噪声等等。在另一侧,ECC607可以校正错误达某个水平的错误。As shown in Figure 14, one of the main sources of overall bit error rate BER605. The effect of this error and any errors introduced in the read and write process due to data loss of the stored data (from charge leakage, disturbance, etc.) is shown at
随着控制器和存储器之间的数据传输率增加,后台接口变得更易受到对603有贡献的与信号完整性有关的问题,比如相同数据总线内的信号之间的串扰(存储器数据总线内串扰)以及码间干扰(ISI)。另外,其中控制器可以同时访问多个存储器器件的存储器拓扑(多存储器数据总线设计)的引入使后台接口经历数据总线之间的同时切换噪声和串扰(存储器数据总线间串扰)。除了总线速度之外,诸如数据总线的电压幅值以及温度(PCB线路的周围温度以及包转的系统(SIP)或者多芯片包装(MCP)的接合处温度)的因素也可能影响后台接口的信号完整性。因此,后台接口的固有缺陷变为确定高速存储器系统的整体系统性能的瓶颈。存储器器件的管脚电容随着存储器晶片的数量而增加。以多个存储器晶片构成的高容量存储器器件在其数据输入/输出(I/O)上呈现高电容,中将进一步有损数据总线结构的边缘速率以及信号完整性。As the data transfer rate between the controller and memory increases, the background interface becomes more susceptible to signal integrity-related issues that contribute to 603, such as crosstalk between signals within the same data bus (memory data bus crosstalk ) and intersymbol interference (ISI). In addition, the introduction of memory topologies (multiple memory data bus designs) where a controller can simultaneously access multiple memory devices causes background interfaces to experience simultaneous switching noise and crosstalk between data buses (inter-memory data bus crosstalk). In addition to the bus speed, factors such as the voltage amplitude of the data bus and the temperature (the ambient temperature of the PCB line and the junction temperature of the system package (SIP) or multi-chip package (MCP)) may also affect the signal of the background interface integrity. Thus, the inherent weakness of the background interface becomes a bottleneck that determines the overall system performance of the high speed memory system. The pin capacitance of a memory device increases with the number of memory dies. High-capacity memory devices constructed of multiple memory dies exhibit high capacitance on their data input/output (I/O), which further degrades the edge rate and signal integrity of the data bus structure.
可以通过增加信号线路彼此相分离的间隔来最小化在信号线路上的与信号完整性有关的问题以最小化串扰;但是此方法受到在PCB或者基板上的可用面积的限制。这也可以通过选择具有低介电常数和低耗散因数(损耗角正切)的PCB材料来降低。因此尽管存在用于以降低总线速度或者损害操作总线参数的输出来减小此错误的方式,但是这些方式都承受着缺点。Signal integrity related issues on the signal lines can be minimized by increasing the separation of the signal lines from each other to minimize crosstalk; however this approach is limited by the available area on the PCB or substrate. This can also be reduced by choosing PCB materials with low dielectric constant and low dissipation factor (loss tangent). So while there are ways to reduce this error by slowing down the bus speed or compromising the output of operating bus parameters, these ways suffer from disadvantages.
此部分给出用于应对后台接口中的这些信号完整性问题以及还解决控制器和存储器器件之间的处理变化的动态优化技术。除了处理变化之外,存储器系统在其之下操作的电压设置和温度也可能变化。静态方案不解决处理、电压和温度中的变化,因此可能不是最佳方法。This section presents dynamic optimization techniques for addressing these signal integrity issues in the background interface and also addressing process variations between the controller and memory devices. In addition to process changes, the voltage settings and temperatures at which the memory system operates may also change. A static approach does not account for variations in process, voltage, and temperature, so may not be the best approach.
此部分使用伪回送方式来动态地优化存储器系统的后台性能,包括具有多个存储器数据总线的存储器系统的后台性能。这可以通过使用预定的数据样式通过于在之前的部分中所述类似的分类机制来完成。示例实施例将使用伪随机位样式(PRBS)。动态优化数据总线设置可以帮助最大化控制器和存储器器件之间的数据传输的可靠性。这可以允许存储器系统来区别传输错误与在存储器器件上引起的错误。这些方面对于装配有高速后台存储器接口和多个存储器数据总线的产品是特别有利的。This section uses a pseudo-loopback approach to dynamically optimize the background performance of memory systems, including memory systems with multiple memory data buses. This can be done using a predetermined data pattern through a similar sorting mechanism as described in the previous section. An example embodiment will use a pseudorandom bit pattern (PRBS). Dynamically optimizing data bus settings can help maximize the reliability of data transfers between the controller and memory devices. This may allow the memory system to distinguish transmission errors from errors caused on the memory device. These aspects are particularly advantageous for products equipped with high-speed background memory interfaces and multiple memory data buses.
在PCB或者包装基板上布线(trace)具有有限的带宽,这导致码间干扰(ISI)。ISI的影响依赖于边缘速率(上升时间和下降时间)、数据速率和数据样式。在数字通信中,伪随机位样式(PRBS)样式有时用于开发数据链接的最差情况ISI影响,因为这样的样式在频率分量方面是丰富的。PRBS样式是具有与随机序列类似的属性并且用于测量电学数据链接中的传输的数据的抖动和眼图遮罩(eye mask)的重复样式。PRBS通常表示为2X-1PRBS或者PRBS-X,其中幂(X)表示用于创建该样式的移位寄存器长度。希望使用实用的最长的PRBS样式,因为其对信号链接施加了最大的压力并且提供了随机数据的更好的表示。Traces on a PCB or packaging substrate have limited bandwidth, which causes inter-symbol interference (ISI). The impact of ISI depends on the edge rate (rise time and fall time), data rate and data pattern. In digital communications, pseudo-random bit pattern (PRBS) patterns are sometimes used to exploit the worst-case ISI effects of data links because such patterns are rich in frequency content. A PRBS pattern is a repeating pattern that has similar properties to a random sequence and is used to measure jitter and eye masks of transmitted data in electrical data links. PRBS is often denoted as 2X-1PRBS or PRBS-X, where the power (X) represents the length of the shift register used to create the pattern. It is desirable to use the longest PRBS pattern that is practical, since it places the most stress on the signal link and provides a better representation of random data.
尽管示例实施例使用伪随机位样式,但是可以使用其他样式,只要系统知道被使用以便可以与在回送处理的结尾处回来的数据相比较的数据集的样式即可。示例实施例使用PRBS样式,因为其类似随机的字符可以最大化信号链接的ISI影响。除了PRBS样式之外,在本发明中可以利用其它类型的数据样式,并且每个各自的样式可以产生不同的结果。Although the example embodiment uses a pseudo-random bit pattern, other patterns can be used, as long as the system knows the pattern of the data set that is used so that it can be compared with the data coming back at the end of the loopback process. Example embodiments use the PRBS pattern because its random-like characters can maximize the ISI impact of the signal link. In addition to PRBS patterns, other types of data patterns can be utilized in the present invention, and each respective pattern can produce different results.
PRBS样式可以应用于并行后台接口中的每个信号链接。理想地,尽管样式将无限地重复,这在存储器系统中实际上不可行,但是如果通过使用短的样式将该样式重复足够的次数,这应该不是主要缺点。例如,如果NAND快闪存储器的页大小是16kB,具有127b的样式长度的PRBS-7样式可以在8位数据总线的每个信号链接上完整地重复129次。剩余位(16384b-127bx129=1b)构成PRBS-7的不完全复制本。在结尾处的此不完全的PRBS样式应该不会导致严重问题,因为大多数传输连接影响已经由完整的PRBS样式的129次循环而解决。PRBS patterns can be applied to each signal link in the parallel background interface. Ideally, although a pattern would repeat infinitely, which is not practically feasible in a memory system, this should not be a major disadvantage if the pattern is repeated enough times by using short patterns. For example, if the page size of the NAND flash memory is 16kB, a PRBS-7 pattern with a pattern length of 127b can be completely repeated 129 times on each signal link of an 8-bit data bus. The remaining bits (16384b-127bx129=1b) constitute an incomplete copy of PRBS-7. This incomplete PRBS pattern at the end should not cause serious problems, since most transport connection effects are already resolved by 129 cycles of the complete PRBS pattern.
图15可以用于例示在后台接口中的回送方法的操作。在图15中,左侧是流程,右侧示意性例示相应的控制器-存储器交互。在701,控制器关闭其数据加扰和错误校正编码(ECC)能力,其中在右侧,这由被打X的这些要素示出。从而,从控制器传送出的以及传输到控制器的所有数据都处于其原始格式而没有任何加扰或校正。在703,控制器向存储器器件发送命令,告知存储器器件将要接收的数据存储并保持在其数据锁存检测器中而不将它们传送到存储器单元。也就是,不将此数据集编程到存储器单元中。在705,控制器将数据总线结构中的每个数据链接上的已知的数据样式(在此是独立的PRBS-7样式)发送到存储器器件。存储器器件将该数据保持在该数据锁存寄存器中直到其变满。Figure 15 may be used to illustrate the operation of the loopback method in the backend interface. In Fig. 15, the flow is on the left and the corresponding controller-memory interaction is schematically illustrated on the right. At 701, the controller turns off its data scrambling and error correction coding (ECC) capabilities, where on the right, this is shown by these elements being crossed. Thus, all data transferred from and to the controller is in its original format without any scrambling or correction. At 703, the controller sends a command to the memory device telling the memory device to store and hold the received data in its data latch detector without transferring them to the memory cells. That is, this data set is not programmed into the memory cells. At 705, the controller sends the known data patterns (here individual PRBS-7 patterns) on each data link in the data bus structure to the memory device. The memory device holds the data in the data latch register until it becomes full.
在707,控制器向存储器器件发送命令,告知存储器器件将存储在其数据锁存寄存器中的数据连续地发送回,直到控制器指示其停止。也就是,在数据锁存寄存器已经清空了每个链接上的所有的16kb的数据之后,其将开始再次发送回相同的数据。因此,PRBS-7样式在数据总线的每个信号链接上重复。示例实施例使用PRBS样式传送的连续操作的原因是由信号链接引入的位错误是概率事件。跨过链接传送的数据量越大,作为固有连接性能的统计测量的传输位错误率(BER)越准确并且越有代表性。在709,控制器接收在数据总线的每个信号链接上的重复的PRBS-7样式(或者其他所使用的数据样式)。At 707, the controller sends a command to the memory device telling the memory device to continuously send back the data stored in its data latch register until the controller instructs it to stop. That is, after the data latch registers have been emptied of all 16kb of data on each link, it will start sending back the same data again. Therefore, the PRBS-7 pattern is repeated on each signal link of the data bus. The reason for the continuous operation of the example embodiments using PRBS style transmission is that bit errors introduced by signal linking are probabilistic events. The greater the amount of data transferred across the link, the more accurate and representative is the transmission bit error rate (BER), a statistical measure of inherent connection performance. At 709, the controller receives a repeated PRBS-7 pattern (or other used data pattern) on each signal link of the data bus.
在711,控控制器将接收的数据与发送的数据样式(在此是标准的PRBS-7样式)相比较并将任何错误报告为传输BER。然后控制器向存储器器件发送命令以停止发送PRBS-7样式(713)并且退出伪回送模式(715)。At 711 the controller compares the received data to the transmitted data pattern (here the standard PRBS-7 pattern) and reports any errors as a transmit BER. The controller then sends a command to the memory device to stop sending the PRBS-7 pattern (713) and exit pseudo-loopback mode (715).
图16对应于图15的块705,其中控制器向存储器器件发送数据样式,图17对应于块709。在这两幅图上,示出了总线结构811的一个具体例子,其中在上部示出了几条线用于命令和控制信号,并且在下面示出了多条数据线。再次,CLE=命令锁存使能,ALE=地址锁存使能,RE=读使能,WE=写使能,DQS=数据选通,并且存在八条输入/输出线(IO0-IO7)。为了此讨论的目的简化了这些框图,在存储器控制器上仅示出了ECC块805和PRBS产生器803,在存储器器件831上仅表示出数据寄存器REG833,其他元件(包括831上的非易失性存储器阵列)未明确示出。当控制器801向图16中的存储器器件831发送数据样式时,写使能信号和是精选同将被赋值并且每条信号线将携带数据样式。再次,每条IO线携带独立的样式。再次,这些是PRBS的所有各个复制本,但是可以具有不同的定时,如图中其相对偏移所示。在存储器831上,数据样式然后在接收时被存储在寄存器833中,在图17中,数据从寄存器833跨过数据结构811被发送回到控制器801,以便读使能信号和数据选通被赋值。一旦数据样式已经完成往返(而不被写到非易失性存储器中)并且回到控制器801上,就可以针对其原始形式对其进行检查并且查看发生了多少讹误。尽管总线结构811是具有多条信号线的并行总线接口,但是这仅仅是具体例子,并且其他总线结构可以用于传输信道,比如串行数据布置。FIG. 16 corresponds to block 705 of FIG. 15 , where the controller sends the data pattern to the memory device, and FIG. 17 corresponds to block 709 . In both figures, a specific example of the
存储器系统的性能由数据传输率(总线操作频率)相对于功耗来特征化,功耗直接与数据总线电压有关。通过变化数据总线的电压幅值(由驱动数据总线的器件的I/O确定)和数据传输率,可以创建作为模拟图(shmoo plot)的3维表示,传输率沿x轴绘出,数据总线电压沿y轴绘出,并且传输BER沿z轴绘出。再次,数据传输率可以指当数据从控制器电路传送到存储器电路时在写操作期间应用的数据传输率,如图15的705中那样,或者指当数据从存储器传送到控制器时在读操作期间应用的数据传输率,如709中那样。可以在各个输出驱动阻抗(驱动强度)和温度时测量在这样的模拟图中表示的数据已覆盖最差情况、通常情形和最佳情形。因此,对于给定量的可允许传输错误,最佳操作点可以确定在诸如数据总线电压、输出驱动阻抗、转换速率、线电容、传输速率、温度和功耗的参数的给定组合处。模拟图的例子示出在图18中。The performance of a memory system is characterized by the data transfer rate (bus operating frequency) versus power consumption, which is directly related to the data bus voltage. By varying the voltage magnitude of the data bus (determined by the I/O of the device driving the data bus) and the data transfer rate, a 3-dimensional representation as a shmoo plot can be created, with the transfer rate plotted along the x-axis and the data bus Voltage is plotted along the y-axis, and transmission BER is plotted along the z-axis. Again, the data transfer rate may refer to the data transfer rate applied during a write operation when data is transferred from the controller circuit to the memory circuit, as in 705 of FIG. The data transfer rate of the application, as in 709. The data represented in such a simulation plot has covered worst case, typical case and best case cases, which can be measured at various output drive impedances (drive strengths) and temperatures. Thus, for a given amount of allowable transmission errors, an optimal operating point can be determined at a given combination of parameters such as data bus voltage, output drive impedance, slew rate, line capacitance, transmission rate, temperature, and power consumption. An example of a simulation graph is shown in FIG. 18 .
图18是示出对于存储器系统的具体例子的在固定的输出驱动阻抗、转换速率、线电容和温度时传输BER相对数据总线电压和数据传输速率的模拟图的例子。数据总线电压是垂直轴上的VDD,并且传输速率在水平轴上。传输BER的量由图上的颜色表示,对照(key)在图的右侧。在此黑白表示中,非常低和非常高的错误量的表示看起来相同,但是主图中的较低错误区域朝向浅色划分区域的左侧,而较高错误区域朝向右侧。基于此类数据,对于允许的传输数据量,可以选择操作参数的组合,其中像通常那样,这将通常涉及折衷。例如,如果希望量的可允许BER是10-5,如果最大速度是主要考虑,则VDD将取为大约3.1-3.2V,允许大约170-180Mb/s的传输率。如果功耗是更重要的考虑,则可以使用更低的VDD值,比如2.8V,然后对于相同的传输BER将允许大约150Mb/s的传输率。如果基于例如存储器已经循环了多少或者只是对BER的组合的贡献正接近系统的最大能力,分配给传输信号的BER被重新分配了不同的值,则然后可以基于此数据由控制器调整总线系统的操作参数。18 is an example of a simulated graph showing transfer BER versus data bus voltage and data transfer rate at fixed output drive impedance, slew rate, line capacitance, and temperature for a specific example of a memory system. The data bus voltage is V DD on the vertical axis, and the transfer rate is on the horizontal axis. The amount of transmitted BER is indicated by the color on the graph, and the control (key) is on the right side of the graph. In this black-and-white representation, the representations for very low and very high error amounts look the same, but the lower error areas in the main image are toward the left of the lightly divided area, while the higher error areas are toward the right. Based on such data, a combination of operating parameters may be selected for the allowed amount of transmitted data, where as usual this will generally involve compromises. For example, if the allowable BER for the desired amount is 10 -5 , if maximum speed is the main concern, then V DD would be taken to be about 3.1-3.2V, allowing a transfer rate of about 170-180Mb/s. If power consumption is a more important consideration, a lower value of V DD can be used, say 2.8V, which will then allow about 150Mb/s transfer rate for the same transfer BER. If the BER assigned to the transmitted signal is reassigned to a different value based on eg how much the memory has cycled or just the combined contribution to the BER is approaching the maximum capability of the system, then the bus system's BER can then be adjusted by the controller based on this data operating parameters.
从而,在通过捕捉在模拟图中表示的在各个输出驱动阻抗、转换速率、线电容、温度等处的数据而校准系统之后,存储器系统可以根据各种情况而操作。例如,给出希望的传输BER,则存储器系统查找并选择最佳数据总线电压、数据传输速率、输出驱动阻抗和转换速率。(来自校准处理的此数据可以保持在非易失性存储器中或者控制器电路中的存储器空间(RAM)中。)例如,其可以选择得到希望的传输BER的最低的数据总线电压、最高的数据传输率以及最到的输出驱动阻抗。在另一例子中,给出数据总线电压、数据传输速率、输出驱动阻抗、转换速率、线电容和温度的具体组合,存储器系统直到起可以预期什么样的BER。或者,存储器系统可以选择平衡所有因素——数据总线电压、数据传输速率、输出驱动强度和传输BER——的操作条件。Thus, after calibrating the system by capturing data at various output drive impedances, slew rates, line capacitances, temperatures, etc. represented in the simulation graph, the memory system can operate according to various conditions. For example, given a desired transfer BER, the memory system finds and selects the optimum data bus voltage, data transfer rate, output drive impedance, and slew rate. (This data from the calibration process can be kept in non-volatile memory or in memory space (RAM) in the controller circuit.) For example, it can choose the lowest data bus voltage, highest data transfer rate and the ultimate output drive impedance. In another example, given a specific combination of data bus voltage, data transfer rate, output drive impedance, slew rate, line capacitance, and temperature, what BER can be expected from a memory system. Alternatively, the memory system can choose operating conditions that balance all factors—data bus voltage, data transfer rate, output drive strength, and transfer BER.
因为控制器和存储器器件中的I/O缓冲器的设计可能不同,所以存储器系统的最佳读和写性能可以分别确定。除了由于不同的存储器系统设计得到的差别之外,由于工艺变化以及操作条件的差别,对于相同器件的各个例子也将存在差别。为了解决器件老化、操作条件的改变等等,也可以重复校准处理。例如,可以在测试时在器件出厂之前进行初始校准,然后控制器可以周期地或者响应于诸如期间循环、错误结果、操作条件的明显改变等等而重新校准系统。因此,除了分配给传输信号的总错误的比例的改变之外,对于给定分配的相应操作参数可以动态地改变。Because the design of the I/O buffers in the controller and the memory device may be different, the optimal read and write performance of the memory system can be determined separately. In addition to differences due to different memory system designs, there will also be differences for individual instances of the same device due to process variations and differences in operating conditions. To account for device aging, changes in operating conditions, etc., the calibration process may also be repeated. For example, an initial calibration may be performed at test time prior to shipment of the device, and then the controller may recalibrate the system periodically or in response to, for example, period cycles, erroneous results, significant changes in operating conditions, and the like. Thus, in addition to changes in the proportion of total errors assigned to the transmitted signal, the corresponding operating parameters for a given assignment can be changed dynamically.
如上所述,可以在读和写处理两者期间优化性能。回到图15,对于存储器读期间的性能优化,在705,系统加满正被写到存储器器件的数据锁存寄存器中的数据样式的传输速率以最大化该数据样式的传送的完整性。例如,以10MHz的传输速率,将花费1.6ms来填满16kb的数据锁存寄存器。在709和711,系统测量在读操作期间引起的传输BER,其中存储器器件的I/O是驱动器,并且控制器是接收器。然后模拟图数据示出存储器器件的I/O电压和读频率之间的关系。As mentioned above, performance can be optimized during both read and write transactions. Returning to FIG. 15 , for performance optimization during memory reads, at 705 the system tops up the transfer rate of the data pattern being written into the data latch register of the memory device to maximize the integrity of the transfer of the data pattern. For example, at a transfer rate of 10MHz, it will take 1.6ms to fill a 16kb data latch register. At 709 and 711, the system measures the transfer BER incurred during a read operation, where the I/O of the memory device is the driver and the controller is the receiver. The graph data is then simulated to show the relationship between the I/O voltage and the read frequency of the memory device.
对于在存储器写期间的性能优化,在705,该系统变化电压和正被写到存储器器件的数据锁存寄存器中的数据样式的传输速率。在709,系统然后将减慢从存储器器件到控制器的数据的传输速率以防止通过信号链接注入另外的位错误。然后测量的传输BER是在705中的写操作期间引起的传输BER。从而模拟图数据江表示控制器的I/O电压和写频率之间的关系。For performance optimization during memory writes, at 705 the system varies the voltage and transfer rate of the data pattern being written into the data latch register of the memory device. At 709, the system will then slow down the transfer rate of the data from the memory device to the controller to prevent the injection of additional bit errors through the signal link. The measured transmit BER is then the transmit BER incurred during the write operation in 705 . The simulation graph data thus represents the relationship between the I/O voltage of the controller and the write frequency.
到目前为止,已经在其中这仅仅是控制器电路和单个存储器电路之间的单个总线的上下文中给出了在此给出的各个方面。但是,存储器系统可以包括具有多个数据拓扑的多个器件,并且当存在多条总线时,这些总线之间的交互可能导致另外的错误源。在此的技术可以提供将后台接口中的数据总线内的每个信号链接偏移到指定分辨率、例如100ps的能力。可以通过驱动器或者接收器中的控制器或者存储器引入这样的偏移能力。向数据总线中引入偏移允许系统补偿PCB或者包装基板中的信号线的长度不匹配。引入偏移可以降低后台接口中的近端和远端串扰的影响,从而降低传输BER。涉及两种类型的串扰:存储器数据总线内串扰;以及存储器数据总线间串扰。这样的串扰导致数据总线中的抖动。通常的存储器系统使用由驱动器发送的时钟来在相同的时刻在并行数据总线中采样每个单独的信号。因此,数据总线中的每个信号上的抖动的增加将导致传输BER的增加。通过偏移跨过多条存储器数据总线的数据以便它们相对彼此不对准,可以降低存储器数据总线间串扰。So far, the various aspects presented herein have been presented in the context where this is simply a single bus between a controller circuit and a single memory circuit. However, a memory system can include multiple devices with multiple data topologies, and when multiple buses are present, the interaction between these buses can lead to additional sources of error. The techniques herein may provide the ability to offset each signal link within the data bus in the background interface to a specified resolution, eg 100 ps. Such offset capability can be introduced by a controller or memory in the driver or receiver. Introducing skew into the data bus allows the system to compensate for length mismatches of the signal lines in the PCB or packaging substrate. Introducing skew can reduce the impact of near-end and far-end crosstalk in the background interface, thereby reducing the transmit BER. Two types of crosstalk are involved: intra-memory data bus crosstalk; and inter-memory data bus crosstalk. Such crosstalk causes jitter in the data bus. A typical memory system uses a clock sent by the driver to sample each individual signal in the parallel data bus at the same instant. Therefore, an increase in jitter on each signal in the data bus will result in an increase in the transmit BER. Inter-memory data bus crosstalk can be reduced by skewing data across multiple memory data buses so that they are not aligned relative to each other.
图19是例示起总线结构使用多条存储器数据总线的存储器系统中的此串扰的框图。该存储器系统包括控制器901和通过各自的总线911-1、911-2、911-3、911-4连接到控制器的多个、在此是四个存储器器件931-1、931-2、932-3、931-4。对于每条总线911,它们将具有如详细示出为IO1到IOX的一条或多条IO线。入职前,这些各条总线可以是并行、串行或者按这些组合而操作用于传送数据的各种数量的IO线。这类的多总线布置通常实现在SSD类型器件中(例如参见美国专利7,376,034、美国专利7,763,339或者论文“AHigh Performance Controller for NAND Flash-based Solid Sate Disk(NSSD)”Park等人,Samsung,非易失性半导体研讨会,2006,IEEE,NVSMW2000,第21,vol.no.,17-20页,2006年2月12-16日)以便改进性能,但是也在一些存储卡和其他的存储器系统中发现这类的多总线布置。除了给定总线的IO线之间的这类存储器数据总线内串扰之外,现在在不同的字线上还将存在存储器数据总线间串扰信号。当与上述的PRBS样式和伪回送模式的使用组合时,给出数据总线电压、传输速率、温度、输出驱动阻抗、转换速率、线电容和功耗的某个组合,可以确定产生最少串扰并从而产生最低传输BER的最佳偏移。Figure 19 is a block diagram illustrating this crosstalk in a memory system where the bus structure uses multiple memory data buses. The memory system includes a
在此给出的各个方面提供了在存在各种信号完整性问题之下优化后台接口性能的最低成本解决方案。通过将“未使用的”ECC能力动态地分配给传输处理,如所述可以提高性能。如上所述,一些存储器系统使用开发多状态存储器器件的属性的一种类型的“强”ECC,在此情况下,被传送用于使用传输信道的错误校正能力可能不能以1对1的方式传送。还应该注意,尽管存储器系统并入ECC来补偿数据错误,但是对于命令通常没有相同的配备,并且存储器器件通常将不接受有错误的命令,以便尽管可能在数据传输中有意地允许错误,对于命令也将不存在这种情况。从而,尽管提供这些机制可能允许对于数据的更高的传输速率,但是可以并入对于传输速率(或其它参数)的较慢的、更安全的设置以便对于控制信号不引起错误。The various aspects presented herein provide the lowest cost solution for optimizing backend interface performance in the presence of various signal integrity issues. Performance can be improved as described by dynamically allocating "unused" ECC capacity to transport processing. As noted above, some memory systems use a type of "strong" ECC that exploits the properties of multi-state memory devices, in which case the error correction capabilities that are conveyed for use with the transmission channel may not be conveyed in a 1-to-1 manner . It should also be noted that although memory systems incorporate ECC to compensate for data errors, commands are generally not equally equipped, and memory devices will generally not accept commands with errors, so that while errors may be intentionally allowed in data transfers, for command This will also not exist. Thus, while providing these mechanisms may allow higher transfer rates for data, slower, safer settings for transfer rates (or other parameters) may be incorporated so as not to cause errors for control signals.
结论in conclusion
为了例示和描述的目的已经给出本发明的以上详细描述。不意图穷尽或者将本发明限制到所公开的精确形式。根据以上教导,许多修改和变化是可能的。选取所述实施例以便最佳地说明本发明的原理及其实际应用,由此使得本领域技术人员能够在各个实施例中以及通过适合于意欲的具体使用的各种修改最佳地利用本发明。意图本发明的范围由附于此的权利要求限定。The foregoing detailed description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best illustrate the principles of the invention and its practical application, thereby enabling others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use intended . It is intended that the scope of the invention be defined by the claims appended hereto.
Claims (66)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610951896.0A CN107093464A (en) | 2010-07-13 | 2011-07-12 | The dynamic optimization of background memory system interface |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/835,292 US8464135B2 (en) | 2010-07-13 | 2010-07-13 | Adaptive flash interface |
US12/835,292 | 2010-07-13 | ||
US13/087,640 | 2011-04-15 | ||
US13/087,640 US9069688B2 (en) | 2011-04-15 | 2011-04-15 | Dynamic optimization of back-end memory system interface |
PCT/US2011/043648 WO2012009318A1 (en) | 2010-07-13 | 2011-07-12 | Dynamic optimization of back-end memory system interface |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610951896.0A Division CN107093464A (en) | 2010-07-13 | 2011-07-12 | The dynamic optimization of background memory system interface |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103098029A true CN103098029A (en) | 2013-05-08 |
CN103098029B CN103098029B (en) | 2016-11-30 |
Family
ID=
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107919876A (en) * | 2016-10-09 | 2018-04-17 | 旺宏电子股份有限公司 | Method and electronic device for searching error position in code word |
CN109582491A (en) * | 2017-09-28 | 2019-04-05 | 北京忆芯科技有限公司 | Reading error in data processing based on machine learning |
WO2019136981A1 (en) * | 2018-01-12 | 2019-07-18 | 江苏华存电子科技有限公司 | Data reliability enhancement system and method |
CN110289030A (en) * | 2018-03-19 | 2019-09-27 | 美光科技公司 | With configurable input/output interface memory device |
CN112735499A (en) * | 2019-10-14 | 2021-04-30 | 美光科技公司 | Detailed failure notification in a memory subsystem |
US20210240869A1 (en) * | 2017-04-21 | 2021-08-05 | Micron Technology, Inc. | Secure memory device with unique identifier for authentication |
CN113687979A (en) * | 2015-05-31 | 2021-11-23 | 英特尔公司 | On-die ECC with error counter and internal address generation |
CN114270303A (en) * | 2019-08-27 | 2022-04-01 | 美光科技公司 | Power optimization of memory subsystems |
CN114880164A (en) * | 2022-07-12 | 2022-08-09 | 合肥康芯威存储技术有限公司 | Method and device for managing storage pages |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1253521A2 (en) * | 2001-04-24 | 2002-10-30 | Rambus Inc. | Method and apparatus for signaling between devices of a memory system |
CN1822207A (en) * | 2005-01-06 | 2006-08-23 | 三星电子株式会社 | Storage module and storage system with the storage module |
CN101162449A (en) * | 2007-10-08 | 2008-04-16 | 福州瑞芯微电子有限公司 | NAND FLASH controller and data interactive method with NAND FLASH chip |
US20080112255A1 (en) * | 2006-11-15 | 2008-05-15 | Aaron John Nygren | Training of signal transfer channels between memory controller and memory device |
US20090271678A1 (en) * | 2008-04-25 | 2009-10-29 | Andreas Schneider | Interface voltage adjustment based on error detection |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1253521A2 (en) * | 2001-04-24 | 2002-10-30 | Rambus Inc. | Method and apparatus for signaling between devices of a memory system |
CN1822207A (en) * | 2005-01-06 | 2006-08-23 | 三星电子株式会社 | Storage module and storage system with the storage module |
US20080112255A1 (en) * | 2006-11-15 | 2008-05-15 | Aaron John Nygren | Training of signal transfer channels between memory controller and memory device |
CN101162449A (en) * | 2007-10-08 | 2008-04-16 | 福州瑞芯微电子有限公司 | NAND FLASH controller and data interactive method with NAND FLASH chip |
US20090271678A1 (en) * | 2008-04-25 | 2009-10-29 | Andreas Schneider | Interface voltage adjustment based on error detection |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113687979A (en) * | 2015-05-31 | 2021-11-23 | 英特尔公司 | On-die ECC with error counter and internal address generation |
CN113687979B (en) * | 2015-05-31 | 2025-01-14 | 英特尔公司 | On-die ECC with error counters and internal address generation |
CN107919876A (en) * | 2016-10-09 | 2018-04-17 | 旺宏电子股份有限公司 | Method and electronic device for searching error position in code word |
US20210240869A1 (en) * | 2017-04-21 | 2021-08-05 | Micron Technology, Inc. | Secure memory device with unique identifier for authentication |
US12086296B2 (en) * | 2017-04-21 | 2024-09-10 | Micron Technology, Inc. | Switch to control communication between a memory and a secret generator in a memory device |
CN109582491B (en) * | 2017-09-28 | 2023-10-10 | 北京忆芯科技有限公司 | Read data error handling based on machine learning |
CN109582491A (en) * | 2017-09-28 | 2019-04-05 | 北京忆芯科技有限公司 | Reading error in data processing based on machine learning |
WO2019136981A1 (en) * | 2018-01-12 | 2019-07-18 | 江苏华存电子科技有限公司 | Data reliability enhancement system and method |
CN110289030A (en) * | 2018-03-19 | 2019-09-27 | 美光科技公司 | With configurable input/output interface memory device |
CN110289030B (en) * | 2018-03-19 | 2023-08-08 | 美光科技公司 | Memory device with configurable input/output interface |
CN114270303A (en) * | 2019-08-27 | 2022-04-01 | 美光科技公司 | Power optimization of memory subsystems |
CN114270303B (en) * | 2019-08-27 | 2023-01-03 | 美光科技公司 | Power optimization of memory subsystems |
CN112735499A (en) * | 2019-10-14 | 2021-04-30 | 美光科技公司 | Detailed failure notification in a memory subsystem |
CN112735499B (en) * | 2019-10-14 | 2025-06-03 | 美光科技公司 | Detailed failure notification in the memory subsystem |
CN114880164B (en) * | 2022-07-12 | 2022-09-20 | 合肥康芯威存储技术有限公司 | Method and device for managing storage pages |
CN114880164A (en) * | 2022-07-12 | 2022-08-09 | 合肥康芯威存储技术有限公司 | Method and device for managing storage pages |
Also Published As
Publication number | Publication date |
---|---|
KR20130139848A (en) | 2013-12-23 |
CN107093464A (en) | 2017-08-25 |
WO2012009318A1 (en) | 2012-01-19 |
KR101719395B1 (en) | 2017-03-23 |
TWI482169B (en) | 2015-04-21 |
TW201225100A (en) | 2012-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9069688B2 (en) | Dynamic optimization of back-end memory system interface | |
KR101719395B1 (en) | Dynamic optimization of back-end memory system interface | |
US9384128B2 (en) | Multi-level redundancy code for non-volatile memory controller | |
US8464135B2 (en) | Adaptive flash interface | |
US10283200B2 (en) | Impedance tuning between packaging and dies | |
TWI470641B (en) | Methods and apparatus for interfacing between a flash memory controller and a flash memory array | |
US9703698B2 (en) | Data writing method, memory controller and memory storage apparatus | |
KR101807346B1 (en) | Bit scan circuit and method in non-volatile memory | |
US20160170647A1 (en) | Memory cell programming method, memory control circuit unit and memory storage apparatus | |
US9312013B1 (en) | Configuration method of erase operation, memory controlling circuit unit and memory storage device | |
CN117437957A (en) | Memory system, memory device and method of operating memory device | |
CN107958687A (en) | Memory programming method, memory control circuit unit and memory device thereof | |
TWI613660B (en) | Memory programming method, memory control circuit unit and memory storage apparatus | |
US11955199B2 (en) | Memory chip, memory device and operation method thereof | |
CN112562772B (en) | Adaptive low density parity check hard decoder | |
CN115482866A (en) | Parameter estimation based on previous read attempts in memory devices | |
US20180136841A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US12211553B2 (en) | Storage system and operating method of storage controller | |
US20250192783A1 (en) | Interface circuits, non-volatile memory devices, and memory controllers having enhanced output drivers therein | |
KR20200090031A (en) | Memory system and operating method thereof | |
US12062400B2 (en) | Memory system and read method | |
CN103098029B (en) | The dynamic optimization of background memory system interface | |
US20240185900A1 (en) | Fast reference voltage training for i/o interface | |
WO2025097280A1 (en) | Memory apparatus and operation method therefor, and memory system and operation method therefor | |
JP2025511449A (en) | MEMORY SYSTEM AND METHOD FOR OPERATION THEREOF, MEMORY CONTROLLER, AND MEMORY |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Texas, USA Applicant after: DELPHI INT OPERATIONS LUX SRL Address before: Texas, USA Applicant before: Sandisk Corp. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161130 Termination date: 20210712 |
|
CF01 | Termination of patent right due to non-payment of annual fee |