本发明涉及存储器装置,具体地说,涉及通过刷新预测的经提高刷新传输效率。
背景技术:
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。
易失性存储器需要电力来维持其数据,且包含随机存取存储器(ram)、动态随机存取存储器(dram)或同步动态随机存取存储器(sdram)等等。
非易失性存储器可在不被供电时保持所存储的数据,且包含快闪存储器、只读存储器(rom)、电可擦除可编程rom(eeprom)、静态ram(sram)、可擦除可编程rom(eprom)、电阻可变存储器,例如相变随机存取存储器(pcram)、电阻式随机存取存储器(rram)、磁阻式随机存取存储器(mram)等等。
快闪存储器用作用于广泛范围的电子应用的非易失性存储器。快闪存储器装置通常包含允许高存储器密度、高可靠性和低功耗的单晶体管浮动栅极或电荷阱存储器单元的一或多个群组。
两个常见类型的快闪存储器阵列架构包含nand和nor架构,以每一者的基本存储器单元配置所布置的逻辑形式来命名。存储器阵列的存储器单元通常布置成矩阵。在实例中,阵列的一行中的每个浮动栅极存储器单元的栅极耦合到存取线(例如,字线)。在nor架构中,阵列的一列中的每个存储器单元的漏极耦合到数据线(例如,位线)。在nand架构中,阵列的一串中的每个存储器单元的漏极以源极到漏极方式一起串联耦合在源极线与位线之间。
nor和nand架构半导体存储器阵列均通过解码器来存取,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活特定存储器单元。在nor架构半导体存储器阵列中,一旦被激活,选定存储器单元便使其数据值置于位线上,从而依据特定单元经编程的状态而使不同电流流动。在nand架构半导体存储器阵列中,将高偏置电压施加到漏极侧选择栅极(sgd)线。以指定传递电压(例如,vpass)驱动耦合到每一群组的未选定存储器单元的栅极的字线,以使每一群组的未选定存储器单元作为传递晶体管操作(例如,以不受其所存储的数据值限制的方式传递电流)。电流随后从源极线通过每个串联耦合的群组流动到位线,仅受每个群组中的选定存储器单元限制,从而使选定存储器单元的当前经编码数据值置于位线上。
nor或nand架构半导体存储器阵列中的每个快闪存储器单元可个别地或共同地编程到一个或数个经编程状态。例如,单层级单元(slc)可表示两个经编程状态(例如,1或0)中的一个,表示一个数据位。
然而,快闪存储器单元也可表示超过两个经编程状态中的一个,从而允许制造较高密度的存储器而不增加存储器单元的数目,因为每个单元可表示超过一个二进制数字(例如,超过一个位)。此类单元可称为多状态存储器单元、多数位单元或多层级单元(multi-levelcell,mlc)。在某些实例中,mlc可以指每单元可存储两个数据位(例如,四个经编程状态中的一个)的存储器单元,三层级单元(triple-levelcell,tlc)可以指每单元可存储三个数据位(例如,八个经编程状态中的一个)的存储器单元,且四层级单元(quad-levelcell,qlc)可每单元存储四个数据位。mlc在本文中以其较广泛情形使用,可以指每单元可存储多于一个数据位(即,可表示超过两个经编程状态)的任何存储器单元。
传统的存储器阵列是布置于半导体衬底的表面上的二维(2d)结构。为了针对给定面积增加存储器容量且减小成本,已减小单独存储器单元的大小。然而,存在单独存储器单元的大小减少的技术限制,且因此存在2d存储器阵列的存储器密度的技术限制。作为响应,正开发三维(3d)存储器结构,例如3dnand架构半导体存储器装置,以进一步增加存储器密度且降低存储器成本。
这些3dnand装置经常包含存储单元串,其串联(例如,漏极到源极)耦合于接近源极的一或多个源极侧选择栅极(sgs)与接近位线的一或多个漏极侧选择栅极(sgd)之间。在实例中,sgs或sgd可包含一或多个场效应晶体管(fet)或金属-氧化物半导体(mos)结构装置等。在一些实例中,所述串将竖直延伸通过含有相应字线的多个竖直隔开的层次。半导体结构(例如,多晶硅结构)可邻近于存储单元串而延伸以形成用于所述串的存储单元的通道。在竖直串的实例中,多晶硅结构可呈竖直延伸支柱的形式。在一些实例中,串可以“折叠”,且因此相对于u形支柱而布置。在其它实例中,多个竖直结构可堆叠于彼此之上以形成存储单元串的堆叠阵列。
存储器阵列或装置可组合在一起以形成存储器系统的存储容量,例如固态驱动器(ssd)、通用快闪存储(ufstm)装置、多媒体卡(mmc)固态存储装置、嵌入式mmc装置(emmctm)等。ssd尤其可用作计算机的主要存储装置,关于例如性能、大小、重量、坚固性、工作温度范围和功率消耗具有优于带有移动部件的传统硬盘驱动器的优点。例如,ssd可具有减少的寻道时间、等待时间或与磁盘驱动器相关联的其它延迟(例如,机电等)。ssd使用例如快闪存储器单元等非易失性存储器单元来避免内部电池电源要求,由此允许驱动器更为多功能的且紧凑的。
ssd可包含数个存储器装置,包含数个裸片或逻辑单元(例如,逻辑单元数字或lun),且可包含执行操作存储器装置或与外部系统介接所需的逻辑功能的一或多个处理器或其它控制器。这些ssd可包含一或多个快闪存储器裸片,这些裸片上包含数个存储器阵列和外围电路系统。快闪存储器阵列可包含组织成数个物理页的数个存储器单元块。在许多实例中,ssd还将包含dram或sram(或其它形式的存储器裸片或其它存储器结构)。ssd可与存储器操作结合从主机接收命令,所述存储器操作例如在存储器装置与主机之间传输数据(例如,用户数据和相关联的完整性数据,例如错误数据和地址数据等)的读取或写入操作,或者从存储器装置擦除数据的擦除操作。
技术实现要素:
根据本申请的一方面,提供一种用于通过刷新预测的经提高刷新传输效率的方法。所述方法包括:在缓冲区中存储来自用户数据写入的用户数据,存储在所述缓冲区中的所述用户数据的大小小于经受所述写入的存储装置的写入宽度,从而产生缓冲区可用空间;预测刷新触发;响应于所述刷新触发的预测,封送额外数据,所述额外数据具有小于或等于所述缓冲区可用空间的大小;将所述额外数据存储到所述缓冲区可用空间,所述存储包含针对所述额外数据将标签维持到所述缓冲区中;以及响应于所述刷新触发,将所述缓冲区的内容写入到所述存储装置。
附图说明
在不一定按比例绘制的图式中,相似标号可以在不同视图中描述类似组件。具有不同字母后缀的相似标号可表示类似组件的不同例子。图式借助于实例且非限制性地总体上说明本文件中所论述的各种实施例。
图1示出包含存储器装置的环境的实例。
图2示出在实施通过刷新预测的经提高刷新传输效率的系统中的数据流的实例。
图3示出在通过刷新预测执行增强的刷新传输时组件之间的消息序列的实例。
图4示出用于通过刷新预测的经提高刷新传输效率的方法的流程图。
图5是示出可在上面实施一或多个实施例的机器的实例的框图。
具体实施方式
写入到诸如快闪装置的非易失性存储器装置的数据通常在写入到基础存储阵列之前进行缓冲(例如,在写入缓冲区或写入缓存中)。缓冲通常能够实现更快的到存储器装置的写入传输,并且能够实现数据的任何特殊处理,例如分辨存储单元之间(例如,虚拟块到物理块)的逻辑到物理(l2p)关系。
通常在具有定义大小的区段中实现数据到存储阵列的写入。实例增量可包含32位、64位、128位等。可用于写入的具体增量一般由基础硬件定义。因此,32位增量可对应于从缓冲区或另一装置到阵列元件的三十二个连接器。增量的大小通常是阵列开发者为平衡速度或复杂性的粒度而做出的设计决策。缓冲区的大小可对应于存储阵列写入增量的某一倍数。
一般来说,响应于触发,将数据从缓冲区刷新到阵列。实例触发包含全缓冲、老化因素或另一已确立条件或状态,响应于所述触发,将刷新缓冲区(其实例在下文参考图1进一步论述)。老化因素限定可以驻存在缓冲区中的最长周期数据。老化因素是使缓冲区在数据等于存储阵列写入增量之前刷新的触发的实例。当数据以完全写入增量写入到阵列时,经缓冲数据一般用零或类似填充材料填补,以便在写入到阵列之前与写入增量相等。
在写入大块数据(例如,多兆字节媒体文件)时,填补程序不会引发很多低效,因为在数千个当中大体上只填补了一个写入增量。写入增量越小,低效存在得越少,即使相对较大的写入增量涉及真实数据(例如,打算写入的数据)与填补数据的较大比率也如此。
然而,当写入小块真实数据时,真实数据与填补数据的比率下降,并且可能会导致填补数据产生大量存储消耗。随着不断增加的在短周期内清醒、向存储装置写入较小状态更新并恢复低功率(例如,睡眠、休眠等)状态的装置的出现,这一情形越来越常见。此类装置包含移动电话、平板电脑、物联网(iot)设备和传感器等等。当在存储阵列中考虑快闪装置时,不仅填补数据会消耗大量存储,而且写入无关的填补数据也会导致装置磨损增加、存储阵列的工作寿命缩短。
为了解决这些问题,填补数据中的一些或全部可以替换为有用数据。一般来说,存储器装置将特定维护(例如,管理)数据写入到存储阵列。此类维护数据可包含l2p表部分、元数据、统计数据(例如,块的写错误统计数据)、坏块表等。在一些传统的布置中,此维护数据被写入到保留用于维护数据或以其它方式与用户数据分离的存储阵列的区段。然而,此处,维护数据代替填补数据,使得到存储阵列的写入更少且基础存储的使用更高效。
响应于刷新触发的预测,维护数据经封送(例如,收集、检索、汇编)以替换用于写入的填补数据。刷新触发预测试图确定在刷新触发之前的其中不会接收到来自主机的额外用户数据的窗口。因为这是存储器装置的大体空闲周期,所以使用此时间来封送额外数据不影响用户体验(例如,应该不会被主机注意到)。如果刷新触发预测不正确——例如,主机在刷新触发实际发生之前写入更多用户数据,那么添加到缓冲区中的额外数据替换为额外用户数据。如果缓冲区中还剩余可用空间,那么封送额外数据的过程可以再次开始,以便用有用数据而不是填补数据来填充剩余的可用空间。
维护数据可以在非上文所描述的写入缓冲区的一或多个单独缓冲区中累积。经封送的用于满足填补大小的维护数据来自这些单独缓冲区。还可使用直接组件查询来封送维护数据。在实例中,存储器控制器更新查找数据结构以定位维护数据。这是有用的,因为维护数据可分布在整个存储阵列中或与用户数据掺混。
一旦刷新触发实际发生,就可以进行缓冲区内容(例如,用户数据和额外数据)的写入,同时不具有影响到基础存储装置的写入的额外处理时延。在下文提供额外细节和实例。
图1示出包含经配置以通过通信接口通信的主机装置105和存储器装置110的环境100的实例。主机装置105或存储器装置110可包含在多种产品150中,例如物联网(iot)装置(例如,冰箱或其它电器、传感器、电动机或致动器、移动通信装置、汽车、无人驾驶飞机等),以支持产品150的处理、通信或控制。
存储器装置110包含存储器控制器115和存储器阵列120,包含例如数个单独存储器裸片(例如,三维(3d)nand裸片的堆叠)。在3d架构半导体存储器技术中,堆叠竖直结构,从而增加层次、物理页的数目,并因此增大存储器装置(例如,存储装置)的密度。在实例中,存储器装置110可以是主机装置105的离散存储器或存储装置组件。在其它实例中,存储器装置110可以是与主机装置105的一或多个其它组件堆叠或以其它方式包含的集成电路(例如,芯片上系统(soc)等等)的部分。在这些实例中,存储器装置110通过诸如总线的互连链路111与主机装置105的组件通信。因此,如本文所描述,主机或主机装置105的操作不同于存储器装置110的操作,即使在存储器装置110集成到主机装置105中时也如此。
可使用一或多个通信接口(例如,互连链路111)在存储器装置110与主机装置105的一或多个其它组件之间传输数据,例如串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、通用快闪存储(ufs)接口、emmctm接口,或一或多个其它连接器或接口。主机装置105可包含主机系统、电子装置、处理器、存储卡读卡器、或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可以是具有参考图5的机器500所论述的组件的某一部分或全部的机器。
存储器控制器115可从主机105接收指令,并且可与存储器阵列120通信,以便将数据传输到存储器阵列120的存储器单元、平面、子块、块或页中的一或多个(例如,写入或擦除)或传输来自前述各项的数据(例如,读取)。存储器控制器115尤其可包含电路系统或固件,包含一或多个组件或集成电路。例如,存储器控制器115可包含一或多个存储器控制单元、电路或组件,它们经配置以控制跨越存储器阵列120的存取并提供主机105与存储器装置110之间的转换层。尽管存储器控制器115在此处示出为存储器装置110封装的部分,但是还可以采用其它配置,例如存储器控制器115是主机105的组件(例如,作为主机105的芯片上系统上与存储器服务110分离的离散封装),或甚至通过主机105的中央处理单元(cpu)实施。
存储器管理器125尤其可包含电路系统或固件,例如与各种存储器管理功能相关联的若干个组件或集成电路。出于本描述的目的,实例存储器操作和管理功能将在nand存储器的上下文中加以描述。所属领域的普通技术人员将认识到,其它形式的非易失性存储器可具有类似存储器操作或管理功能。此类nand管理功能包含耗损均衡(例如,垃圾收集或回收)、错误检测或校正、块注销(blockretirement)或一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等等),或产生阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,用于实现各种存储器管理功能)。
存储器管理器125可包含经配置以保持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115的存储器阵列或一或多个存储器单元相关联的各种信息)的一组管理表130。例如,管理表130可包含关于耦合到存储器控制器115的一或多个存储器单元块的块年龄、块擦除计数、错误历史或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果检测到的一或多个错误计数中的错误的数目高于阈值,那么位错误可称为不可校正位错误。管理表130尤其可保持可校正或不可校正位错误的计数。在实例中,管理表103可包含翻译表或逻辑到物理(l2p)映射。
阵列控制器135尤其可包含经配置以控制存储器操作的电路系统或组件,所述存储器操作与对耦合到存储器控制器115的存储器装置110的一或多个存储器单元写入数据、从所述一或多个存储器单元读取数据或者擦除所述一或多个存储器单元相关联。所述存储器操作可基于例如从主机105接收的主机命令,或在内部由存储器管理器125产生(例如,与耗损均衡、错误检测或校正等结合)。
阵列控制器135可包含错误校正码(ecc)组件140,其尤其可包含ecc引擎或其它电路系统,所述ecc引擎或其它电路系统经配置以检测或校正与对耦合到存储器控制器115的存储器装置110的一或多个存储器单元写入数据或从所述一或多个存储器单元读取数据相关联的错误。存储器控制器115可经配置以基于由阵列控制器135维持的ecc数据主动地检测与各种操作或数据的存储相关联的错误出现(例如,位错误、操作错误等)并从中恢复。这使得存储器控制器115能够维持在主机105和存储器装置110之间传输的数据的完整性或维持所存储的数据的完整性。这一完整性维持的部分可包含移除(例如,注销)失效存储器资源(例如,存储器单元、存储器阵列、页、块等)以防发生未来错误。rain是另一种可供存储器装置110用来维持数据完整性的技术。阵列控制器135可经布置以在阵列120中实施rain奇偶校验数据产生和存储。使用奇偶校验数据重构受损数据可涉及存储器控制器115。
存储器阵列120可包含布置在例如数个装置、平面、子块、块或页中的若干存储器单元。作为一个实例,48gbtlcnand存储器装置可包含每页18,592字节(b)的数据(16,384 2208字节)、每块1536页、每平面548块和每装置4个或更多个平面。作为另一实例,32gbmlc存储器装置(存储每单元两个数据位(即,4个可编程状态))可包含每页18,592字节(b)的数据(16,384 2208字节)、每块1024页、每平面548块和每装置4个平面,但是写入时间只需对应tlc存储器装置的一半,而编程/擦除(p/e)循环需要两倍。其它实例可包含其它数目或布置。在一些实例中,存储器装置或其部分可以选择性地在slc模式中或在所要mlc模式(例如tlc、qlc等)中操作。
在操作中,数据通常以页写入到nand存储器装置110或从nand存储器装置110读取并以块擦除。然而,一或多个存储器操作(例如,读取、写入、擦除等)可视需要在更大或更小的存储器单元群组上执行。nand存储器装置110的数据传输大小通常被称为页,而主机的数据传输大小通常被称为扇区。
虽然数据页可包含数个字节的用户数据(例如,包含数个数据扇区的数据有效负载)及其对应的元数据,但页的大小经常仅指代用以存储用户数据的字节的数目。作为实例,具有4kb的页大小的数据页可包含4kb的用户数据(例如,假定512b的扇区大小的8个扇区)以及对应于用户数据的数个字节(例如,32b、54b、224b等)的元数据,例如完整性数据(例如,错误检测或校正代码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器单元或存储器阵列120可提供不同页大小,或可需要与其相关联的不同量的元数据。例如,不同存储器装置类型可具有不同位错误速率,其可导致必需要不同量的元数据来确保数据页的完整性(例如,具有较高位错误率的存储器装置可需要比具有较低位错误率的存储器装置更多字节的错误校正码数据)。作为实例,多层级单元(mlc)nand快闪装置可具有比对应单层级单元(slc)nand快闪装置高的位错误率。因此,mlc装置可需要比对应slc装置更多的元数据字节用于错误数据。
先前组件中的若干个可经布置以通过刷新预测实施高效刷新传输,例如存储器控制器115或阵列控制器135。以下实例使用存储器控制器115作为实施组件,但是包含组件的以下布置的主机105或存储器装置中的任何组件也可实施本文中所描述的高效刷新传输。
如上文所提到,通过所描述的高效刷新传输解决的问题解决了从主机缓冲在存储器控制器115中的用户数据的量和阵列120的写入宽度之间的差异。如本文中所使用,写入宽度是可以写入到阵列120的数据大小。如上文所提到,大体来说,可以写入到快闪阵列的最小数据单元是页(例如,在两个和十六个千字节之间)。然而,一些设计可准许更小写入宽度或更大写入宽度,例如块、超级块等。
存储器控制器115的典型设计包含缓冲区,所述缓冲区至少等于由阵列120支持的最小写入宽度。因此,如果缓冲区被填满,那么它可以以写入宽度增量刷新,使得存储阵列120能够被高效使用。然而,任何其它刷新触发,例如定时器周期的到期(例如,超时、数据老化等)、存储器装置110的断电中断或来自主机105的显式刷新请求,都可产生比写入宽度小(通常小得多)的经缓冲用户数据,从而产生大小差异,这种大小差异传统上是通过将填补数据(例如,无关或虚拟数据)添加到用户数据直到它等于写入宽度为止来解决的。用户数据的高效刷新传输将此填补数据替换为有用数据(例如,以其它方式写入到阵列120的数据)来减少写入填补数据的低效。
为此目的,存储器控制器115经布置以预测使用户数据在存储器控制器115中缓冲的用户数据写入的刷新触发。刷新触发可包含接收到来自主机105的刷新写入的命令或中断、用于将数据保持到阵列120的维护操作(例如,存储器装置110的断电信号或存储器装置的极端操作条件)、定时器周期的到期(例如,防止出现因为将数据留在缓冲区的易失性存储器中的时间过长而导致数据丢失的风险),等等。在任何情况下,刷新触发涉及当用户数据小于写入宽度时将用户数据从缓冲区写入到阵列120的信号。
刷新触发的预测是对刷新触发将是相对于存储器控制器115接收的缓冲区的下一事件的确定。因此,预测建立了其中没有预期任何来自主机105的额外用户数据的窗口。例如,如果在预测刷新触发之后,主机105将额外用户数据发送到存储器装置110,那么刷新触发的预测将是不正确的。
可以使用各种技术来进行刷新触发预测。例如,如果主机105在唤醒后立即写入总体上小于写入宽度的数据,那么存储器控制器115可通过在唤醒信号之后指出第一主机105写入的末尾来进行刷新触发预测。类似地,如果主机具有非线性写入模式,使得时间在上一次写入之后的另一写入降低了下一写入的可能性,那么刷新触发预测可具有超过主机105的自写入阈值开始的最后时间的缓冲区超时。类似地,写入模式——例如,根据来自主机105的命令刷新每一第五写入或根据来自主机105的命令刷新每十个千字节——可由存储器控制器115跟踪以进行刷新预测。通常,这些度量可以维持在寄存器中,或存储器控制器115中一般不需要很多开销来维护的其它类似大小的数据元件。
存储器控制器115经布置以响应于刷新触发预测而封送(例如,收集、检索、查询或以其它方式获得)额外数据。如上文所提到,刷新触发预测提供主机105中的使得存储器控制器115能够收集额外数据而不会影响其它操作的经预测非作用中窗口,例如完成到阵列120的写入的时间。当刷新触发预测错误时,此效率使得来自主机105的额外用户数据具有风险,但是考虑到主机105在各种情形中的总体稳定行为模式,通常是值得冒这个风险的。
当刷新触发预测不正确时,存储器控制器115经布置以响应于预测将写入到缓冲区的额外数据替换为新(例如,额外)用户数据。可以通过在初始写入额外数据的同时维持的标签促进在缓冲区中定位额外数据来替换它。在实例中,标签是缓冲区中指示额外数据的第一个字的地址。在实例中,标签在额外数据之前或之后——分别依据额外数据是附加到原始用户数据还是前置在原始用户数据。在此实例中,存储器控制器115经布置以扫描缓冲区,从而定位额外数据。
一旦在缓冲区中将新用户添加到旧用户数据中,存储器控制器115就可重新评估刷新触发预测和缓冲区中的剩余可用空间,并且再次开始用额外数据填充任何剩余可用空间的程序。此额外处理使得这一针对刷新触发预测中的错误的技术具有灵活性,同时对存储器装置操作影响极小。
额外数据经封送以填充缓冲区的可用空间。然而,在用户数据加上额外数据的单元与写入宽度并不精确对准(例如,它们略大于或略小于字宽)的情形中,使用适合可用空间内的额外数据的单元。此处,额外数据的单元是指提供额外数据含义的离散元件。例如,如果额外数据是坏块的计数,那么额外数据的单元是整个计数加上通常伴随坏块数据结构的元数据。变小会剥夺额外数据的含义,且相当于填补数据。如果在考虑额外数据之后仍有剩余空间,那么使用填补数据来填充缓冲区可用空间。
在实例中,额外数据是存储装置的维护(例如,管理)数据。在实例中,维护数据包含l2p数据映射。在此实例中,l2p映射通常经分段以使存储器控制器115中的易失性存储器缓冲区变小。例如,在需要时,l2p映射区段从阵列120载入到存储器控制器115中,并用于确定哪一物理地址对应于由主机105提供的逻辑地址。这些映射在大部分写入和维护操作(例如,垃圾数据收集)中频繁使用和更新。因此,l2p映射区段可以频繁更新并重新写入到阵列120,使得它通常可用作额外数据。
在实例中,维护数据包含耗损均衡数据。在实例中,维护数据包含交叉温度数据。在实例中,维护数据包含断电数据。维护数据的这些形式可以累积在存储器控制器115的寄存器的缓冲区中,并偶尔写入以供未来使用。它们通常小于上文所描述的l2p映射,并且使得较小的缓冲区可用空间能够使用额外数据。
存储器控制器115经布置以响应于刷新触发(例如,实际刷新触发和非刷新触发的预测)而将用户数据和额外数据写入到阵列120。结果是用户数据和额外数据共置在阵列120上的写入宽度内。此布置从传统系统变化而来,传统系统一般通过向存储器装置110的数据指定阵列120的特定区域或者通过将写入宽度(例如,页或块)保持为完全是用户数据或完全是存储器装置110的数据来使存储器装置110数据与用户数据保持分离。为了解决数据组织的这一改变,存储器控制器115经布置以标记额外数据,使得它在未来能够被检索。在实例中,基于物理地址,额外数据与用户数据共混。在实例中,额外数据包含表示它不是用户数据的元数据。此处,用户数据和额外数据共享相同物理地址,因此共混。然而,与额外数据一起写入的元数据表示它是什么。因此,为了检索额外数据,存储器控制器115载入例如由物理地址指定的页并扫描页,直到它到达元数据标签为止,这通过将页的其余数据视作额外数据来进行。此技术并不依赖于传统的维护数据跟踪中所使用的跟踪技术之外的额外跟踪技术,但是确实会消耗一些附加位来写入元数据,并且可能会涉及关于读取的额外处理。
在实例中,物理地址,额外数据与用户数据分离。在实例中,额外数据包含强制分离的地址标识符。在实例中,地址标识符在额外数据的元数据中。在实例中,地址标识符是绝对地址或相对于用户数据的地址的地址中的一个。在这些实例中,用户数据和额外数据已经基于区别寻址。例如,在相对于用户数据的地址的实例中,额外数据由用户数据、地址和偏移指定。因此,存储器控制器115可简单地读取页(例如)并跳过偏移位来找到额外数据。在绝对地址的情况下,存储器控制器115可直接检索额外数据,而不用参考用户数据地址。此直接寻址可通过支持用于读取的写入宽度分辨的虚拟地址等等支持。在所有这些情况中,支持分离寻址的额外数据的元数据一般存储在其它地方,例如在一个表格130中或以其它方式由存储器管理器125管理。此技术可包含除传统技术开销之外的额外开销,但是可以使存储阵列120的使用更高效或读取性能提升。
图2示出在实施通过刷新预测提高刷新传输效率的系统中的数据流的实例。此处,主机205将主机数据230提供到存储器装置210。存储器装置210在本地缓存220中缓冲主机数据230,例如dram、sram或存储级内存。
存储器装置210的组件215,例如存储器控制器、阵列控制器等,持续地或不断地评估刷新触发是否在接收到来自主机205的额外用户数据之前发生。当进行刷新触发预测(例如,刷新触发将是下一事件)时,组件215用额外装置数据235填充本地缓存220,使得本地缓存220变满,或者使得本地缓存220像在考虑到主机数据230之后鉴于装置数据大小和本地缓存220中的可用空间的大小可以实现的那样满。
如果刷新触发预测被遗漏(例如,不正确)且下一事件是来自主机205的额外数据,那么新用户数据替换添加到本地缓存220中的额外数据235中的一些或全部。为促进这一操作,组件215可维持标签以在本地缓存220中定位额外数据235。在实例中,标签可以放在额外数据235的端部(例如,前面或末尾)处,使得组件215能够扫描本地缓存220来查找额外数据。在实例中,标签可以是指向额外数据235的端部的本地缓存的偏移的指针,其维持在本地缓存220外部。在实例中,标签还可包含额外数据235的范围(例如,大小)以促进它的去除。如果在本地缓存220中在新用户数据之后存在可用空间,那么封送额外数据235以填充这一空间,如上文所描述。
一旦装置数据235经封送并写入到本地缓存220,它就保持在那里,直到刷新触发实际发生为止。此时,本地缓存刷新(例如,写入)到非易失性存储阵列225。
图3示出在执行通过刷新预测的经增强刷新传输时组件之间的消息序列的实例。当主机写入若干个小块数据时,控制器通常会将每个写入附加到缓冲区。
当控制器进行刷新预测(例如,预测刷新触发将是下一事件)时,控制器收集额外数据并将它存储在缓冲区中以填充缓冲区(例如,确保缓冲区中的数据接近写入宽度的某一倍数)。
如所示出,刷新触发预测是不正确的,并且主机在额外数据存储在写入缓冲区中之后具有额外写入。作为响应,控制器从缓冲区收回额外数据并将新主机数据存储在缓冲区中。响应于此事件,控制器封送新的额外数据以填充缓冲区中的任何剩余可用空间。此实例依赖于先前刷新触发预测:额外数据不太可能来自主机。
在实例中,控制器响应于新刷新触发预测而执行这一额外数据搜集。此实例能够基于数据从主机的意外写入进行预期再校准。
在刷新触发到达后,控制器将缓冲区刷新到基础存储装置。如果刷新触发预测正确,那么缓冲区的内容将包含用户数据和额外数据。如果刷新触发预测不正确,那么缓冲区的内容将包含用户数据、来自主机的额外用户数据及额外数据。在任何情况下,在写入到基础存储装置时不存在额外写入时延,因为额外数据是在刷新触发之前添加到缓冲区的。
图4示出用于提高刷新传输效率的方法400的流程图。方法400的操作由计算机硬件执行,例如上文所描述的计算机硬件(例如,存储器控制器、阵列控制器等)或下文所描述的计算机硬件(例如,处理电路系统)。
在操作405处,将来自用户数据写入的用户数据存储在缓冲区中。此处,安置到缓冲区中的用户数据的大小小于经受所述写入的存储装置的写入宽度。这接着会产生缓冲区可用空间。在实例中,存储装置是nand快闪装置。在实例中,写入宽度是页。在实例中,写入宽度是块。在实例中,写入宽度是超级块。
在操作410处,预测刷新触发。在实例中,刷新触发是接收到刷新命令或时间周期到期中的至少一个。可以使用若干种技术来预测刷新触发。例如,如果主机是大概清醒、写入一些数据并接着睡眠(产生超时或显式刷新命令)的装置,那么预测可以基于辨识唤醒已发生(例如,中断存储装置进行唤醒)及计算出的数据平均值在唤醒周期期间已由主机写入(例如,在唤醒之后的第一次写入)。针对超时触发,可以跟踪对超时的接近度,并且维持接近超时的主机写入的计数。因此,如果主机有90%的可能性不会在超时的十毫秒内写入更多数据,那么做出触发预测。
在操作415处,响应于刷新触发的预测,封送额外数据。此处,额外数据具有小于或等于缓冲区可用空间的大小。在实例中,额外数据是存储装置的维护数据。在实例中,维护数据由存储装置的控制器搜集。在实例中,维护数据包含l2p数据映射。在实例中,维护数据包含耗损均衡数据。在实例中,维护数据包含交叉温度数据。在实例中,维护数据包含断电数据。
在实例中,基于物理地址,额外数据与用户数据共混。在实例中,额外数据包含表示它不是用户数据的元数据。
在实例中,基于物理地址,额外数据与用户数据分离。在实例中,额外数据包含强制分离的地址标识符。在实例中,地址标识符在额外数据的元数据中。在实例中,地址标识符是绝对地址或相对于用户数据的地址的地址中的一个。
在操作420处,将额外数据存储到缓冲区可用空间。此处,所述存储包含将标签维持到额外数据的缓冲区中。在实例中,标签是指向缓冲区的指针。
在操作425处,响应于刷新触发,将缓冲区的内容写入到存储装置。因此,当刷新触发实际发生时,相较于刷新触发的预测,可以立即写入缓冲区,包含用户数据和额外数据两者,从而减少写入时延,同时仍然高效地使用基础存储装置。
在实例中,方法400任选地包含以下操作:对遗漏的刷新触发预测进行寻址。所述操作包含在将缓冲区的内容写入到存储装置之前接收额外用户数据。因此,操作410的预测不正确。在缓冲区中使用标签将额外数据的一部分替换为额外用户数据的额外操作容纳了来自主机的额外用户数据。因此,在此操作之后,缓冲区的内容包含用户数据、额外用户数据和额外数据的其余部分。
图5示出实例机器500的框图,本文所论述的任何一或多种技术(例如,方法)可以在所述实例机器上执行。在替代实施例中,机器500可以充当独立装置或可以连接(例如,联网)到其它机器。在联网部署中,机器500可在服务器-客户端网络环境中以服务器机器、客户端机器或这两者的容量操作。在实例中,机器500可充当对等(p2p)(或其它分布式)网络环境中的对等机器。机器500可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、移动电话、网络设备、iot装置、汽车系统或能够(连续或以其它方式)执行指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅示出单个机器,但术语“机器”也将被视为包含个别地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多个(例如,云计算、软体即服务(saas)、其它计算机集群配置)的任何机器集合。
如本文所描述,实例可包含逻辑、组件、装置、封装或机构,或者可通过逻辑、组件、装置、封装或机构而操作。电路系统是在包含硬件(例如,简单电路、栅极、逻辑等)的有形实体中实施的电路的总集(例如,集合)。电路系统成员可以随时间和基础硬件可变性为灵活的。电路系统包含当操作时可单独或组合地执行特定任务的部件。在实例中,电路系统的硬件可以被永恒地设计成实行特定操作(例如,硬接线)。在实例中,电路系统的硬件可以包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以编码特定操作的指令的计算机可读媒体。在连接物理组件时,硬件构成的基础电性质例如从绝缘体改变成导体或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接产生硬件中的电路系统的部件以当在操作中时实行特定任务的部分。因此,当装置操作时计算机可读媒体以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可以用于多于一个电路系统中的多于一个部件中。例如,在操作中,执行单元在一个时间点处可以用于第一电路系统的第一电路中,且由第一电路系统中的第二电路或由第二电路系统中的第三电路在不同时间重新使用。
机器(例如,计算机系统)500(例如,主机装置105、存储器装置110等)可包含硬件处理器502(例如,中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核心或其任何组合,例如存储器控制器115等)、主存储器504和静态存储器506,其中的一些或全部可经由互连链路(例如,总线)530彼此通信。机器500可进一步包含显示单元510、字母数字输入装置512(例如,键盘)和用户接口(ui)导航装置514(例如,鼠标)。在实例中,显示单元510、输入装置512和ui导航装置514可为触摸屏显示器。机器500可另外包含存储装置(例如,驱动单元)508、信号产生装置518(例如,扬声器)、网络接口装置520和一或多个传感器516,例如全球定位系统(gps)传感器、指南针、加速度计或其它传感器。机器500可包含输出控制器528,例如串行(例如,通用串行总线(usb)、并行或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接以通信或控制一或多个外围装置(例如,打印机、读卡器等)。
存储装置508可包含机器可读媒体522,体现本文所描述的技术或功能中的任何一或多者或由其利用的数据结构或指令524(例如,软件)的一或多个集合存储于所述机器可读媒体上。指令524还可在其由机器500执行期间完全或至少部分地驻留在主存储器504内、静态存储器506内或硬件处理器502内。在实例中,硬件处理器502、主存储器504、静态存储器506或存储装置508中的一个或任何组合可构成机器可读媒体522。
虽然机器可读媒体522示出为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令524的单个媒体或多个媒体(例如,集中或分布式数据库,或相关联缓存和服务器)。
术语“机器可读媒体”可以包含能够存储、编码或载送用于由机器500执行的指令且使机器500执行本发明的技术中的任何一或多个,或能够存储、编码或载送由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可以包含固态存储器以及光学和磁性媒体。在实例中,集中式机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量。因此,集中式机器可读媒体是非暂时性传播信号。集中式机器可读媒体的具体实例可以包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))和快闪存储器装置;磁盘,例如内部硬盘和可移除式盘;磁光碟;以及cd-rom和dvd-rom盘。
指令524(例如,软件、程序、操作系统(os)等)或其它数据存储于存储装置521上,可由存储器504存取以供处理器502使用。存储器504(例如,dram)通常是快速但易失性的,且因此是与存储装置521(例如,ssd)不同类型的存储,所述存储装置521适合于长期存储,包含在“断开”条件中时的长期存储。在由用户或机器500的使用中的指令524或数据通常加载于存储器504中供处理器502使用。当存储器504装满时,可分配来自存储装置521的虚拟空间以补充存储器504;然而,因为存储521装置通常比存储器504慢,且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用由于存储装置等待时间(与存储器504相比,例如dram)可极大地降低用户体验。此外,用于虚拟存储器的存储装置521的使用可极大地减少存储装置521的可用使用寿命。
与虚拟存储器相比,虚拟存储器压缩(例如,
针对移动电子装置或移动存储而优化的存储装置传统地包含mmc固态存储装置(例如,微安全数字(microsdtm)卡等)。mmc装置包含与主机装置的数个并行接口(例如,8位并行接口),且经常是从主机装置可移除和分离的组件。相比之下,emmctm装置附接到电路板且视为主机装置的组件,其读取速度比得上基于串行atatm(串行高级技术(at)附接,或sata)的ssd装置。然而,对移动装置性能的需求持续增大,以便完全实现虚拟或增强现实装置,利用增加的网络速度等。响应于此需求,存储装置已经从并行转移到串行通信接口。包含控制器和固件的通用快闪存储(ufs)装置使用具有专用读取/写入路径的低电压差分信令(lvds)串行接口与主机装置通信,进一步推进了更高的读取/写入速度。
指令524可以进一步利用多个传输协议中的任一个(例如,帧中继、因特网协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、超文本传输协议(http)等)经由网络接口装置520使用传输媒体在通信网络526上发射或接收。实例通信网络可以包含局域网(lan)、广域网(wan)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)(例如,由第三代合作伙伴计划(3gpp)系列标准(如3g、4g、5g、长期演进(lte)等)限定的那些)、简易老式电话(pots)网络和无线数据网络(例如,称为
额外实例:
实例1是一种用于通过刷新预测的经提高刷新传输效率的存储器控制器,所述存储器控制器包括:到存储装置的接口;缓冲区;以及处理电路系统,其用于:在缓冲区中存储来自用户数据写入的用户数据,存储在所述缓冲区中的所述用户数据的大小小于经受所述写入的存储装置的写入宽度,从而产生缓冲区可用空间;预测刷新触发;响应于所述刷新触发的预测,封送额外数据,所述额外数据具有小于或等于所述缓冲区可用空间的大小;将所述额外数据存储到所述缓冲区可用空间,所述存储包含针对所述额外数据将标签维持到所述缓冲区中;以及响应于所述刷新触发,通过所述接口将所述缓冲区的内容写入到所述存储装置。
在实例2中,根据实例1的主题,其中所述处理电路系统经布置以进行以下操作:在将所述缓冲区的所述内容写入到所述存储装置之前接收额外用户数据;以及在所述缓冲区中使用所述标签将所述额外数据的一部分替换为所述额外用户数据,所述缓冲区的所述内容包含所述用户数据、所述额外用户数据和所述额外数据的其余部分。
在实例3中,根据实例1至2中任一个所述的主题,其中所述标签是指向所述缓冲区的指针。
在实例4中,根据实例1至3中任一个所述的主题,其中所述存储装置是nand快闪装置。
在实例5中,根据实例4所述的主题,其中所述写入宽度是页。
在实例6中,根据实例4至5中任一个所述的主题,其中所述写入宽度是块。
在实例7中,根据实例4至6中任一个所述的主题,其中所述写入宽度是超级块。
在实例8中,根据实例1至7中任一个所述的主题,其中所述额外数据是所述存储装置的维护数据。
在实例9中,根据实例8所述的主题,其中所述维护数据由所述存储器控制器搜集。
在实例10中,根据实例8至9中任一个所述的主题,其中所述维护数据包含逻辑到物理数据映射。
在实例11中,根据实例8至10中任一个所述的主题,其中所述维护数据包含耗损均衡数据。
在实例12中,根据实例8至11中任一个所述的主题,其中所述维护数据包含交叉温度数据。
在实例13中,根据实例8至12中任一个所述的主题,其中所述维护数据包含断电数据。
在实例14中,根据实例1至13中任一个所述的主题,其中基于物理地址,所述额外数据与所述用户数据共混。
在实例15中,根据实例14所述的主题,其中所述额外数据包含表示它不是用户数据的元数据。
在实例16中,根据实例1至15中任一个所述的主题,其中基于物理地址,所述额外数据与所述用户数据分离。
在实例17中,根据实例16所述的主题,其中所述额外数据包含强制分离的地址标识符。
在实例18中,根据实例17所述的主题,其中所述地址标识符在所述额外数据的元数据中。
在实例19中,根据实例17至18中任一个所述的主题,其中所述地址标识符是绝对地址或相对于所述用户数据的地址的地址中的一个。
在实例20中,根据实例1至19中任一个所述的主题,其中所述刷新触发是接收到刷新命令或时间周期到期中的至少一个。
实例21是一种用于通过刷新预测的经提高刷新传输效率的方法,所述方法包括:在缓冲区中存储来自用户数据写入的用户数据,存储在所述缓冲区中的所述用户数据的大小小于经受所述写入的存储装置的写入宽度,从而产生缓冲区可用空间;预测刷新触发;响应于所述刷新触发的预测,封送额外数据,所述额外数据具有小于或等于所述缓冲区可用空间的大小;将所述额外数据存储到所述缓冲区可用空间,所述存储包含针对所述额外数据将标签维持到所述缓冲区中;以及响应于所述刷新触发,将所述缓冲区的内容写入到所述存储装置。
在实例22中,根据实例21的主题,包括:在将所述缓冲区的所述内容写入到所述存储装置之前接收额外用户数据;以及在所述缓冲区中使用所述标签将所述额外数据的一部分替换为所述额外用户数据,所述缓冲区的所述内容包含所述用户数据、所述额外用户数据和所述额外数据的其余部分。
在实例23中,根据实例21至22中任一个所述的主题,其中所述标签是指向所述缓冲区的指针。
在实例24中,根据实例21至23中任一个所述的主题,其中所述存储装置是nand快闪装置。
在实例25中,根据实例24所述的主题,其中所述写入宽度是页。
在实例26中,根据实例24至25中任一个所述的主题,其中所述写入宽度是块。
在实例27中,根据实例24至26中任一个所述的主题,其中所述写入宽度是超级块。
在实例28中,根据实例21至27中任一个所述的主题,其中所述额外数据是所述存储装置的维护数据。
在实例29中,根据实例28所述的主题,其中所述维护数据由所述存储装置的控制器搜集。
在实例30中,根据实例28至29中任一个所述的主题,其中所述维护数据包含逻辑到物理数据映射。
在实例31中,根据实例28至30中任一个所述的主题,其中所述维护数据包含耗损均衡数据。
在实例32中,根据实例28至31中任一个所述的主题,其中所述维护数据包含交叉温度数据。
在实例33中,根据实例28至32中任一个所述的主题,其中所述维护数据包含断电数据。
在实例34中,根据实例21至33中任一个所述的主题,其中基于物理地址,所述额外数据与所述用户数据共混。
在实例35中,根据实例34所述的主题,其中所述额外数据包含表示它不是用户数据的元数据。
在实例36中,根据实例21至35中任一个所述的主题,其中基于物理地址,所述额外数据与所述用户数据分离。
在实例37中,根据实例36所述的主题,其中所述额外数据包含强制分离的地址标识符。
在实例38中,根据实例37所述的主题,其中所述地址标识符在所述额外数据的元数据中。
在实例39中,根据实例37至38中任一个所述的主题,其中所述地址标识符是绝对地址或相对于所述用户数据的地址的地址中的一个。
在实例40中,根据实例21至39中任一个所述的主题,其中所述刷新触发是接收到刷新命令或时间周期到期中的至少一个。
实例41是一种机器可读媒体,其包含用于通过刷新预测的经提高刷新传输效率的指令,所述指令在由处理电路系统执行时使所述处理电路系统执行包括以下各项的操作:在缓冲区中存储来自用户数据写入的用户数据,存储在所述缓冲区中的所述用户数据的大小小于经受所述写入的存储装置的写入宽度,从而产生缓冲区可用空间;预测刷新触发;响应于所述刷新触发的预测,封送额外数据,所述额外数据具有小于或等于所述缓冲区可用空间的大小;将所述额外数据存储到所述缓冲区可用空间,所述存储包含针对所述额外数据将标签维持到所述缓冲区中;以及响应于所述刷新触发,将所述缓冲区的内容写入到所述存储装置。
在实例42中,根据实例41的主题,其中所述操作包括:在将所述缓冲区的所述内容写入到所述存储装置之前接收额外用户数据;以及在所述缓冲区中使用所述标签将所述额外数据的一部分替换为所述额外用户数据,所述缓冲区的所述内容包含所述用户数据、所述额外用户数据和所述额外数据的其余部分。
在实例43中,根据实例41至42中任一个所述的主题,其中所述标签是指向所述缓冲区的指针。
在实例44中,根据实例41至43中任一个所述的主题,其中所述存储装置是nand快闪装置。
在实例45中,根据实例44所述的主题,其中所述写入宽度是页。
在实例46中,根据实例44至45中任一个所述的主题,其中所述写入宽度是块。
在实例47中,根据实例44至46中任一个所述的主题,其中所述写入宽度是超级块。
在实例48中,根据实例41至47中任一个所述的主题,其中所述额外数据是所述存储装置的维护数据。
在实例49中,根据实例48所述的主题,其中所述维护数据由所述存储装置的控制器搜集。
在实例50中,根据实例48至49中任一个所述的主题,其中所述维护数据包含逻辑到物理数据映射。
在实例51中,根据实例48至50中任一个所述的主题,其中所述维护数据包含耗损均衡数据。
在实例52中,根据实例48至51中任一个所述的主题,其中所述维护数据包含交叉温度数据。
在实例53中,根据实例48至52中任一个所述的主题,其中所述维护数据包含断电数据。
在实例54中,根据实例41至53中任一个所述的主题,其中基于物理地址,所述额外数据与所述用户数据共混。
在实例55中,根据实例54所述的主题,其中所述额外数据包含表示它不是用户数据的元数据。
在实例56中,根据实例41至55中任一个所述的主题,其中基于物理地址,所述额外数据与所述用户数据分离。
在实例57中,根据实例56所述的主题,其中所述额外数据包含强制分离的地址标识符。
在实例58中,根据实例57所述的主题,其中所述地址标识符在所述额外数据的元数据中。
在实例59中,根据实例57至58中任一个所述的主题,其中所述地址标识符是绝对地址或相对于所述用户数据的地址的地址中的一个。
在实例60中,根据实例41至59中任一个所述的主题,其中所述刷新触发是接收到刷新命令或时间周期到期中的至少一个。
实例61是一种用于通过刷新预测的经提高刷新传输效率的系统,所述系统包括:用于在缓冲区中存储来自用户数据写入的用户数据的构件,存储在所述缓冲区中的所述用户数据的大小小于经受所述写入的存储装置的写入宽度,从而产生缓冲区可用空间;用于预测刷新触发的构件;用于响应于所述刷新触发的预测封送额外数据的构件,所述额外数据具有小于或等于所述缓冲区可用空间的大小;用于将所述额外数据存储到所述缓冲区可用空间的构件,所述存储包含针对所述额外数据将标签维持到所述缓冲区中;以及用于响应于所述刷新触发将所述缓冲区的内容写入到所述存储装置的构件。
在实例62中,根据实例61所述的主题,包括:用于在将所述缓冲区的所述内容写入到所述存储装置之前接收额外用户数据的构件;以及用于在所述缓冲区中使用所述标签将所述额外数据的一部分替换为所述额外用户数据的构件,所述缓冲区的所述内容包含所述用户数据、所述额外用户数据和所述额外数据的其余部分。
在实例63中,根据实例61至62中任一个所述的主题,其中所述标签是指向所述缓冲区的指针。
在实例64中,根据实例61至63中任一个所述的主题,其中所述存储装置是nand快闪装置。
在实例65中,根据实例64所述的主题,其中所述写入宽度是页。
在实例66中,根据实例64至65中任一个所述的主题,其中所述写入宽度是块。
在实例67中,根据实例64至66中任一个所述的主题,其中所述写入宽度是超级块。
在实例68中,根据实例61至67中任一个所述的主题,其中所述额外数据是所述存储装置的维护数据。
在实例69中,根据实例68所述的主题,其中所述维护数据由所述存储装置的控制器搜集。
在实例70中,根据实例68至69中任一个所述的主题,其中所述维护数据包含逻辑到物理数据映射。
在实例71中,根据实例68至70中任一个所述的主题,其中所述维护数据包含耗损均衡数据。
在实例72中,根据实例68至71中任一个所述的主题,其中所述维护数据包含交叉温度数据。
在实例73中,根据实例68至72中任一个所述的主题,其中所述维护数据包含断电数据。
在实例74中,根据实例61至73中任一个所述的主题,其中基于物理地址,所述额外数据与所述用户数据共混。
在实例75中,根据实例74所述的主题,其中所述额外数据包含表示它不是用户数据的元数据。
在实例76中,根据实例61至75中任一个所述的主题,其中基于物理地址,所述额外数据与所述用户数据分离。
在实例77中,根据实例76所述的主题,其中所述额外数据包含强制分离的地址标识符。
在实例78中,根据实例77所述的主题,其中所述地址标识符在所述额外数据的元数据中。
在实例79中,根据实例77至78中任一个所述的主题,其中所述地址标识符是绝对地址或相对于所述用户数据的地址的地址中的一个。
在实例80中,根据实例61至79中任一个所述的主题,其中所述刷新触发是接收刷新命令或时间周期到期中的至少一个。
实例81是至少一个机器可读媒体,其包含指令,所述指令在由处理电路系统执行时使所述处理电路系统执行操作以实施实例1至80中的任一个。
实例82是一种包括用于实施实例1至80中的任一个的构件的设备。
实例83是一种用于实施实例1至80中的任一个的系统。
实例84是一种实施实例1至80中的任一个的方法。
以上详细描述包含对附图的参考,所述附图形成所述详细描述的一部分。所述图式借助于说明展示可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所示出或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所示出或所描述的那些元件的实例。此外,本发明的发明人还预期使用相对于特定实例(或其一或多个方面)或相对于本文展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或封送的实例(或其一或多个方面)。
在本文件中,术语如专利文件中所常见而使用术语“一”以包含一个或多于一个,其独立于“至少一个”或“一或多个”的任何其它例子或使用。在此文献中,术语“或”用于指代非排它性或,使得除非另有指示,否则“a或b”可包含“a而非b”、“b而非a”以及“a和b”。在所附权利要求书中,术语“包含”和“在其中(inwhich)”用作相应术语“包括”和“其中(wherein)”的通俗等效术语。此外,在所附权利要求书中,术语“包含”和“包括”为开放式的,也就是说,包含除权利要求书中在此术语之后列出的那些元件之外的元件的系统、装置、物品或过程仍被视为在权利要求书的范围内。此外,在随附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标签,且并不在于对其对象施加数字要求。
在各种实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可包含存储于物理装置上的物理电路系统或固件等。如本文中所使用,“处理器”意指任何类型的计算电路,例如(但不限于)微处理器、微控制器、图形处理器、数字信号处理器(dsp),或任何其它类型的处理器或处理电路,包含处理器或多核心装置群组。
本文使用术语“晶片”和“衬底”来大体上指代集成电路形成于其上的任何结构,并且还指代在集成电路制造的各个阶段期间的这些结构。因此,以下详细描述不应以限制性意义来理解,并且各种实施例的范围仅由所附权利要求书连同此权利要求书授权的等效物的完整范围定义。
根据本发明且在本文中所描述的各种实施例包含使用存储器单元的竖直结构(例如,存储器单元的nand串)的存储器。如本文中所使用,将采用相对有存储器单元形成在上面的衬底的表面的方向性形容词(即,竖直结构将被视为远离衬底表面而延伸,竖直结构的底端将被视为最接近衬底表面的端部,并且竖直结构的顶端将被视为最远离衬底表面的端部)。
如本文所使用,操作存储器单元包含从存储器单元读取、对存储器单元写入或擦除存储器单元。使存储器单元置于既定状态中的操作在本文中被称作“编程”,且可包含对存储器单元写入或从存储器单元擦除(例如,存储器单元可经编程为擦除状态)。
根据本发明的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设定、调整、计算、改变、清除、传输、适配、导出、界定、利用、修改、应用等)磨损循环的数量,或磨损状态(例如,记录磨损循环、在存储器装置的操作发生时对其进行计数、跟踪其起始的存储器装置的操作、评估对应于磨损状态的存储器装置特性等)。
根据本发明的一或多个实施例,存储器存取装置可经配置以关于每一存储器操作将磨损循环信息提供到存储器装置。存储器装置控制电路系统(例如,控制逻辑)可经编程以补偿对应于磨损循环信息的存储器装置性能改变。存储器装置可接收磨损循环信息且响应于磨损循环信息而确定一或多个操作参数(例如,值、特性)。
本文中所描述的方法实例可至少部分地由机器或计算机实施。一些实例可包含编码有指令的计算机可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如在以上实例中描述的方法。这类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等等。这类代码可包含用于执行各种方法的计算机可读指令。所述代码可以形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储于一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含但不限于:硬盘、可装卸式磁盘、可装卸式光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、存储器卡或棒、随机存取存储器(ram)、只读存储器(rom)、固态驱动器(ssd)、通用快闪存储(ufs)装置、嵌入式mmc(emmc)装置等等。
以上描述预期为说明性的而非限制性的。例如,上述实例(或其一或多个方面)可以彼此组合使用。例如所属领域的技术人员在查阅以上描述后可使用其它实施例。所述摘要在遵守以下理解的情况下提交:其将不会用于解释或限制权利要求的范围或含义。另外,在以上具体实施方式中,可将各种特征分组在一起以简化本发明。不应将此情况解释为期望未主张的公开特征对任何权利要求来说是必需的。实情为,本发明标的物可在于比特定所揭示实施例的所有特征要少。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为一单独实施例而独立存在,且预期此些实施例可以各种组合或封送彼此组合。本发明的范围应该通过参考所附的权利要求书以及所述权利要求书所授予的等效物的完整范围来确定。
1.一种用于通过刷新预测的经提高刷新传输效率的方法,所述方法包括:
在缓冲区中存储来自用户数据写入的用户数据,存储在所述缓冲区中的所述用户数据的大小小于经受所述写入的存储装置的写入宽度,从而产生缓冲区可用空间;
预测刷新触发;
响应于所述刷新触发的预测,封送额外数据,所述额外数据具有小于或等于所述缓冲区可用空间的大小;
将所述额外数据存储到所述缓冲区可用空间,所述存储包含针对所述额外数据将标签维持到所述缓冲区中;以及
响应于所述刷新触发,将所述缓冲区的内容写入到所述存储装置。
2.根据权利要求1所述的方法,包括:
在将所述缓冲区的所述内容写入到所述存储装置之前,接收额外用户数据;以及
在所述缓冲区中使用所述标签将所述额外数据的一部分替换为所述额外用户数据,所述缓冲区的所述内容包含所述用户数据、所述额外用户数据和所述额外数据的其余部分。
3.根据权利要求1所述的方法,其中所述标签是指向所述缓冲区的指针。
4.根据权利要求1所述的方法,其中所述存储装置是nand快闪装置。
5.根据权利要求4所述的方法,其中所述写入宽度是页。
6.根据权利要求4所述的方法,其中所述写入宽度是块。
7.根据权利要求4所述的方法,其中所述写入宽度是超级块。
8.根据权利要求1所述的方法,其中所述额外数据是所述存储装置的维护数据。
9.根据权利要求8所述的方法,其中所述维护数据由所述存储装置的控制器搜集。
10.根据权利要求8所述的方法,其中所述维护数据包含逻辑到物理数据映射。
11.根据权利要求8所述的方法,其中所述维护数据包含耗损均衡数据。
12.根据权利要求8所述的方法,其中所述维护数据包含交叉温度数据。
13.根据权利要求8所述的方法,其中所述维护数据包含断电数据。
14.根据权利要求1所述的方法,其中基于物理地址,所述额外数据与所述用户数据共混。
15.根据权利要求14所述的方法,其中所述额外数据包含表示它不是用户数据的元数据。
16.根据权利要求1所述的方法,其中基于物理地址,所述额外数据与所述用户数据分离。
17.根据权利要求16所述的方法,其中所述额外数据包含强制所述分离的地址标识符。
18.根据权利要求17所述的方法,其中所述地址标识符在所述额外数据的元数据中。
19.根据权利要求17所述的方法,其中所述地址标识符是绝对地址或相对于所述用户数据的地址的地址中的一个。
20.根据权利要求1所述的方法,其中所述刷新触发是接收到刷新命令或时间周期到期中的至少一个。
21.一种包含指令的机器可读媒体,所述指令在由处理电路系统执行时使所述处理电路系统执行根据权利要求1至20所述的任一方法。
22.一种系统,其包括用于执行根据权利要求1至20所述的任一方法的构件。
技术总结