CN111095418A - 指定读取命令的读取电压偏移量的方法和装置 - Google Patents
指定读取命令的读取电压偏移量的方法和装置 Download PDFInfo
- Publication number
- CN111095418A CN111095418A CN201880056412.3A CN201880056412A CN111095418A CN 111095418 A CN111095418 A CN 111095418A CN 201880056412 A CN201880056412 A CN 201880056412A CN 111095418 A CN111095418 A CN 111095418A
- Authority
- CN
- China
- Prior art keywords
- read
- read voltage
- voltage offset
- command
- memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 28
- 230000015654 memory Effects 0.000 claims abstract description 263
- 238000003860 storage Methods 0.000 claims description 104
- 230000004044 response Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 16
- 238000013461 design Methods 0.000 description 14
- 238000003491 array Methods 0.000 description 12
- 238000004519 manufacturing process Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 150000004770 chalcogenides Chemical class 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
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012546 transfer Methods 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/26—Sensing or reading circuits; Data output circuits
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
在一个实施例中,一种包括存储器阵列和控制器的装置。该控制器接收指定读取电压偏移量配置文件标识符的第一读取命令;识别与读取电压偏移量配置文件标识符相关联的读取电压偏移量配置文件,该读取电压偏移量配置文件包括至少一个读取电压偏移量;并且使用根据读取电压偏移量配置文件中的至少一个读取电压偏移量调整的至少一个读取电压执行由第一读取命令指定的第一读取操作。
Description
技术领域
本公开总体上涉及计算机开发领域,更具体地说,涉及存储器读取过程。
背景技术
计算机系统可以包括一个或多个中央处理单元(CPU),其可以耦合到一个或多个存储设备。CPU可以包括处理器以运行利用耦合到CPU的存储设备的软件。软件可以向存储设备写入数据,并从存储设备读取数据。数据可以由存储设备存储在存储设备的多个存储器单元(例如NAND闪存单元)中。
附图说明
图1示出了根据特定实施例的计算机系统的组件的框图。
图2示出了根据特定实施例的NAND闪存阵列的示例部分。
图3示出了根据特定实施例的NAND闪存单元内的比特的示例编码。
图4示出了根据特定实施例的示例性存储器设备,该存储器设备包括存储读取电压偏移量配置文件的存储器。
图5示出了根据特定实施例的在地址周期中包括读取电压偏移量配置文件标识符的示例读取命令。
图6示出了根据特定实施例的在命令周期中包括读取电压偏移量配置文件标识符的示例读取命令。
图7示出了根据特定实施例的与包括读取电压偏移量配置文件标识符的读取命令相关联的示例波形。
图8示出了根据特定实施例的用于基于读取电压偏移量配置文件执行读取操作的示例流程。
各附图中类似的参考标记和名称指示类似的元件。
具体实施方式
尽管附图描绘了特定的计算机系统,但是各实施例的构思适用于任何合适的集成电路和其他逻辑设备。可以使用本公开的教导的设备的示例包括台式计算机系统、服务器计算机系统、存储系统、手持设备、平板电脑、其他薄笔记本电脑、片上系统(SOC)设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、数字相机、媒体播放器、个人数字助理(PDA)和手持PC。嵌入式应用可包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可以执行下面教导的功能和操作的任何其他系统。本公开的各种实施例可用于任何合适的计算环境,例如个人计算设备、服务器、主机、云计算服务提供商基础设施、数据中心、通信服务提供商基础设施(例如,演进分组核心网的一个或多个部分),或包含一组计算设备的其他环境。
图1示出了根据某些实施例的计算机系统100的组件的框图。系统100包括耦合到外部输入/输出(I/O)控制器104的中央处理单元(CPU)102、存储设备106和系统存储器设备107。在操作期间,可以在存储设备106或系统存储器设备107和CPU 102之间传输数据。在各种实施例中,涉及存储设备106或系统存储器设备107的特定数据操作(例如擦除、编程和读取操作)可以由操作系统或由处理器108运行的其他软件应用来管理。
在各种实施例中,存储设备106可以包括一个或多个存储器阵列,该存储器阵列包括每个存储一个或多个数据位的存储器单元。读取操作可包括将一个或多个读取电压应用到阵列(例如,应用到阵列的字线)和感测存储器单元以确定读取电压是否激活单元(例如,导致存储器单元导通(conduct))。例如,如果单元的阈值电压(Vt)低于读取电压,则可以激活单元。单元的Vt可以指示单元存储的一个或多个比特的值。
随着时间的推移,在编程期间被设置为特定Vt之后,NAND单元的Vt可以由于固有电荷损失而偏移。为了准确地读取由阵列中的存储器单元存储的值,可能需要调整读取电压以考虑单元的阈值电压的偏移。为读取操作指定读取电压电平的各个偏移量所涉及的开销可能很大,并且可能对读取性能产生负面影响(并且随着由于在读取操作期间使用的读取电压电平的数量增加而导致阵列中的存储器单元所存储的位的数量增加,开销可能急剧增加)。
在各种实施例中,读取电压偏移量配置文件(profile)可与存储器阵列关联地存储。读取电压偏移量配置文件可以为读取操作中使用的每个读取电压指定读取电压偏移量。例如,读取电压偏移量配置文件可以指定第一读取电压的第一偏移量、第二读取电压的第二偏移量,等等。读取电压偏移量配置文件可以与配置文件标识符相关联。
在本公开的具体实施例中,当在读取操作期间要调整读取电压时,可由存储设备控制器118(例如NAND控制器)向存储器阵列发出指定所需读取电压偏移量配置文件的配置文件标识符的读取命令。存储器阵列确定与接收的配置文件标识符相关联的读取电压偏移量配置文件,并根据配置文件中的偏移量所指定的来调整在读取操作期间应用的读取电压。在各种实施例中,可以在读取命令的地址周期期间或读取命令的命令周期期间(例如,通过操作码)指定配置文件标识符。本公开的各种实施例可以显著减少与读取电压的调整相关联的开销。具体实施例也可以减轻(relax)背景数据刷新的周期。在一些系统中,为了保持准确读取数据的能力,可能需要刷新明显老化的数据(例如,读取并重新编程)。在没有过度开销的情况下调整读取电压的能力可以允许数据在不进行刷新操作的情况下再老化(age)一些,同时仍然保持准确读取数据的能力。
在各种实施例中,存储设备106包括NAND闪存(这里,包含NAND闪存的存储设备被称为NAND闪存器件)。在一些实施例中,存储设备106可以是固态驱动器;存储卡;通用串行总线(USB)闪存驱动器;或集成在例如智能手机、照相机、媒体播放器或其他计算设备中的存储器。一般来说,具有NAND闪存的存储设备是按照存储器的每个单元存储的位数来分类的。例如,单级单元(SLC)存储器的中的每个单元存储一位数据,多级单元(MLC)存储器中的每个单元存储两位数据,三级单元(TLC)存储器中的每个单元存储三位数据,四级单元(QLC)存储器中的每个单元存储四位数据,但是一些存储器可以在同一阵列上或在同一器件的不同阵列上使用多种编码方案(例如MLC和TLC)。
存储设备106可以包括任意数量的存储器116,并且每个存储器116可以包括任意数量的存储器设备122(例如,122A-D)。在特定实施例中,存储器设备122可以是或包括具有一个或多个存储器芯片123(例如,存储器芯片123A-D)的半导体封装。在所描述的实施例中,存储器116包括存储器设备122A-D(虽然这里特定地参考了存储器设备122A,但其他存储器设备可以具有存储器设备122A的任何适当的特性)和存储器设备控制器126。
CPU 102包括处理器108,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或执行代码(即,软件指令)的其他设备。在所描述的实施例中,处理器108包括两个处理元件(所描述的实施例中的内核114A和114B),其可以包括非对称处理元件或对称处理元件。然而,处理器可以包括任意数量的对称或非对称的处理元件。
在一个实施例中,处理元件指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文(context)、上下文单元、逻辑处理器、硬件线程、内核和/或任何其他元件,它们能够保持处理器的状态,例如运行状态或架构状态。换言之,在一个实施例中,处理元件是指能够与代码独立地相关联的任何硬件,例如软件线程、操作系统、应用或其他代码。物理处理器(或处理器插槽(socket))通常指集成电路,可能包括任何数量的其他处理元件,例如内核或硬件线程。
内核114可指位于能够保持独立的架构状态的集成电路上的逻辑,其中每个独立保持的架构状态与至少一些专用运行资源相关联。硬件线程可以指位于能够保持独立架构状态的集成电路上的任何逻辑,其中独立保持的架构状态共享对运行资源的访问。正如可以看到的,当某些资源被共享,而其他资源被专用于架构状态时,硬件线程与内核的命名之间的界限重叠。然而,内核和硬件线程通常被操作系统视为单独的逻辑处理器,其中操作系统能够对每个逻辑处理器单独调度操作。
在各种实施例中,处理元件还可以包括一个或多个算术逻辑单元(ALU)、浮点单元(FPU)、缓存、指令管线、中断处理硬件、寄存器或其他硬件,以促进处理元件的操作。
I/O控制器110是集成的I/O控制器,其包括用于在CPU 102和I/O设备之间通信数据的逻辑,该控制器可指能够向例如CPU 102这样的电子系统传输数据和/或从该电子系统接收数据的任何合适的设备。例如,I/O设备可以包括音频/视频(A/V)设备控制器,例如图形加速器或音频控制器;数据存储设备控制器,例如闪存设备、磁存储盘或光学存储盘控制器;无线收发信机;网络处理器;网络接口控制器;或其他输入设备(例如显示器、打印机、鼠标、键盘或扫描仪)的控制器;或其他合适的设备。在特定实施例中,I/O设备可包括可经由I/O控制器110耦合到CPU 102的存储设备106。
I/O设备可以使用任何合适的信令协议与CPU 102的I/O控制器110通信,例如外围组件互连(PCI)、PCI Express(PCIe)、通用串行总线(USB)、串行连接SCSI(SAS)、串行ATA(SATA)、光纤通道(FC)、IEEE 802.3、IEEE 802.11或其它当前或将来的信令协议。在特定实施例中,I/O控制器110和底层I/O设备可以根据逻辑设备接口规范例如非易失性存储器快速(NVMe)(例如,如www.nvmexpress.org/specifications/上提供的一个或多个规范所述)或高级主机控制器接口(AHCI)(例如,如由一个或多个AHCI规范例如串行ATAAHCI:http://www.intel.com/content/www/us/en/io/serial-ata/serial-ata-ahci-spec-revl-3-l.html上提供的规范,Rev.1.3.1所述)来传送数据和命令。在各种实施例中,耦合到I/O控制器的I/O设备可以位于片外(即,不与CPU 102在同一芯片上)或者可以如CPU 102集成在在同一芯片上。
CPU存储器控制器112是集成的存储器控制器,其包括用于控制进出一个或多个系统存储器设备107的数据流的逻辑。CPU存储器控制器112可以包括可操作以从系统存储器设备107读取、向系统存储器设备107写入或从系统存储器设备107请求其它操作的逻辑。在各种实施例中,CPU存储器控制器112可以接收来自内核114和/或I/O控制器110的写入请求,并且可以将这些请求中指定的数据提供给系统存储器设备107以在其中存储。CPU存储器控制器112还可以从系统存储器设备107读取数据,并将读取的数据提供给I/O控制器110或内核114。在操作期间,CPU存储器控制器112可发出包括系统存储器设备107的一个或多个地址的命令,以便从存储器读取数据或将数据写入存储器(或执行其它操作)。在一些实施例中,CPU存储器控制器112可以与CPU 102在同一芯片上实现,而在其他实施例中,CPU存储器控制器112可以在不同于CPU 102的芯片上实现。I/O控制器110可以对一个或多个存储设备106执行类似的操作。
CPU 102还可以通过外部I/O控制器104耦合到一个或多个其他I/O设备。在特定实施例中,外部I/O控制器104可以将存储设备106耦合到CPU 102。外部I/O控制器104可以包括用于管理一个或多个CPU102和I/O设备之间的数据流的逻辑。在特定实施例中,外部I/O控制器104与CPU 102一起位于主板上。外部I/O控制器104可以使用点对点或其他接口与CPU 102的组件交换信息。
系统存储器设备107可以存储任何合适的数据,例如处理器108用于提供计算机系统100的功能的数据。例如,与由内核114执行的程序或访问的文件相关联的数据可以存储在系统存储器设备107中。因此,系统存储器设备107可以包括存储由内核114执行或以其他方式使用的数据和/或指令序列的系统存储器。在各种实施例中,系统存储器设备107可以存储即使在移除系统存储器设备107的供电之后仍然存储的持久数据(例如,用户的文件或指令序列)。系统存储器设备107可专用于特定的CPU 102或与计算机系统100的其它设备(例如,一个或多个其它处理器或其它设备)共享。
在各种实施例中,系统存储器设备107可以包括含有任意数量的存储器阵列、存储器设备控制器和其他支持逻辑(未示出)的存储器。存储器阵列可以包括非易失性存储器和/或易失性存储器。非易失性存储器是一种存储介质,它不需要供电来维持介质所存储的数据的状态。非易失性存储器的非限制性示例可包括:固态存储器(例如平面或3D NAND闪存或NOR闪存)、3D交叉点存储器、使用硫系相变材料(例如硫系玻璃)的存储器设备、字节寻址非易失性存储器设备、铁电存储器,硅氧化氮氧化硅(SONOS)存储器、聚合物存储器(例如铁电聚合物存储器)、铁电晶体管随机存取存储器(Fe-TRAM)、奥氏存储器、纳米线存储器、电可擦除可编程只读存储器(EEPROM)、其他各种类型的非易失性随机存取存储器(RAM),以及磁存储器。在一些实施例中,3D交叉点存储器可以包括无晶体管可堆叠交叉点架构,其中存储器单元位于字线和位线的交叉点处,并且可以单独寻址,并且其中位存储基于体电阻的变化。易失性存储器是一种存储介质,它需要供电来维持介质所存储的数据的状态。易失性存储器的示例可以包括各种类型的随机存取存储器(RAM),例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。存储器阵列中可以使用的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。在一些实施例中,作为易失性存储器的存储器107的任何部分可以符合JEDEC标准,包括但不限于双数据速率(DDR)标准,例如DDR3、4和5,或低功耗DDR4(LPDDR4)以及新兴标准。
存储设备106可以存储任何合适的数据,例如处理器108用于提供计算机系统100的功能的数据。例如,与由内核114A和114B执行的程序或访问的文件相关联的数据可以存储在存储设备106中。因此,在一些实施例中,存储设备106可以存储由内核114A和114B执行或以其他方式使用的数据和/或指令序列。在各种实施例中,存储设备106可以存储即使移除存储设备106的供电之后仍然存储的持久数据(例如,用户的文件或软件应用代码)。存储设备106可专用于CPU 102或与计算机系统100的其他设备(例如,另一CPU或其他设备)共享。
在所描述的实施例中,存储设备106包括存储设备控制器118和存储器116,存储器116包括四个可操作以存储数据的存储器设备122A-D,然而,存储设备可以包括任何适当数量的存储器设备。存储器设备122A包括多个存储器单元,每个存储器单元可用于存储一个或多个位。存储器设备122A的单元可以以任何适当的方式排列,例如以行(例如,字线)和列(例如,位线)、三维结构和/或其他方式排列。在各种实施例中,单元可以在逻辑上分组为组、块、子块、平面、字线、页、帧、字节或其它合适的组。在各种实施例中,存储器设备122A包括一个或多个NAND闪存阵列。
存储器设备122A可以包括上面列出的任何易失性或非易失性存储器或其他合适的存储器。在特定实施例中,存储器设备122A包括非易失性存储器,例如平面或3D NAND闪存。在特定实施例中,具有非易失性存储器的存储器设备122A可以符合由联合电子设备工程委员会(JEDEC)发布的一个或多个非易失性存储器标准,例如JESD218、JESD219、JESD220-1、JESD220C、JESD223C、JESD223-1,或其他合适的标准(本文引用的JEDEC标准可在www.jedec.org上获得)。在特定实施例中,存储设备包括符合JEDEC发布的SDRAM存储器标准的一个或多个部分的NAND闪存,例如用于双数据速率(DDR)SDRAM的JESD79F、用于DDR2SDRAM的JESD79-2F、用于DDR3 SDRAM的JESD79-3F或用于DDR4 SDRAM的JESD79-4A(这些标准可在www.jedec.org上获得)。此类标准(和类似标准)可称为基于DDR的标准,并且实现此类标准的存储设备的通信接口可称为基于DDR的接口。例如,包括NAND闪存的存储设备106可以接收具有符合基于DDR的标准的格式的命令,并且可以将该命令转换为与存储设备106的NAND闪存兼容的一个或多个命令。类似地,存储设备106可以在将结果发送到CPU 102之前,将对NAND闪存执行的操作的结果格式化为符合基于DDR的标准的格式。
在特定实施例中,存储器设备122是半导体封装。在各种实施例中,半导体封装可包括包含一个或多个半导体管芯(也称为芯片)(例如,存储器芯片123A-D)的外壳。封装还可以包括用于连接到外部电路的接触引脚或引线。然而,封装仅仅是存储器设备122可以采用的一个示例形式,存储器设备可以是一个或多个存储器阵列的任何适当排列以及任何适当物理排列中的相关逻辑。例如,尽管单个物理封装可以包括单个存储器设备122,但是多个存储器设备122可以驻留在单个封装上,或者存储器122可以分布在多个封装上。
存储器116可以实现在一个或多个不同的物理介质中,例如电路板、管芯、盘驱动器、其他介质或其任何组合(或与一个或多个封装结合)。在特定的实施例中,存储器116包括耦合到多个存储器设备122的电路板,每个存储器设备122包括半导体封装。
存储设备106可以包括任何适当类型的存储器,并且在各种实施例中不限于存储器的特定速度、技术或形式因素。例如,存储设备106可以是盘驱动器(例如固态驱动器)、闪存驱动器、与计算设备集成的存储器(例如,集成在计算设备的电路板上的存储器)、可插入存储器插槽的存储器模块(例如,双列直插存储器模块)或其他类型的存储设备。此外,计算机系统100可以包括多种不同类型的存储设备。存储设备106可以包括任何合适的接口,以使用任何合适的通信协议例如基于DDR的协议、PCI、PCIe、USB、SAS、SATA、FC、系统管理总线(SMBus)或其他合适的协议来与CPU存储器控制器112或I/O控制器110通信。存储设备106还可以包括通信接口,以根据任何合适的逻辑设备接口规范(例如NVMe、AHCI或其他合适的规范)与CPU存储器控制器112或I/O控制器110通信。在特定实施例中,存储设备106可以包括多个通信接口,每个通信接口使用单独的协议与CPU存储器控制器112和/或I/O控制器110通信。
存储设备控制器118可以包括接收来自CPU 102(例如,经由CPU存储器控制器112或I/O控制器110)的请求的逻辑,使得针对存储器116(或其存储器设备和/或存储器芯片)执行请求,并且向CPU 102提供与请求相关联的数据(例如,经由CPU存储器控制器112或I/O控制器110)。控制器118还可用于检测和/或纠正在存储器操作期间遇到的错误。在一个实施例中,控制器118还跟踪特定单元(或单元的逻辑分组)被写入的次数,以便执行磨损均衡(wear leveling)和/或检测单元何时接近其可可靠写入的估计次数。在执行磨损均衡时,存储设备控制器118可以在存储器116的存储器块之间均匀地分布写入操作,使得特定块不会比其他块更多写入。在各种实施例中,控制器118还可以监视存储设备106的各种特性,例如温度或电压,并向CPU 102报告相关的统计信息。存储设备控制器118可以实现在与存储器116相同的电路板或设备上,或者实现在不同的电路板或设备上。例如,在一些环境中,存储设备控制器118可以是管理计算机系统100的多个不同存储器116(每个存储器116可以是相同类型的存储器,也可以是不同类型的存储器)的存储器操作的集中式存储控制器(并因此可以提供本文描述的存储设备控制器功能给与之耦合的任何存储器)。
在各种实施例中,存储设备106还包括地址转换引擎120。在所描述的实施例中,地址转换引擎120被示为存储设备控制器118的一部分,尽管在各种实施例中,地址转换引擎120可以与存储设备控制器118分离并可通信地耦合到存储设备控制器118。在各种实施例中,地址转换引擎120可以集成在与存储设备控制器118相同的芯片或封装上,或者集成在不同的芯片或封装上。
在各种实施例中,地址转换引擎120可以包括用于存储和更新逻辑地址空间(例如,耦合到存储设备106的主机计算设备可见的地址空间)和存储设备106的存储器116的物理地址空间(其可以或不可以暴露给主机计算设备)之间的映射的逻辑。逻辑地址空间可以公开多个逻辑数据组,这些数据组物理地存储在通过存储设备106的物理地址空间可寻址的相应物理存储器组上。物理地址空间的物理地址可以包括识别存储设备106的物理存储器位置(例如,存储器116的存储器阵列内的位置)的任何适当信息,例如物理存储器位置所在的存储器116的标识符、物理存储器位置所在的存储器设备122A的标识符,物理存储器位置的一个或多个页面,物理存储器位置的一个或多个子块,物理存储器位置的一个或多个字线,物理存储器位置的一个或多个位线,或其他适当的标识符或编码。
在各种实施例中,存储设备106还包括程序控制逻辑124,其单独或与存储器设备控制器126组合用于控制当数据写入存储器116时执行的编程序列、当数据从存储器116读取时执行的读取序列,或者当数据从存储器116中被擦除时的擦除序列。在各种实施例中,程序控制逻辑124可以提供在数据的编程、读取和/或擦除期间应用到存储器阵列的一个或多个存储器单元、字线、位线和/或其他部分的各种电压(和/或指示应提供哪些电压的信息),执行纠错,并执行其他适当的功能。
在各种实施例中,程序控制逻辑124可以集成在与存储设备控制器118相同的芯片上,或者集成在不同的芯片上。在所描述的实施例中,程序控制逻辑124被示为存储设备控制器118的一部分,尽管在各种实施例中,程序控制逻辑124的全部或一部分可以与存储设备控制器118分离并可通信地耦合到存储设备控制器118。例如,程序控制逻辑124的全部或部分可以与存储器116和/或存储器设备122A-D位于同一封装或芯片上。
在一些实施例中,系统100的所有或部分元件驻留在(或耦合到)同一电路板(例如,主板)上。在各种实施例中,可能存在元件之间的任何合适的划分。例如,CPU 102中描绘的元件可以位于单个管芯(即片上)或封装上,或者CPU 102的任何元件可以位于片外或封装外。类似地,存储设备106中描绘的元件可以位于单个芯片或多个芯片上。在各种实施例中,存储设备106和主机计算设备(例如,CPU 102)可以位于同一电路板上或同一设备上,并且在其它实施例中,存储设备106和主机计算设备可以位于不同的电路板或设备上。
系统100的组件可以任何合适的方式耦合在一起。例如,总线可以将任何组件耦合在一起。总线可以包括任何已知的互连,例如多点总线、网状互连、环形互连、点对点互连、串行互连、并行总线、同步(例如缓存同步)总线、分层协议架构、差分总线和射电收发逻辑(GTL)总线。在各种实施例中,集成的I/O子系统包括系统100的各个组件(例如内核114、一个或多个CPU存储器控制器112、I/O控制器110、集成I/O设备、直接存储器存取(DMA)逻辑(未示出)等)之间的点对点复用逻辑。在各种实施例中,计算机系统100的组件可以通过一个或多个网络耦合在一起,所述网络包括任意数量的中间网络节点,例如路由器、交换机或其他计算设备。例如,主机计算设备(例如,CPU 102)和存储设备106可以通过网络通信地耦合。
尽管未示出,系统100可使用电池和/或电源插座连接器和相关系统来接收供电、使用显示器来输出由CPU 102提供的数据或使用网络接口来使CPU 102通过网络通信。在各种实施例中,电池、电源插座连接器、显示器和/或网络接口可通信地耦合到CPU 102。可使用其他电源例如可再生能源(例如太阳能或基于运动的能量)。
图2示出了根据某些实施例的NAND闪存阵列200的示例部分。在各种实施例中,存储器设备122A包括逻辑地排列成行和列的存储器单元的阵列200。逻辑行的存储器单元通常连接到相同的访问线(通常称为字线),而逻辑列的存储器单元通常有选择地连接到相同的数据线(通常称为位线)。在一些实施例中,单个访问线可以与存储器单元的不只一个逻辑行相关联,并且单个数据线可以与不只一个逻辑列相关联。阵列中的存储器单元能够被编程为至少两种数据状态之一(即,编程级)。
存储器阵列200包括例如字线2020到202N的访问线和例如位线2040到204M的数据线。在一些实施例中,字线202可以以多对一关系连接到全局访问线(例如全局字线)。
存储器阵列200可以排列成行(每个对应于字线202)和列(每个对应于位线204)。每列可以包括一串串连的存储器单元,例如NAND串2060到206M中的一个。每个NAND串206可以连接(例如,选择性连接)到公共源216,并且可以包括多个存储器单元。例如,NAND串2060包括存储器单元2080到208N。存储器单元208表示用于数据存储的非易失性存储器单元。每个NAND串206的存储器单元208可以在选择晶体管210(例如,场效应晶体管)与选择晶体管212(例如,场效应晶体管)之间串联连接,选择晶体管210例如是选择晶体管2100到210M中的一个(例如,每个可以是源极选择晶体管,通常称为选择栅极源(select gate source)),选择晶体管212例如是选择晶体管2120到212M中的一个(例如,每个晶体管可以是漏极选择晶体管,通常称为选择栅极漏(select gate drain))。选择晶体管2100到210M可以共同连接到选择线214,例如源极选择线,并且选择晶体管2120到212M可以共同连接到选择线215,例如漏极选择线。在特定实施例中,漏极选择线可以耦合到整个子块的漏极选择晶体管(并且每个子块可以有自己的漏极选择线),而源极选择线可以耦合到整个块的源极选择晶体管(并且每个块可以有自己的源极选择线)。
每个选择晶体管210的源极可以连接到公共源极216。每个选择晶体管210的漏极可以连接到对应NAND串206的存储器单元2080。例如,选择晶体管2100的漏极可以连接到对应NAND串2060的存储器单元2080。因此,每个选择晶体管210可以被配置成选择性地将对应NAND串206耦合到公共源极216。每个选择晶体管210的控制栅极可以连接到选择线214。
每个选择晶体管212的漏极可以连接到对应NAND串206的位线204。例如,选择晶体管2120的漏极可以连接到对应NAND串2060的位线2040。每个选择晶体管212的源极可以连接到对应NAND串206的存储器单元。例如,选择晶体管2120的源极可以连接到对应的NAND串2060的存储器单元208N。因此,每个选择晶体管212可以被配置成选择性地将对应的NAND串206连接到对应的位线204。每个选择晶体管212的控制栅极可以连接到选择线215。
图2中的存储器阵列可以是准二维存储器阵列,并且可以具有一般平面结构,例如,其中公共源极216、NAND串206和位线204在基本上平行的平面中延伸。或者,图2中的存储器阵列可以是三维存储器阵列,例如,其中NAND串206可以基本上垂直于包含公共源极216的平面和包含位线204的平面(其可以基本上平行于包含公共源极216的平面)而延伸。
存储器单元208的典型结构包括保持单元的数据状态(例如,通过阈值电压的变化)的数据存储结构234(例如,浮动栅极、电荷陷阱等)和控制栅极236。在一些情况下,存储器单元208可以进一步具有限定的源极230和限定的漏极232。存储器单元208的控制栅极236连接到(在某些情况下形成)字线202。
存储器单元208的列是选择性地连接到给定位线204的一个或多个NAND串206。存储器单元208的行是通常连接到给定字线202的存储器单元。一行存储器单元208可以但不必包括通常连接到给定字线202的所有存储器单元208。存储器单元208的行通常可以划分为存储器单元208的一组或多组物理页,并且存储器单元208的物理页通常包括共同连接到给定字线202的每隔一个的存储器单元208。例如,共同连接到字线202N并且选择性地连接到偶数位线204(例如,位线2040、2042、2044等)的存储器单元208可以是存储器单元208的一个物理页(例如,偶数存储器单元),而共同连接到字线202N并且选择性地连接到奇数位线204(例如,位线2041、2043、2045等)存储器单元208可以是存储器单元208的另一物理页(例如,奇数存储器单元)。尽管图2中没有明确地描绘位线2043-2045,但是从图中可以明显地看出,存储器单元200的阵列的位线204可以从位线2040到位线204M连续地编号。共同连接到给定字线202的存储器单元208的其他组也可以定义存储器单元208的物理页。对于某些存储器设备,共同连接到给定字线的所有存储器单元可以被视为物理页。对于特定存储器设备,共同连接到给定字线的特定子块的所有存储器单元可以被视为物理页。例如,耦合到子块中的特定字线的存储器单元可以包括第一物理页,耦合到第二子块中的特定字线的存储器单元可以包括第二物理页,等等。物理页的每个存储器单元中的一个位可以被视为逻辑页。因此,单个物理页可以存储多个逻辑页(例如,TLC方案可以在单个物理页中存储三个逻辑页)。
在感测(例如,读取)所选(例如,目标)存储器单元的数据状态期间,在建立从存储器单元到数据线和到源极的电流路径的同时,响应于应用到控制栅极的特定电压电平选择性地激活存储器单元,从而允许在数据线和源之间电流流动或缺乏电流,以指示存储器单元是否响应于应用到其控制栅极的特定电压电平而被激活。例如,对于NAND串2060的选定存储器单元208x+i的感测操作,感测电压(例如,读取电压或验证电压)可以应用到存储器单元208x+i的控制栅极,而电压电平应用到NAND串2060的存储器单元2080到208x和208x+2到208N的控制栅极,电压电平足以激活那些存储器单元不考虑它们的数据状态,并且同时电压电平被应用到选择晶体管2100和2120的控制栅极以足以激活那些晶体管。确定存储器单元208x+i是否响应于一个或多个感测电压而被激活的感测操作可以指示存储在该存储器单元中的数据状态的一个或多个位。在各种实施例中,每个存储器单元208可以根据SLC、MLC、TLC、QLC或其他编码方案进行编程。每个单元的阈值电压(Vt)表示存储在单元中的数据。
尽管已经针对特定类型的存储器阵列(例如,NAND闪存阵列)描述了各种实施例,但是各种实施例的教导可以同样地适用于任何类型的存储器阵列(例如,AND阵列、NOR阵列等),包括本文中所述的那些或类似的存储器阵列。
图3示出了根据特定实施例的NAND闪存单元208中的比特的示例编码。在所描述的实施例中,每个椭圆区域表示对应于单元内编码的值的阈值电压的范围。例如,在SLC编码方案中,较低的阈值电压对应于比特值1,较高的阈值电压对应于比特值0。作为另一示例,在MLC编码方案中,阈值电压的最低范围对应于“11”,阈值电压的下一个最高范围对应于“01”,阈值电压的再下一个最高范围对应于“00”,阈值电压的最高范围对应于“10”。类似地,对于TLC编码方案(或未示出的其他编码方案),阈值电压的不同范围对应于在每个单元中编码的比特的不同值。
编程级可指所描绘的椭圆区域之一。换句话说,程序级可以对应于编码方案中使用的位编码之一。一般来说,如果单元要存储由最低电压区域表示的值,则不需要对单元进行编程(因为在其擦除状态下,它已经在最低电压区域具有阈值电压)。因此,如本文所使用的,下一最低区域(例如,MLC方案的“01”或TLC方案的“011”)将被称为第一编程级,下一个区域(例如,MLC方案的“00”或TLC方案的“001”)将被称为第二编程级,依此类推。根据这个术语,MLC方案有三个编程级,TLC方案有七个编程级,QLC方案有十五个编程级。当数据(例如,一页或多页)被写入存储器116时,多个单元可以被编程到第一编程级,多个单元可以被编程到第二编程级,等等。
在特定实施例中,可以一次对单元编程一个或多个页(例如,逻辑页),其中页存储在耦合到同一字线的单元组(例如,物理页)中。例如,编程的单元组可以由特定的字线和特定的子块来标识。单元组可以存储一页数据(如果单元根据SLC方案编码)或多页数据(如果单元根据MLC、TLC、QLC或其他多级编码方案编码)。
在各种实施例中,被编码成存储多个比特的单元可以形成多个不同页的一部分,单元的每个比特对应于不同页。例如,对于用两位编码的单元(即,使用MLC编码方案),一位可对应于上页(UP),另一位可对应于下页(LP)。作为另一示例,对于用三位编码的单元(即,使用TLC编码方案),一位可对应于LP,一位可对应于UP,另一位可对应于额外页(XP)。作为另一示例,对于用四位编码的单元(即,使用QLC编码方案),一位可对应于LP,另一位可对应于UP,另一位可对应于XP,最后一位可对应于顶页(TP)。每一页(例如,LP、UP、XP或TP)可包括由字线的多个不同单元(例如,物理页)存储的对应比特的聚合。例如,参照图3所示的编码,使用TLC方案编码的多个单元的所有最右边的比特可以形成LP,多个单元的所有中间比特可以形成UP,并且多个单元的所有最左比特可以形成XP。
图3所示的各种R电压值(例如,R1、R2、R3,...)表示在读取耦合到字线的单元的值时可以应用到该字线的读取电压。当应用特定的读取电压时,感测电路可基于感测电路经由单元的位线感测的电压或电流来确定单元的阈值是否大于或小于读取电压。尽管在图3中没有示出,QLC编码方案可以利用类似的方案,其中可以使用15个读取电压来解析每个单元中的4个位的值,其中R1<R2<R3<...<R15。
所描绘的各种编程验证电压(MLC编码方案中的PV1-PV3和TLC编码方案中的PV1-PV7)表示编程验证电压,在单元编程期间(例如,在编程验证操作期间)可应用到单元以确定单元的阈值电压是否已达到其期望水平。例如,在MLC编码方案中,如果要将单元编程为“01”(即,编程级1),则在验证过程中PV1可应用到该单元,并且如果感测电路确定单元的阈值电压大于PV1,则认为该单元已通过编程。如果单元的阈值电压小于PV1,则认为该单元未通过编程,并且存储设备106可以尝试提高该单元的阈值电压,或者允许该单元失败,并且可以稍后尝试对该单元进行纠错。作为另一个示例,如果单元被编程为“00”(即,编程级2),那么在验证过程中PV2可以应用到该单元,并且如果感测电路确定该单元的阈值电压大于PV2,则认为该单元已经通过编程。类似地,如果单元被编程为“10”(即,编程级3),则在验证过程中PV3可应用到该单元。任何合适的编程验证电压可用于任何编码方案。在特定实施例中,如所示,编程验证电压可以被设置为在对应阈值电压范围的开始处或接近该阈值电压范围的开始处的值。在各种实施例中,编程验证电压和相应的读取电平电压之间可能存在一定的裕度,以允许随着时间的推移有轻微的阈值电压下降并提高感测精度。例如,该图描述了R1和PV1之间的裕度,R2和PV2之间的裕度,等等。
如上所述,编程级可以随着时间而移动(即,编程到特定编程级的单元的阈值可以改变)。编程级也可能在存储器阵列的多个页上不一致。因此,对每个物理页(甚至在不同的读取操作期间对同一物理页)使用相同的读取电压可能并不理想。
本公开的各种实施例允许读取命令指定读取电压偏移量配置文件标识符,该标识符指定要应用于由该读取命令指定的一个或多个读取操作的读取电压偏移量配置文件。读取电压偏移量配置文件可以包括一个或多个读取电压偏移量,该一个或多个读取电压偏移量用于在读取操作期间调整一个或多个读取电平。例如,SLC存储器的读取电压偏移量配置文件可以包括单个读取电压偏移量,MLC存储器的读取电压偏移量配置文件可以包括三个读取电压偏移量,TLC存储器的读取电压偏移量配置文件可以包括七个读取电压偏移量,QLC存储器的读取电压偏移量配置文件可以包括15个读取电压偏移量。例如,参考图3,MLC存储器的配置文件的第一读取电压偏移量可以指定R1应该偏移的量,配置文件的第二读取电压偏移量可以指定R2应该偏移的量,配置文件的第三读取电压偏移量可以指定R3应该偏移位的量。读取电压偏移量可指定正量、负量或无偏移量。在特定实施例中,读取电压偏移量被限制在一个范围内。例如,读取偏移量电压的有效值可以在-1270mV和+1270mV之间。在其他实施例中,可以使用任何合适的范围。在特定实施例中,读取电压偏移量被约束到特定粒度(granularity)。例如,连续读取电压偏移量之间的分辨率可以是l0mV或其他合适的值。在各种实施例中,读取电压偏移量配置文件可以包括仅用于读取电压的子集的读取电压偏移量,并且可以假设未指定的读取电压偏移量为零。
图4示出了根据特定实施例的包括存储器402以存储读取电压偏移量配置文件的示例性存储器设备。存储器设备可包括至少一个存储器芯片123和至少一个控制器126(在各种实施例中,控制器126可位于与存储器芯片123不同的芯片上或与存储器芯片123位于同一芯片上)。在一些实施例中,多个存储器芯片123可以共享控制器126。在替代实施例中,每个存储器芯片123可以具有专用的控制器126。在各种实施例中,存储器设备122可以包括与存储设备控制器118接口的控制器126和与前一控制器接口的每个存储器芯片123上的控制器(在各种实施例中,存储设备控制器118可以经由设备级控制器与芯片级控制器通信)。在各种实施例中,位于存储设备106、存储器设备122和/或存储器芯片123上的任何合适的控制逻辑可以被视为执行本文描述的操作的“控制器”(因此,在一些实施例中,分布在存储设备106的不同组件中的逻辑可以被视为单个控制器)。例如,控制器126可以包括位于与存储器芯片123分离的芯片上的存储器设备122上的控制逻辑、位于存储器芯片123上的控制逻辑、或位于与存储器芯片123分离的芯片上的存储器设备122上的控制逻辑和位于存储器芯片123上的控制逻辑的组合。
存储器设备122可以包括至少一个存储器402,用于存储读取电压偏移量配置文件。存储器402可位于存储器芯片123上或存储器设备122的不同芯片上。在特定实施例中,每个存储器芯片123和/或存储器阵列包括其自己的专用存储器以存储读取电压偏移量配置文件。在一些实施例中,多个存储器芯片123和/或一个或多个存储器芯片123内的阵列可以共享存储器402。
存储器402可以包括多个条目404(例如,404A、404B、...404N),每个包括配置文件标识符406和对应的读取电压偏移量408集合。存储器402可以存储任何适当数量的条目404。所描绘的实施例示出在读取操作期间使用三个读取电压的MLC方案的配置文件。在各种实施例中,存储器可适于存储每个配置文件的任何适当数量的读取电压偏移量。存储器402可以包括任何适当类型的易失性或非易失性存储器。在各种实施例中,存储设备控制器118可向存储器设备122发送导致一个或多个配置文件被存储在存储器402中的命令(在各种实施例中,控制器126可促进该操作)。
控制器126可以执行存储器设备122的任何适当功能。在各种实施例中,控制器126可以控制一个或多个存储器芯片123的一个或多个存储器阵列200的编程和读取操作。控制器126还可用于接收指定配置文件标识符的读取命令,从存储器402检索读取电压偏移量,并基于偏移量调整读取电压以进行读取操作。在其他实施例中,存储器设备122或存储设备106(例如,存储器芯片级控制器)的任何其他合适逻辑可以执行这些功能中的任何一个或多个。
图5示出了根据特定实施例的在地址周期中包括读取电压偏移量配置文件标识符的示例读取命令。在所描述的实施例中,每个读取命令包括专用于传送操作码的命令周期,接着是多个地址周期和专用于传送另一操作码的另一命令周期。在所描述的实施例中,第一命令周期中的操作码(即,以十六进制(h)表示的00)在读取命令中是公共的,并且第二命令周期中的操作码(即,30h、20h和31h)对于特定类型的读取命令(例如,读取页、捕捉读取(snap read)或高速缓存读取)是唯一的。每个读取命令包括两个专用于列地址的地址周期、四个专用于行地址的地址周期和专用于读取电压偏移量配置文件标识符的单个地址周期。在其它实施例中,读取命令可包括任何适当数量的命令周期和地址周期(例如,读取命令可包括四个地址周期、五个地址周期、六个地址周期、七个地址周期、八个地址周期或其它适当数量的地址周期)。
在所描述的实施例中,紧接在最后一个命令周期之前的最后一个地址周期专用于传送读取电压偏移量配置文件ID。在各种实施例中,任何合适的地址周期可专用于传送读取电压偏移量配置文件ID。例如,在特定实施例中,在第一命令周期之后的第一地址周期可以包括读取电压偏移量配置文件ID,并且剩余的地址周期可以包括用于读取命令的地址信息。
在特定实施例中,可以通过将存储设备控制器118耦合到存储器设备122的控制器126的总线来发送读取命令。在特定实施例中,总线可包括一组多用途数据线(例如,八条或十六条线)和一条或多条控制线,这些控制线允许存储器设备控制器126解释在特定周期内通过多用途数据线发送的数据类型。例如,当多用途数据线上的数据定义命令时,总线可以包括在命令周期期间断言的命令锁存启用信号(或其他类似的信号线)。作为另一示例,总线可以包括当多用途数据线上的数据定义地址时在地址周期期间断言的地址锁存启用信号(或其他类似信号线)。在特定实施例中,地址锁存启用信号也可以在多用途数据线上的数据定义读取电压偏移量配置文件ID的地址周期期间被断言。
在专用于读取电压偏移量配置文件ID的地址周期期间,总线的多用途数据线上的值对应于要用于伴随的读取命令的配置文件。在特定实施例中,特定值(例如,当有八条数据线时,数据线上的x00)可指默认配置文件,其导致没有读取电压偏移量响应于命令而被应用(在一些实施例中,其他读取电压偏移量可独立于读取电压偏移量配置文件由控制器126应用)。数据线上的至少一些剩余的可能值可以映射到有效的读取电压偏移量配置文件ID。在各种实施例中,如果配置文件的数目大于可以在一个地址周期中表示的配置文件ID的数目,则可以使用多个地址周期来传送配置文件ID。
在一些实施例中,通过将命令从存储设备控制器118发送到存储器设备控制器126,可以对存储器芯片123选择性地启用读取命令的附加地址周期。当未启用附加地址周期时,可以使用比启用附加地址周期时发送的读取命令少一个地址周期来发送读取命令。在读取命令包括用于携带读取电压偏移量配置文件ID的额外地址周期的特定实施例中,一个或多个擦除和编程命令还可以包括被认为无效的额外地址周期(即,被控制器126忽略)。
图6示出了根据特定实施例的在命令周期中包括读取电压偏移量配置文件标识符的示例读取命令。在所描述的实施例中,每个读取命令包括专用于传送操作码的命令周期,接着是多个地址周期和专用于另一操作码的另一命令周期。在所描述的实施例中,第一命令周期(即,00h)中的操作码在读取命令之间是公共的,并且第二命令周期中的每个操作码通报(signal)读取命令的类型(即所描述的实施例中的读取页或捕捉读取)以及在执行读取命令时要使用的读取电压偏移量配置文件ID。例如,30h可以指定不带读取电压偏移量配置文件的读取页命令,3Ah可以指定读取页命令和第一读取电压偏移量配置文件,3Bh可以指定读取页命令和第二读取电压偏移量配置文件,20h可以指定不带读取电压偏移量配置文件的捕捉读取命令,2Ah可以指定捕捉读取命令和第一读取电压偏移量配置文件,2Bh可以指定捕捉读取命令和第二读取电压偏移量配置文件。
每个读取命令包括两个命令周期、两个专用于列地址的地址周期和四个专用于行地址的地址周期(在本实施例中,命令中的地址周期总数比图5所示的实施例中的少一个)。在其他实施例中,读取命令可以包括任何适当数量的命令周期和地址周期,其中至少一个命令周期提供读取电压偏移量配置文件ID的指示。在各种实施例中,可以使用供应商专用操作码(例如,在开放NAND Flash接口规范,版本4.0中定义的)来实现非标准读取命令(例如,使用操作码指定读取类型和读取电压偏移量配置文件ID的读取命令)。
在所描述的实施例中,最后的命令周期用于传送读取电压偏移量配置文件ID。在各种实施例中,任何合适的命令周期可用于传送读取电压偏移量配置文件ID。例如,在特定实施例中,第一命令周期可传送读取电压偏移量配置文件ID。
图7示出了根据特定实施例的与包括读取电压偏移量配置文件标识符的读取命令相关联的示例波形。描绘RDY信号的第一波形可以是由存储器设备控制器126提供给存储设备控制器118的就绪状态输出,以指示存储器芯片123是否准备好接收命令(例如,当RDY信号为低电平时,存储器芯片123不可用于接收命令,并且当RDY变高电平时,存储设备控制器118可发送新命令)。在特定实施例中,RDY信号是读取状态输出的一位。第二波形描绘了ARDY信号,当从存储器芯片123的阵列感测数据时ARDY信号处于低电平。
该序列描述了一个读取页和两个读取缓存随机操作的表现。读取缓存命令(例如,读取缓存随机或顺序读取缓存)可允许从缓存中读取页,而同时从所选存储器芯片的闪存阵列中读取另一页。在读取缓存序列中的初始顺序读取缓存或读取缓存随机命令之前发出读取页命令。在发出一个或多个顺序读取缓存或读取缓存随机命令后,将发出读取缓存结束命令来完成该序列。
当存储设备控制器118向控制器126发送指定页A的地址和第一读取电压偏移量配置文件ID(在该命令的地址周期或命令周期中)的读取页命令时,所描述的序列开始。然后,控制器126使页A从存储器阵列读取,其中的读取电压根据与ID相对应的读取电压偏移量配置文件中指定的偏移量进行调整。一旦该读取完成,RDY和ARDY信号都变为高电平。
然后,从存储设备控制器118向控制器126发送读取缓存随机命令。读取缓存随机命令向控制器126指定页B的地址和第二读取电压偏移量配置文件ID(在该命令的地址周期或命令周期中)。然后,利用根据与第二ID相对应的不同读取电压偏移量配置文件中指定的偏移量进行调整的读取电压,控制器126使页B从存储器阵列中读出。当感测到页B时,存储设备控制器126可以从缓存中读取页A。然后,存储设备控制器118可以向控制器126发送另一个读取缓存随机命令。读取缓存随机命令向控制器126指定页C的地址和第三读取电压偏移量配置文件ID(在该命令的地址周期或命令周期中)。新指定的读取电压偏移量配置文件在读取相应页之前不生效(即,允许对页B的感测继续使用由配置文件2指定的电压偏移量,并且在感测页C之前,由配置文件3指定的电压偏移量不应用于读取电压)。
一旦页B的感测完成,存储设备控制器118然后可以从缓存中读取页B,而控制器126利用根据与第三ID相对应的读取电压偏移量配置文件中指定的偏移量进行调整的读取电压,使页C从存储器阵列被读取。控制器126在读取页B之后发送读取缓存结束命令,并且随后一旦页C的感测完成,读出页C。
如上所述,缓存读取可以包括顺序读取缓存命令。在一些实施例中,顺序读取缓存命令(或不利用上述缓存顺序的标准顺序读取命令)可以包括没有任何地址周期的单个命令周期。这样的命令可以表示读取阵列的下一页(相对于阵列刚刚读取的页)的请求。在各种实施例中,当发出这样的命令时,接收该命令的控制器126可以应用用于此阵列先前读取的页的读取电压偏移量配置文件。在替代实施例中,用于顺序读取命令的单个命令周期的不同操作码可以指定不同的读取电压偏移量配置文件ID。例如,第一操作码可以表示利用第一读取电压偏移量配置文件的顺序读取命令,第二操作码可以表示利用第二读取电压偏移量配置文件的顺序读取命令,等等。
图8示出了根据特定实施例的用于基于读取电压偏移量配置文件执行读取操作的示例流程。该流程可以由系统100的任何适当逻辑来执行,例如存储器设备控制器126。
在802处,接收读取电压偏移量配置文件配置命令。例如,可以从存储设备控制器118接收读取电压偏移量配置文件配置命令。在特定实施例中,配置命令可以指定读取电压偏移量配置文件的一个或多个读取电压偏移量。在一个实施例中,配置命令可以为在读取操作期间应用的每个读取电压指定读取电压偏移量。例如,如果使用SLC方案,则配置命令可以包括单个读取电压偏移量。作为另一示例,如果使用MLC方案,则配置命令可以包括三个读取电压偏移量。作为另一示例,如果使用TLC方案,则配置命令可以包括七个读取电压偏移量。作为又一示例,如果使用QLC方案,则配置命令可以包括15个读取电压偏移量。
在特定实施例中,针对多个读取电压偏移量配置文件中的每个配置文件,配置命令可以包括一组读取电压偏移量。例如,配置命令可以包括针对第一读取电压偏移量配置文件的第一组电压偏移量、针对第二读取电压偏移量配置文件的第二组电压偏移量,等等。在其他实施例中,当要建立多个读取电压偏移量配置文件时,可以使用多个配置命令。
在特定实施例中,配置命令可以包括与配置文件的一组读取电压偏移量相关联的读取电压偏移量配置文件标识符。在另一实施例中,配置命令可以包括读取电压偏移量配置文件标识符的表示,而不是读取电压偏移量配置文件标识符本身,使得控制器126可以基于该表示来确定读取电压偏移量配置文件标识符。在又一个实施例中,配置命令可以按照允许控制器126确定一组读取电压偏移量和相应的读取电压偏移量配置文件标识符之间的关联的顺序来构造。例如,在指定多个不同的读取电压偏移量配置文件的配置命令中所包含的读取电压偏移量的顺序可以指示每一组读取电压偏移量所属的配置文件标识符。
在特定实施例中,在向控制器126发送一个或多个配置命令之前,存储设备控制器118或系统100的其他合适逻辑(例如,系统媒体管理)可以在存储器芯片123上执行一系列测试以确定最佳读取电压偏移量配置文件。例如,存储设备控制器118可以将各页的编程引导到存储器芯片123的阵列,并在不同时间读取这些页以确定最佳读取电压电平是否已经偏移。作为该测试的一部分,存储设备控制器118可以监视纠错逻辑,以确定是否应调整各读取电压电平以提高感测精度。存储设备控制器118还可以引导各读取电压的调整以确定特定情况下(例如,基于自数据被刷新或编程以来的时间量或基于数据的位置)的最佳读取电压偏移量。基于这些测试,存储设备控制器118可以确定在存储器芯片123的操作期间要使用的一个或多个读取电压偏移量配置文件。
在804处,读取电压偏移量配置文件与配置文件标识符关联地存储。读取电压偏移量配置文件和/或配置文件标识符可以存储在控制器126或其它逻辑可访问的任何适当位置,其它逻辑与在读取操作期间读取电压的应用相关联。例如,读取电压偏移量配置文件和/或配置文件标识符存储在存储器芯片123的存储器中、控制器126的存储器中或存储器设备122的其它存储器中。在特定实施例中,读取电压偏移量配置文件和/或配置文件标识符被存储在可以相对快速地访问的存储器中,例如SRAM。在特定实施例中,配置文件标识符不是显式存储的,而是基于存储器中的读取电压偏移量配置文件的位置来推断的。例如,存储在存储器的第一存储元件中的读取电压偏移量配置文件可以与第一配置文件标识符相关联,存储在存储器的相邻存储元件中的读取电压偏移量配置文件可以与第二配置文件标识符相关联,等等。在一个实施例中,读取电压偏移量配置文件及其对应的配置文件标识符可以存储在查找表中。
在特定实施例中,一旦存储设备控制器118基于上述测试生成一个或多个读取电压偏移量配置文件,则存储设备控制器118可发送一个或多个配置命令,以使控制器126将读取电压偏移量配置文件与各自的读取电压偏移量配置文件标识符相关联地存储。
在806处,接收到读取命令。在808处,确定读取命令是否包括读取电压偏移量配置文件标识符。在特定实施例中,读取命令可以指定要读取的数据以及读取电压偏移量配置文件标识符。在各种示例中,读取电压偏移量配置文件标识符可以包括在读取命令的地址周期或读取命令的命令周期中或从读取命令的地址周期或读取命令的命令周期内包含的值推断。
如果读取命令不包括读取电压偏移量配置文件标识符,则在810处执行读取命令而不应用读取电压偏移量配置文件。在一些实施例中,如果读取命令指定默认电压偏移量配置文件标识符,则也可以在不应用读取电压偏移量配置文件的情况下执行读取命令。
如果读取命令包括读取电压偏移量配置文件标识符,则在812处,控制器126或其他合适的逻辑访问与标识符相关联的读取电压偏移量配置文件中的一个或多个读取电压偏移量。在814处,利用基于读取电压偏移量配置文件中的读取电压偏移量而调整的电压电平执行读取操作。例如,第一读取电压可以通过配置文件指定的第一读取电压偏移量来调整,第二读取电压可以通过配置文件指定的第二读取电压偏移量来调整,等等。
图5-8中描述的流程仅代表在特定实施例中可能发生的操作。在其它实施例中,可以在流程中执行另外操作(例如,可以形成阵列的各种存储器单元)。本公开的各种实施例考虑用于实现本文所述功能的任何合适的信令机制。图5-8中所示的一些操作可在适当的情况下重复、组合、修改或删除。另外,可以在不脱离特定实施例的范围的情况下以任何合适的顺序执行操作。
在特定实施例中,存储设备控制器118或系统100的其他合适逻辑可基于任何合适的信息(例如自要读取的数据被编程或刷新以来经过的时间量、要读取的数据的位置,或其他合适的因素)来确定用于读取命令的读取电压偏移量配置文件。例如,存储设备控制器118可以接收来自主机(例如,CPU 102)的数据请求,将该请求转换为一个或多个读取命令和相关联的读取电压偏移量配置文件标识符,随后将这一个或多个读取命令传送到控制器126。
任何适当类型的读取操作可利用读取电压偏移量配置文件(其中,可在相应命令或相关命令的命令周期或地址周期内指定读取电压偏移量配置文件标识符)。例如,存储设备106可以支持以下读取命令中的任何一个或多个:读取页命令(执行对数据页的随机读取)、读取多平面命令(如下所述)、读取缓存随机命令(如上所述)、读取缓存顺序命令(如上所述),捕捉读取(对部分数据页执行随机读取)、纠正读取(如下所述)和软位读取(softbit read)(如下所述)。
多平面读取操作可以指定要同时从多个不同平面读取的数据的位置(例如,位于第一平面的页地址处的数据与位于第二平面的页地址处的数据同时被读取)。例如,多平面读取命令可以指定要读取的数据的公共页地址(尽管要从各个平面读取的每组数据的列地址和/或块地址可能不同)以及要从多少/哪些平面读取。在特定实施例中,多平面读取命令可以指定用于从各个平面读取的每个页面的单个读取电压偏移量配置文件标识符。在特定实施例中,使用相同的读取电压偏移量配置文件是因为多平面读取操作利用单个字线驱动器来为所执行的多个读取应用读取电压。
校正读取可以包括这样的操作,其中检查与要读取的数据的字线相邻的一个或多个字线的编程状态,以确定在读取操作期间是否应应用一个或多个读取电压偏移量,以校正由相邻字线的编程引起的阈值电压干扰。当校正读取命令指定读取电压偏移量配置文件标识符时,可以基于相邻字线的编程状态将相应读取电压偏移量配置文件中的读取电压偏移量添加到要应用的任何读取电压偏移量上。
软位读取命令可以导致在默认读取电压下执行第一读取操作,并且在从默认读取电压偏移一特定量的每个读取电压下执行一个或多个读取操作。例如,可以在默认读取电压下执行第一读取操作,可以使用比默认读取电压小.1v的读取电压执行第二读取操作,并且可以使用比默认读取电压高.1v的读取电压执行第三读取操作。读取操作的结果可由存储设备控制器118获得并被分析以确定哪个感测操作最准确,并且可将这些结果返回给请求实体(例如CPU 102)。当软位读取命令指定读取电压偏移量配置文件标识符时,可将相应读取电压偏移量配置文件中的读取电压偏移量添加到通常在软位读取命令中的读取电压以用于各种读取操作。
如上针对软位读取命令和校正读取命令所描述,在特定实施例中,基于读取电压偏移量配置文件的读取电压调整可以与由存储设备实现的其他读取电压调整累积。由存储设备实现的一个特定的读取电压调整过程是移动读取参考(MRR)操作。在移动读取参考操作中,可以为一个或多个读取电压指定读取电压偏移量。这种移动读取参考操作可以使用存储器阵列的任何适当粒度(例如,块)来调整一个或多个读取电压(例如,调整后的读取电压可以应用于块的每一字线)。在任何合适的读取操作期间,可以使用由MRR操作指定的读取电压调整。由读取电压偏移量配置文件指定的用于读取命令的读取电压偏移量可以与MRR操作指定的读取电压调整一起累积。在特定实施例中,MRR操作指定的读取电压偏移量的范围和分辨率可以与读取电压偏移量配置文件的读取电压偏移量的范围和分辨率相同。
存储设备实现的另一个读取电压调整过程是信道校准过程(有时称为自动读取校准)。在信道校准过程中,存储器芯片123校准其存储器的一部分(例如,页),并基于校准来存储最佳读取电压偏移量。然后,存储的读取电压偏移量可用于涉及存储器的校准部分的读取操作。由读取电压偏移量配置文件指定的用于读取命令的读取电压偏移量可以与在信道校准过程中确定的读取电压偏移量累积。
一个设计可以经历不同的阶段,从创建到仿真到制造。表示设计的数据可以多种方式表示设计。首先,如在仿真中有用的,可以使用硬件描述语言(HDL)或另一功能描述语言来表示硬件。此外,在设计过程的某些阶段可以产生具有逻辑和/或晶体管门的电路级模型。此外,在某些阶段,大多数设计都达到了表示硬件模型中各种设备的物理布置的数据级别。在使用传统半导体制造技术的情况下,表示硬件模型的数据可以是指定在用于产生集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。在一些实施方式中,此类数据可以按数据库文件格式(例如图形数据系统II(GDS II)、开放艺术品系统交换标准(OASIS)或类似格式)存储。
在一些实施方式中,基于软件的硬件模型、HDL和其他功能描述语言对象可以包括寄存器传输语言(RTL)文件以及其他示例。这样的对象可以是机器可解析的,使得设计工具可以接受HDL对象(或模型),解析HDL对象以获得所述硬件的属性,并从该对象确定物理电路和/或片上布局。设计工具的输出可以用来制造物理设备。例如,设计工具可以确定来自HDL对象的各种硬件和/或固件元件的配置,例如总线宽度、寄存器(包括大小和类型)、内存块、物理链路路径、结构拓扑以及为了实现在HDL对象中建模的系统而要实现的其他属性。设计工具可以包括用于确定片上系统(SoC)和其他硬件设备的拓扑结构和结构配置的工具。在一些情况下,HDL对象可以用作开发模型和设计文件的基础,制造设备可以使用这些模型和设计文件来制造所描述的硬件。实际上,HDL对象本身可以被提供为制造系统软件的输入,以引起所描述的硬件。
在设计的任何表示中,数据可以存储在任何形式的机器可读介质中。存储器或磁存储器或光学存储(例如光盘)可以是机器可读介质,用于存储经由光或电波传输的信息,该光或电波经调制或以其他方式产生以传输此类信息。当指示或携带代码或设计的电载波被发送时,某种程度上执行电信号的复制、缓冲或重新发送,进行新的复制。因此,通信提供商或网络提供商可以在有形的、机器可读的介质上,至少暂时地存储制品,例如编码成载波的信息,该制品体现了本公开的实施例的技术。
在各种实施例中,可以向制造系统(例如,能够制造集成电路和/或相关组件的半导体制造系统)提供存储设计的表示的介质。设计表示可以指示系统制造能够执行上述功能的任何组合的设备。例如,设计表示可以指示系统关于哪些组件要被制造、组件应如何耦合在一起、组件应放置在设备上的位置,和/或关于要制造的设备的其他适当规范。
本文使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括与非暂时性介质相关联的硬件,例如微控制器,该非暂时性介质存储适于由微控制器执行的代码。因此,在一个实施例中,对模块的引用是指硬件,该硬件被特别配置为识别和/或运行要保存在非暂时介质上的代码。此外,在另一实施例中,模块的使用是指包括代码的非暂时性介质,该代码特别适于由微控制器运行以执行预定操作。并且可以推断,在又一实施例中,术语模块(在本示例中)可以指微控制器和非暂时介质的组合。通常,被描述为独立的模块边界通常会变化,并且可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,例如晶体管、寄存器或其他硬件,例如可编程逻辑设备。
逻辑可用于实现所描述的任何流程或各种组件的功能,这样的组件例如是CPU102、外部I/O控制器104、处理器108、内核114A和114B、I/O控制器110、CPU存储器控制器112、存储设备106、系统存储器设备107、存储器116、存储器设备122A-D、存储器芯片123、控制器126、存储设备控制器118、地址转换引擎120、程序控制逻辑124、存储器阵列200、存储器402、其子组件或本文描述的其他实体或组件。“逻辑”可指硬件、固件、软件和/或每一个的组合以执行一个或多个功能。在各种实施例中,逻辑可包括微处理器或可操作以执行软件指令的其它处理元件、离散逻辑例如专用集成电路(ASIC)、可编程逻辑器件(例如现场可编程门阵列(FPGA)、包含指令的存储设备、逻辑器件的组合(例如,如在印刷电路板上可以找到)或其他合适的硬件和/或软件。逻辑可以包括一个或多个门或其他电路组件。在一些实施例中,逻辑也可以完全体现为软件。软件可具体化为记录在非暂时性计算机可读存储介质上的软件包、代码、指令、指令集和/或数据。固件可以具体化为硬编码(例如,非易失性)在存储设备上的代码、指令、指令集和/或数据。
在一个实施例中,短语“以”或“配置为”的使用是指安排、组装、制造、提供销售、导入和/或设计执行指定的或确定的任务的装置、硬件、逻辑或元件。在本例中,如果不运行的装置或其元件被设计、耦合和/或互连以执行所述指定任务,则该不运行的装置或其元件仍被“配置为”执行指定任务。作为纯说明性示例,逻辑门可以在操作期间提供0或1。但是,“被配置为”向时钟提供启用信号的逻辑门并不包括可提供1或0的每个可能的逻辑门。相反,逻辑门是以某种方式耦合的,在操作期间1或0输出是为了启用时钟。再次注意,术语“配置为”的使用不需要运行,而是集中于装置、硬件和/或元件的潜在状态,其中在潜在状态中,装置、硬件和/或元件被设计为当装置、硬件和/或元件运行时执行特定任务。
此外,在一个实施例中,短语“能够/有能力”和/或“可操作”,是指以这样的方式设计的装置、逻辑、硬件和/或元件,以便能够以指定的方式实现装置、逻辑、硬件和/或元件的使用。如上所述,在一个实施例中,“以”、“能够”或“可操作”的使用是指装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件不运行,而是以能够以指定方式实现设备使用的方式进行设计。
本文使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或逻辑上的值的使用也被称为l和0,它们只是表示二进制逻辑状态。例如,1指示高逻辑电平,0指示低逻辑电平。在一个实施例中,存储单元例如晶体管或闪存单元能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中值的其他表示形式。例如,十进制数字10也可以表示为二进制值1010和十六进制字母A。因此,值包括能够保存在计算机系统中的信息的任何表示。
此外,状态可以用值或值的一部分来表示。例如,第一值(例如逻辑1)可以表示默认状态或初始状态,而第二值(例如逻辑零)可以表示非默认状态。此外,在一个实施例中,术语重置和设置分别指默认值或状态和更新值或状态。例如,默认值可能包括高逻辑值,即重置,而更新值可能包括低逻辑值,即设置。注意,任何值的组合都可以用来表示任意数量的状态。
上述方法、硬件、软件、固件或代码集的实施例可以经由存储在可由处理元件执行的机器可访问、机器可读、计算机可访问或计算机可读介质上的指令或代码来实现。非暂时性机器可访问/可读介质包括以机器(例如计算机或电子系统)可读的形式提供(即存储和/或传输)信息的任何机制。例如,非暂时性机器可访问介质包括随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪存设备;电存储设备;光存储设备;声学存储设备;其他形式的存储设备,用于保存从临时(传播)信号(例如,载波、红外信号、数字信号)等接收到的信息,这些存储设备与接收信息的非暂时介质区别开来。
用于编程逻辑以执行本公开的实施例的指令可以存储在系统中的存储器中,例如DRAM、缓存、闪存或其他存储设备。此外,指令可以经由网络或通过其它计算机可读介质来分发。因此,机器可读介质可以包括以机器(例如计算机)可读的形式存储或传输信息的任何机制,但不限于软盘、光盘、光碟、只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程介质只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或用于经由电子、光学、声学或其他形式的传播信号(例如,载波、红外信号,数字信号等)传输信息的有形的机器可读的存储设备。因此,计算机可读介质包括适于以机器(例如计算机)可读的形式存储或发送电子指令或信息的任何类型的有形机器可读介质。
在至少一个实施例中,装置包括:存储器阵列;和控制器,接收指定读取电压偏移量配置文件标识符的第一读取命令;识别与读取电压偏移量配置文件标识符相关联的读取电压偏移量配置文件,该读取电压偏移量配置文件包括至少一个读取电压偏移量;并且使用根据读取电压偏移量配置文件中的至少一个读取电压偏移量调整的至少一个读取电压,执行由第一读取命令指定的第一读取操作。
在一个实施例中,在读取命令的地址周期中指定读取电压偏移量配置文件标识符。在一个实施例中,控制器接收在读取命令的地址周期中指定默认读取电压偏移量配置文件标识符的第二读取命令;并且确定针对第二读取操作不基于默认读取电压偏移量配置文件标识符来调整至少一个读取电压。在一个实施例中,在读取命令的最后一个地址周期中指定读取电压偏移量配置文件标识符。在一个实施例中,在第一读取命令的命令周期中指定读取电压偏移量配置文件标识符。在一个实施例中,在第一读取命令的最后命令周期期间发送的操作码中指定读取电压偏移量配置文件标识符。在一个实施例中,在第一读取命令的第一命令周期期间发送的操作码中指定读取电压偏移量配置文件标识符。在一个实施例中,控制器进一步接收指定至少一个读取偏移量电压和读取电压偏移量配置文件标识符的配置命令;并且在存储器中与读取电压偏移量配置文件标识符相关联地存储至少一个读取偏移量电压。在一个实施例中,装置进一步包括第二控制器,该第二控制器基于读取命令所针对的数据的年限从多个读取电压偏移量配置文件标识符中选择所述读取电压偏移量配置文件标识符。在一个实施例中,读取命令是多平面读取命令,并且应用至少一个经调整的读取电压从多平面读取命令中指定的多个平面的每个平面读取数据。
在至少一个实施例中,方法包括接收指定读取电压偏移量配置文件标识符的第一读取命令;识别与所述读取电压偏移量配置文件标识符相关联的读取电压偏移量配置文件,该读取电压偏移量配置文件包括至少一个读取电压偏移量;并且使用根据读取电压偏移量配置文件的至少一个读取电压偏移量调整的至少一个调整的读取电压来执行由第一读取命令指定的第一读取操作。
在一个实施例中,方法进一步包括在读取命令的地址周期中指定读取电压偏移量配置文件标识符。在一个实施例中,方法进一步包括接收在读取命令的地址周期中指定默认读取电压偏移量配置文件标识符的第二读取命令;并且确定针对第二读取操作不基于默认读取电压偏移量配置文件标识符调整至少一个读取电压。在一个实施例中,方法进一步包括在读取命令的最后一个地址周期中指定读取电压偏移量配置文件标识符。在一个实施例中,方法进一步包括在第一读取命令的命令周期中指定读取电压偏移量配置文件标识符。在一个实施例中,方法进一步包括在第一读取命令的最后命令周期期间发送的操作码中指定读取电压偏移量配置文件标识符。在一个实施例中,方法进一步包括在第一读取命令的第一命令周期期间发送的操作码中指定读取电压偏移量配置文件标识符。在一个实施例中,方法进一步包括接收指定至少一个读取偏移量电压和读取电压偏移量配置文件标识符的配置命令;以及在存储器中与读取电压偏移量配置文件标识符相关联地存储至少一个读取偏移量电压。在一个实施例中,方法进一步包括基于读取命令所针对的数据的年限从多个读取电压偏移量配置文件标识符中选择读取电压偏移量配置文件标识符。在一个实施例中,读取命令是多平面读取命令,并且应用至少一个经调整的读取电压从多平面读取命令中指定的多个平面的每个平面读取数据。
在至少一个实施例中,非暂时性机器可读存储介质具有存储在其上的指令,当该指令由机器运行以使机器接收指定读取电压偏移量配置文件标识符的第一读取命令;识别与读取电压偏移量配置文件标识符相关联的读取电压偏移量配置文件,该读取电压偏移量配置文件包括至少一个读取电压偏移量;并且使用根据读取电压偏移量配置文件的至少一个读取电压偏移量调整的至少一个读取电压,执行由第一读取命令指定的第一读取操作。
在一个实施例中,指令在被运行时使机器在读取命令的地址周期中指定读取电压偏移量配置文件标识符。在一个实施例中,指令在被运行时使机器在第一读取命令的命令周期中指定读取电压偏移量配置文件标识符。在一个实施例中,指令在被运行时使机器接收指定至少一个读取偏移量电压和读取电压偏移量配置文件标识符的配置令;并且在存储器中与读取电压偏移量配置文件标识符相关联地存储的至少一个读取偏移量电压。在一个实施例中,指令在被运行时使得机器基于读取命令所针对的数据的年限从多个读取电压偏移量配置文件标识符中选择读取电压偏移量配置文件标识符。
在至少一个实施例中,系统包括存储设备,该存储设备包括含有存储器阵列和第一控制器的存储器设备;和第二控制器,该第二控制器用于向第一控制器发送配置命令、该配置命令指定至少一个读取偏移量电压和读取电压偏移量配置文件标识符;以及发送读取命令到第一控制器,该读取命令指定读取电压偏移量配置文件标识符和存储器阵列的地址。C
在一个实施例中,第二控制器接收由存储器阵列的地址指定的数据,即由第一控制器根据至少一个读取偏移量电压读取的数据。在一个实施例中,读取命令在读取命令的命令周期或地址周期中指定读取电压偏移量配置文件标识符。在一个实施例中,系统进一步包括将读取请求发送到存储设备的处理器,并且其中第二控制器响应于接收到读取请求而发送读取命令。在一个实施例中,系统进一步包括可通信地耦合到处理器的电池、可通信地耦合到处理器的显示器,或可通信地耦合到处理器的网络接口。
在至少一个实施例中,系统包括用于接收指定读取电压偏移量配置文件标识符的第一读取命令的模块;用于识别与读取电压偏移量配置文件标识符相关联的读取电压偏移量配置文件的模块,该读取电压偏移量配置文件包括至少一个读取电压偏移量;以及用于使用根据读取电压偏移量配置文件中的至少一个读取电压偏移量调整的至少一个读取电压来执行由第一读取命令指定的第一读取操作的模块。
在一个实施例中,系统进一步包括用于在读取命令的地址周期中指定读取电压偏移量配置文件标识符的模块。在一个实施例中,该系统进一步包括用于在第一读取命令的命令周期中指定读取电压偏移量配置文件标识符的模块。在一个实施例中,该系统进一步包括用于接收指定至少一个读取偏移量电压和读取电压偏移量配置文件标识符的配置命令的模块;以及用于在存储器中与读取电压偏移量配置文件标识符相关联地存储至少一个读取偏移量电压的模块。在一个实施例中,系统进一步包括用于基于读取命令所针对的数据的年限从多个读取电压偏移量配置文件标识符中选择读取电压偏移量配置文件标识符的模块。
在本说明书中,对“一个实施例”或“实施例”的引用意味着在结合该实施例描述的特定特征、结构或特性包含在本公开的至少一个实施例中。因此,在本说明书的各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指同一实施例。此外,可在一个或多个实施例中以任何适当的方式组合特定特征、结构或特性。
在上述说明书中,已经参考特定示例性实施例给出了具体描述。然而,显而易见的是,在不脱离所附权利要求中所述的更广泛的公开精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图应被视为说明性的而不是限制性的。此外,上述实施例和其他示例性语言的使用不一定指同一实施例或同一示例,但可以指不同的和有区别的实施例,以及潜在的同一实施例。
Claims (25)
1.一种装置,包括:
存储器阵列;和
控制器,其用于:
接收指定读取电压偏移量配置文件标识符的第一读取命令;
识别与所述读取电压偏移量配置文件标识符相关联的读取电压偏移量配置文件,所述读取电压偏移量配置文件包括至少一个读取电压偏移量;以及
使用根据所述读取电压偏移量配置文件中的所述至少一个读取电压偏移量调整的至少一个读取电压,执行由所述第一读取命令指定的第一读取操作。
2.根据权利要求1所述的装置,其中所述读取电压偏移量配置文件标识符是在所述读取命令的地址周期中指定的。
3.根据权利要求1所述的装置,其中所述控制器:
接收在所述读取命令的地址周期中指定默认读取电压偏移量配置文件标识符的第二读取命令;以及
基于所述默认读取电压偏移量配置文件标识符,确定不针对第二读取操作调整所述至少一个读取电压。
4.根据权利要求1所述的装置,其中所述读取电压偏移量配置文件标识符是在所述读取命令的最后一个地址周期中指定的。
5.根据权利要求1所述的装置,其中所述读取电压偏移量配置文件标识符是在所述第一读取命令的命令周期中指定的。
6.根据权利要求1所述的装置,其中所述读取电压偏移量配置文件标识符是在所述第一读取命令的最后一个命令周期期间发送的操作码中指定的。
7.根据权利要求1所述的装置,其中所述读取电压偏移量配置文件标识符是在所述第一读取命令的第一命令周期期间发送的操作码中指定的。
8.根据权利要求1所述的装置,所述控制器进一步:
接收指定所述至少一个读取偏移量电压和所述读取电压偏移量配置文件标识符的配置命令;以及
在存储器中与所述读取电压偏移量配置文件标识符相关联地存储所述至少一个读取偏移量电压。
9.根据权利要求1所述的装置,进一步包括第二控制器,用于基于所述读取命令所针对的数据的年限从多个读取电压偏移量配置文件标识符中选择所述读取电压偏移量配置文件标识符。
10.根据权利要求1所述的装置,其中所述读取命令是多平面读取命令,并且至少一个经调整的读取电压被应用于从所述多平面读取命令中指定的多个平面中的每个平面读取数据。
11.一种方法,包括:
接收指定读取电压偏移量配置文件标识符的第一读取命令;
识别与所述读取电压偏移量配置文件标识符相关联的读取电压偏移量配置文件,所述读取电压偏移量配置文件包括至少一个读取电压偏移量;以及
使用根据所述读取电压偏移量配置文件中的所述至少一个读取电压偏移量调整的至少一个读取电压来执行由所述第一读取命令指定的第一读取操作。
12.根据权利要求11所述的方法,进一步包括在所述读取命令的地址周期中指定所述读取电压偏移量配置文件标识符。
13.根据权利要求11所述的方法,进一步包括在所述第一读取命令的命令周期中指定所述读取电压偏移量配置文件标识符。
14.根据权利要求11所述的方法,进一步包括:
接收指定所述至少一个读取偏移量电压和所述读取电压偏移量配置文件标识符的配置命令;以及
在存储器中与所述读取电压偏移量配置文件标识符相关联地存储所述至少一个读取偏移量电压。
15.根据权利要求11所述的方法,进一步包括基于所述读取命令所针对的数据的年限从多个读取电压偏移量配置文件标识符中选择所述读取电压偏移量配置文件标识符。
16.一种系统,包括:
存储设备,包括:
包括存储器阵列和第一控制器的存储器设备;以及
第二控制器,其用于:
向所述第一控制器发送配置命令,所述配置命令指定至少一个读取偏移量电压和一个读取电压偏移量配置文件标识符;以及
向所述第一控制器发送读取命令,所述读取命令指定所述读取电压偏移量配置文件标识符和所述存储器阵列的地址。
17.根据权利要求16所述的系统,所述第二控制器接收由所述存储器阵列的所述地址指定的数据,所述数据由所述第一控制器根据所述至少一个读取偏移量电压读取。
18.根据权利要求16所述的系统,其中所述读取命令在所述读取命令的命令周期或地址周期中指定所述读取电压偏移量配置文件标识符。
19.根据权利要求16所述的系统,进一步包括将读取请求发送到所述存储设备的处理器,并且其中所述第二控制器响应于接收到所述读取请求而发送所述读取命令。
20.根据权利要求19所述的系统,进一步包括通信地耦合到所述处理器的电池、通信地耦合到所述处理器的显示器或通信地耦合到所述处理器的网络接口。
21.一种系统,包括:
用于接收指定读取电压偏移量配置文件标识符的第一读取命令的模块;
用于识别与所述读取电压偏移量配置文件标识符相关联的读取电压偏移量配置文件的模块,所述读取电压偏移量配置文件包括至少一个读取电压偏移量;以及
用于使用根据所述读取电压偏移量配置文件中的所述至少一个读取电压偏移量调整的至少一个读取电压来执行由所述第一读取命令指定的第一读取操作的模块。
22.根据权利要求21所述的系统,进一步包括用于在所述读取命令的地址周期中指定所述读取电压偏移量配置文件标识符的模块。
23.根据权利要求21所述的系统,进一步包括用于在所述第一读取命令的命令周期中指定所述读取电压偏移量配置文件标识符的模块。
24.根据权利要求21所述的系统,进一步包括:
用于接收指定所述至少一个读取偏移量电压和所述读取电压偏移量配置文件标识符的配置命令的模块;以及
用于在存储器中与所述读取电压偏移量配置文件标识符相关联地存储所述至少一个读取偏移量电压的模块。
25.根据权利要求21所述的系统,进一步包括用于基于所述读取命令所针对的数据的年限从多个读取电压偏移量配置文件标识符中选择所述读取电压偏移量配置文件标识符的模块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/721,351 | 2017-09-29 | ||
US15/721,351 US10268407B1 (en) | 2017-09-29 | 2017-09-29 | Method and apparatus for specifying read voltage offsets for a read command |
PCT/US2018/053590 WO2019068012A1 (en) | 2017-09-29 | 2018-09-28 | METHOD AND APPARATUS FOR SPECIFYING READ VOLTAGE SHIFTS FOR READING CONTROL |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111095418A true CN111095418A (zh) | 2020-05-01 |
Family
ID=65896048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880056412.3A Pending CN111095418A (zh) | 2017-09-29 | 2018-09-28 | 指定读取命令的读取电压偏移量的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10268407B1 (zh) |
CN (1) | CN111095418A (zh) |
DE (1) | DE112018005505T5 (zh) |
WO (1) | WO2019068012A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10895983B2 (en) * | 2018-11-06 | 2021-01-19 | Micron Technology, Inc. | Memory element profiling and operational adjustments |
US10915395B2 (en) * | 2018-11-16 | 2021-02-09 | Micron Technology, Inc. | Read retry with targeted auto read calibrate |
US11449245B2 (en) * | 2019-06-13 | 2022-09-20 | Western Digital Technologies, Inc. | Power target calibration for controlling drive-to-drive performance variations in solid state drives (SSDs) |
US11221911B2 (en) * | 2019-10-11 | 2022-01-11 | International Business Machines Corporation | Data recovery due to transient effects in NAND flash memories |
US11334492B2 (en) | 2019-10-24 | 2022-05-17 | International Business Machines Corporation | Calibrating pages of memory using partial page read operations |
US11056199B2 (en) | 2019-10-30 | 2021-07-06 | International Business Machines Corporation | Updating corrective read voltage offsets in non-volatile random access memory |
US11200956B2 (en) * | 2020-04-23 | 2021-12-14 | Micron Technology, Inc. | Read level calibration in memory devices using embedded servo cells |
KR20210155055A (ko) * | 2020-06-15 | 2021-12-22 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
JP2022012905A (ja) * | 2020-07-02 | 2022-01-17 | キオクシア株式会社 | メモリシステム及び半導体装置の特性情報の管理方法 |
US11693582B2 (en) | 2020-08-07 | 2023-07-04 | Intel Corporation | Automatic read calibration operations |
US11587627B2 (en) * | 2021-04-16 | 2023-02-21 | Micron Technology, Inc. | Determining voltage offsets for memory read operations |
US12050773B2 (en) * | 2021-08-12 | 2024-07-30 | Micron Technology, Inc. | Completion flag for memory operations |
US20230154539A1 (en) * | 2021-11-17 | 2023-05-18 | Intel Corporation | Method and apparatus for improving write uniformity in a memory device |
US11880300B2 (en) | 2022-03-01 | 2024-01-23 | International Business Machines Corporation | Generating multi-plane reads to read pages on planes of a storage die for a page to read |
US12105963B2 (en) | 2022-09-08 | 2024-10-01 | Sandisk Technologies Llc | NAND string read voltage adjustment |
US20240143229A1 (en) * | 2022-10-26 | 2024-05-02 | Sandisk Technologies Llc | Read schemes with adjustment for neighboring word line sanitization |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100590388B1 (ko) * | 2005-03-10 | 2006-06-19 | 주식회사 하이닉스반도체 | 멀티-플레인 타입 플래쉬 메모리 장치와, 그 프로그램 동작및 리드 동작 제어 방법 |
WO2011094454A2 (en) | 2010-01-27 | 2011-08-04 | Fusion-Io, Inc. | Apparatus, system, and method for determining a read voltage threshold for solid-state storage media |
US8576625B1 (en) | 2010-04-20 | 2013-11-05 | Marvell International Ltd. | Decoder parameter estimation using multiple memory reads |
US8370719B2 (en) | 2010-05-21 | 2013-02-05 | Intel Corporation | Persistent moving read reference |
US8861276B2 (en) * | 2011-06-21 | 2014-10-14 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, memory system comprising same, and method of operating same |
KR101939234B1 (ko) | 2012-07-23 | 2019-01-16 | 삼성전자 주식회사 | 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법 |
KR102053953B1 (ko) * | 2013-02-04 | 2019-12-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 |
JPWO2015037159A1 (ja) * | 2013-09-13 | 2017-03-02 | 株式会社東芝 | 半導体記憶装置及びメモリシステム |
KR102290974B1 (ko) * | 2014-11-07 | 2021-08-19 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법 |
US9576671B2 (en) | 2014-11-20 | 2017-02-21 | Western Digital Technologies, Inc. | Calibrating optimal read levels |
US9659664B1 (en) | 2015-12-15 | 2017-05-23 | International Business Machines Corporation | Dynamically adjusting read voltage in a NAND flash memory |
-
2017
- 2017-09-29 US US15/721,351 patent/US10268407B1/en active Active
-
2018
- 2018-09-28 CN CN201880056412.3A patent/CN111095418A/zh active Pending
- 2018-09-28 WO PCT/US2018/053590 patent/WO2019068012A1/en active Application Filing
- 2018-09-28 DE DE112018005505.1T patent/DE112018005505T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2019068012A1 (en) | 2019-04-04 |
DE112018005505T5 (de) | 2020-07-02 |
US20190102097A1 (en) | 2019-04-04 |
US10268407B1 (en) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10268407B1 (en) | Method and apparatus for specifying read voltage offsets for a read command | |
US10289313B2 (en) | Method and apparatus for improving sequential reading in NAND flash | |
US10186325B2 (en) | Method and apparatus for shielded read to reduce parasitic capacitive coupling | |
US10714186B2 (en) | Method and apparatus for dynamically determining start program voltages for a memory device | |
US9703494B1 (en) | Method and apparatus for protecting lower page data during programming in NAND flash | |
US10438659B2 (en) | Method and apparatus for multi-level setback read for three dimensional crosspoint memory | |
US11693582B2 (en) | Automatic read calibration operations | |
US10777271B2 (en) | Method and apparatus for adjusting demarcation voltages based on cycle count metrics | |
US9823880B1 (en) | Method and apparatus for initiating pre-read operation before completion of data load operation | |
US10725933B2 (en) | Method and apparatus for redirecting memory access commands sent to unusable memory partitions | |
US9852065B1 (en) | Method and apparatus for reducing data program completion overhead in NAND flash | |
US20220114115A1 (en) | Interleaving of heterogeneous memory targets | |
US20200313722A1 (en) | Transmit crosstalk cancellation system | |
US10049752B1 (en) | Method and apparatus for process corner compensation for memory state sensing | |
WO2017218170A1 (en) | Method and apparatus for programming wordlines of nand flash memory using alternating encoding schemes | |
US20230064007A1 (en) | Encoding additional states in a three-dimensional crosspoint memory architecture | |
US11276465B1 (en) | Device, system and method to float a decoder for deselected address lines in a three-dimensional crosspoint memory architecture | |
US11139027B1 (en) | Apparatus, system and method to reduce a read voltage across a memory cell and improve read sense margin | |
US11315644B2 (en) | String current reduction during multistrobe sensing to reduce read disturb | |
US20230154539A1 (en) | Method and apparatus for improving write uniformity in a memory device | |
US10229057B2 (en) | Method and apparatus for avoiding bus contention after initialization failure | |
US12119057B2 (en) | Read algorithms for three-dimensional crosspoint memory architectures |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240930 Address after: California, USA Applicant after: Intel NDTM (USA) LLC Country or region after: U.S.A. Address before: California, USA Applicant before: INTEL Corp. Country or region before: U.S.A. |