在存储器中记录致命错误的装置和方法与流程

文档序号:24051462发布日期:2021-02-23 22:30阅读:121来源:国知局
在存储器中记录致命错误的装置和方法与流程

[0001]
本申请大体来说涉及存储器装置。


背景技术:

[0002]
存储器装置通常被提供为计算机或其它电子装置中的内部半导体集成电路。有许多不同类型的存储器,其包含易失性和非易失性存储器。
[0003]
易失性存储器需要电源来维护其数据,并且包含随机存取存储器(ram)、动态随机存取存储器(dram)或同步动态随机存取存储器(sdram)等。
[0004]
非易失性存储器可以在不通电时保持所存储的数据,并且包含快闪存储器、只读存储器(rom)、电可擦除可编程rom(eeprom)、静态ram(sram)、可擦除可编程rom(eprom)、电阻可变存储器、例如相变随机存取存储器(pcram)、电阻式随机存取存储器(rram)、磁阻随机存取存储器(mram)等。
[0005]
快闪存储器被用作非易失性存储器以用于广泛的电子应用。快闪存储器装置通常包含允许高存储器密度、高可靠性和低电耗的一个晶体管、浮置栅极或电荷捕获存储器单元的一或多个群组。
[0006]
两种常见类型的快闪存储器阵列架构包含nand和nor架构,其以其中布置每个的基本存储器单元配置的逻辑形式命名。存储器阵列的存储器单元通常布置成矩阵。在实例中,阵列的行中的每个浮置栅极存储器单元的栅极耦合到存取线(例如,字线)。在nor架构中,阵列的列中的每个存储器单元的漏极耦合到数据线(例如,位线)。在nand架构中,阵列的串中的每个存储器单元的漏极在源极线和位线之间以源极到漏极的方式串联耦合在一起。
[0007]
通过解码器存取nor和nand架构半导体存储器阵列,所述解码器由选择耦合到其栅极的字线来激活特定存储器单元。在nor架构半导体存储器阵列中,一旦被激活,所选存储器单元将其数据值放置在位线上,从而根据特定单元被编程的状态而导致不同的电流流动。在nand架构半导体存储器阵列中,将高偏压施加到漏极侧选择栅极(sgd)线。以指定的通过电压(例如,vpass)驱动耦合到每个群组的未选择的存储器单元的栅极的字线,以使每个群组的未选择的存储器单元作为通过晶体管操作(例如,以不受其所存储的数据值限制的方式通过电流)。然后,电流通过每个串联耦合的群组从源极线流到位线,仅受到每个群组的所选存储器单元的限制,将所选存储器单元的当前编码数据值放置在位线上。
[0008]
nor或nand架构半导体存储器阵列中的每个快闪存储器单元可以单独地或共同地编程为一个或许多编程状态。例如,单级单元(slc)可以代表两个编程状态(例如,1或0)中的一个,代表一个数据位。
[0009]
然而,快闪存储器单元也可以代表两个以上编程状态中的一个,从而允许在不增加存储器单元数目的情况下制造较高密度存储器,因为每个单元可以代表一个以上的二进制数字(例如,一个以上的位)。此些单元可以被称为多状态存储器单元、多数位单元或多级单元(mlc)。在某些实例中,mlc可以指每单元可以存储两个数据位(例如,四个编程状态中
的一个)的存储器单元,三级单元(tlc)可以指每单元可以存储三个数据位(例如,八个编程状态中的一个)的存储器单元,并且四级单元(qlc)每单元可以存储四位数据。mlc在本文中以其更广泛的上下文使用,以表示可以在每单元存储一个以上数据位的任何存储器单元(即,其可以代表两个以上编程状态)。
[0010]
传统的存储器阵列是布置在半导体衬底的表面上的二维(2d)结构。为了增加给定区域的存储器容量并且降低成本,个别存储器单元的尺寸已经减小。然而,减小个别存储器单元的大小,以及因此在2d存储器阵列的存储器密度方面存在技术限制。作为响应,三维(3d)存储器结构,例如3d nand架构半导体存储器装置正在被开发以进一步增加存储器密度和降低存储器成本。
[0011]
此些3d nand装置通常包含串联耦合(例如,漏极到源极)在接近源极的一或多个源极侧选择栅极(sgs)与接近位线的一或多个漏极侧选择栅极(sgd)之间的存储单元串。在实例中,sgs或sgd可以包含一或多个场效应晶体管(fet)或金属氧化物半导体(mos)结构装置等。在一些实例中,所述串将竖直延伸通过含有相应字线的多个竖直间隔的层。半导体结构(例如多晶硅结构)可以邻近存储单元串延伸以形成用于所述存储单元串的沟道。在竖直串的实例中,多晶硅结构可以是竖直延伸的柱的形式。在一些实例中,串可以被“折叠”,并且因此相对于u形柱布置。在其它实例中,多个竖直结构可以彼此堆叠以形成存储单元串的堆叠阵列。
[0012]
存储器阵列或装置可以组合在一起以形成存储器系统的存储体,例如固态驱动器(ssd)、通用快闪存储(ufs
tm
)装置、多媒体卡(mmc)固态存储装置、嵌入式mmc装置(emmc
tm
)等。ssd等可以用作计算机的主存储装置,其在例如性能、大小、重量、强度、操作温度范围和功耗方面优于具有移动单元的传统硬盘驱动器。例如,ssd可以具有减少的寻道时间、延迟或与磁盘驱动器(例如,机电等)相关联的其它延迟。ssd使用非易失性存储器单元,例如快闪存储器单元来消除内部电池电源要求,因此允许驱动器更加通用并且紧凑。
[0013]
ssd可以包含包含许多管芯或逻辑单元(例如,逻辑单元号或lun)的许多存储器装置,并且可以包含执行操作存储器装置或与外部系统接口所需的逻辑功能的一或多个处理器或其它控制器。此些ssd可以包含一或多个快闪存储器管芯,快闪存储器管芯上包含许多存储器阵列和外围电路。快闪存储器阵列可以包含组织成许多物理页的许多存储器单元块。在许多实例中,ssd还将包含dram或sram(或其它形式的存储器管芯或其它存储器结构)。ssd可以从主机接收与存储器操作相关联的命令,例如用以在存储器装置与主机之间传送数据(例如,用户数据和相关联的完整性数据,例如错误数据和地址数据等)的读取或写入操作,或从存储器装置擦除数据的擦除操作。


