CN110023895B - 在多电平非易失性存储器中实现一致的读取时间 - Google Patents
在多电平非易失性存储器中实现一致的读取时间 Download PDFInfo
- Publication number
- CN110023895B CN110023895B CN201780074139.2A CN201780074139A CN110023895B CN 110023895 B CN110023895 B CN 110023895B CN 201780074139 A CN201780074139 A CN 201780074139A CN 110023895 B CN110023895 B CN 110023895B
- Authority
- CN
- China
- Prior art keywords
- read
- page
- level
- comparisons
- nvm cells
- 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
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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0656—Data buffering 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/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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
Abstract
系统、设备和方法可以提供从一组多电平非易失性存储器(NVM)单元读取下页、一个或多个中间页和最末页的技术,其中与下页相关联的下读取时间或与最末页相关联的最末读取时间中的一个或多个基本类似于与一个或多个中间页相关联的中间读取时间。
Description
相关申请的交叉引用
本申请要求享有2016年12月30日提交的美国非临时专利申请No.15/395,062的优先权的权益。
技术领域
实施例总体上涉及存储器结构。
背景技术
多电平NAND型闪存存储器(“NAND存储器”)可以被组织成多个单元,每个单元包含数据的多个位。在这样的情况下,每个单元的位数量可以取决于在编程操作期间能够实现多少不同电压电平。例如,为了支持每个单元两个位,可以调用四个电压电平,以便在一和零的四种可能组合(11,01,00,10)之间做出区分。由于针对被提及的位所执行的电压电平比较的数量的原因,每个位可能具有显著不同的读取时间。例如,在以上示例中,第一(例如,最高有效)位可能涉及两次比较以便读取该位,而对于第二(例如,最低有效)位可能涉及仅一次比较。因此,读取第二位所花费的时间可能是读取第一位所花费的时间的两倍。
该变化可能给包含多电平NAND存储器的器件(例如,固态驱动器/SSD)以及包含该器件的系统(例如,服务器、主机、数据中心)带来挑战。例如,SSD可以使用传输缓冲器来存储正在根据“垃圾收集”策略而重新定位的数据。设计传输缓冲器以支持最长读取时间可能会增大传输缓冲器的尺寸,这继而可能对性能和成本带来负面影响。类似地,可以设定诸如主机处理器内的多线程读取队列之类的服务器资源的尺寸以支持最长的读取时间,这可能进一步降低性能并提高成本。
附图说明
通过阅读以下说明书和所附权利要求并参考以下附图,实施例的各种优点将对本领域的技术人员变得显而易见,在附图中:
图1是根据实施例的三电平单元(TLC)架构和四电平单元(QLC)架构的示例的图示;
图2是根据实施例的操作芯片控制器设备的方法的示例的流程图;
图3和图4是根据实施例的QLC编码方案的示例的图示;以及
图5是根据实施例的计算系统的示例的框图。
具体实施方式
诸如NAND存储器的多电平非易失性存储器(NVM)可以被组织成多个单元,其中每个单元包含数据的多个位。为了在可能的位组合之间做出区分,可以使用各种电压电平。例如,可能根据以下表I对每个单元的两个位进行编程和读取。
位1 | 位2 | |
电平1(750mV) | 1 | 1 |
电平2(500mV) | 0 | 1 |
电平3(250mV) | 0 | 0 |
电平4(0mV) | 1 | 0 |
表I
在以上示例中,读取位1可能涉及(例如,经由电压比较器)判断存储器单元中的对应栅极是否在电平3(250mV)导通以及对应栅极是否在电平1(750mV)导通。相比而言,读取位2可能仅涉及判断存储器单元中的对应栅极是否在电平2(500mV)导通。本文提供的值仅为了方便论述,并且可以根据环境而变化。由于与位1相关联的多次判断,读取位1所花费的时间可能是读取位2所花费的时间的两倍。随着每个单元的位数增大(例如,达到三电平单元/TLC架构、四电平单元/QLC架构等),读取时间不一致可能会在垃圾收集、多线程操作等方面带来若干挑战。如将要更详细论述的,可以使用增强编码方案在多电平NVM结构中实现一致的读取时间。
现在转向图1,示出了TLC架构10和QLC架构12的示例。所示出的TLC架构10包括一组多电平NVM单元(单元0、单元1、……单元n),其中每个单元包括三位(位1、位2、位3)。可以逐页地对单元进行编程(例如,写入)和读取,并且每页对应于特定位。更具体地,下页(lower page)(LP)可以对应于位3,上页(upper page)(UP,例如,中间页)可以对应于位2,并且额外页(XP)可以对应于位1。此外,每个位可以被单独编程到特定电压电平,其中电压电平的总数(例如,在该情况下为八个)使得能够将所有可能的位组合彼此区分。
类似地,QLC架构12包括一组多电平NVM单元(单元0、单元1、……单元n),其中每个单元包括四个位(位1、位2、位3、位4)。可以逐页地对单元进行编程(例如,写入)和读取,并且每页对应于特定位。更具体而言,下页(LP)可以对应于位4,上页(UP,例如,中间页)可以对应于位3,额外页(XP,例如中间页)可以对应于位2,并且顶部页(TP)可以对应于位1。每个位可以被单独编程到特定电压电平,其中电压电平的总数(例如,在该情况下为十六个)使得能够将所有可能的位组合彼此区分。
多电平NVM单元可以用于NAND闪存存储器、三维(3D)NAND存储器阵列器件或其它存储器器件。非易失性存储器是不需要电力来维持介质所存储的数据的状态的存储介质。非易失性存储器的非限制性示例可以包括固态存储器(例如,平面或3D NAND闪存存储器或NOR闪存存储器)、3D交叉点存储器、使用硫属元素化物相变材料(例如,硫属元素化物玻璃)的存储器件、字节可寻址非易失性存储器器件、铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、聚合物存储器(例如,铁电聚合物存储器)、铁电晶体管随机存取存储器(Fe-TRAM)、奥氏存储器、纳米线存储器、电可擦可编程只读存储器(EEPROM)、其它各种类型的非易失性随机存取存储器(RAM)和磁存储存储器中的任一种或组合。在一些实施例中,3D交叉点存储器可以包括无晶体管可堆叠交叉点架构,其中存储器单元位于字线和位线的交叉点处,并且可被单独寻址,并且其中位存储基于体电阻的改变。在特定实施例中,具有非易失性存储器的存储器模块可以遵循由联合电子器件工程委员会(JEDEC)发布的一种或多种标准,例如JESD218、JESD219、JESD220-1、JESD223B、JESD223-1或其它适当标准(本文援引的JEDEC标准可在jedec.org得到)。
图2示出了操作芯片控制器设备的方法14。方法14可以在一个或多个模块中被实施为机器可读或计算机可读存储介质中、可配置逻辑中、使用电路技术的固定功能硬件逻辑器件中存储的一组逻辑指令,所述机器可读或计算机可读存储介质例如是随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等,所述可配置逻辑例如是可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD),所述电路技术例如是专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术、或其任何组合。
图示的处理框16提供了从一组多电平NVM单元读取下页,其中可以在框18从一组多电平NVM单元读取一个或多个中间页。框18可以包括读取上页(例如,在TLC或QLC架构中)或读取额外页(例如,在QLC架构中)。此外,框20可以从一组多电平NVM单元读取最末页,其中与下页相关联的下读取时间或与最末页相关联的最末读取时间中的一个或多个基本类似于与一个或多个中间页相关联的中间读取时间。一般可以通过增加下页读取时间并减小最末页读取时间以使得它们彼此接近来实现基本类似的读取时间。例如,可以修改单元编码方案,以使得读取下页包括在读取电平之间执行多次比较,并且基于多次比较来确定下页的位值。执行框16、18和20的次序可以根据环境(例如,所请求的数据位于NVM单元中的哪里)而改变。
更具体而言,图3示出了一种编码方案22,其中在三个电压电平——L2(例如,读取电平二/rL2)、L8(例如,读取电平八/rL8)和L14(例如,读取电平十四/rL14)下读取下页(LP,例如,位4)。可以在四个电压电平——L5(例如,读取电平五/rL5)、L10(读取电平十/rL10)、L12(例如,读取电平十二/rL12)和L15(例如,读取电平十五/rL15)下读取上页(UP,中间页,例如位3)。于是,在图示的示例中,在其仅涉及比中间读取时间少一次电压电平比较的程度上,下读取时间基本类似于中间读取时间。
类似地,可以在四个电压电平——L3(例如,读取电平三/rL3)、L7(读取电平七/rL7)、L9(例如,读取电平九/rL9)和L13(例如,读取电平十三/rL13)下读取额外页(XP,中间页,例如位2)。图示的方案22还在四个电压电平——L1(例如,读取电平一/rL1)、L4(读取电平四/rL4)、L6(例如,读取电平六/rL6)和L11(例如,读取电平十一/rL11)下读取顶部页(TP,例如位1)。
因此,方案22可以在接近相同量的时间内读取全部页。这样的方案使得能够针对不太严重的最坏情况(例如,如果最末页读取时间未减小,则为四次比较而非八次,代价是增加下页读取时间)设计其它系统部件。
图4示出了另一种编码方案,其中在四个电压电平——L1(例如,读取电平一/rL1)、L7(读取电平七/rL7)、L13(例如,读取电平十三/rL13)和L15(例如,读取电平十五/rL15)下读取下页(LP,例如位4)。可以在四个电压电平——L2(例如,读取电平二/rL2)、L6(读取电平十/rL6)、L8(例如,读取电平八/rL8)和L12(例如,读取电平十二/rL12)下读取上页(UP,中间页,例如位3)。于是,在下读取时间和中间读取时间都涉及相同次数的电压电平比较的程度上(例如,仅有的时间差可以归因于比较器和/或传输线物理性质),下读取时间基本等于中间读取时间。
类似地,还可以在四个电压电平——L4(例如,读取电平四/rL4)、L9(读取电平九/rL9)、L11(例如,读取电平十一/rL11)和L14(例如,读取电平十四/rL14)下读取额外页(XP,中间页,例如位2)。图示的方案22还在三个电压电平——L3(读取电平三/rL3)、L5(例如,读取电平五/rL5)和L10(例如,读取电平十/rL10)下读取顶部页(TP,例如位1)。
因此,方案24可以在接近相同量的时间内读取全部页。这样的方案使得能够针对不太严重的最坏情况(例如,如果最末页读取时间未减小,则为四次比较而非八次,代价是增加下页读取时间)设计其它系统部件。
现在转向图5,示出了一致性增强的计算系统26。在例示的示例中,固态驱动器(SSD)28包括器件控制器设备30,其具有在NAND 34中的不同位置之间传输数据期间用于存储垃圾收集数据的传输缓冲器32。图示的NAND 34包括一组多电平NVM单元36和芯片控制器设备38,该芯片控制器设备38包括衬底40(例如,硅、蓝宝石、砷化镓)和耦合到衬底40的逻辑单元42(例如,晶体管阵列和其它集成电路/IC部件)。可以包括固定功能硬件的逻辑单元42可以被配置为执行已经论述的方法14(图2)的一个或多个方面。
更具体而言,逻辑单元42可以从一组多电平NVM单元36读取下页、一个或多个中间页和/或最末页,其中与下页相关联的读取时间或与最末页相关联的最末读取时间中的一个或多个基本类似于与一个或多个中间页相关联的中间读取时间。因此,器件控制器设备30的垃圾收集活动可能需要传输缓冲器32中的较少空间。
通常,可以在对NAND单元的编程期间设置上述电平。在一个示例中,一次对一个位进行编程以保持SSD的类似于传统硬盘的行为。此外,可以在每次编程操作向NAND 34传递信息的全部四个位(对于QLC而言)。结果,在向NAND 34发出编程命令之前,在SSD 28内部可能需要增加的缓冲。对紧密分布内的每个电压电平进行精细编程的副作用也可能是SSD 28内的增加的缓冲(由于较长的编程时间/Tprog),这与本文描述的编码方案无关。由于每个电平所使用的紧密分布可能增加SSD 28内的缓冲,导致除传输缓冲器32之外的基于DRAM的数据缓冲,本文描述的技术可以“搭载”在同一方案上,只是DRAM缓冲器尺寸适度增大。SSD中使用的市面上可得的DRAM可以为几百兆字节,而增大的DRAM缓冲器尺寸可以约为几十MB(即,这对于采用DRAM并常常具有未使用的DRAM容量的数据中心SSD配置而言并非成本增加因素)。
所示出的系统26还包括具有主机处理器46(例如,中央处理单元/CPU)和输入/输出(IO)模块48的片上系统(SoC)44。主机处理器46可以包括多个内核50、读取队列52和与系统存储器56通信的集成存储器控制器54(IMC)。图示的IO模块48耦合到SSD 28以及其它系统部件,例如网络控制器58。在一个示例中,主机处理器46不知道芯片控制器设备38使用的编码方案。
如前所述,对于所有编码方案而言,平均读取时间可以相同。读取带宽根据读取时间的持续时间(Tread)而变化。运行于主机处理器46上的软件应用可以具有较少线程——例如,不超过可用内核50的数量——以使线程上下文切换的开销最小化。本文描述的技术可以使得能够在主机层级利用较少线程为读取操作实现主机接口带宽饱和,从而在应用层级获得好得多的性能。此外,因为数据中心应用可以设定最慢Tread的资源的尺寸,所以本文描述的技术可以减少所需的主机资源,因为最坏情况的Tread可以是传统编码方案的一半。
附加注释和示例:
示例1可以包括一种固态驱动器系统,包括:包括传输缓冲器的器件控制器设备、通信地耦合到器件控制器设备的非易失性存储器(NVM),所述NVM包括一组多电平NVM单元和芯片控制器,所述芯片控制器包括衬底和逻辑单元,所述逻辑单元实施在固定功能硬件中并耦合到衬底,所述逻辑单元从所述一组多电平NVM单元读取下页,从所述一组多电平NVM单元读取一个或多个中间页,并从所述一组多电平NVM单元读取最末页,其中与下页相关联的下读取时间或与最末页相关联的最末读取时间中的一个或多个基本类似于与一个或多个中间页相关联的中间读取时间。
示例2可以包括示例1所述的系统,其中,所述逻辑单元用于在读取电平之间执行多次比较,并基于多次比较来确定下页的位值以读取下页。
示例3可以包括示例2所述的系统,其中,所述多次比较要在三个读取电平之间执行。
示例4可以包括示例2所述的系统,其中,所述多次比较要在四个读取电平之间执行。
示例5可以包括示例1到4的任一项所述的系统,其中,所述逻辑单元用于读取上页以读取一个或多个中间页,并且其中中间读取时间与上页相关联。
示例6可以包括示例1到4的任一项所述的系统,其中,所述逻辑单元用于读取额外页以读取一个或多个中间页,并且其中中间读取时间与额外页相关联。
示例7可以包括示例1所述的系统,其中,所述一组多电平NVM单元包括四电平单元架构。
示例8可以包括示例1所述的系统,其中,所述一组多电平NVM单元包括三电平单元架构。
示例9可以包括示例1所述的系统,其中,器件控制器用于将来自下页、一个或多个中间页和最末页的垃圾收集数据存储到传输缓冲器,并向所述一组多电平NVM单元中的不同位置写入垃圾收集数据。
示例10可以包括一种芯片控制器设备,包括:衬底和逻辑单元,所述逻辑单元实施在固定功能硬件中并耦合到衬底,所述逻辑单元从一组多电平非易失性存储器(NVM)单元读取下页,从所述一组多电平NVM单元读取一个或多个中间页,并从所述一组多电平NVM单元读取最末页,其中与下页相关联的下读取时间或与最末页相关联的最末读取时间中的一个或多个基本类似于与一个或多个中间页相关联的中间读取时间。
示例11可以包括示例10所述的设备,其中,所述逻辑单元用于在读取电平之间执行多次比较,并基于多次比较来确定下页的位值以读取下页。
示例12可以包括示例11所述的设备,其中,所述多次比较要在三个读取电平之间执行。
示例13可以包括示例11所述的设备,其中,所述多次比较要在四个读取电平之间执行。
示例14可以包括示例10到13的任一项所述的设备,其中,所述逻辑单元用于读取上页以读取一个或多个中间页,并且其中中间读取时间与上页相关联。
示例15可以包括示例10到13的任一项所述的设备,其中,所述逻辑单元用于读取额外页以读取一个或多个中间页,并且其中中间读取时间与额外页相关联。
示例16可以包括示例10所述的设备,其中,所述一组多电平NVM单元包括四电平单元架构。
示例17可以包括示例10所述的设备,其中,所述一组多电平NVM单元包括三电平单元架构。
示例18可以包括一种操作芯片控制器设备的方法,包括:从一组多电平非易失性存储器(NVM)单元读取下页,从所述一组多电平NVM单元读取一个或多个中间页,以及从所述一组多电平NVM单元读取最末页,其中与下页相关联的下读取时间或与最末页相关联的最末读取时间中的一个或多个基本类似于与一个或多个中间页相关联的中间读取时间。
示例19可以包括示例18所述的方法,其中,读取下页包括在读取电平之间执行多次比较,以及基于多次比较来确定下页的位值。
示例20可以包括示例19所述的方法,其中,执行多次比较包括在三个读取电平之间执行比较。
示例21可以包括示例19所述的方法,其中,执行多次比较包括在四个读取电平之间执行比较。
示例22可以包括示例18到21的任一项所述的方法,其中,读取一个或多个中间页包括读取上页,其中,中间读取时间与上页相关联。
示例23可以包括示例18到21的任一项所述的方法,其中,读取一个或多个中间页包括读取额外页,其中,中间读取时间与额外页相关联。
示例24可以包括示例18所述的方法,其中,所述一组多电平NVM单元包括四电平单元架构。
示例25可以包括示例18所述的方法,其中,所述一组多电平NVM单元包括三电平单元架构。
示例26可以包括一种芯片控制器设备,包括:用于从一组多电平非易失性存储器(NVM)单元读取下页的装置,用于从所述一组多电平NVM单元读取一个或多个中间页的装置,以及用于从所述一组多电平NVM单元读取最末页的装置,其中与下页相关联的下读取时间或与最末页相关联的最末读取时间中的一个或多个基本类似于与一个或多个中间页相关联的中间读取时间。
示例27可以包括示例26所述的设备,其中,用于读取下页的装置包括用于在读取电平之间执行多次比较的装置,以及用于基于多次比较来确定下页的位值的装置。
示例28可以包括示例27所述的设备,其中,用于执行多次比较的装置包括用于在三个读取电平之间执行比较的装置。
示例29可以包括示例27所述的设备,其中,用于执行多次比较的装置包括用于在四个读取电平之间执行比较的装置。
示例30可以包括示例26到29的任一项所述的设备,其中,用于读取一个或多个中间页的装置包括用于读取上页的装置,其中,中间读取时间与上页相关联。
示例31可以包括示例26到29的任一项所述的设备,其中,用于读取一个或多个中间页的装置包括用于读取额外页的装置,其中,中间读取时间要与额外页相关联。
示例32可以包括示例26所述的设备,其中,所述一组多电平NVM单元要包括四电平单元架构。
示例33可以包括示例26所述的设备,其中,所述一组多电平NVM单元要包括三电平单元架构。
本文描述的技术因此可以将目标读取时间映射到每单元多个位中的可用的电压电平分区,使得不论每单元有多少位,读取单元中的位都花费基本相同时间量。该技术还可以在NAND存储器中生成针对SSD使用进行优化的特征。例如,NAND存储器可以具有提供IO操作的更好的一致性和均匀性的编码方案。此外,减小比较电路的尺寸可以实现显著的空间节省,因为在三维(3D)架构中能够将比较电路定位在NAND单元阵列下方(例如,阵列下方的CMOS/CUA)。此外,由于每秒写入IO操作(IOPS)的均匀性可以受到垃圾收集收回SSD内部的自由空间的速率的支配,所以本文描述的技术可以利用更低成本提供更好的写入均匀性。实际上,具有一致的读取时间可以帮助设定操作系统(OS)堆栈间的资源的尺寸,对于数据更新频繁且较不可预测的数据中心/企业使用情形而言这可能尤其有益。
实施例适用于所有类型的半导体集成电路(“IC”)芯片。这些IC芯片的示例包括但不限于处理器、控制器、芯片组部件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等。此外,在一些附图中,利用线条代表信号导体线。一些线条可能不同以指示更多构成的信号路径,可能具有数字标记以指示若干构成信号路径,和/或可能在一个或多个末端具有箭头以指示基本信息流方向。不过,不应以限制性方式理解这一点。相反,可以结合一个或多个示例性实施例使用这样添加的细节以方便更容易地理解电路。任何表达的信号线,无论是否具有附加信息,都可以实际包括一个或多个信号,信号可以在多个方向上行进并可以利用任何适当类型的信号方案来实施,所述信号方案例如是利用差分对、光纤线路和/或单端线路实施的数字或模拟线路。
已经给出了示例性尺寸/模型/值/范围,尽管实施例不限于它们。随着制造技术(例如,光刻)随着时间推移而成熟,预计可以制造更小尺寸的器件。此外,在附图中可以示出或不示出通往IC芯片和其它部件的公知电源/地连接,以使例示和论述简单,并且不使实施例的某些方面难以理解。此外,可以按照方框图的形式示出布置,以免使实施例难以理解,并且还考虑到如下事实:相对于这种方框图布置的实施方式的具体细节高度依赖于要实施该实施例的平台,即,这样的具体细节应当在本领域技术人员的视野之内。在阐述具体细节(例如,电路)以便描述示例性实施例的情况下,对于本领域的技术人员应当显而易见的是,可以在有或没有这些具体细节、或者在存在这些具体细节的变化的情况下实践实施例。因此要将描述视为示例性的而非限制性的。
本文可以使用术语“耦合”表示被提及的部件之间的任何类型的直接或间接关系,并可以适用于电气、机械、流体、光学、电磁、机电或其它连接。此外,在本文中可以使用术语“第一”、“第二”等仅为了方便论述,并且除非另外指明,不承载任何特定的时间或时域意义。
本领域的技术人员从前面的描述将会理解,可以采用多种形式来实施各实施例的宽泛技术。因此,尽管已经结合其特定示例描述了实施例,但实施例的真正范围不应当受此限制,因为在研究附图、说明书和如下权利要求时,其它修改对于技术人员将变得显而易见。
Claims (22)
1.一种固态驱动器系统,包括:
包括传输缓冲器的器件控制器设备,以及
通信地耦合到所述器件控制器设备的非易失性存储器(NVM),所述NVM包括一组多电平NVM单元和芯片控制器设备,所述芯片控制器设备包括衬底和逻辑单元,所述逻辑单元实施于固定功能硬件中并耦合到所述衬底,所述逻辑单元用于:
在读取电平之间执行多次比较,并且基于所述多次比较确定下页的位值,以从所述一组多电平NVM单元读取所述下页,
从所述一组多电平NVM单元读取一个或多个中间页,并且
从所述一组多电平NVM单元读取最末页,其中,与所述下页相关联的下读取时间或与所述最末页相关联的最末读取时间中的一个或多个基本类似于与所述一个或多个中间页相关联的中间读取时间。
2.根据权利要求1所述的系统,其中,所述多次比较在三个读取电平之间执行。
3.根据权利要求1所述的系统,其中,所述多次比较在四个读取电平之间执行。
4.根据权利要求1到3的任一项所述的系统,其中,所述逻辑单元用于读取上页以读取所述一个或多个中间页,并且其中,所述中间读取时间与所述上页相关联。
5.根据权利要求1到3的任一项所述的系统,其中,所述逻辑单元用于读取额外页以读取所述一个或多个中间页,并且其中,所述中间读取时间与所述额外页相关联。
6.根据权利要求1所述的系统,其中,所述一组多电平NVM单元包括四电平单元架构。
7.根据权利要求1所述的系统,其中,所述一组多电平NVM单元包括三电平单元架构。
8.根据权利要求1所述的系统,其中,所述器件控制器用于将来自所述下页、所述一个或多个中间页和所述最末页的垃圾收集数据存储到所述传输缓冲器,并向所述一组多电平NVM单元中的不同位置写入所述垃圾收集数据。
9.一种芯片控制器设备,包括:
衬底;以及
实施于固定功能硬件中并耦合到所述衬底的逻辑单元,所述逻辑单元用于:
在读取电平之间执行多次比较,并且基于所述多次比较确定下页的位值,以从一组多电平非易失性存储器(NVM)单元读取所述下页,
从所述一组多电平NVM单元读取一个或多个中间页,并且
从所述一组多电平NVM单元读取最末页,其中,与所述下页相关联的下读取时间或与所述最末页相关联的最末读取时间中的一个或多个基本类似于与所述一个或多个中间页相关联的中间读取时间。
10.根据权利要求9所述的设备,其中,所述多次比较在三个读取电平之间执行。
11.根据权利要求9所述的设备,其中,所述多次比较在四个读取电平之间执行。
12.根据权利要求9到11的任一项所述的设备,其中,所述逻辑单元用于读取上页以读取所述一个或多个中间页,并且其中,所述中间读取时间与所述上页相关联。
13.根据权利要求9到11的任一项所述的设备,其中,所述逻辑单元用于读取额外页以读取所述一个或多个中间页,并且其中,所述中间读取时间与所述额外页相关联。
14.根据权利要求9所述的设备,其中,所述一组多电平NVM单元包括四电平单元架构。
15.根据权利要求9所述的设备,其中,所述一组多电平NVM单元包括三电平单元架构。
16.一种操作芯片控制器设备的方法,包括:
在读取电平之间执行多次比较,并且基于所述多次比较确定下页的位值,以从一组多电平非易失性存储器(NVM)单元读取所述下页;
从所述一组多电平NVM单元读取一个或多个中间页;以及
从所述一组多电平NVM单元读取最末页,其中,与所述下页相关联的下读取时间或与所述最末页相关联的最末读取时间中的一个或多个基本类似于与所述一个或多个中间页相关联的中间读取时间。
17.根据权利要求16所述的方法,其中,执行所述多次比较包括在三个读取电平之间执行比较。
18.根据权利要求16所述的方法,其中,执行所述多次比较包括在四个读取电平之间执行比较。
19.根据权利要求16到18的任一项所述的方法,其中,读取所述一个或多个中间页包括读取上页,其中,所述中间读取时间与所述上页相关联。
20.根据权利要求16到18的任一项所述的方法,其中,读取所述一个或多个中间页包括读取额外页,其中,所述中间读取时间与所述额外页相关联。
21.根据权利要求16所述的方法,其中,所述一组多电平NVM单元包括四电平单元架构。
22.根据权利要求16所述的方法,其中,所述一组多电平NVM单元包括三电平单元架构。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/395,062 US9811269B1 (en) | 2016-12-30 | 2016-12-30 | Achieving consistent read times in multi-level non-volatile memory |
US15/395,062 | 2016-12-30 | ||
PCT/US2017/061996 WO2018125418A1 (en) | 2016-12-30 | 2017-11-16 | Achieving consistent read times in multi-level non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110023895A CN110023895A (zh) | 2019-07-16 |
CN110023895B true CN110023895B (zh) | 2023-07-25 |
Family
ID=60189481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780074139.2A Active CN110023895B (zh) | 2016-12-30 | 2017-11-16 | 在多电平非易失性存储器中实现一致的读取时间 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9811269B1 (zh) |
CN (1) | CN110023895B (zh) |
DE (1) | DE112017006698T5 (zh) |
WO (1) | WO2018125418A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811269B1 (en) * | 2016-12-30 | 2017-11-07 | Intel Corporation | Achieving consistent read times in multi-level non-volatile memory |
US10229735B1 (en) | 2017-12-22 | 2019-03-12 | Intel Corporation | Block management for dynamic single-level cell buffers in storage devices |
US10909040B2 (en) | 2018-04-19 | 2021-02-02 | Intel Corporation | Adaptive calibration of nonvolatile memory channel based on platform power management state |
KR20210024269A (ko) | 2019-08-21 | 2021-03-05 | 삼성전자주식회사 | 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103730162A (zh) * | 2012-10-15 | 2014-04-16 | Lsi公司 | 用于多级单元的非易失性存储器的加速软读取 |
CN104937667A (zh) * | 2012-12-19 | 2015-09-23 | 西部数据技术公司 | 对数似然比和针对数据存储系统的集中的对数似然比生成 |
CN105009094A (zh) * | 2013-03-05 | 2015-10-28 | 西部数据技术公司 | 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统 |
CN105097028A (zh) * | 2014-05-13 | 2015-11-25 | 三星电子株式会社 | 包括非易失性存储器件的存储装置和该器件的读取方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447078B2 (en) * | 2005-04-01 | 2008-11-04 | Sandisk Corporation | Method for non-volatile memory with background data latch caching during read operations |
US7966550B2 (en) | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Soft bit data transmission for error correction control in non-volatile memory |
US8254167B2 (en) * | 2010-05-17 | 2012-08-28 | Seagate Technologies Llc | Joint encoding of logical pages in multi-page memory architecture |
US8472280B2 (en) | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
US9588883B2 (en) * | 2011-09-23 | 2017-03-07 | Conversant Intellectual Property Management Inc. | Flash memory system |
US9036416B2 (en) | 2011-11-18 | 2015-05-19 | Sandisk Technologies Inc. | Non-volatile storage with broken word line screen and data recovery |
US8887011B2 (en) * | 2012-09-13 | 2014-11-11 | Sandisk Technologies Inc. | Erased page confirmation in multilevel memory |
US9063879B2 (en) | 2012-12-13 | 2015-06-23 | Sandisk Technologies Inc. | Inspection of non-volatile memory for disturb effects |
US9093170B2 (en) * | 2013-03-01 | 2015-07-28 | Intel Corporation | Multi-level cell (MLC) non-volatile memory data reading method and apparatus |
US9529668B2 (en) * | 2014-09-26 | 2016-12-27 | Intel Corporation | Method and system for using NAND page buffers to improve the transfer buffer utilization of a solid state drive |
US20160098197A1 (en) | 2014-10-06 | 2016-04-07 | SanDisk Technologies, Inc. | Nonvolatile memory and method with state encoding and page-by-page programming yielding invariant read points |
US9811269B1 (en) * | 2016-12-30 | 2017-11-07 | Intel Corporation | Achieving consistent read times in multi-level non-volatile memory |
-
2016
- 2016-12-30 US US15/395,062 patent/US9811269B1/en active Active
-
2017
- 2017-11-03 US US15/803,107 patent/US10254977B2/en active Active
- 2017-11-16 CN CN201780074139.2A patent/CN110023895B/zh active Active
- 2017-11-16 WO PCT/US2017/061996 patent/WO2018125418A1/en active Application Filing
- 2017-11-16 DE DE112017006698.0T patent/DE112017006698T5/de active Pending
-
2019
- 2019-04-05 US US16/376,283 patent/US10871903B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103730162A (zh) * | 2012-10-15 | 2014-04-16 | Lsi公司 | 用于多级单元的非易失性存储器的加速软读取 |
CN104937667A (zh) * | 2012-12-19 | 2015-09-23 | 西部数据技术公司 | 对数似然比和针对数据存储系统的集中的对数似然比生成 |
CN105009094A (zh) * | 2013-03-05 | 2015-10-28 | 西部数据技术公司 | 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统 |
CN105097028A (zh) * | 2014-05-13 | 2015-11-25 | 三星电子株式会社 | 包括非易失性存储器件的存储装置和该器件的读取方法 |
Non-Patent Citations (2)
Title |
---|
基于非易失性存储器的存储系统技术研究进展;舒继武等;《科技导报》;20160728(第14期);全文 * |
非易失性存储器主流简介;林荣智;《商业故事》;20160805(第22期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20190332277A1 (en) | 2019-10-31 |
US10871903B2 (en) | 2020-12-22 |
US9811269B1 (en) | 2017-11-07 |
WO2018125418A1 (en) | 2018-07-05 |
US20180188978A1 (en) | 2018-07-05 |
DE112017006698T5 (de) | 2019-09-05 |
US10254977B2 (en) | 2019-04-09 |
CN110023895A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579537B2 (en) | Memory having a static cache and a dynamic cache | |
CN110023895B (zh) | 在多电平非易失性存储器中实现一致的读取时间 | |
US20160357456A1 (en) | Memory device that divides write data into a plurality of data portions for data writing | |
US9411529B2 (en) | Mapping between program states and data patterns | |
US20220129163A1 (en) | Soft Data Compression For Non-Volatile Memory | |
CN115836277A (zh) | 检查存储器子系统中的多个存储器裸片的状态 | |
CN115699180A (zh) | 多平面存储器装置中的独立并行平面存取 | |
KR20220044597A (ko) | 순차적 slc 판독 최적화 | |
CN115543866A (zh) | 部分超级块存储器管理 | |
CN114724611A (zh) | 存储器子系统中的存储器装置的双交错编程 | |
CN115437973A (zh) | 多平面存储器装置中的并发页高速缓存资源存取 | |
CN111028878B (zh) | 一种闪存写入方法、闪存芯片及非易失性的存储设备 | |
US10956064B2 (en) | Adjusting code rates to mitigate cross-temperature effects in a non-volatile memory (NVM) | |
US20170062045A1 (en) | Multi-level flash storage device with minimal read latency | |
US11757468B2 (en) | Soft data compression for non-volatile memory | |
CN115295047A (zh) | 存储器子系统中的间歇式动态开始电压和编程验证采样 | |
US9355730B2 (en) | Mapping between program states and data patterns | |
CN113519027B (zh) | 用于存储器系统的功率管理 | |
US11935585B2 (en) | Pseudo multi-plane read methods and apparatus for non-volatile memory devices | |
US11756612B2 (en) | All levels dynamic start voltage programming of a memory device in a memory sub-system | |
US20240231693A9 (en) | Write operations on a number of planes | |
US20240097681A1 (en) | Ppa improvement for voltage mode driver and on-die termination (odt) | |
US20220357885A1 (en) | Encoding and decoding data bits stored in a comibination of multiple memory cells | |
CN113490919A (zh) | 用于存储器系统的功率管理 | |
CN115938416A (zh) | 多平面存储器装置中并行平面存取期间的余量管理 |
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 |