CN112148212B - 用于存储器装置的多维伪随机二进制序列分析 - Google Patents
用于存储器装置的多维伪随机二进制序列分析 Download PDFInfo
- Publication number
- CN112148212B CN112148212B CN202010227501.9A CN202010227501A CN112148212B CN 112148212 B CN112148212 B CN 112148212B CN 202010227501 A CN202010227501 A CN 202010227501A CN 112148212 B CN112148212 B CN 112148212B
- Authority
- CN
- China
- Prior art keywords
- cells
- memory
- cell
- controller
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012300 Sequence Analysis Methods 0.000 title description 3
- 230000008878 coupling Effects 0.000 claims abstract description 104
- 238000010168 coupling process Methods 0.000 claims abstract description 104
- 238000005859 coupling reaction Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000004891 communication Methods 0.000 claims description 12
- 238000013459 approach Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 239000010410 layer Substances 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 230000001808 coupling effect Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000005311 autocorrelation function Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000002592 echocardiography Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
-
- 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/20—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
- G11C2029/3602—Pattern generator
-
- 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/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一种用于识别存储器系统中的单元耦合的方法,其包含生成二维伪随机二进制序列阵列。所述方法还包含对所述存储器系统的存储器块的多个单元执行擦除操作。所述方法还包含使用所述二维伪随机二进制序列阵列对所述多个单元执行写入操作。所述方法还包含对所述多个单元执行读取操作以识别所述多个单元中的每个单元的电压值。所述方法还包含使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合。
Description
技术领域
本公开涉及存储器系统,且具体来,涉及一种用于所述存储器系统的多维伪随机二进制序列分析。
背景技术
非易失性存储器系统是一种无需外部电源即可保留所存储信息的存储器。非易失性存储器广泛用于各种电子装置和独立存储器装置中。例如,非易失性存储器可以存在于笔记本电脑、数码音频播放器、数码相机、智能手机、视频游戏、科学仪器、工业机器人、医疗电子器件、固态驱动器、USB驱动器、存储卡等中。非易失性存储器可以进行电子编程/重新编程和擦除。
在对此类存储器系统的存储器单元执行写入操作期间,将电压(例如,表示存储在存储器单元中的数据)施加到所述存储器单元。在典型存储器系统中,存储器单元可能影响相对接近存储器单元(例如,邻近存储器单元)的另一存储器单元的电压(例如,引起另一存储器单元的电压增加或降低)。这可以被称为单元耦合,并且可以发生在正被写入的存储器块中的多个无效存储器单元中(例如,作为写入操作的一部分)。此类单元耦合可能导致不准确的数据读取(例如,在对存储器单元执行读取操作期间)和/或通常可能降低存储器系统的性能。另外,随着存储器系统的复杂性继续增加,例如通过包含多级存储器单元(例如,2位或更多位/单元)、三级存储器单元(例如,3位/单元)、四级存储器单元(例如4位/单元)等,单元耦合可能增加,这可能越来越不合需要。
发明内容
本公开大体上涉及存储器管理系统和方法。
本公开实施例的一个方面是一种用于识别存储器系统中的单元耦合的方法。所述方法包含生成二维伪随机二进制序列阵列。所述方法还包含对所述存储器系统的存储器块的多个单元执行擦除操作。所述方法还包含使用所述二维伪随机二进制序列阵列对所述多个单元执行写入操作。所述方法还包含对所述多个单元执行读取操作以识别所述多个单元中的每个单元的电压值。所述方法还包含使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合。
本公开实施例的另一方面是一种控制器,其包含总线接口和处理器。所述总线接口与存储器系统的一个或多个存储器块通信。所述处理器配置成:接收二维伪随机二进制序列阵列;对所述一个或多个存储器块中的存储器块的多个单元执行擦除操作;使用所述二维伪随机二进制序列阵列对所述多个单元执行写入操作;对所述多个单元执行读取操作以识别所述多个单元中的每个单元的电压值;以及使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合。
本公开实施例的另一方面是一种用于识别存储器系统中的单元耦合的系统。所述系统包含至少一个存储器块和控制器。所述控制器与所述至少一个存储器块通信,并且包含配置成生成二维伪随机二进制序列阵列的伪随机二进制序列生成器。所述控制器还包含单元耦合检测器,所述单元耦合检测器配置成:对所述至少一个存储器块的多个单元执行擦除操作;使用所述二维伪随机二进制序列阵列对所述多个单元执行写入操作;对所述多个单元执行读取操作以识别所述多个单元中的每个单元的电压值;以及使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合。
本公开的这些和其它方面公开于实施例的以下详细描述、所附权利要求书和附图中。
附图说明
本公开当结合附图阅读时依据以下详细描述会得到最佳理解。应强调,根据惯例,附图的各种特征未按比例绘制。相反,为了清楚起见,各种特征的尺寸被任意扩大或缩小。
图1A-1B总体上示出根据本公开原理的示例非易失性存储器系统的框图。
图2A总体上示出根据本公开原理的控制器的示例组件的框图。
图2B总体上示出根据本公开原理的非易失性存储器存储系统的示例组件的框图。
图3总体上示出根据本公开原理的存储器块。
图4总体上示出根据本公开原理的单元耦合检测系统。
图5A-5C总体上示出根据本公开原理的存储器单元存储配置。
图6A-6C总体上示出根据本公开原理的伪随机二进制序列阵列。
图6D总体上示出根据本公开原理的竖直单元耦合。
图7是总体上示出根据本公开原理的单元耦合检测方法的流程图。
具体实施方式
以下论述是针对本发明的各种实施例。虽然这些实施例中的一个或多个可能是优选的,但是不应将所公开的实施例解释为限制本公开的范围(包含权利要求书)或者作为限制本公开的范围(包含权利要求书)来使用。此外,所属领域的技术人员将理解以下描述具有广泛的应用,并且任一实施例的论述仅意味着举例说明那个实施例,而并不希望暗示将本公开的范围(包含权利要求书)限制于那个实施例。
如所描述,非易失性存储器系统是一种无需外部电源即可保留所存储信息的存储器。非易失性存储器广泛用于各种电子装置和独立存储器装置中。例如,非易失性存储器可以存在于笔记本电脑、数码音频播放器、数码相机、智能手机、视频游戏、科学仪器、工业机器人、医疗电子器件、固态驱动器、USB驱动器、存储卡等中。非易失性存储器可以进行电子编程/重新编程和擦除。
在对此类存储器系统的存储器单元执行写入操作期间,将电压(例如,表示存储在存储器单元中的数据)施加到所述存储器单元。在典型存储器系统中,存储器单元可能影响相对接近存储器单元(例如,邻近存储器单元)的另一存储器单元的电压(例如,引起另一存储器单元的电压增加或降低)。这可以被称为单元耦合,并且可以发生在正被写入的存储器块中的多个无效存储器单元中(例如,作为写入操作的一部分)。此类单元耦合可能导致不准确的数据读取(例如,在对存储器单元执行读取操作期间)和/或通常可能降低存储器系统的性能。另外,随着存储器系统的复杂性继续增加,例如通过包含多级存储器单元(例如,2位或更多位/单元)、三级存储器单元(例如,3位/单元)、四级存储器单元(例如4位/单元)等,单元耦合可能增加,这可能越来越不合需要。
因此,可能希望通过对存储器系统的动态操作和性能进行建模来识别和校正此类单元耦合。此外,可能期望在执行写入操作、读取操作、保留等期间分离和分解单元耦合效应。这种单元耦合效应可以包含:在执行写入操作期间发生的线性和非线性耦合效应;在保留期间发生的线性和非线性耦合效应;在执行读取操作期间发生的线性和非线性耦合效应;等等。
典型的存储器系统可以使用分析方法,所述方法包含将简单的重复图案写入存储器系统的存储器单元并识别由于存储器单元中的已知缺陷而可能发生的预期偏差。替代地,另一种方法可以包含将统计上随机的数据写入存储器单元,并使用统计观察以基于随机统计数据得出某些结论。
在设计和工程的其它领域中,包含信号处理、通信、动态机械系统等,已经开发了一组配置成分析动态系统的数学工具。可包含伪随机二进制序列方法的这些分析方法在大多数情况下不适用于现代存储器系统的设计使用。例如,硬盘装置(HDD)设计中使用的信号处理工具未配置成用于存储器系统(例如NAND快闪存储器系统等),因为此类存储器系统不会输出与HDD装置中的读头的模拟信号类似的模拟信号。
如上所述,此类分析方法包含使用伪随机二进制序列(PRBS)阵列(例如,有时称为图案)。可以利用线性反馈移位寄存器(LFSR)或其它合适的PRBS生成装置来生成PRBS阵列。例如,LFSR可以生成有限域字母表(例如,{0,α0..α14}、{0,α0..α62}或其它合适的字母表)。字母表的每个元素(例如,字母)包含N次多项式的N位,并且非零元素的总数为2N-1。因此,GF(2N)中的运算(例如,加、减、乘、除等)得出字段的元素。非零元素标记为αX,其中X=0…(2N-2)。所得的PRBS包含与LFSR生成的字母表的元素的指数(例如,{0…14}、{0…62}或其它合适的指数,取决于PRBS的维度)相对应的索引。这可以被称为对数域。使用LFSR生成PRBS阵列可以提供用于生成PRBS阵列的相对有效的方法。PRBS阵列通常具有频谱平坦的响应(例如,除了DC之外),其指示PRBS阵列的随机性质。另外或替代地,PRBS阵列通常具有特殊的特性或属性,例如移位属性、重复发生属性、窗口属性、半1的半0属性、加法属性、移位和加法属性、自相关函数、游程属性,和/或其它合适的特性或属性。
除了以上特性或属性之外,PRBS阵列可以提供作为一维或n维阵列的二值自相关,可以适用于允许线性和非线性内核分离的系统识别,并且可以使用读取图案与带符号的PRBS序列的直接互相关来提供简单的解卷积。
因此,可能可取的是配置成使用PRBS序列阵列(尤其是多维PRBS序列阵列)以识别存储器系统(例如NAND快闪存储器系统)中的单元耦合的系统和方法,例如本文所述的系统和方法。在一些实施例中,本文描述的系统和方法可以配置成通过为存储器单元选择期望的存储配置来调整针对存储器系统(例如,具有3D-NAND存储器)的多维PRBS分析。
在一些实施例中,在每个存储器单元中可以存储两个电压电平。图5A总体上示出两级PRBS写入图案(例如,不使用存储器系统的格雷码)。在一些实施例中,可编程电平的全频谱可以用于存储器单元。例如,如图5B所示,16级(例如4位/单元)PRBS写入图案(例如,不使用存储器系统的格雷码)可以提供存储器系统的其它可能的动态操作模式。图5C总体上示出使用通常存在于存储器数据路径中的格雷码的替代16级(例如,每单元4位)PRBS写入图案。每个PRBS写作图案都为整体分析提供了各种好处。另外或替代地,每个阈值或Vt分布的单次读取可以用于形成用于解卷积的伪模拟信号。
在一些实施例中,本文描述的系统和方法可以配置成选择适合于存储器单元(例如,3D NAND)结构的PRBS阵列布局。PRBS序列必须使用原子PRBS阵列大小(例如最小大小)的整数倍进行互相关(解卷积)。图6A-6C总体上示出各种PRBS阵列结构。互相关过程出现在说明结构的全倍数中。
图6A总体上示出包括通常在HDD分析中使用的1D阵列结构的线性方法。这可以被称为传统的1D PRBS序列阵列,并且可以使用原始多项式(例如x4+x+1)通过简单的LFSR生成。
图6B总体上示出矩形方法,其可为非常紧凑的阵列结构。然而,矩形方法可能无法沿结构的每一行和每一列提供足够的随机性。
图6C总体上示出包括相对较大的原子阵列结构的平行四边形方法。平行四边形方法的优点是沿结构的每个单独的行和列具有足够的随机性。如通常所示,平行四边形方法结构中突出显示的平行四边形封装了PRBS序列的所有元素,并且根据平行四边形的顶点重复互相关结果。PRBS阵列可以包含由N(2N-1)次=阵列长度定义的任何合适的阵列。例如,图6C中示出的PRBS阵列可以配置成包含为15×15的阵列,其中所有15个元素(例如0-14)都包含在每一行和每一列中,并且在每一行和每一列中仅出现一次。这可以被称为拉丁方属性。
在一些实施例中,平行四边形2D PRBS阵列可以包含63×63(未示出)的阵列,其具有被写为63×63原子阵列的索引(6次)。水平行中的索引从左到右以1mod 63递增。竖直列中的索引从下到上以11mod 63递增(称为抽取=11)。如关于15×15阵列所述,每一行和每一列仅包含所有63个值(0到62)一次。如所描述,PRBS包含与由LFSR生成的有限域字母表的元素的指数(例如,{0…62})相对应的索引。此类PRBS阵列可以包含多个可能的抽取值,并且可以针对非线性回波的放置(例如,由于单元耦合而产生的)进行优化,如图6D中总体上所示。线性回波的位置可始终与物理单元耦合取向一致。例如,单元之间的线性信号耦合回波可以被识别为物理解释,因为它看起来像是域的对数域中的移位。另外或替代地,可以通过与对应于回波的两个耦合的单元相对应的域值的逐位加法(XOR)来确定非线性回波的位置,这可能不会以对数域中的简单移位的形式出现。PRBS序列阵列。
在一些实施例中,本文描述的系统和方法可以配置成以预定义间隔分配将PRBS阵列写入存储器单元中,使得PRBS阵列被压实为存储器单元的蜂窝/串结构。例如,为了将PRBS阵列紧密地装配到蜂窝结构中并分离字符串区域,可以对PRBS阵列进行间隔(扩展),以便用PRBS阵列写入字线中的每第4位以及第4字线。这可以允许将PRBS阵列压实为存储器单元的蜂窝/串结构。
在一些实施例中,本文描述的系统和方法可以配置成提供实用且高效的数学方法,以在存储器系统的写入/保持/读取过程期间分离和分解线性和非线性单元耦合。
在一些实施例中,本文描述的系统和方法可以配置成通过与存储器单元结构相配合来提供临界值。另外,本文描述的系统和方法可以在现代存储器单元结构中提供必要的正交性,以允许分解存储器单元的各个维度中的单元耦合。
在一些实施例中,本文描述的系统和方法可以配置成指示存储器单元中的所有线性和非线性耦合效应。这些效应中的至少一些可以预期或已知,而其它一些则是不可预期的。本文描述的系统和方法可以配置成允许发现先前未知的新的单元耦合效应。
本文描述的系统和方法可以是高度实用的,因为写入的图案易于由LFSR生成。另外或替代地,本文描述的系统和方法可以提供相对有效的解卷积,这要求读取图案与带符号的PRBS序列进行直接的互相关。本文描述的系统和方法可以使用PRBS序列,所述PRBS序列包含具有精确相等数目的0和1的确定性平坦频谱,这可以提高测试的准确性并且可以识别在本底噪声上的单元耦合。
图1A示出包含非易失性存储器的示例系统架构100的框图。具体地,示例系统架构100包含存储系统102(例如,其可以被称为存储器系统)、控制器104和主机106。在各种实施例中,主机106可以包含利用存储系统102的任何装置或系统。在一些实施例中,控制器104的各个方面可以由主机106实施,或者主机106可以包含其自身的控制器(例如,处理器),所述控制器配置成执行存储在存储系统102中的指令,并且进一步地,主机106可以存取存储在存储系统102中的数据。
主机106的实例包含计算装置,例如台式计算机、机架式服务器、笔记本电脑、智能手机、平板电脑或其它合适的计算装置。主机106还可以包含系统和装置,例如游戏系统、数码电话、数码相机(例如,数码照相机和数码电影相机)、便携式媒体播放器、数码相框、遥控器、电视棒、智能电视等。此外,系统架构100可以在例如安全数字(SD)卡或微安全数字(微SD)卡的存储卡中实施。在一些实施例中,系统架构100例如作为安装在笔记本电脑中的固态磁盘(SSD)驱动器嵌入主机中。
在其中系统架构100实施于存储卡内的实施例中,主机106可以包含用于一种或多种类型的存储卡或快闪驱动器的内置式插口(例如,通用串行总线(USB)端口,或存储卡插槽)。另外或替代地,主机106可以包含可以将存储卡插入其中的适配器。主机的前述实例并不意味着是限制性实例。相反,主机106可以包含存取存储系统102的任何类型的装置、系统和设备。
在图1A中,存储系统102包含存储器控制器和驱动器(例如,控制器104),如将在下文进一步描述的,然而,在存储系统102的一些实施例中,存储系统102可以包含仅存储器单元,其替代地由主机106上的控制器执行的软件来控制(例如,计算装置的处理器控制存储系统102,包含对其进行错误处理)。此外,尽管图1A示出与主机106分开的存储系统102,但在一些实施例中,存储系统102嵌入有主机106,其中存储器、控制器和驱动器形成在单个集成电路芯片上。
主机106可以使用总线112与存储系统102通信,所述总线实施使存储系统102和主机106能够通信的任何已知的或后开发的通信协议。通信协议可以包含安全数字(SD)协议、记忆棒(MS)协议、USB协议、高级微控制器总线架构(AMBA)或其它合适的通信协议。
在各种实施例中,控制器104充当主机106与存储系统102之间的接口。主机106可以经由与总线112相关联的总线接口与控制器104通信。控制器104可以包含单独的电路组件、处理电路(例如逻辑门和开关)、处理器、微处理器、具有控制软件的微控制器或现场可编程门阵列(FPGA)。此外,示例控制器104包含计算机可读介质,所述计算机可读介质存储可由处理器执行的计算机可读程序代码(例如,软件或固件)。在一些实施例中,控制器104是快闪存储器控制器。在一些实施例中,控制器104是在主机106内执行的处理器。
仍参考图1A,根据一些实施例,控制器104充当主机106与存储系统102之间的接口,并管理存储在存储系统102上的数据。例如,控制器104可以从主机106接收命令或指令,并且可以响应于主机106传送的命令或指令,对存储系统102的存储器执行读取操作、写入操作、编程操作、擦除操作,其它合适的操作或其组合。主机106可以通过经由与总线112相关联的总线接口向控制器104提供逻辑地址来存取存储在存储系统102中的数据,控制器104将所述逻辑地址转换成物理地址。控制器104可以存取与物理地址相关联的数据和/或特定存储位置,并且促进在存储系统102与主机106之间传送数据。在一些实施例中,在存储系统102包含快闪存储器的情况下,控制器104格式化快闪存储器以确保存储器正常运行,映射出不良的快闪存储器单元,并且分配备用单元以替换将来发生故障的单元或用于保存固件以操作快闪存储器控制器(例如,控制器104)。
因此,控制器104执行各种存储器管理功能,例如损耗均衡(例如,分布写入以延长存储器块的寿命)、垃圾收集(例如,将有效数据页移动到新块并擦除先前使用的块)以及错误检测和纠正(例如读取错误处理)。
仍参考图1A,存储系统102包含非易失性存储器(NVM)块110,所述NVM块可以包含几个存储器裸片110-1到110-N。在一些实施例中,NVM块110定义了存储器裸片物理集合,例如存储器裸片110-1到110-N。在其它实施例中,NVM块110定义了存储器裸片逻辑集合,其中NVM块110包含来自几个物理上不同的存储器裸片集合的存储器裸片。图1A中定义NVM块110的方式并不意味着是限制性的。
每个存储器裸片,例如存储器裸片110-1,包含非易失性存储器单元,例如NAND快闪存储器单元、NOR快闪存储器单元或其它合适的存储器单元。由于存储器单元是非易失性的,因此即使当提供给存储器单元和/或存储系统102的电源中断的情况下,存储系统102中的存储器单元仍会保留数据。因此,存储系统102易于运输,并且存储系统102可以用在存储卡和不总是连接到电源的其它存储器装置中。
在各种实施例中,存储器裸片110中的存储器单元是固态存储器单元(例如,快闪),并且是一次可编程、几次可编程或多次可编程的。另外,存储器裸片110中的存储器单元可以包含单级单元(SLC或1位/单元)、多级单元(MLC或2位/单元)、三级单元(TLC或3位/单元)或四级单元(QLC或4位/单元)。在一些实施例中,存储器单元是以平面方式(例如,2DNAND(与非)快闪)或堆叠或层化方式(例如,3D NAND快闪)制造。即,平面快闪存储器包含单层存储器单元,而堆叠的快闪存储器包含竖直地多层堆叠的存储器单元(例如,称为平面)。
在一些实施例中并且如1A所示,控制器104和NVM块110通过实施任何已知的或后开发的通信协议的接口114通信地耦合。在存储系统102是快闪存储器的实施例中,接口114是快闪接口,例如Toggle Mode 200、400、800或通用快闪存储器接口(CFI)。在各种实施例中,接口114可以由设置在控制器104与各个存储器裸片110-1到110-N之间的几个通道(即,物理连接)来实施。此外,在其上建立接口114的通道的数目基于控制器104的功能而变化。另外,单个通道可以配置成通信地耦合超过一个存储器裸片。单个接口114的描绘并不意味着是限制性的。相反,单个接口表示可以在组件之间使用的示例接口,并且一个或多个接口可以用于通信耦合相同的组件。
图1B总体上示出根据本公开原理的系统架构100的框图。系统架构100可以实施为更大的系统架构的一部分。例如,如图1B所示,系统架构150包含存储模块156,所述存储模块进一步包含几个存储系统102。在示例系统架构150内,存储模块156通过存储控制器152与主机106通信地耦合。具体地,主机106与存储模块156之间的总线154包含实施任何已知的或后开发的通信协议的总线接口,例如串行高级技术附件(SATA)或外围组件接口标准(PCIe)接口。在一些实施例中,存储模块156是SSD(例如,在笔记本电脑或平板电脑中)。
系统架构100的一些实施方案包含分层存储系统。分层存储系统可以包含多个存储控制器152,每个存储控制器控制相应的存储系统102。此外,多个主机106可以各自存取分层存储系统。主机106可以经由实施任何已知的或后开发的通信协议的总线接口存取分层存储系统内的存储器,所述总线接口包含非易失性存储器标准(NVMe)或以太网光纤通道(FCoE)接口。分层存储系统可以被实施为机架安装的存储系统,其可由多个主机计算机(例如,数据中心)存取。
接口154可以由设置在存储控制器152与存储模块156之间的多个通道(即,物理连接)来实施。在一些实施例中,在其上建立接口154的通道的数目基于存储控制器152的功能而改变。单个接口的描述并不意味着是限制性的,并且单个接口表示可以在组件之间使用的示例接口,其中一个或多个接口可以用于通信地耦合各种组件。
图2A总体上示出根据本公开原理的存储系统102的框图200。存储系统102的框图200包含先前在图1A中描述的组件,例如控制器104和NVM存储器块110。可以在存储系统102内存在的附加组件包含随机存取存储器(RAM)230、只读存储器(ROM)232和其它组件234。在一些实施例中,ROM 232存储系统启动代码。
尽管RAM 230和ROM 232被示为存储系统102内的分开的模块,但是所示架构并不意味着是限制性的。例如,RAM 230和ROM 232可以位于控制器104内。在一些实施例中,RAM230或ROM 232的一部分分别位于控制器104外和控制器104内。在其它实施例中,控制器104、RAM 230和ROM 232可以位于分开的半导体裸片上。在各种实施例中,其它组件234包含外部电接口、外部RAM、电阻器、电容器、逻辑门或与控制器104对接的其它组件。
在一些实施例中,控制器104包含与主机106对接的模块202,与NVM存储器块110对接的模块204以及各种其它模块,下文将进一步描述。控制器内的模块(例如,模块202和204)通过总线206彼此通信地耦合。
以下对控制器104内所描绘的各种模块的讨论是说明性的而非限制性的。例如,在图2A中总体上示出的各种模块不限于在控制器104内执行,并且在一些实施例中,一个或多个模块可以在控制器104外执行。
模块202与主机106对接,并且包含主机接口208和物理层接口210,所述物理层接口在主机106或下一级存储控制器与控制器104之间提供电接口。主机接口208促进数据、控制信号和定时信号的传送。主机接口208的实例包含SATA、SATA Express、串行连接的SCSI(SAS)、光纤通道、USB、PCIe和NVMe。
仍参考图2A,在各种实施例中,模块204配置成与NVM块110通信并且包含纠错码(ECC)引擎212。在一些实施例中,ECC引擎212对从主机106接收的数据进行编码并且将编码的数据存储在NVM块110中。当从NVM存储器块110中读取数据时,ECC引擎212对数据进行解码并校正在数据中检测到的错误。为了检测错误,ECC引擎212使用例如低密度奇偶校验(LDPC)码、Bose-Chaudhuri-Hocquenghem(BCH)码、软读取和/或额外奇偶校验的算法来实施各种类型的错误检查。
示例模块204还包含定序器214和独立驱动器冗余阵列(RAID)模块216。在各种实施例中,定序器214生成命令序列,例如编程和擦除命令序列,所述命令序列被传输到NVM存储器块110。RAID模块216生成RAID奇偶校验和故障数据的恢复。RAID奇偶校验可以用于为写入NVM存储器块110的数据提供附加级别的完整性保护。在一些实施例中,ECC引擎212实施RAID模块216的功能。
示例模块204还包含存储器接口218,所述存储器接口向NVM存储器块110提供命令序列并从NVM存储器块110接收状态信息。例如,存储器接口218实施任何已知的或后开发的通信协议,包含双倍数据速率(DDR)接口,例如Toggle Mode 200、400或800接口。模块204还包含控制模块204的整体操作的快闪控制层220。
仍参考图2A中的控制器104内的示例模块,控制器104内的附加模块包含虚拟字线(DW)图案生成模块222、DW错误分析模块224和读取参数调整模块226。虚拟字线放置在为了分析和跟踪相应的非易失性存储裸片的行为和健康状况而使用的非易失性存储器裸片上。在各种实施例中,DW图案生成模块222将已知数据图案放入虚拟字线中,并且通过从虚拟字线中读回数据并将数据与已知数据图案进行比较来跟踪或周期性地检查错误。
在各种实施例中,读取参数调整模块226调整与特定的非易失性存储器裸片相关联的参数。例如,并且如下文进一步讨论的,读取参数调整模块226可以在操作期间(即,读取或写入)调整与特定的非易失性存储器裸片相关联的参数,以调整或重新调整读取参数。在重新调整读取参数的操作期间,读取参数调整模块226调整特定存储器块的读取参数,从存储器块中读取数据,并验证所得的BER。如果所得的BER降至处于或低于目标或期望BER,则读取参数调整模块226存储读取参数用于存储器块。随后,在读取存储器块内的任何字线期间使用所存储的读取参数。因此,读取参数对于存储器块可能是唯一的。
示例控制器104中的附加模块包含缓冲器管理器/总线控制器228,其管理例如RAM230中的缓冲器并控制控制器104中的总线206的内部总线仲裁。另外或替代地,控制器104可以包含执行NVM存储器块110的损耗均衡的介质管理层236。如先前所提及,关于控制器104描述的各种模块并不意味着对控制器104的架构进行限制。例如,物理层接口210、RAID模块216、介质管理层236和缓冲器管理/总线控制器228可以是控制器104内的可选组件的实例。
此外,在存储系统102包含快闪存储器的实施例中,介质管理层236可以集成为处理快闪错误并与主机106对接的快闪管理的一部分。具体地,介质管理层236可以包含算法(例如,存储器装置中的固件),所述算法将从主机106接收的写入命令转换为对NVM存储器块110的写入。
图2B总体上示出具有存储系统102内的NVM存储器块110的各种特征的框图。如先前(在图2A中)描述了控制器104的细节,在图2B中,控制器104被示为单个块。另外,在图2中包含了先前描述的RAM 230、ROM 232和其它组件234以便于读者定位。接下来,讨论示例存储器裸片110-1内的细节。尽管讨论的重点是存储器裸片110-1,但是与存储器裸片110-1相关的每个讨论的特征同样适用于NVM存储器块110中的所有存储器裸片。
在一些实施例中,示例存储器裸片110-1包含控制电路250、读取/写入电路252、行解码器254、列解码器256和存储器阵列260。存储器阵列260可以包含存储器单元的二维阵列或三维阵列。读取/写入电路252并行地读取和编程存储器裸片110-1内的存储器页。在各种实施例中,经由行解码器254通过字线和经由列解码器256通过位线存取存储器阵列260。
存储器裸片110-1的架构并不意味着是限制性的,并且在不脱离本公开的范围的情况下可以使用能够执行存取存储器阵列260的功能的任何已知架构。例如,在各种实施例中,可以以对称的方式在存储器阵列260的相对侧上实施通过各种外围电路对存储器阵列260的存取,这降低了存取线和存储器阵列260的每一侧上的电路的密度。
仍参考图2B,在各种实施例中,示例控制电路250包含电力控制电路266、地址解码器268和状态机270。在一些实施例中,电力控制电路266、地址解码器268和状态机270可以统称为管理电路。控制电路250及其各种管理电路通过各种接口(例如,接口262和264)通信地耦合到行解码器254和列解码器256。在各种实施例中,控制电路250对存储器阵列260执行各种操作,包含读取或写入到存储器单元。
电力控制电路266在存储器阵列260的操作期间控制提供给字线和位线的功率和电压。地址解码器268提供地址接口,所述地址接口在主机106所提供的地址与行解码器254和列解码器256所使用的地址之间转换地址。示例地址解码器268将主机106所提供的地址转换为可以理解并与行解码器254和列解码器256所使用的格式兼容的地址。状态机270提供存储器操作的芯片级控制。
因此,存储系统102包含各种组件,包含控制器104和NVM存储器块110,其细节已在上文图1A、1B、2A和2B中描述。现在,讨论转向示例存储器阵列260的示例架构,尤其是可以执行以改善存储系统102中的读取性能的方法。
图3进一步示出存储器阵列260。存储器阵列260被分成几个存储器块302。在快闪存储器中,存储器块被定义为擦除单元。也就是说,每个存储器块302包含一起或作为块擦除的多个存储器单元。在一些实施例中,存储器阵列260可以被划分成任意数目的块,例如,存储器阵列260包含1,024个块。另外或替代地,存储器块302中的每一个可以在概念上被分成定义为编程单元的多个页。在一些实施例中,数据页可以存储在一行存储器单元中。每个页可以包含用户数据和开销数据,其中开销数据包含已经从用户数据计算出的CC。在一些实施例中,存储器块302-1到302-N可以包含固态NAND存储器块。
每个存储器块302,例如存储器块302-1,包含多个位线304、字线306和选择线308。每个位线,例如位线304-1,连接到串联连接的几个存储器单元。更具体地,在其中每个存储器单元是浮栅晶体管的实施例中,浮栅晶体管串联连接以形成NAND串310(例如,在虚线框中所示)。尽管在图3中示出四个存储器单元,但是NAND串内的存储器单元的数目并不意味着是限制性的。例如,可以在NAND串中连接16个、32个、64个、128个或任何其它数目个存储器单元。每个相应位线304耦合到块302内的相应NAND串。
仍然参考图3,读取存储在特定存储器单元(例如,存储器单元316)中的数据的方法包含向块302的选择线308施加电压,所述选择线又耦合到块302内的相应NAND串,包括包含存储器单元316的NAND串310。施加到选择线308的电压大于选择晶体管312和314的阈值电压。选择晶体管312由选择栅漏极线(SGD)308-1控制,并且选择晶体管314由选择栅源极线(SGS)308-2控制。另外,为了读取存储器单元316中的数据,NAND串319中的所有其它存储器单元或未选择的存储器单元被接通(例如,不管它们是被编程还是被擦除都导通电流)。未选择的存储器单元具有施加到其相应字线上的读取通过电压(即,读取参数),这些电压接通未选择的存储器单元。
在示例读取操作期间,将各种读取比较电平(即电压)施加到字线306-2,以确定存储在存储器单元316中的值。在一些实施例中,测量存储器单元316的传导电流以确定存储于存储器单元316内的值。存取每个存储器单元的方法以及在读取或写入期间存取的存储器单元的数目不同。例如,可以同时编程或读取存储器块302-1的所有位线。在各种实施例中,沿着共享字线的存储器单元可以被同时(即,并行)编程。在其它实施例中,位线可以被分成偶数位线和奇数位线。在奇数/偶数位线架构中,沿着共享字线并连接到奇数位线的存储器单元被同时编程,而沿着共享字线并连接到偶数位线的存储器单元在不同时间被编程。
每次将数据写入存储器块时,通过ECC引擎212处理数据,这包含对数据进行编码(例如,使用特定的纠错码)并将编码的数据存储在存储器块中。当从存储器块中读回数据时,通过ECC引擎212处理数据,这包含对数据进行解码、校正错误(例如,作为BER被跟踪)以及将数据返回给用户(借助于控制器104)。在一些实施例中,ECC引擎212将数据返回到控制器104所花费的时间量被定义为吞吐时间。
在一些实施例中,控制器104对存储器阵列260执行数据合并操作。控制器104从存储器阵列260的存储器块302-1到存储器块302-N中选择用于合并或压缩的源块。例如,控制器104可以选择存储器块302-1作为用于合并或压缩的源块。在本文描述的示例实施例中,存储器块302-1可以被称为源块302-1。源块302-1可以包含多个存储器片段,例如16个存储器片段或任何合适数目的存储器片段。存储器片段可以包含在主机写入操作期间由主机106写入的数据。存储器片段可以属于相应逻辑组,并且可以在源块302-1中分散或杂乱,使得与相同逻辑组相关联的存储器片段可以不在源块302-1中顺序地存储或组织。另外或替代地,尽管一些存储器片段包含在主机写入操作期间由主机106写入的数据,但是分散在整个源块302-1中的其它存储器片段可以是空白的(例如,已经被主机106或控制器104擦除或尚未由主机106写入)。
如所描述,控制器104可以配置成识别或检测一个或多个存储器块302-1到302-N中的存储器单元中的单元耦合。控制器104可以包含除上述那些特征之外的特征或替代上述那些特征的特征。例如,图4总体上示出单元耦合检测系统400,其包含例如存储器块302-1(例如,或存储器块302-1到302-N中的其它合适的存储器块,或其它合适的存储器块)之类的存储器块和例如控制器104之类的控制器。如所描述的,存储器块302-1可以包含多个存储器单元。存储器单元可以包含单级单元、多级单元(例如,2位/单元或更多位/单元,其中2n(位/单元)=每个单元的位级别)、三级单元(例如,3位/单元)、四级单元(例如,4位/单元)或其它合适的存储器单元。
控制器104可以包含伪随机二进制序列(PRBS)生成器402和单元耦合检测器404。PRBS生成器402可以包含线性反馈移位寄存器(LFSR)或其它合适的PRBS生成器。PRBS生成器402配置成生成适用于检测存储器块302-1的存储器单元中的单元耦合的多维(例如,二维或其它合适的多维)PRBS阵列。例如,PRBS生成器402可以配置成使用平行四边形方法,如所描述,以生成具有总体上在图6C中示出的那些特性的PRBS阵列。例如,虽然图6C示出了15×15阵列,但PRBS生成器402可以生成如所描述的63×63阵列或具有任何适当大小的其它合适的阵列。如所描述的,PRBS生成器402可以生成包含拉丁方属性的PRBS阵列。例如,PRBS阵列包含多个行和列。PRBS阵列的每一行仅包含PRBS阵列的所有可能元素一次。类似地,PRBS阵列的每一列仅包含PRBS阵列的所有可能元素一次。例如,每一行包含每个元素0-62恰好一次,且每一列包含每个元素0-62恰好一次。PRBS生成器402将PRBS阵列传送到单元耦合检测器404。在一些实施例中,PRBS生成器402可以位于远离控制器104的位置。因此,控制器104可以从配置成执行PRBS生成器402或其它合适的PRBS生成器的远程定位的计算装置接收PRBS阵列。
单元耦合检测器404配置成检测或识别存储器块302-1的存储器单元中的单元耦合。单元耦合检测器404(例如,或控制器104的其它组件)配置成对存储器块302-1的存储器单元执行擦除操作。这可以将存储器块302-1的存储器单元置于准备编程状态,并且可以将存储器单元中的每一个充电至擦除电压。
单元耦合检测器404(例如,或控制器104的其它组件)配置成使用PRBS阵列对存储器块302-1的存储器单元执行写入操作。例如,单元耦合检测器404可以用与PRBS阵列的相应元件相对应的电压对存储器块302-1的相应存储器单元充电。这可以提供向存储器块302-1的相应存储器单元的随机数据写入。
单元耦合检测器404(例如,或控制器104的其它组件)配置成对存储器块302-1的相应存储器单元执行读取操作。单元耦合检测器404从存储器块302-1接收来自读取操作的输出。输出包含每个相应存储器单元的电压值(例如,读取电压,指示存储在相应存储器单元中的数据)。
单元耦合检测器404配置成使用相应存储器单元中的每一个的电压值、PRBS阵列、其它合适的信息或存储器单元特性或其组合来识别相应存储器单元之间的单元耦合。例如,单元耦合检测器404可以将相应存储器单元的电压值与期望电压值进行比较。期望电压值可以对应于用于对相应存储器单元进行编程(例如,向其写入数据)的PRBS阵列的元件。另外或替代地,单元耦合检测器404可以配置成以任何合适的方式识别单元耦合。如所描述的,检测到的单元耦合可以是线性或非线性单元耦合。
单元耦合检测器404可以配置成使用相应存储器单元的每一个的电压值、PRBS阵列中、其它合适的信息或存储器单元特性或其组合来识别相应单元耦合的位置。例如,单元耦合检测器404可以配置成通过使用两个存储器单元的已知位置来识别两个相应存储器单元之间的单元耦合的位置。单元耦合检测器404可以配置成使用用于对两个存储器单元进行编程的相应元件在PRBS阵列中的位置来识别两个存储器单元之间的单元耦合的位置。在一些实施例中,单元耦合检测器404可以配置成以任何合适的方式识别相应单元耦合的位置。
单元耦合检测器404可以配置成使用相应存储器单元中的每一个的电压值、PRBS阵列、其它合适的信息或存储器单元特性或其组合来识别相应单元耦合的幅度。例如,单元耦合检测器404可以配置成通过确定两个存储器单元中的每一个与用于对存储器单元中的每一个进行编程的PRBS阵列的相应元件的电压值之间的差来识别两个存储器单元之间的单元耦合的幅度。在一些实施例中,单元耦合检测器404可以配置成以任何合适的方式识别相应单元耦合的幅度。
在一些实施例中,控制器104可以配置成采取校正动作,以便校正或调整存储器单元,从而减少或消除单元耦合。在一些实施例中,控制器104可以配置成跟踪单元耦合,以便调整与单元耦合相对应的相应存储器单元处的电压值。在一些实施例中,控制器104可以配置成以任何合适的方式校正、跟踪、管理或适应单元耦合。
在一些实施例中,控制器104可以执行本文描述的方法。然而,由控制器104执行的本文描述的方法并不意味着是限制性的,并且在控制器上执行的任何类型的软件都可以在不脱离本公开的范围的情况下执行本文描述的方法。例如,控制器,例如执行主机106内的软件或存储系统102内的固件(例如,存储在ROM 232或NVM存储器块110上)的处理器可以执行本文描述的方法。
图7是示出根据本公开原理的单元耦合检测方法700的流程图。在702,方法700生成二维PRBS阵列。例如,如上所述,控制器104可以生成PRBS阵列。在一些实施例中,控制器104可以接收PRBS阵列。在704,方法700对多个单元执行擦除操作。例如,控制器104可以对存储器块302-1的相应存储器单元执行擦除操作。在706,方法700对多个单元执行写入操作。例如,控制器104使用PRBS阵列(例如,使用PRBS阵列的元件以用表示PRBS阵列的随机数据的电压来对相应存储器单元进行编程)对存储器块302-1的相应存储器单元执行写入操作。在708,方法700对多个单元执行读取操作。例如,控制器104对存储器块302-1的相应存储器单元执行读取操作,以便识别相应存储器单元的电压。在710,方法700识别多个单元中的相应单元的单元耦合。例如,控制器104使用相应单元的电压、PRBS阵列、其它合适的信息或特性或其组合来识别存储器块302-1的相应存储器单元之间的单元耦合。接着,控制器104可以如所描述的那样采取纠正措施以解决单元耦合。
在一些实施例中,用于识别存储器系统中的单元耦合的方法包含生成二维伪随机二进制序列阵列。所述方法还包含对存储器系统的存储器块的多个单元执行擦除操作。所述方法还包含使用二维伪随机二进制序列阵列对多个单元执行写入操作。所述方法还包含对多个单元执行读取操作以识别多个单元中的每个单元的电压值。所述方法还包含使用多个单元中的每个单元的电压值来识别多个单元中的相应单元之间的单元耦合。
在一些实施例中,二维伪随机二进制序列阵列是包含长度为(2N-1)的边的正方形阵列,其中N是多项式次数。在一些实施例中,二维伪随机二进制序列阵列的每一列和每一行仅包含二维伪随机二进制序列阵列的所有可能值一次。在一些实施例中,使用多个单元中的每个单元的电压值来识别多个单元中的相应单元之间的单元耦合包含:识别每个所识别的单元耦合的位置。在一些实施例中,使用多个单元中的每个单元的电压值来识别多个单元中的相应单元之间的单元耦合包含:识别每个所识别的单元耦合的幅度。在一些实施例中,多个单元是多级单元。在一些实施例中,所识别的单元耦合中的一些包含线性单元耦合。在一些实施例中,所识别的单元耦合中的一些包含非线性单元耦合。
在一些实施例中,控制器包含总线接口和处理器。总线接口与存储器系统的一个或多个存储器块通信。处理器配置成:接收二维伪随机二进制序列阵列;对一个或多个存储器块中的存储器块的多个单元执行擦除操作;使用二维伪随机二进制序列阵列对多个单元执行写入操作;对多个单元执行读取操作以识别多个单元中的每个单元的电压值;以及使用多个单元中的每个单元的电压值来识别多个单元中的相应单元之间的单元耦合。
在一些实施例中,二维伪随机二进制序列阵列是包含长度为(2N-1)的边的正方形阵列,其中N是多项式次数。在一些实施例中,二维伪随机二进制序列阵列的每一列和每一行仅包含二维伪随机二进制序列阵列的所有可能值一次。在一些实施例中,处理器进一步配置成识别每个所识别的单元耦合的位置。在一些实施例中,处理器进一步配置成识别每个所识别的单元耦合的幅度。在一些实施例中,多个单元是多级单元。在一些实施例中,所识别的单元耦合中的一些包含线性单元耦合。在一些实施例中,所识别的单元耦合中的一些包含非线性单元耦合。
在一些实施例中,用于识别存储器系统中的单元耦合的系统包含至少一个存储器块和控制器。控制器与至少一个存储器块通信,并且包含配置成生成二维伪随机二进制序列阵列的伪随机二进制序列生成器。控制器还包含单元耦合检测器,所述单元耦合检测器配置成:对至少一个存储器块的多个单元执行擦除操作;使用二维伪随机二进制序列阵列对多个单元执行写入操作;对多个单元执行读取操作以识别多个单元中的每个单元的电压值;以及使用多个单元中的每个单元的电压值来识别多个单元中的相应单元之间的单元耦合。
在一些实施例中,二维伪随机二进制序列阵列是包含长度为(2N-1)的边的正方形阵列,其中N是多项式次数。在一些实施例中,二维伪随机二进制序列阵列的每一列和每一行仅包含二维伪随机二进制序列阵列的所有可能值一次。在一些实施例中,多个单元是多级单元。
词语“实例”在本文中用以意指“充当实例、例子或说明”。本文中描述为“实例”的任何方面或设计不一定被解释为比其它方面或设计优选或有利。实际上,使用词语“实例”是意在以具体方式来呈现概念。如本申请中所使用,术语“或”意在意味着包含性“或”而非排它性“或”。也就是说,除非另外规定,或从上下文清楚可见,否则“X包含A或B”意在意味着任何自然的包含性排列。也就是说,如果X包含A;X包含B;或X包含A以及B,则在任何前述例子下满足“X包含A或B”。此外,除非另外规定或自上下文可知表示单数形式,否则如本申请和所附权利要求书中所使用的冠词“一”应大体上解释为意味着“一个或多个”。此外,除非如此描述,否则贯穿全文使用术语“实施方案”或“一个实施方案”并不意在表示相同的实施例或实施方案。
本文描述的系统、算法、方法、指令等的实施方案可以以硬件、软件或其任何组合来实现。硬件可以包含例如计算机、知识产权(IP)内核、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或任何其它合适的电路。在权利要求中,术语“处理器”应被理解为单独地或组合地包括任何前述硬件。术语“信号”和“数据”可互换使用。
如本文所使用的,术语“模块”可以包含设计为与其它组件一起使用的封装功能硬件单元、可由控制器(例如,执行软件或固件的处理器)执行的指令集、配置成执行特定功能的处理电路,以及与大型系统对接的独立硬件或软件组件。例如,模块可以包含专用集成电路(ASIC);现场可编程门阵列(FPGA);电路;数字逻辑电路;模拟电路;离散电路、门和其它类型硬件的组合,或其组合。在其它实施例中,模块可以包含存储器,所述存储器存储可由控制器执行以实施模块的特征的指令。在一些实施例中,可以在主机106内实施的控制器104可以配置有硬件和/或固件以执行本文描述的各种功能。
“控制器”应指各个电路组件、专用集成电路(ASIC)、具有控制软件的微控制器、数字信号处理器(DSP)、具有控制软件的处理器、现场可编程门阵列(FPGA),或其组合。
此外,在一个方面,例如,本文描述的系统可以使用具有计算机程序的通用计算机或通用处理器来实施,所述计算机程序在被执行时执行本文描述的任何相应方法、算法和/或指令。另外或替代地,例如,可以利用专用计算机/处理器,其可以包含用于执行本文描述的任何方法、算法或指令的其它硬件。
此外,本公开的全部或部分实施方案可以采取可从例如计算机可用或计算机可读介质存取的计算机程序产品的形式。计算机可用或计算机可读介质可以是例如可以有形地包含、存储、传送或传输程序以供任何处理器使用或与其结合使用的任何装置。介质可以是例如电子、磁性、光学、电磁或半导体装置。也可以使用其它合适的介质。
已经描述了上述实施例、实施方案和方面,以允许容易地理解本发明并且不限制本发明。相反,本发明旨在涵盖所附权利要求的范围内所包含的各种修改和等效布置,所述范围应被赋予最宽泛的解释,以涵盖法律允许的所有此类修改和等效结构。
Claims (17)
1.一种用于识别存储器系统中的单元耦合的方法,所述方法包括:
生成二维伪随机二进制序列阵列;
对所述存储器系统的存储器块的多个单元执行擦除操作;
使用所述二维伪随机二进制序列阵列对所述多个单元执行写入操作;
对所述多个单元执行读取操作以识别所述多个单元中的每个单元的电压值;以及
使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合;
其中所述二维伪随机二进制序列阵列是包含长度为(2N-1)的边的正方形阵列,其中N是多项式次数。
2.根据权利要求1所述的方法,其中所述二维伪随机二进制序列阵列的每一列和每一行仅包含所述二维伪随机二进制序列阵列的所有可能值一次。
3.根据权利要求1所述的方法,其中使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合包含:识别每个所识别的单元耦合的位置。
4.根据权利要求1所述的方法,其中使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合包含:识别每个所识别的单元耦合的幅度。
5.根据权利要求1所述的方法,其中所述多个单元是多级单元。
6.根据权利要求1所述的方法,其中所述所识别的单元耦合中的一些包含线性单元耦合。
7.根据权利要求1所述的方法,其中所述所识别的单元耦合中的一些包含非线性单元耦合。
8.一种控制器,其包括:
总线接口,其与存储器系统的一个或多个存储器块通信;以及
处理器,其配置成:
接收二维伪随机二进制序列阵列;
对所述一个或多个存储器块中的存储器块的多个单元执行擦除操作;
使用所述二维伪随机二进制序列阵列对所述多个单元执行写入操作;
对所述多个单元执行读取操作以识别所述多个单元中的每个单元的电压值;以及
使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合;
其中所述二维伪随机二进制序列阵列是包含长度为(2N-1)的边的正方形阵列,其中N是多项式次数。
9.根据权利要求8所述的控制器,其中所述二维伪随机二进制序列阵列的每一列和每一行仅包含所述二维伪随机二进制序列阵列的所有可能值一次。
10.根据权利要求8所述的控制器,其中所述处理器进一步配置成识别每个所识别的单元耦合的位置。
11.根据权利要求8所述的控制器,其中所述处理器进一步配置成识别每个所识别的单元耦合的幅度。
12.根据权利要求8所述的控制器,其中所述多个单元是多级单元。
13.根据权利要求8所述的控制器,其中所述所识别的单元耦合中的一些包含线性单元耦合。
14.根据权利要求8所述的控制器,其中所述所识别的单元耦合中的一些包含非线性单元耦合。
15.一种用于识别存储器系统中的单元耦合的系统,所述系统包括:
至少一个存储器块;以及
控制器,其与所述至少一个存储器块通信,所述控制器包含:
伪随机二进制序列生成器,其配置成生成二维伪随机二进制序列阵列;以及
单元耦合检测器,其配置成:
对所述至少一个存储器块的多个单元执行擦除操作;
使用所述二维伪随机二进制序列阵列对所述多个单元执行写入操作;
对所述多个单元执行读取操作以识别所述多个单元中的每个单元的电压值;以及
使用所述多个单元中的所述每个单元的所述电压值来识别所述多个单元中的相应单元之间的单元耦合;
其中所述二维伪随机二进制序列阵列是包含长度为(2N-1)的边的正方形阵列,其中N是多项式次数。
16.根据权利要求15所述的系统,其中所述二维伪随机二进制序列阵列的每一列和每一行仅包含所述二维伪随机二进制序列阵列的所有可能值一次。
17.根据权利要求15所述的系统,其中所述多个单元是多级单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/456,522 | 2019-06-28 | ||
US16/456,522 US10937510B2 (en) | 2019-06-28 | 2019-06-28 | Multidimensional pseudorandom binary sequence analysis for a memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148212A CN112148212A (zh) | 2020-12-29 |
CN112148212B true CN112148212B (zh) | 2024-05-28 |
Family
ID=73891841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010227501.9A Active CN112148212B (zh) | 2019-06-28 | 2020-03-27 | 用于存储器装置的多维伪随机二进制序列分析 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10937510B2 (zh) |
CN (1) | CN112148212B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101595528A (zh) * | 2007-01-30 | 2009-12-02 | 美光科技公司 | 存储器装置架构和操作 |
CN101796589A (zh) * | 2007-09-07 | 2010-08-04 | 美光科技公司 | 用于移除系统影响的存储器控制器自校准 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440640A (en) * | 1993-10-05 | 1995-08-08 | Arithmetica, Inc. | Multistream encryption system for secure communication |
EP1130600A1 (en) | 2000-03-01 | 2001-09-05 | Hewlett-Packard Company, A Delaware Corporation | Data balancing scheme in solid state storage devices |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7885112B2 (en) | 2007-09-07 | 2011-02-08 | Sandisk Corporation | Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages |
US8130955B2 (en) | 2007-12-21 | 2012-03-06 | Spansion Llc | Random number generation through use of memory cell activity |
US8661184B2 (en) * | 2010-01-27 | 2014-02-25 | Fusion-Io, Inc. | Managing non-volatile media |
US8732538B2 (en) * | 2011-03-10 | 2014-05-20 | Icform, Inc. | Programmable data storage management |
US9323499B2 (en) | 2012-11-15 | 2016-04-26 | Elwha Llc | Random number generator functions in memory |
US9129701B2 (en) * | 2013-12-19 | 2015-09-08 | Sandisk Technologies Inc. | Asymmetric state detection for non-volatile storage |
US10534686B2 (en) * | 2014-01-30 | 2020-01-14 | Micron Technology, Inc. | Apparatuses and methods for address detection |
-
2019
- 2019-06-28 US US16/456,522 patent/US10937510B2/en active Active
-
2020
- 2020-03-27 CN CN202010227501.9A patent/CN112148212B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101595528A (zh) * | 2007-01-30 | 2009-12-02 | 美光科技公司 | 存储器装置架构和操作 |
CN101796589A (zh) * | 2007-09-07 | 2010-08-04 | 美光科技公司 | 用于移除系统影响的存储器控制器自校准 |
Also Published As
Publication number | Publication date |
---|---|
US10937510B2 (en) | 2021-03-02 |
CN112148212A (zh) | 2020-12-29 |
US20200411121A1 (en) | 2020-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109564532B (zh) | 包括存储器的设备及用于操作存储器的方法 | |
CN107799150B (zh) | 3d nand闪存的错误缓解 | |
CN111949209B (zh) | 具有后台擦除的增强型固态驱动器写入性能 | |
US11487454B2 (en) | Systems and methods for defining memory sub-blocks | |
US10725687B1 (en) | Settable replay protected memory block characteristics in a logic unit | |
US11003373B2 (en) | Systems and methods for managing physical-to- logical address information | |
US10884628B2 (en) | Performance of a read in a memory system | |
US9824760B2 (en) | Systems and methods of generating shaped random bits | |
CN112241333B (zh) | 用于存储器系统的编码器及其方法 | |
US10133645B2 (en) | Data recovery in three dimensional non-volatile memory array after word line short | |
US11106518B2 (en) | Failure mode study based error correction | |
US10734081B1 (en) | Pulse-amplitude modulation for a multiple die memory device | |
US11082036B2 (en) | Memory interface system for duty-cycle error detection and correction | |
US10755798B2 (en) | Recovering data from a faulty memory block in a memory system | |
CN112148212B (zh) | 用于存储器装置的多维伪随机二进制序列分析 | |
JP6997258B2 (ja) | メモリシステムに対するプログラム検証のためのシステム及び方法 | |
US10886002B1 (en) | NAND field use erase plus defect detections | |
US10991447B2 (en) | Clock frequency counting during high-voltage operations for immediate leakage detection and response | |
US20210303715A1 (en) | Data scrambler for memory systems and method thereof | |
US11106575B2 (en) | Systems and methods for data storage in a memory system | |
CN113508434B (zh) | 用于限定存储器子块的系统和方法 | |
US10984883B1 (en) | Systems and methods for capacity management of a memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240918 Address after: Delaware, USA Patentee after: SANDISK TECHNOLOGIES Inc. Country or region after: U.S.A. Address before: California, USA Patentee before: Western Digital Technologies, Inc. Country or region before: U.S.A. |