技术实现要素:

[0014]
在一个方面中,本申请提供了一种用于在存储器装置中记录致命错误的设备,所述设备包括:通信接口,其用于接收对所述存储器装置的组件的读取请求;以及处理电路,其用于:检测阻止正确执行读取请求的错误的致命错误指示;收集故障指示的诊断信息;以及经由所述通信接口使用作为有效负载的所述诊断信息的一部分和使用具有错误代码的元数据响应所述读取请求,其中所述有效负载是在未发生所述致命错误的情况下原本将用于受所述读取请求支配的用户数据的位。
[0015]
在另一个方面中,本申请提供了一种在存储器装置中记录致命错误的方法,所述方法包括:接收对所述存储器装置的组件的读取请求;检测阻止正确执行读取请求的错误的致命错误指示;收集故障指示的诊断信息;以及使用作为有效负载的所述诊断信息的一部分和使用具有错误代码的元数据响应所述读取请求,其中所述有效负载是在未发生所述致命错误的情况下原本将用于受所述读取请求支配的用户数据的位。
[0016]
在另一个方面中,本申请提供了一种机器可读介质,其包含用于在存储器装置中记录致命错误的指令,所述指令在由处理电路执行时使所述处理电路执行包括以下各项的操作:接收对所述存储器装置的组件的读取请求;检测阻止正确执行读取请求的错误的致命错误指示;收集故障指示的诊断信息;以及使用作为有效负载的所述诊断信息的一部分和使用具有错误代码的元数据响应所述读取请求,其中所述有效负载是在未发生所述致命错误的情况下原本将用于受所述读取请求支配的用户数据的位。
附图说明
[0017]
在不必按比例绘制的附图中,类似的数字可以在不同的视图中描述类似的组件。具有不同字母后缀的类似数字可以代表相似组件的不同例子。附图以实例的方式而非限制的方式大致示出了本文中所讨论的各种实施例。
[0018]
图1示出了包含存储器装置的环境的实例。
[0019]
图2、3和4示出了存储器装置与主机之间的错误记录通信的数据流的实例。
[0020]
图5示出了用于在存储器装置中记录致命错误的方法的实例的流程图。
[0021]
图6是示出了可以在其上实现一或多个实施例的机器的实例的框图。
具体实施方式
[0022]
在操作过程中,存储器装置可能会经历数据完整性故障。所述故障可能是硬件故障的结果,或是由于某些损坏的影响,例如极端温度或功率波动。这些故障中的一些导致存储器装置或存储器装置的主机无法校正的错误。
[0023]
通常,当存储器装置面临无法校正的错误试图完成对主机的读取请求时,存储器装置用其从相关联的存储器组件检索到的任何数据以及错误代码(例如,错误信号或错误发生的其它指示以及可能的错误类型)作出响应。然后,主机可以根据错误代码所通知的对数据执行操作-例如,尝试执行某些高级错误恢复。
[0024]
虽然错误代码可以用于确定发生了什么错误,但通常不指示发生错误的原因。为了找出发生错误的原因,通常需要高级诊断。高级诊断通常涉及获得并且运行厂商特定的诊断例程(例如,使用非标准命令利用存储器装置的调试接口)或拆卸存储器装置以执行附加调查。在任一情况下,存储器装置都可能无法使用功能组件提供数据的存储和检索。此外,拆卸存储器装置以确定故障原因不仅在许多情况下非常困难,而且拆卸存储器装置的动作会导致存储器装置组件中的物理变化,从而掩盖故障的真正原因。
[0025]
为了解决以上问题,存储器装置可以在不可恢复错误的情况下执行诊断程序。响应于与不可恢复错误相对应的主机请求,可以将从诊断过程生成的作为有效负载的诊断信息传送到主机。以此方式,主机可以存取诊断信息,而无需调用甚至可能不可用的附加调试协议。
[0026]
诊断信息可能大于对请求的响应的有效负载。为了解决此情况,诊断信息可以被分组化,使得每个分组在有效负载内战斗。主机的每个请求可以导致具有来自分组化诊断信息的新分组的响应。因此,标准请求响应协议可以用于将复杂且可能大的诊断信息传递到主机,而不影响通常用于在主机与存储器装置之间通信的接口或协议。
[0027]
本文中所描述的记录致命错误使存储器装置能够在发生不可恢复故障时转储诊断信息。这使得可以在故障时刻提取诊断信息的至少第一数据分组。如果主机平台能够进行更多次失败的读取操作,则也可以不费力地提取剩余的诊断信息。检索此诊断信息的主机错误处理例程可以像重复失败的请求一样简单(例如,操作)。如果主机不能执行所述请求,则操作员甚至可以离线地遵循此过程。因此,无需改变主机与存储器装置之间的接口或协议即可检索复杂的诊断信息。以下描述另外的细节和实例。
[0028]
图1示出了环境100的实例,其包含被配置成通过通信接口进行通信的主机装置105和存储器装置110。主机装置105或存储器装置110可以包含在各种产品150中,例如物联网(iot)装置(例如,冰箱或其它电器、传感器、电动机或致动器、移动通信装置、汽车、无人驾驶机等),以支持产品150的处理、通信或控制。图2提供了使用pslc编码的可调整nand写入性能的更具体细节。
[0029]
存储器装置110包含存储器控制器115和存储器阵列120,存储器阵列120包含例如许多个别存储器管芯(例如,三维(3d)nand管芯的堆叠)。在3d架构半导体存储器技术中,竖直结构被堆叠,增加了许多层、物理页,并且因此增加了存储器装置(例如,存储装置)的密度。在实例中,存储器装置110可以是主机装置105的离散存储器或存储装置组件。在其它实例中,存储器装置110可以是与主机装置105的一个或多个其它组件堆叠或以其它方式包含在其中的集成电路(例如,系统芯片(soc)等)的一部分。在这些实例中,存储器装置110经由互连链路111(例如,总线)与主机装置105组件通信。因此,如本文中所描述,即使当存储器装置110集成到主机装置105中时,主机或主机装置105的操作也不同于存储器装置110的操作。
[0030]
一或多个通信接口(例如,互连链路111)可以用于在存储器装置110与主机装置105的一或多个其它组件之间传送数据,例如串行高级技术附件(sata)接口、外围组件互连快速(pcie)接口、通用串行总线(usb)接口、通用快闪存储器(ufs)接口、emmc
tm
接口,或一或多个其它连接器或接口。主机装置105可以包含主机系统、电子装置、处理器、存储卡读取器或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可以是具有参考图6的机器600所讨论的一些部分或全部组件的机器。
[0031]
存储器控制器115可以从主机105接收指令,并且可以与存储器阵列120通信,例如将数据传送到(例如,写入或擦除)或来自(例如,读取)存储器阵列120的存储器单元、平面、子块、块或页中的一或多个。存储器控制器115尤其可以包含电路或包含一或多个组件或集成电路的固件。例如,存储器控制器115可以包含一或多个存储器控制单元、电路或组件,其被配置成控制跨越存储器阵列120的存取并且在主机105与存储器装置110之间提供转换层。尽管存储器控制器115在这里被示为存储器装置110封装的一部分,但是也可以采用其它配置,例如存储器控制器115是主机105的组件(例如,作为与存储器服务110分立的主机105的片上系统上的分立封装),或甚至经由主机105的中央处理单元(cpu)来实现。
[0032]
存储器管理器125尤其可以包含电路或固件,例如与各种存储器管理功能相关联
的几个组件或集成电路。为了本说明书的目的,将在nand存储器的上下文中描述实例存储器操作和管理功能。本领域技术人员将认识到,非易失性存储器的其它形式可以具有类似的存储器操作或管理功能。此些nand管理功能包含损耗均衡、垃圾收集或回收、错误检测或校正、块退出或一或多个其它存储器管理功能。存储器管理器125可以将主机命令(例如,从主机接收的命令)解析或格式化为装置命令(例如,与存储器阵列120的操作相关联的命令等),或生成用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。
[0033]
存储器管理器125可以包含一组管理表130,其被配置成维护与存储器装置110的一或多个组件相关联的各种信息(例如,与存储器阵列或耦合到存储器控制器115的一或多个存储器单元相关联的各种信息)。例如,管理表130可以包含关于耦合到存储器控制器115的一或多个存储器单元块的块寿命、块擦除计数、错误历史或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果一或多个错误计数的检测到的错误的数目超过阈值,则位错误可以被称为不可校正的位错误。管理表130可以尤其维护可校正或不可校正位错误的计数。在实例中,管理表103可以包含转换表或逻辑到物理(l2p)映射。
[0034]
阵列控制器135尤其可以包含被配置成控制与将数据写入耦合到存储器控制器115的存储器装置110的一或多个存储器单元,从中读取数据或擦除相关联的存储器操作的电路或组件等。存储器操作可以基于,例如从主机105接收或由存储器管理器125内部生成(例如,与损耗均衡、错误检测或校正等相关联)的主机命令。
[0035]
阵列控制器135可以包含错误校正码(ecc)组件140,其可以尤其包含ecc引擎或被配置成检测或校正与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元或从中读取数据相关联的错误的其它电路。存储器控制器115可以被配置成基于由阵列控制器135维护的ecc数据而主动地检测与数据的各种操作或存储相关联的错误发生(例如,位错误、操作错误等)并从其中恢复。这使得存储器控制器115能够维护在主机105与存储器装置110之间传送的数据的完整性或维护所存储数据的完整性。此完整性维护的一部分可以包含移除(例如,收回)发生故障的存储器资源(例如,存储器单元、存储器阵列、页、块等)以防止将来的错误。rain是存储器装置110可以采用以维护数据完整性的另一种技术。阵列控制器135可以被布置成在阵列120中实现rain奇偶校验数据生成和存储。存储器控制器115可以参与使用奇偶校验数据来重建损坏的数据。
[0036]
存储器控制器115还被配置成为存储器装置110提供致命错误记录。如上所述,所述技术涉及存储器控制器115捕获故障的诊断信息并经由主机105和存储器装置110之间的接口的标准读取响应机制将其提供给主机105。
[0037]
存储器控制器115被配置成接收(例如,经由存储器控制器115的通信接口)对存储器装置110的组件的第一读取请求。这里,所述组件是指阵列120的一部分,例如页、块、超级块、管芯等。例如,读取请求可以参考阵列120中四个管芯的第一管芯中的页。这里,组件可以指代管芯,因为页在管芯内。对于任何给定的实施方案,准确的范围是可变的,因为它取决于可以在其中获得诊断信息的粒度。因此,如果阵列120可以运行块级诊断,则所述组件是块。
[0038]
存储器控制器115被配置成响应于读取请求的执行而获得致命错误指示。因此,存
储器控制器115推断读取请求和致命错误指示之间的连接,例如读取请求的组件是或包含故障组件。
[0039]
本文中使用的致命错误是存储器控制器115所理解的不可恢复错误。因此,阵列120中或存储器控制器115中的传感器指示不可恢复的错误。例如,存储器控制器115可以尝试读取。错误校正指示读取已损坏。存储器控制器115试图使用ecc位来修复错误并且失败。然后,存储器控制器115可以尝试一或多个读取重试操作以解决问题。在用尽恢复错误的所有选项之后,存储器控制器115现在具有错误不能被解决的指示,并且因此导致致命错误。相反,如果ecc或读取重试过程设法校正错误,则它将不是致命错误。因此,获得故障指示包含从传感器接收中断、从传感器查询和检索状态信息、未能成功地执行错误恢复等中的任何一个。
[0040]
存储器控制器115被配置成响应于故障指示而收集硬件或软件上的诊断信息。在实例中,存储器控制器115包含调试电路以执行诊断并收集诊断信息。除了可以提供关于数据错误的性质的信息,此些调试电路可以包含探针、传感器或其它元件。在实例中,存储器控制器115加载固件以执行诊断。
[0041]
尽管存储器控制器115能够运行诊断,但是对于另一个实体,例如阵列120中的组件,例如管芯上诊断元件,也可以执行诊断。在此实例中,存储器控制器115被配置成查询执行诊断的组件以检索诊断信息,或存储器控制器115被配置成在完成时从组件接受诊断信息。在实例中,存储器控制器115被配置成响应于致命错误指示而启动组件以执行诊断。
[0042]
如下文所解释,诊断信息最终作为有效负载传递到存储器装置110外部的实体(例如主机105)以响应于请求。这里,有效负载是指在主机105与存储器控制器115之间的接口限定的读取请求成功的情况下保留用于读取数据的位、符号或数据段。因此,在实例中,考虑ufs协议信息单元(upiu),有效负载是通用upiu格式的数据段。然而,有效负载不同于标头数据(例如,来自通用upiu格式的标志、状态、装置信息)或其它元数据,所述元数据将不用于传送经受读取请求的用户数据。
[0043]
诊断信息可能超过有效负载大小。为了适应这一点,诊断信息被划分或分组化为适合有效负载的单元。因此,在实例中,存储器控制器115被配置成分组化诊断信息。在实例中,诊断信息的分组存储在存储器控制器115的工作存储器(例如,sram或其它易失性存储器)中、阵列120中或两者中。此存储使得完整的诊断信息最终能够由外部实体恢复。
[0044]
根据故障状况,在分组化诊断信息的情况下,可能存在例如由于完全故障或存储器装置110等而无法从存储器装置110提取全部诊断信息的情况。在例如此些情况中,确保所检索的诊断信息的分组是最有用的将是有益的。因此,在实例中,存储器控制器115被配置成根据重要性对诊断信息的部分进行排序。可以经由存储器控制器115的参数或作为存储器控制器115的制造的一部分来设定用于确定所述部分是否重要的标准。然后,可以使用诊断信息的部分的排序来构造分组,其中有序序列中的第一分组包含一或多个部分,所述一或多个部分表示第二分组或其它后续分组更重要的诊断数据。因此,当由外部实体存取时,最重要的诊断信息将被首先提供。
[0045]
为了避免在主机105和存储器装置115之间实现新的接口,维护标准请求-响应协议。然而,存储器控制器对请求的响应被修改为包含至少一部分诊断信息作为响应中的有效负载,而不是传统的损坏数据位。因此,存储器控制器115被配置成使用作为有效负载的
一些或全部诊断信息响应读取请求。在实例中,错误代码、信号或指示可以作为元数据(例如,在标头中,作为标志等)被包含在响应中。因为诊断信息可能是敏感的,所以在实例中,存储器控制器115被配置成加密有效负载中的诊断信息的部分。这里,可以使用任何适当的加密。
[0046]
在实例中,对诊断信息的部分进行排序,包含在有效负载中的诊断信息的部分具有在诊断信息的部分中最高的重要性。如上所述,这确保了外部实体(如主机105)以最及时的方式获得最相关的诊断信息。
[0047]
在实例中,第二读取请求指定组件。这里,使用存取特定于组件的诊断信息的协议。例如,如果主机105从页a请求数据并且发生数据错误,则主机105可以通过再次作出页a的相同请求(即,指定组件页a)来检索诊断信息。在实例中,对指定组件的每个后续读取请求的响应包含作为有效负载的诊断信息的新部分。在实例中,可以接收第三读取请求,并且响应于接收到第三读取请求,将作为有效负载的诊断信息的第二部分发送。通过遵循此协议,主机105在对页a进行第二请求时不会例如接收到不同组件的诊断信息,除非致命错误影响两个组件。图3示出了根据此协议的数据流的实例。
[0048]
在实例中,第二读取请求不指定组件。在实例中,每个后续读取请求响应包含作为有效负载的诊断信息的新部分,而不考虑在后续读取请求中指定的任何组件。这里,存储器控制器115被配置成针对任何请求发放诊断信息。例如,当数据错误影响整个存储器装置110或整个阵列120时,此些布置可能更有效。在实例中,响应的错误代码可以被存储器控制器115用来发信号通知有效负载不是所请求的数据,而是诊断信息。这在例如主机105接收到关于第一组件请求的致命错误指示,然后对主机105不知道其损坏或实际上有效的不同组件执行第二请求时是有用的。这里,传递诊断信息的优点包含清除诊断信息的工作存储器或阵列120高速缓存。图4示出了对应于此协议的数据流的实例。
[0049]
指定组件以获得诊断信息或在指定任何组件时接收诊断信息的协议可以是排外的或可以是混合的。因此,例如,存储器控制器115可以被配置成在请求中指定相关组件时提供诊断信息的部分。然后,例如,当工作存储器低时,存储器控制器115被配置成在请求任何组件时切换到提供诊断信息的剩余部分,以清除工作存储器高速缓存。相反地,存储器控制器115可以被配置成当指定任何组件时释放诊断信息,以便更快速地传递相关的诊断信息,并且然后当例如超出阈值的诊断信息的部分被传递时,或当存储器装置110的操作稳定时,以及其它标准时,切换到组件特定的协议。
[0050]
存储器阵列120可以包含布置在,例如装置、平面、子块、块或页中的许多存储器单元。作为一个实例,48gb tlc nand存储器装置可以包含每页(16,384+2208字节)18,592字节(b)的数据、每块1536页、每平面548块和每装置4或4个以上平面。作为另一个实例,32gb mlc存储器装置(每单元存储两个数据位(即,4个可编程状态))可以包含每页(16,384+2208字节)18,592字节(b)、每块1024页、每平面548块和每装置4个平面,但是所需写入时间具有一半,而相应的tlc存储器装置的编程/擦除(p/e)周期是其的两倍。其它实例可以包含其它数目或布置。在一些实例中,存储器装置或其一部分可以选择性地以slc模式或以所需的mlc模式(例如tlc、qlc等)操作。
[0051]
在操作中,数据通常以页的形式被写入或从nand存储器装置110读取并且以块的形式擦除。然而,根据需要,可以在较大或较小群组的存储器单元上执行一或多个存储器操
作(例如,读取、写入、擦除等)。nand存储器装置110的数据传送大小通常被称为页,而主机的数据传送大小通常被称为扇区。
[0052]
尽管数据页可以包含许多字节的用户数据(例如,包含许多数据扇区的数据有效负载)以及其相应的元数据,但页的大小通常仅指用于存储用户数据的字节的数目。作为实例,具有4kb页大小的数据页可以包含4kb用户数据(例如,假设扇区大小为512b的8个扇区)以及相应于用户数据的元数据的许多字节(例如,32b、54b、224b等),例如完整性数据(例如,错误检测或校正码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。
[0053]
不同类型的存储器单元或存储器阵列120可以提供不同的页大小,或可以需要与其相关联的不同量的元数据。例如,不同的存储器装置类型可以具有不同的位错误率,这可以导致需要不同的元数据量来确保数据页的完整性(例如,较高位错误率的存储器装置比较低位错误率的存储器装置可能需要更多字节的错误校正码数据)。作为实例,多级单元(mlc)nand快闪装置可以具有比相应的单级单元(slc)nand快闪装置更高的位错误率。这样,mlc装置可能需要比相应的slc装置更多的用于错误数据的元数据字节。
[0054]
图2至4示出了存储器装置与主机之间的错误记录通信的数据流的实例。图2示出了主机对存储器装置进行的数据x的读取操作205。存储器装置尝试执行读取操作205并且遭遇致命错误(操作210)。存储器装置响应于致命错误使用作为有效负载的损坏的数据以及错误代码(例如,错误信号、错误指示等)响应读取操作。图2中所示的数据流表示了一种在存储器装置中记录致命错误的更传统的方法。相反,图3和4的数据流在响应有效负载中提供诊断信息,而不是损坏的数据。
[0055]
图3表示一个数据流,其中主机通过在后续请求中不断地指定组件来指定主机需要的可能的几组诊断信息中的哪一组。因此,与图2的数据流类似,主机作出读取数据x的请求(操作305),并且存储器装置确定数据已损坏(操作310)。现在与图2的流程不同,在操作310中,存储器装置还收集与致命错误有关的诊断信息。
[0056]
这里,符合以上描述的存储器装置操作的变化,存储器装置在操作315处划分诊断信息。在实例中,所述部分等于响应有效负载。在实例中,所述部分小于响应有效负载。在实例中,如果小于响应有效负载,则部分的大小为响应有效负载的固定比率,例如二分之一、三分之一、四分之一、十分之一等。可以从小于有效负载的部分中产生的好处包含混合所述部分的能力。例如,如果在两个不同的标准下评估两个不同的部分,每个部分在不同的标准下排序最高,则可以在响应中传递这两个部分。
[0057]
如图所示,对请求305的第一响应包含代替图2(操作320)中所示的损坏的数据的记录的第一部分。然后可以使用请求和响应的重现(循环325)来检索诊断信息的剩余部分,每个请求指定数据x,并且每个响应传递诊断信息的全部部分的下一部分。
[0058]
图4的数据流以与图3中所示几乎相同的方式操作。主机对数据x执行读取命令(操作405),存储器装置尝试读取并且在遭遇致命错误时创建诊断信息(操作410),存储器装置划分诊断信息(415),以及存储器装包含作为有效负载的诊断信息的第一部分的响应(操作420)响应于读取405。然而,循环425不同于以上描述的循环325。这里,用于任何数据而不仅仅是数据x的后续命令导致具有包含诊断信息的下一部分的有效负载的响应。因此,例如,循环425中的第一读取可以用于数据abc,并且对读取的响应是在操作410处响应于对数据x
的读取405而生成的诊断信息的第二部分。
[0059]
图5示出了用于在存储器装置中记录致命错误的方法500的实例的流程图。方法500的操作由例如以上或以下描述的计算硬件(例如,图1的存储器控制器115或阵列控制器135,或图1至4和6中示出或描述的其它类型的处理电路)来执行。
[0060]
在操作505处,接收对存储器装置的组件的读取请求。
[0061]
在操作510处,检测到阻止正确执行读取请求的错误的致命错误指示。
[0062]
在操作515处,收集用于故障指示的诊断信息。
[0063]
在操作520处,对读取请求作出响应,所述响应包含作为有效负载的诊断信息的一部分。在实例中,响应包含元数据,所述元数据包含错误代码字段,并且其中错误代码字段的值对应于致命错误。
[0064]
在实例中,诊断信息的部分按重要性排序。这里,在第一响应中发送的诊断信息的部分具有最高的重要性。在实例中,按照对于任何进一步传输的重要性的排序发送所述部分。在实例中,有效负载被加密。
[0065]
方法500可以任选地扩展为包含接收第二读取请求,并且使用作为有效负载的诊断信息的第二部分响应第二读取请求。在实例中,方法500包含在接收到第二读取请求之后测试致命错误,并且响应于指示致命错误正在进行的测试,利用诊断信息的第二部分响应第二读取请求。这里,如果测试指示致命错误不再存在,则不发送第二响应。如果致命错误自行解决了,则这使得能够合理地重启存储器装置操作。
[0066]
在实例中,第二读取请求指定组件。在实例中,致命错误包含组件但是不包含第二组件,其中组件和第二组件均是存储器装置的存储单元。在实例中,存储单元是块。在实例中,对指定组件的每个后续读取请求的响应包含作为有效负载的诊断信息的新部分。
[0067]
在实例中,第二读取请求不指定组件。在实例中,每个后续读取请求响应包含作为有效负载的诊断信息的新部分,而不考虑在后续读取请求中指定的任何组件。
[0068]
图6示出了可以在本文中讨论的任何一或多个技术(例如,方法)上执行的实例机器600的框图。在替代实施例中,机器600可以作为独立装置操作或可以连接(例如,联网)到其它机器。在联网部署中,机器600可以在服务器-客户端网络环境中以服务器机器、客户端机器或两者的能力来操作。在实例中,机器600可以充当对等(p2p)(或其它分布式)网络环境中的对等机器。机器600可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、移动电话、网络应用、iot装置、汽车系统或能够执行(顺序或以其它方式)指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应被理解为包含机器的任何集合,所述机器单独地或联合地执行一组(或多组)指令以执行本文中所讨论的方法中的任何一或多个,例如云计算、软件即服务(saas)、其它计算机集群配置。
[0069]
如本文中所描述的实例可以包含逻辑、组件、装置、封装或机构,或可以由其操作。电路是在包含硬件(例如,简单电路、栅极、逻辑等)的有形实体中实现的电路的集合(例如,集合)。电路成员关系可以随时间和底层硬件变化而灵活。电路包含可以单独或组合地在操作时执行特定任务的构件。在实例中,电路的硬件可以不变地被设计成执行特定操作(例如,硬连线)。在实例中,电路的硬件可以包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含计算机可读介质,所述计算机可读介质被物理地修改
(例如,磁性、电的、不变质量粒子的可移动放置等)以编码特定操作的指令。在连接物理组件时,硬件组成的基础电特性被改变,例如,从绝缘体到导体,反之亦然。所述指令使参与的硬件(例如,执行单元或加载机制)能够经由可变连接在硬件中创建电路的构件,以在操作时执行部分特定任务。因此,当装置操作时,计算机可读介质可以通信地耦合到电路的其它组件。在实例中,任何物理组件可以在一个以上电路的一个以上构件中使用。例如,在操作下,执行单元可以在一个时间点被用在第一电路的第一电路中,并且在不同的时间被第一电路中的第二电路或第二电路中的第三电路重新使用。
[0070]
机器(例如,计算机系统)600(例如主机装置105、存储器装置110等)可以包含硬件处理器602(例如,中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核心或其任意组合,例如存储器控制器115等)、主存储器604和静态存储器606,它们中的一些或全部可以经由互连链路(例如,总线)608彼此通信。机器600可以进一步包含显示单元610、字母数字输入装置612(例如,键盘)和用户界面(ui)导航装置614(例如,鼠标)。在实例中,显示单元610、输入装置612和ui导航装置614可以是触摸屏显示器。机器600可以另外包含存储装置(例如,驱动单元)608、信号生成装置618(例如,扬声器)、网络接口装置620和一或多个传感器616,例如全球定位系统(gps)传感器、罗盘、加速度计或其它传感器。机器600可以包含输出控制器628,例如串行(例如,通用串行总线(usb),并行或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接,以通信或控制一或多个外围装置(例如,打印机、读卡器等)。
[0071]
存储装置608可以包含机器可读介质622,在所述机器可读介质622上存储了一或多组数据结构或指令624(例如,软件),所述数据结构或指令由本文中描述的任何一或多种技术或功能体现或利用。在机器600执行指令期间,指令624还可以完全地或至少部分地驻留在主存储器604内、静态存储器606内或硬件处理器602内。在实例中,硬件处理器602、主存储器604、静态存储器606或存储装置608中的一个或任意组合可以构成机器可读介质622。
[0072]
虽然机器可读介质622被示为单个介质,但是术语“机器可读介质”可以包含被配置成存储一或多个指令624的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。
[0073]
术语“机器可读介质”可以包含能够存储、编码或承载用于由机器600执行的指令并且使机器600执行本公开的任何一或多种技术的任何介质,或能够存储、编码或承载由此些指令使用或与所述指令相关联的数据结构。非限制性机器可读介质的实例可以包含固态存储器以及光学和磁介质。在实例中,大容量机器可读介质包括具有多个具有不变(例如,静止)质量的粒子的机器可读介质。因此,大容量机器可读介质不是暂时传播信号。大容量机器可读介质的具体实例可以包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))和快闪存储器装置;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。
[0074]
指令624(例如,软件、程序、操作系统(os)等)或其它数据存储在存储装置621上,可以由存储器604存取以供处理器602使用。存储器604(例如,dram)通常是快速的,但是易失性的,并且因此是与存储装置621(例如,ssd)不同类型的存储类型,其适合于长期存储,包含当处于“关闭”状态时。由用户或机器600使用的指令624或数据通常被加载到存储器604中,以供处理器602使用。当存储器604已满时,可以分配来自存储装置621的虚拟空间来
补充存储器604;然而,由于存储装置621通常比存储器604慢,并且写入速度通常至少是读取速度的两倍,因此由于存储装置延迟(与存储器604相比,例如,dram),虚拟存储器的使用可以极大地降低用户体验。此外,将存储装置621用于虚拟存储器可以极大减少存储装置621的可用寿命。
[0075]
与虚拟存储器相比,虚拟存储器压缩(例如,内核特征“zram”)使用部分存储器作为压缩块存储,以避免分页到存储装置621。在压缩块中进行分页,直到必要将此些数据写入存储装置621。虚拟存储器压缩增加了存储器604的可用大小,同时降低了对存储装置621的损耗。
[0076]
为移动电子装置或移动存储器优化的存储装置通常包含mmc固态存储装置(例如,微安全数字(microsd
tm
)卡等)。mmc装置包含与主机装置的许多并行接口(例如,8位并行接口),并且通常是可移动的并且与主机装置分离的组件。相反,emmc
tm
装置以与基于串行ata
tm
(串行at(高级技术)附件或sata)的ssd装置相媲美的读取速度附接到电路板并被视为主机装置的组件。然而,对移动装置性能的需求持续增加,例如完全启用虚拟或增强现实装置,利用增加的网络速度等。响应于此需求,存储装置已经从并行转换到串行通信接口。包含控制器和固件的通用快闪储存(ufs)装置使用具有专用读取/写入路径的低压差分信号(lvds)串行接口与主机装置通信,从而进一步提高读取/写入速度。
[0077]
指令624可以进一步经由网络接口装置620利用许多传送协议(例如,帧中继、因特网协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、超文本传送协议(http)等)中的任何一个,使用传输介质通过通信网络626来传输或接收。实例通信网络可以包含局域网(lan)、广域网(wan)、分组数据网络(例如,因特网)、例如由第三代合作伙伴计划(3gpp)系列标准(例如,3g、4g、5g、长期演进(lte)等)的移动电话网络(例如,蜂窝网络)、普通老式电话(pots)网络和无线数据网络(例如,电气和电子工程师协会(ieee)802.11系列标准,被称为wi-fi标准),ieee 802.15.4系列标准、对等(p2p)网络等。在实例中,网络接口装置620可以包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线以连接到通信网络626。在实例中,网络接口装置620可以包含多个天线,以使用单输入多输出(simo)、多输入多输出(mimo)或多输入单输出(miso)技术中的至少一者来进行无线通信。术语“传输介质”应被理解为包含可以存储、编码或承载由机器600执行的指令的任何无形介质,并且包含数字或模拟通信信号或其它无形介质以便于此些软件的通信。
[0078]
附加注释和实例:
[0079]
实例1是用于在存储器装置中记录致命错误的设备,所述设备包括:通信接口,其用于接收对存储器装置的组件的读取请求;以及处理电路,其用于:检测阻止正确执行读取请求的错误的致命错误指示;收集故障指示的诊断信息;以及经由通信接口使用作为有效负载的诊断信息的一部分和使用错误代码的元数据响应读取请求,其中有效负载是在未发生致命错误的情况下原本将用于受读取请求支配的用户数据的位。
[0080]
在实例2中,根据实例1所述的主题,其中通信接口被配置成接收第二读取请求;并且其中所述处理电路被配置成使用作为有效负载的所述诊断信息的第二部分以响应所述第二读取请求。
[0081]
在实例3中,根据实例2所述的主题,其中处理电路被配置成:在接收第二读取请求之后测试致命错误;以及响应于指示所述致命错误正在进行的测试,经由所述通信接口使
用所述诊断信息的第二部分响应所述第二读取请求。
[0082]
在实例4中,根据实例2至3中任一个所述的主题,其中第二读取请求指定所述组件。
[0083]
在实例5中,根据实例4所述的主题,其中致命错误包含组件但是不包含第二组件,其中组件和第二组件均是存储器装置的存储单元。
[0084]
在实例6中,根据实例所述5的主题,其中存储单元是块。
[0085]
在实例7中,根据实例4至6中任一个所述的主题,其中对指定组件的每个后续读取请求的响应包含作为有效负载的诊断信息的新部分。
[0086]
在实例8中,根据实例2至7中任一个所述的主题,其中第二读取请求不指定所述组件。
[0087]
在实例9中,根据实例8所述的主题,其中每个后续读取请求响应包含作为有效负载的诊断信息的新部分,而不考虑在后续读取请求中指定的任何组件。
[0088]
在实例10中,根据实例1至9中任一个所述的主题,其中诊断信息的部分按重要性排序,并且其中所述诊断信息的所述部分具有最高重要性。
[0089]
在实例11中,根据实例1至10中任一个所述的主题,其中所述有效负载被加密。
[0090]
实例12是用于在存储器装置中记录致命错误的方法,所述方法包括:接收对所述存储器装置的组件的读取请求;检测阻止正确执行读取请求的错误的致命错误指示;收集故障指示的诊断信息;以及使用作为有效负载的诊断信息的一部分和使用错误代码的元数据响应读取请求,其中所述有效负载是在未发生致命错误的情况下原本将用于经受所述读取请求的用户数据的位。
[0091]
在实例13中,根据实例12所述的主题,其包括:接收第二读取请求;以及使用作为有效负载的诊断信息的第二部分响应第二读取请求。
[0092]
在实例14中,根据实例13所述的主题,其包括:在接收第二读取请求之后测试致命错误;以及响应于指示所述致命错误正在进行的测试,使用所述诊断信息的第二部分响应所述第二读取请求。
[0093]
在实例15中,根据实例13至14中任一个所述的主题,其中第二读取请求指定所述组件。
[0094]
在实例16中,根据实例15所述的主题,其中致命错误包含组件但是不包含第二组件,其中组件和第二组件均是存储器装置的存储单元。
[0095]
在实例17中,根据实例所述16的主题,其中存储单元是块。
[0096]
在实例18中,根据实例15至17中任一个所述的主题,其中对指定组件的每个后续读取请求的响应包含作为有效负载的诊断信息的新部分。
[0097]
在实例19中,根据实例13至18中任一个所述的主题,其中第二读取请求不指定组件。
[0098]
在实例20中,根据实例19所述的主题,其中每个后续读取请求响应包含作为有效负载的诊断信息的新部分,而不考虑在后续读取请求中指定的任何组件。
[0099]
在实例21中,根据实例12至20中任一个所述的主题,其中诊断信息的部分按重要性排序,并且其中所述诊断信息的所述部分具有最高重要性。
[0100]
在实例22中,根据实例12至21中任一个所述的主题,其中所述有效负载被加密。
[0101]
实例23是一种机器可读介质,其包含在存储器装置中记录致命错误的指令,所述指令在由所述存储器装置的处理电路执行时,使得所述处理电路执行包括以下各项的操作:接收对所述存储器装置的组件的读取请求;检测阻止正确执行读取请求的错误的致命错误指示;收集故障指示的诊断信息;以及使用作为有效负载的诊断信息的一部分和使用错误代码的元数据响应读取请求,其中所述有效负载是在未发生致命错误的情况下原本将用于经受所述读取请求的用户数据的位。
[0102]
在实例24中,根据实例23所述的主题,其中所述操作包括:接收第二读取请求。以及使用作为有效负载的诊断信息的第二部分响应第二读取请求。
[0103]
在实例25中,根据实例24所述的主题,其中操作包括:在接收第二读取请求之后测试致命错误;以及响应于指示所述致命错误正在进行的测试,使用所述诊断信息的第二部分响应所述第二读取请求。
[0104]
在实例26中,根据实例24至25中任一个所述的主题,其中第二读取请求指定所述组件。
[0105]
在实例27中,根据实例26所述的主题,其中致命错误包含组件但是不包含第二组件,其中组件和第二组件均是存储器装置的存储单元。
[0106]
在实例28中,根据实例所述27的主题,其中存储单元是块。
[0107]
在实例29中,根据实例26至28中任一个所述的主题,其中对指定组件的每个后续读取请求的响应包含作为有效负载的诊断信息的新部分。
[0108]
在实例30中,根据实例24至29中任一个所述的主题,其中第二读取请求不指定组件。
[0109]
在实例31中,根据实例30所述的主题,其中每个后续读取请求响应包含作为有效负载的诊断信息的新部分,而不考虑在后续读取请求中指定的任何组件。
[0110]
在实例32中,根据实例23至31中任一个所述的主题,其中诊断信息的部分按重要性排序,并且其中所述诊断信息的所述部分具有最高重要性。
[0111]
在实例33中,根据实例23至32中任一个所述的主题,其中所述有效负载被加密。
[0112]
实例34是用于在存储器装置中记录致命错误的系统,所述系统包括:用于接收对所述存储器装置的组件的读取请求的装置;用于检测阻止正确执行读取请求的错误的致命错误指示的装置;用于收集故障指示的诊断信息的装置;以及用于使用作为有效负载的诊断信息的一部分和使用错误代码的元数据响应读取请求的装置,其中所述有效负载是在未发生致命错误的情况下原本将用于经受所述读取请求的用户数据的位。
[0113]
在实例35中,根据实例34所述的主题,其包括:用于接收第二读取请求的装置;以及用于使用作为有效负载的诊断信息的第二部分响应第二读取请求的装置。
[0114]
在实例36中,根据实例35所述的主题,其包括:用于在接收第二读取请求之后测试致命错误的装置;以及用于响应于指示所述致命错误正在进行的测试,使用所述诊断信息的第二部分响应所述第二读取请求的装置。
[0115]
在实例37中,根据实例35至36中任一个所述的主题,其中第二读取请求指定所述组件。
[0116]
在实例38中,根据实例37所述的主题,其中致命错误包含组件但是不包含第二组件,其中组件和第二组件均是存储器装置的存储单元。
[0117]
在实例39中,根据实例所述38的主题,其中存储单元是块。
[0118]
在实例40中,根据实例37至39中任一个所述的主题,其中对指定组件的每个后续读取请求的响应包含作为有效负载的诊断信息的新部分。
[0119]
在实例41中,根据实例35至40中任一个所述的主题,其中第二读取请求不指定组件。
[0120]
在实例42中,根据实例41所述的主题,其中每个后续读取请求响应包含作为有效负载的诊断信息的新部分,而不考虑在后续读取请求中指定的任何组件。
[0121]
在实例43中,根据实例34至42中任一个所述的主题,其中诊断信息的部分按重要性排序,并且其中所述诊断信息的所述部分具有最高重要性。
[0122]
在实例44中,根据实例34至43中任一个所述的主体,其中所述有效负载被加密。
[0123]
实例45是包含指令的至少一个机器可读介质,所述指令在由处理电路执行时使处理电路执行操作以实现实例1至44中的任何一个。
[0124]
实施例46是包括实现实例1至44中任一项的装置的设备。
[0125]
实施例47是实现实例1至44中任一个的系统。
[0126]
实施例48是实现实例1至44中任一个的方法。
[0127]
以上详细描述包含对附图的参考,附图形成了详细描述的一部分。附图以图示的方式展示了可以实施本发明的具体实施例。这些实施例在本文中也称为“实例”。此些实例可以包含除了那些展示或描述之外的元件。然而,本发明人还考虑了仅提供了所展示或描述的那些元件的实例。此外,本发明人还考虑使用所展示或所描述的那些元件(或其一或多个方面)的任何组合或排列的实例,或关于特定实例(或其一或多个方面),或关于本文中所展示或所描述的其它实例(或其一或多个方面)。
[0128]
在此文件中,如在专利文件中常见的,使用术语“一个(a)”或“一个(an)”来包含一个或一个以上,独立于“至少一个”或“一或多个”的任何其它例子或用法。在此文件中,术语“或”用于指非排他性的,使得“a或b”可以包含“a而不是b”、“b而不是a”和“a和b”,除非另有说明。在所附权利要求中,术语“包含”和“在其中”用作相应术语“包括”和“其中”的简单英语等同物。此外,在下面的权利要求中,术语“包含”和“包括”是开放式的,即,除了在权利要求中在此些术语之后列出的那些元件之外,包含元件的系统、装置、物品或过程仍然被认为落入所述权利要求的范围内。此外,在以下权利要求中,术语“第一”、“第二”和“第三”等仅用作标记,而不旨在对其对象施加数字要求。
[0129]
在各种实例中,本文中描述的组件、控制器、处理器、单元、引擎或表可以包含存储在物理装置上的物理电路或固件等。本文中使用的“处理器”是指任何类型的计算电路,例如但不限于微处理器、微控制器、图形处理器、数字信号处理器(dsp)或任何其它类型的处理器或包含一组处理器或多核装置的处理电路。
[0130]
本文中使用的术语“晶片”和“衬底”一般是指在其上形成集成电路的任何结构,并且还指在集成电路制造的各个阶段期间的此些结构。因此,以下详细描述不应在限制性意义上理解,并且各种实施例的范围仅由所附权利要求书连同所述权利要求书所授权的等效物的全部范围来限定。
[0131]
根据本公开并且本文中所描述的各种实施例包含利用存储器单元的竖直结构(例如,存储器单元的nand串)的存储器。如本文中所使用,将相对于在其上形成存储器单元的
衬底的表面而采用方向形容词(即,将采用延伸远离衬底表面的竖直结构,将采用竖直结构的底端作为最靠近衬底表面的一端,并且将采用竖直结构的顶端作为最远离衬底表面的一端)。
[0132]
如本文中所使用,操作存储器单元包含读取、写入或擦除存储器单元。将存储器单元置于预期状态的操作在本文中被称为“编程”,并且可以包含写入到存储器单元或从存储器单元擦除(例如,存储器单元可以被编程为擦除状态)。
[0133]
根据本公开的一或多个实施例,位于存储器装置的内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设置、调整、计算、改变、清除、通信、适配、推导、限定、利用、修改、应用等)大量损耗周期或损耗状态(例如,记录损耗周期,对存储器装置在其发生时的操作进行计数,跟踪其起始的存储器装置的操作,评估对应于损耗状态的存储器装置特性等)。
[0134]
根据本公开的一或多个实施例,存储器存取装置可以被配置成随每次存储器操作向存储器装置提供损耗周期信息。存储器装置控制电路(例如,控制逻辑)可以被编程以补偿对应于损耗周期信息的存储器装置性能变化。存储器装置可以接收损耗周期信息并且响应于磨损周期信息确定一或多个操作参数(例如,值、特征)。
[0135]
本文中所描述的方法实例至少部分地可以是机器或计算机实现的。一些实例可以包含用指令编码的计算机可读介质或机器可读介质,所述指令可操作来配置电子装置以执行如以上实例中所描述的方法。此些方法的实现可以包含代码,例如微代码、汇编语言代码、高级语言代码等。此些代码可以包含用于执行各种方法的计算机可读指令。所述代码可以形成计算机程序产品的部分。此外,代码可以被有形地存储在一或多个易失性或非易失性有形计算机可读介质上,例如在执行期间或在其它时间。这些有形计算机可读介质的实例可以包含但不限于硬盘、可移动磁盘、可移动光盘(例如,压缩盘和数字视频盘)、磁带、存储卡或棒、随机存取存储器(ram)、只读存储器(rom)、固态驱动器(ssd)、通用快闪存储(ufs)装置、嵌入式mmc(emmc)装置等。
[0136]
以上描述旨在说明而非限制。例如,以上描述实例(或其一或多个方面)可以彼此组合使用。可以使用其它实施例,例如由本领域技术人员在阅读以上描述后。提交时应理解,其将不用于解释或限制权利要求的范围或含义。此外,在以上详细描述中,可以将各种特征组合在一起以简化本公开。这不应被解释为意指未要求保护的揭示特征对于任何权利要求是必要的。相反,发明主题可以在于少于特定揭示实施例的所有特征。因此,以下权利要求由此并入到详细描述中,其中每个权利要求独立地作为单独的实施例,并且预期此些实施例可以在各种组合或排列中彼此组合。本发明的范围应参考所附权利要求以及此些权利要求所赋予的等同物的全部范围来确定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1