一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器子系统自测操作的制作方法

2021-07-02 21:13:00 来源:中国专利 TAG:子系统 存储器 地说 自测 公开
存储器子系统自测操作的制作方法

本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及存储器子系统自测操作。



背景技术:

存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统来在存储器组件处存储数据且从存储器组件检索数据。



技术实现要素:

本公开的一方面涉及一种用于存储器子系统自测操作的方法,其包括:通过存储器子系统控制器的组件,请求对与可耦合到所述控制器的存储器装置相关联的数据路径的控制;通过所述组件,产生对应于测试所述存储器装置的操作的数据;通过所述组件,致使所述数据注入到所述数据路径,使得所述数据写入到所述存储器装置;通过所述组件,读取写入到所述存储器装置的所述数据;以及通过所述组件,确定所述组件从所述存储器装置读取的所述数据是否与写入到所述存储器装置的所述数据匹配。

本公开的另一方面涉及一种用于存储器子系统自测操作的系统,其包括:多个存储器装置;以及存储器子系统控制器,其可耦合到所述多个存储器装置,且包括驻存在其上的组件以执行包含以下各项的操作:请求对与所述多个存储器装置之中的至少一个存储器装置相关联的数据路径的控制;产生对应于测试所述多个存储器装置之中的第一存储器装置的操作的数据;致使所述数据注入到所述数据路径,使得所述数据写入到所述多个存储器装置之中的所述第一存储器装置;读取写入到所述多个存储器装置之中的所述第一存储器装置的所述数据;以及确定所述组件从所述多个存储器装置之中的所述第一存储器装置读取的所述数据是否与写入到所述多个存储器装置之中的所述第一存储器装置的所述数据匹配。

本公开的又一方面涉及一种用于存储器子系统自测操作的系统,其包括:存储器子系统控制器;第一存储器装置,其耦合到所述存储器子系统控制器;以及第二存储器装置,其耦合到所述存储器子系统控制器;其中所述存储器子系统控制器包括组件,所述组件经配置以:产生对应于测试所述第一存储器装置或所述第二存储器装置或这两者的操作的数据;致使所述数据注入到将所述第一存储器装置或所述第二存储器装置中的至少一者耦合到所述存储器子系统的数据路径,使得所述数据写入到所述第一存储器装置或所述第二存储器装置中的至少一者;读取写入到所述第一存储器装置或所述第二存储器装置中的所述至少一者的所述数据;以及确定所述读取的数据是否与写入到所述第一存储器装置或所述第二存储器装置中的所述至少一者的所述数据匹配。

附图说明

根据下文给出的详细描述和本发明的各种实施例的附图,将更充分地理解本发明。

图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。

图2说明根据本公开的一些实施例的存储器子系统控制器和自测组件的实例。

图3说明根据本公开的一些实施例的存储器子系统控制器和自测组件的另一实例。

图4说明根据本公开的一些实施例的存储器子系统控制器和自测组件的又一实例。

图5说明对应于根据本公开的一些实施例的存储器子系统自测操作的流程图。

图6是对应于根据本公开的一些实施例的用于执行存储器子系统自测操作的方法的流程图。

图7是本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的方面是针对使用存储器子系统执行的自测操作,明确地说,是针对包含自测操作组件的存储器子系统。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储器子系统的实例是存储系统,例如非易失性双列直插式存储器模块(nvdimm)。下文结合图1以及其它地方描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个存储器组件,例如存储数据的“存储器装置”。主机系统可提供数据以存储在存储器子系统处,并且可请求从存储器子系统检索数据。

非易失性双列直插式存储器模块(nvdimm)是一种类型的随机存取存储器,其具有用于正常操作的易失性存储器,以及其中在电力失效的情况下,使用机载备用电源传送易失性存储器的内容的非易失性存储器。nvdimm-n是双列直插式存储器模块(dimm),其通常在同一模块上具有快闪存储装置和传统的动态随机存取存储器(dram)。主机处理单元可直接存取传统的dram。主机,相对于存储器单元,可结构化为响应于主机正运行应用程序而控制进出存储器单元的数据的一或多个处理器。在电力故障的情况下,nvdimm-n将所有数据从其易失性的传统dram或dram的集合复制到其永久快闪存储装置,且在电力恢复时,将所有数据复制回到所述易失性的传统dram或dram的集合。所有dram数据到永久快闪存储装置上的永久数据的状态的传送可在电力循环上执行。nvdimm具有其自身的电池备用电源或对专用电源的接入权,以允许nvdimm完成保存。

在各种实施例中,可实施nvdimm中的一组控制寄存器,以将nvdimm中的存储器的局部保存提供给非易失性存储器,其中“存储器”是指nvdimm的主存储器。所述主存储器是易失性存储器,例如dram,其存储用户数据。所述组控制寄存器可提供一种机制,以通过包含易失性存储器的一部分的开始偏移量以识别保存操作的开始且通过包含易失性存储器的待保存的一定量的内容来进行局部保存。主机可用保存操作的开始的识别以及用于所述保存操作的一定量的内容来填充nvdimm中的所述组控制寄存器。这组控制寄存器还可控制将局部保存恢复回到nvdimm的易失性存储器的逆操作。用于维持存储在nvdimm上的数据的此结构向主机提供增加的灵活性来相对于主机正处理的应用程序操控用户数据。向主机提供存取权来以任何偏移量执行完整内容或局部内容保存。这可向主机提供对保存和恢复什么具有较好控制且较多控制的能力。

通过利用nvdimm的保存和/或局部保存能力,本文中的实施例可允许与nvdimm装置相关联的组件的内置自测。举例来说,可本文所述的使用内置自测操作来检查与nvdimm相关联的存储器装置(例如易失性存储器和/或非易失性存储器)、时钟组件(例如寄存时钟驱动器),以及与nvdimm相关联的各种数据路径,例如非易失性和易失性存储器装置之间的数据路径)和/或接口(例如非易失性存储器接口、系统存储器接口、lcom接口等)的完整性。

如本文更详细地描述,可使用驻存在nvdimm上的内置自测组件(本文简称为“组件”)来进行内置自测操作。在一些实施例中,内置自测组件可驻存在与nvdimm相关联的控制器(例如存储器子系统控制器)上。如本文中所使用,术语“驻存在……上”是指某物物理上位于特定组件上。举例来说,内置自测组件“驻存在”控制器“上”是指其中内置自测组件物理上位于控制器上的情况。术语“驻存在……上”可在本文中与例如“部署在……上”或“位于……上”的其它术语互换使用。

通过在nvdimm内提供内置自测组件(例如驻存在控制器上),可相比于其中不将此组件部署在存储器子系统内的方法,实现对存储器子系统(例如nvdimm)的其它组件的改进的可见性。举例来说,在一些方法中,可将存储器子系统以不透明方式呈现给主机,使得主机对与所述存储器子系统相关联的数据路径、接口和其它组件具有极少(如果有的话)可见性。这通常归因于一些方法中对向主机遮蔽存储器子系统架构的各个方面的需要。然而,通过将所述存储器子系统架构的各个方面从主机遮蔽,与所述存储器子系统相关联的内部数据路径、接口和其它组件的测试和/或故障排查可为不可能的。

相比之下,在本文中的包含驻存在存储器子系统或存储器子系统控制器上的内置自测组件的实施例中,在一些其它方法中,对与从主机遮蔽的存储器子系统相关联的各种内部数据路径、接口和其它组件执行测试和/或故障排查可为可能的。举例来说,因为可提供驻存在存储器子系统和/或存储器子系统控制器上的内置自测组件,所以本文描述的实施例可允许内置自测组件接入所述存储器子系统内部的数据路径和接口,断言可跨越所述内部数据路径和/或接口的各种命令和/或信号(例如测试向量、位模式等),且分析所述命令和/或信号的特性,作为对所述存储器子系统和/或所述存储器子系统的特定组件或部分执行自测操作的一部分。

图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或其组合。

存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm)和非易失性双列直插式存储器模块(nvdimm)。

计算系统100可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(iot)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。

计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。

主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。

主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm快速(nvme)接口来存取存储器组件(例如存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。

存储器装置可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(nand)型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列,基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下,对所述非易失性存储器单元进行编程。

存储器装置130中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单电平单元(slc)可每单元存储一个位。其它类型的存储器单元,例如多电平单元(mlc)、三电平单元(tlc)和四电平单元(qlc)可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分,以及mlc部分、tlc部分或qlc部分。存储器装置130的存储器单元可分组为页,页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可分组以形成块。

尽管描述了例如3d交叉点型的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器或存储装置,例如“与非”(nand)、只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、“或非”(nor)快闪存储器以及电可擦除可编程只读存储器(eeprom)。

存储器子系统控制器115(或简称控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,以及其它这类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或其它合适的处理器。

存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器117(例如,处理装置)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流以及例程。

在一些实施例中,本地存储器119可包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。

一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可另外包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换为命令指令,以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统120的信息。

存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如dram)和地址电路系统(例如行解码器和列解码器),其可接收来自存储器子系统控制器115的地址,并解码所述地址以存取存储器装置130和/或存储器装置140。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130可以是受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。

存储器子系统110包含自测组件113,其可经配置以安排和/或对存储器子系统110的各种组件、数据路径和/或接口执行测试操作。尽管图1中为了不使图式模糊而未示出,但自测组件113可包含各种电路系统以促进存储器单元集合的定级和分配。举例来说,自测组件113可包含呈asic、fpga、状态机和/或其它逻辑电路系统的形式的专用电路系统,其可允许自测组件113安排和/或对存储器子系统110的各种组件、数据路径和/或接口执行测试操作。

如结合图2、图3和图4更详细描述,自测组件113可以通信方式可耦合到存储器装置130,且可接入存储器装置130、存储器装置140、时钟组件(例如图2中所说明的时钟组件218)、存储器子系统110的内部数据路径,和/或存储器子系统110的接口,以执行本文所述的操作。在一些实施例中,由自测组件113执行的操作可在存储器子系统110和/或存储器子系统控制器115的制造的初始化或预初始化阶段期间执行。因此,在一些实施例中,自测组件113可在存储器子系统110的制造期间和/或制造之后,但在存储器子系统110的封装之前,执行本文所述的操作。然而,实施例不限于此,且在一些实施例中,自测组件113可在存储器子系统110的操作阶段期间执行本文所述的操作,以例如在存储器子系统110的现场执行现场测试和/或故障排查。

在非限制性实例中,自测组件113(例如组件)驻存在存储器子系统控制器115上,且可经配置以请求与至少一个存储器装置(例如存储器装置130、存储器装置140或这两者)相关联的数据路径(例如本文在图4中示出的数据路径430和/或数据路径432)的控制。在一些实施例中,在注入对应于测试第一存储器装置的操作(或测试下文所述的第二存储器装置的操作)的数据之前,数据路径可用以在主机系统120和存储器子系统控制器和与存储器子系统110相关联的至少一个存储器装置之间传送信息。

自测组件113可经配置以产生对应于测试特定存储器装置(例如第一存储器装置)的操作的数据,且致使所述数据注入到数据路径,使得所述数据被写入到所述第一存储器装置。可将数据写入到第一存储器装置,作为将数据保存到第一存储器装置的操作的一部分,或使用第一存储器装置来执行局部保存操作的操作的一部分。

由组件113产生且注入到数据路径中的数据可为对应于特定位模式的位量。举例来说,数据可为特定位模式,例如a5位模式、用户控制位模式、双向(dq)引脚控制数据模式、含有所有“1”所有“0”或“1”和“0”的组合的位模式,或可写入到第一存储器装置(或与第一存储器装置不同的存储器装置)和从其读取的其它合适的位模式。在一些实施例中,所述数据可包含字母数字字符的特定复现性集合,例如一串交替的一和零或一定量的一(或零)接着一定量的零(或一)。将了解,实施例不限于这些计数实例,且所述数据可包含位模式和/或可写入到存储器装置和从存储器装置读取等的数据。

自测组件113可进一步经配置以读取写入到第一存储器装置的数据,且确定组件113从第一存储器装置读取的数据是否与写入到第一存储器装置的数据匹配。在一些实施例中,自测组件113可将自测组件113所产生且注入到数据路径中的数据与从第一存储器装置检索到的数据进行比较,以确定组件113从第一存储器装置读取的数据是否与写入到第一存储器装置的数据匹配。如果组件113从第一存储器装置读取的数据与写入到第一存储器装置的数据匹配,那么自测组件113可确定第一存储器装置和/或将第一存储器装置耦合到存储器子系统控制器115的数据路径按既定起作用(例如处于标准工作次序)。

继续上述非限制性实例,自测组件113可经配置以产生对应于测试第二存储器装置(例如存储器装置130或存储器装置140)的操作的数据。在此实例中,如果经受测试操作的第一存储器装置是存储器装置130,那么第二存储器装置可为存储器装置140。相反,如果经受测试操作的第一存储器装置是存储器装置140,那么第二存储器装置可为存储器装置130。

组件113可经配置以致使数据注入到数据路径,使得所述数据被写入到第二存储器装置。如上文所描述,可将数据写入到第二存储器装置,作为将数据保存到第二存储器装置的操作的一部分,或使用第二存储器装置来执行局部保存操作的操作的一部分。在一些实施例中数据注入到其的数据路径可不同于用以测试第一存储器装置的数据路径。举例来说,如果用以测试第一存储器装置的数据路径是图4中示出的数据路径430,那么可将数据注入到图4中示出的数据路径432,以测试第二存储器装置。相反,如果用以测试第一存储器装置的数据路径是图4中示出的数据路径432,那么可将数据注入到图4中示出的数据路径430以测试第二存储器装置。然而,实施例不限于此,且在一些实施例中,可将数据注入到其它数据路径(例如本文在图4中示出的数据路径434、数据路径436等)。

组件113可进一步经配置以读取写入到第二存储器装置的数据,且确定所述组件从第二存储器装置读取的数据是否与写入到第二存储器装置的数据匹配。如上文所描述,自测组件113可将自测组件113所产生且注入到数据路径中的数据与从第二存储器装置检索到的数据进行比较,以确定组件113从第二存储器装置读取的数据是否与写入到第二存储器装置的数据匹配。如果组件113从第二存储器装置读取的数据与写入到第二存储器装置的数据匹配,那么自测组件113可确定第二存储器装置和/或将第二存储器装置耦合到存储器子系统控制器115的数据路径按既定起作用(例如处于标准工作次序)。

在一些实施例中,组件113可响应于确定组件从第一存储器装置读取的数据与写入到第一存储器装置的数据匹配而产生第一指示,和/或响应于确定组件从第一存储器装置读取的数据并不与写入到第一存储器装置的数据匹配而产生第二指示。类似地,组件113可响应于确定组件从第二存储器装置读取的数据与写入到第二存储器装置的数据匹配而产生第一指示,和/或响应于确定组件从第二存储器装置读取的数据并不与写入到第二存储器装置的数据匹配而产生第二指示。举例来说,组件113可产生并提供测试操作成功(或测试操作不成功)的指示,以辅助存储器子系统110的故障排查。在一些实施例中,可以最终用户诊断的形式提供所述指示,最终用户诊断可辅助识别存储器子系统110的恰当地起作用或未恰当地起作用的特定部分。

图2说明根据本公开的一些实施例的存储器子系统控制器215和自测组件213的实例。存储器子系统控制器215可类似于图1所示的存储器子系统控制器115,且自测组件213可类似于图1所示的自测组件113。另外,处理器217可类似于图1所示的处理器117,存储器装置230可类似于图1所示的存储器装置130,且存储器装置240可类似于图1所示的存储器装置140。除自测组件213、处理器217、存储器装置230和存储器装置240之外,存储器子系统控制器215还可包括时钟组件218、系统互连件212、易失性存储器控制基础结构214,其可包含易失性存储器控制器219和非易失性存储器控制基础结构216。

时钟组件218可将时序信号提供给存储器子系统控制器215,以促进存储器子系统控制器215所安排的存储器操作的执行。在一些实施例中,时钟组件218可为寄存器时钟驱动器,其可经配置以在存储器子系统控制器215的操作期间,缓冲和/或将命令和/或地址再驱动到存储器装置230和/或存储器装置240。

系统互连件212可为可允许命令、信号、指令等在处理器217、时钟组件218、易失性存储器控制基础结构214和非易失性存储器控制基础结构216之间传递的通信子系统。系统互连件212可为横杆(“xbar”)、片上网络或其它通信子系统,其实现处理器217、时钟组件218、易失性存储器控制基础结构214和非易失性存储器控制基础结构216之间的互连和互操作性。举例来说,系统互连件212可促进处理器217、时钟组件218、易失性存储器控制基础结构214和非易失性存储器控制基础结构216之间的可见性,以促进其间的通信。在一些实施例中,处理器217、时钟组件218、易失性存储器控制基础结构214和非易失性存储器控制基础结构216之间经由系统互连件212的通信可经由相应的数据路径(由将系统互连件212连接到存储器子系统控制器215的其它组件的箭头所示)提供,其在本文结合图4更详细地描述。

易失性存储器控制基础结构214可包含控制存储器装置230与主机(例如图1所示的主机系统120)之间的数据传送的电路系统。举例来说,易失性存储器控制基础结构214可包含各种接口、直接媒体接入组件、寄存器和/或缓冲器,其在本文结合图4更详细地描述。

在图2所示的实施例中,自测组件213驻存在易失性存储器控制基础结构214上。如上文所描述,自测组件可经配置以促进存储器子系统控制器215和/或其中部署存储器子系统控制器215的存储器子系统(例如图1所示的存储器子系统110)的内置自测操作的执行。举例来说,自测组件213可经配置以产生对应于测试第一存储器装置(例如存储器装置230)或第二存储器装置(例如存储器装置240)或这两者的操作的数据,且致使数据注入到将第一存储器装置或第二存储器装置中的至少一者耦合到存储器子系统的数据路径,使得数据被写入到第一存储器装置或第二存储器装置中的至少一者。自测组件可进一步经配置以读取写入到第一存储器装置或第二存储器装置中的所述至少一者的数据,和/或确定读取的数据是否与写入到第一存储器装置或第二存储器装置中的所述至少一者的数据匹配。

在一些实施例中,自测组件213可经配置以致使数据注入到数据路径,使得所述数据被写入到第一存储器装置或第二存储器装置中的另一者,读取写入到第一存储器装置或第二存储器装置中的另一者的数据,和/或确定来自第一存储器装置或第二存储器装置中的另一者的数据是否与写入到第一存储器装置或第二存储器装置中的所述另一者的数据匹配。

自测组件可进一步经配置以接收来自时钟组件218的时序信息,执行操作以将时钟组件所产生的时序信号的频率与预期时序信号进行比较,且基于所述比较,确定所述时序信号和所述预期时序信号的频率是否大体上等效。如本文所使用,术语“大体上”意指被修饰的特性不需要是绝对的,而是足够接近以便实现所述特性的优点。举例来说,“大体上等效”不限于绝对等效,且可包含可归因于存储器子系统控制器215的制造限制和/或操作特性的等效性的少量变化。

易失性存储器控制基础结构216可包含控制存储器装置240与主机(例如图1所示的主机系统120)之间的数据传送的电路系统。举例来说,易失性存储器控制基础结构214可包含各种接口、直接媒体接入组件、寄存器和/或缓冲器,其在本文结合图4更详细地描述。

图3说明根据本公开的一些实施例的存储器子系统控制器315和自测组件313的另一实例。存储器子系统控制器315可类似于图2所示的存储器子系统控制器215,且自测组件313可类似于图2所示的自测组件213。另外,处理器317可类似于图2所示的处理器217,存储器装置330可类似于图2所示的存储器装置230,且存储器装置340可类似于图2所示的存储器装置240。除自测组件313、处理器317、存储器装置330和存储器装置340之外,存储器子系统控制器315还可包括时钟组件318、系统互连件312、易失性存储器控制基础结构314(其可包含易失性存储器控制器319)和非易失性存储器控制基础结构316,其可类似于图2中所说明的时钟组件218、系统互连件212、易失性存储器控制基础结构214、易失性存储器控制器219和非易失性存储器控制基础结构216。

在图3所示的实施例中,自测组件313驻存在非易失性存储器控制基础结构316上。如上文所描述,自测组件可经配置以促进存储器子系统控制器315和/或其中部署存储器子系统控制器315的存储器子系统(例如图1所示的存储器子系统110)的内置自测操作的执行。举例来说,自测组件313可经配置以产生对应于测试第一存储器装置(例如存储器装置330)或第二存储器装置(例如存储器装置340)或这两者的操作的数据,且致使数据注入到将第一存储器装置或第二存储器装置中的至少一者耦合到存储器子系统的数据路径,使得数据被写入到第一存储器装置或第二存储器装置中的至少一者。自测组件可进一步经配置以读取写入到第一存储器装置或第二存储器装置中的所述至少一者的数据,和/或确定读取的数据是否与写入到第一存储器装置或第二存储器装置中的所述至少一者的数据匹配。

图4说明根据本公开的一些实施例的存储器子系统控制器415和自测组件413的又一实例。存储器子系统控制器415可类似于图3所示的存储器子系统控制器315,且自测组件413可类似于图3所示的自测组件313。另外,处理器417、时钟组件418、系统互连件412、易失性存储器控制基础结构414、易失性存储器控制器419和非易失性存储器控制基础结构416可类似于图3中示出的处理器317、时钟组件318、系统互连件312、易失性存储器控制基础结构314、易失性存储器控制器319和非易失性存储器控制基础结构316。

如图4中所示,存储器子系统控制器还可包括:存储器子系统控制管理器442,其可包含时钟组件418和寄存器443;以及存储器子系统核心440,其可包含处理器417和数据和/或指令高速缓冲存储器444。另外,易失性存储器控制基础结构414可包含易失性存储器接口447和易失性存储器控制器419,其可包含自测组件413。另外,非易失性存储器控制基础结构416可包含非易失性存储器直接存储器存取(dma)组件448和非易失性存储器控制器449。

存储器子系统控制器管理器442可经由数据路径434耦合到系统互连件412,这可允许命令、信号、数据和其它信息在存储器子系统控制器管理器442、存储器子系统核心440、易失性存储器控制基础结构414和非易失性存储器控制基础结构416之间传送。与存储器子系统控制器管理器442相关联的寄存器443可含有对应于非易失性存储器装置(例如图1所示的存储器装置140)和/或易失性存储器装置(例如图1所示的存储器装置130)的一部分的识别信息,其中可将数据写入所述部分中,作为当作执行本文所述的自测操作的一部分而执行的保存或局部保存操作的一部分。

存储器子系统核心440可经由数据路径436耦合到系统互连件412,这可允许命令、信号、数据和其它信息在存储器子系统核心440、存储器子系统控制器管理器442、易失性存储器控制基础结构414和非易失性存储器控制基础结构416之间传送。存储器子系统核心440可为精简指令集计算(risc)装置,例如risc-v装置。在一些实施例中,存储器子系统核心440可为microblaze软处理器核心,或其它合适的处理核心。

易失性存储器控制基础结构414可包含易失性存储器控制器419,其可包含自测组件413和/或易失性存储器接口447。在一些实施例中,易失性存储器接口447可为lcom接口(例如根据jedeclcom接口协议操作的接口),然而实施例不限于此,且易失性存储器接口447可为提供存储器子系统控制器415与耦合到其的易失性存储器装置之间的接口的任何接口。尽管示出为驻存在易失性存储器控制基础结构414上,但自测组件413可部署在非易失性存储器控制基础结构416上,如本文在图3中所示。

非易失性存储器控制基础结构416可包含非易失性存储器直接存储器存取(dma)组件448和非易失性存储器控制器449。非易失性dma组件448可经配置以独立于来自主机系统(例如图1所示的主机系统120)的干预,提供对耦合到存储器子系统控制器415的非易失性存储器装置的存取。尽管为了不使图式模糊未在图4中明确示出,但非易失性存储器控制器449可包含可促进耦合到存储器子系统控制器415的非易失性存储器装置与用于数据的加密/解密等的加密引擎(例如高级加密标准(aes)引擎)之间的通信的接口(例如onfi接口等)。

如上文所描述,自测组件413可促进存储器子系统控制器415的组件上的自测操作的执行。举例来说,以如上文所描述的类似方式,自测组件413可请求对数据路径430、432、434和/或436中的任一者的控制,并将数据(例如测试数据、测试向量等)注入到所述数据路径,以测试存储器子系统控制器415的各种组件的功能性。

可使用本文所述的自测组件413和方法来测试的数据路径和组件的非穷尽性实例可包含:与非易失性存储器控制基础结构416相关联的非易失性存储器接口;易失性存储器接口447;存储器子系统控制器415的内部数据路径(例如数据路径430、432、434和436);铺设穿过存储器子系统控制器415的数据路径,其经由存储器子系统控制器415将易失性存储器装置耦合到非易失性存储器装置;存储器子系统控制器415的加密引擎;存储器子系统控制器415的错误校正引擎;耦合到存储器子系统控制器415的存储器装置的擦除能力;易失性存储器刷新操作;易失性存储器数据完整性;时钟组件418的时序信号产生和传播;与非易失性存储器控制器449相关联的定时特性等。

在非限制性实例中,自测组件413可请求对数据路径430和数据路径432的控制,产生用于测试操作中的数据(例如测试数据、测试向量等),且将数据注入到非易失性存储器控制器449中。非易失性存储器控制器449可致使数据保存在非易失性存储器装置(例如图2中所说明的存储器装置230)中。随后自测组件413可致使数据从非易失性存储器装置读取,且可执行操作来将从非易失性存储器装置读取的数据与保存到非易失性存储器装置的数据进行比较,以确定写入的数据是否与读取的数据匹配。如果写入到非易失性存储器装置的数据并不与从非易失性存储器装置读取的数据匹配,那么自测组件413可确定已发生涉及非易失性存储器装置的错误。

继续此实例,如果写入到非易失性存储器装置的数据与从非易失性存储器装置读取的数据匹配,那么自测组件413可确定非易失性存储器装置正恰当地操作。如果确定非易失性存储器装置正恰当地操作,那么自测组件413可将数据注入到易失性存储器控制器419中,作为测试操作的一部分。易失性存储器控制器419可致使数据保存在易失性存储器装置(例如图2中所说明的存储器装置240)中。随后,自测组件413可致使数据从易失性存储器装置读取,且可执行操作来将从易失性存储器装置读取的数据与保存到易失性存储器装置的数据进行比较,以确定写入的数据是否与读取的数据匹配。如果写入到易失性存储器装置的数据并不与从易失性存储器装置读取的数据匹配,那么自测组件413可确定已发生涉及易失性存储器装置的错误。

如果写入到易失性存储器装置的数据与从易失性存储器装置读取的数据匹配,那么自测组件413可确定易失性存储器装置正恰当地操作。如果确定易失性存储器装置正恰当地操作,那么自测组件413可致使数据从易失性存储器装置传送到非易失性存储器装置,作为测试存储器子系统控制器415内部将易失性存储器装置耦合到非易失性存储器装置的数据路径的操作的一部分。一旦数据已从易失性存储器装置传送到非易失性存储器装置,自测组件413就可致使数据从非易失性存储器装置传送回到易失性存储器装置。一旦数据已在易失性存储器装置中恢复,自测组件就可从易失性存储器装置读取数据,且确定从易失性存储器装置读取的数据是否与从易失性存储器装置传送到非易失性存储器装置的数据匹配。如果从易失性存储器装置读取的数据并不与在易失性存储器装置与非易失性存储器装置之间传送的数据匹配,那么自测组件413可确定已发生涉及将易失性存储器装置与非易失性存储器装置内部耦合的数据路径的错误。相比之下,如果从易失性存储器装置读取的数据与在易失性存储器装置与非易失性存储器装置之间传送的数据匹配,那么自测组件413可确定将易失性存储器装置和非易失性存储器装置内部耦合的数据路径正恰当地操作。

图5说明根据本公开的一些实施例的对应于存储器子系统自测操作的流程图550。在框551处,自测组件(例如图4中示出的自测组件413)可致使数据(例如测试数据、测试向量等)进入非易失性存储器控制器(例如图4中示出的非易失性存储器控制器449)中。在框552处,可将数据保存到非易失性媒体(例如图3中示出的非易失性存储器装置230)。

在框553处,可从非易失性存储器读取数据。在一些实施例中,通过自测组件从非易失性媒体读取数据。自测组件可接着在框554处,将从非易失性媒体读取的数据与写入到非易失性媒体的数据进行比较,以确定从非易失性媒体读取的数据是否与写入到非易失性媒体的数据匹配。如果从非易失性媒体读取的数据并不与写入到非易失性媒体的数据匹配,那么在框555处,自测组件可确定已发生涉及非易失性媒体的错误。

相比之下,如果从非易失性媒体读取的数据与写入到非易失性媒体的数据匹配,那么在框556处,自测组件可将数据注入到系统存储器控制器(例如图4中示出的易失性存储器控制器419)中。在框557处,可接着将数据保存到系统存储器(例如图3中示出的易失性存储器装置240)。

在框558处,可从系统存储器(sm)读取数据。在一些实施例中,通过自测组件从系统存储器读取数据。自测组件可接着在框559处,将从系统存储器读取的数据与写入到系统存储器的数据进行比较,以确定从系统存储器读取的数据是否与写入到系统存储器的数据匹配。如果从系统存储器读取的数据并不与写入到系统存储器的数据匹配,那么在框560处,自测组件可确定已发生涉及系统存储器的错误。

相比之下,如果从系统存储器读取的数据与写入到系统存储器的数据匹配,那么在框561处,自测组件可致使数据直接从系统存储器写入到非易失性存储器。在框562处,可将数据从非易失性存储器恢复(例如传送)到系统存储器。在框563处,可使用自测组件从系统存储器读取数据,并在框564处,将其与从系统存储器写入到非易失性存储器的数据进行比较。如果在框561处写入到系统存储器的数据并不与在框563处从系统存储器读取的数据匹配,那么自测组件可在框565处,确定将非易失性存储器耦合到系统存储器的数据路径中的错误已发生。相比之下,如果在框561处写入到系统存储器的数据与在框563处从系统存储器读取的数据匹配,那么自测组件可在框566处,确定将非易失性存储器耦合到系统存储器的数据路径按既定起作用。

图6是对应于根据本公开的一些实施例的用于执行存储器子系统自测操作的方法的流程图。方法670可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法670由图1的自测组件113、图2的自测组件213、图3的自测组件313和/或图4的自测组件413执行。虽然以特定序列或次序来示出,但除非另有指定,否则可修改所述进程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的进程可以不同次序执行,且一些进程可并行执行。另外,在各种实施例中可省略一或多个进程。因此,在每个实施例中并非需要全部进程。其它进程流是可能的。

在框671处,方法670可包含通过存储器子系统控制器的组件来请求对与可耦合到控制器的存储器装置相关联的数据路径的控制。所述组件可类似于图1的自测组件113、图2的自测组件213、图3的自测组件313和/或图4的自测组件413,且所述存储器子系统控制器可类似于图1的存储器子系统控制器115、图2的存储器子系统控制器215、图3的存储器子系统控制器315和/或图4的存储器子系统控制器415。如上文所描述,对数据路径的控制的请求可由所述组件产生,且允许所述组件将数据注入到数据路径,作为存储器子系统自测操作的一部分。

在框673处,方法670可包含通过所述组件产生对应于测试存储器装置的操作的数据。存储器装置可类似于图1的存储器装置130和/或存储器装置140、图2的存储器装置230和/或存储器装置240,和/或图3的存储器装置330和/或存储器装置340。

在框675处,方法670可包含通过所述组件来致使数据注入到数据路径,使得所述数据写入到存储器装置。如上文所描述,可将数据写入到存储器装置,作为由存储器子系统(例如图1所示的存储器子系统110)执行的保存操作的一部分或作为局部保存操作的一部分。在一些实施例中,在如上文所描述,组件请求对数据路径的控制且将数据注入到所述数据路径中之前,数据路径可为在可耦合到存储器子系统控制器的主机与存储器装置之间传送数据而保留。

在框677处,方法670可包含通过所述组件来读取写入到存储器装置的数据。通过读取写入到存储器装置的数据,所述组件可证实注入到数据路径中和写入到存储器装置的数据匹配,从而提供存储器装置和/或数据路径正恰当地起作用的指示,如上文所描述。

在框679处,方法670可包含通过所述组件来确定所述组件从存储器装置读取的数据是否与写入到存储器装置的数据匹配。举例来说,组件可将所产生且注入到数据路径中的数据与从存储器装置检索到的数据进行比较,以确定所述组件从存储器装置读取的数据与写入到存储器装置的数据匹配。如果所述组件从存储器装置读取的数据与写入到存储器装置的数据匹配,那么所述组件可确定所述存储器装置和/或将所述存储器装置耦合到存储器子系统控制器的数据路径按既定起作用(例如处于标准工作次序)。

方法670还可包括通过所述组件来产生对应于测试与结合框671、673、675、677和679描述的存储器装置不同的存储器装置的操作的数据。在一些实施例中,所述存储器装置可为易失性存储器装置,且与所述存储器装置不同的存储器装置可为非易失性存储器装置(或反之亦然)。举例来说,所述存储器装置可为系统存储器装置,例如dram(例如双端口ram)存储器装置,且与所述存储器装置不同的存储器装置可为存储装置,例如nand存储器装置、三维交叉点存储器装置或其它非易失性存储器装置。

方法670还可包括通过所述组件来致使数据注入到数据路径,使得数据被写入到不同于所述存储器装置的存储器装置。在一些实施例中,用以将数据写入到与上文结合框671、673、675、677和679所述的存储器装置不同的存储器装置的数据路径。举例来说,用以将数据写入到结合框671、673、675、677和679描述的存储器装置的数据路径可为图4中示出的数据路径430,且用以将数据写入到与结合框671、673、675、677和679描述的存储器装置不同的存储器装置可为图4中示出的数据路径432。

方法670可包含通过所述组件来读取写入不同于所述存储器装置的存储器装置的数据。通过读取写入与所述存储器装置不同的存储器装置的数据,所述组件可证实注入到数据路径中且写入到与所述存储器装置不同的存储器装置的数据匹配,从而提供与所述存储器装置不同的存储器装置和/或数据路径恰当地起作用的指示,如上文所描述。

方法670还可包括通过所述组件来确定所述组件从与所述存储器装置不同的存储器装置读取的数据是否与写入到与所述存储器装置不同的存储器装置的数据匹配。举例来说,组件可将所产生且注入到数据路径中的数据与从与所述存储器装置不同的存储器装置检索到的数据进行比较,以确定所述组件从与所述存储器装置不同的存储器装置读取的数据是否与写入到与所述存储器装置不同的存储器装置的数据匹配。如果所述组件从与所述存储器装置不同的存储器装置读取的数据与写入到与所述存储器装置不同的存储器装置的数据匹配,那么所述组件可确定与所述存储器装置不同的存储器装置和/或将与所述存储器装置不同的存储器装置耦合到存储器子系统控制器的数据路径按既定起作用(例如处于标准工作次序)。

在一些实施例中,方法670可包含:通过所述组件来输出对应于确定所述组件从所述存储器装置(或与所述存储器装置不同的存储器装置)读取的数据与写入到所述存储器装置(或与所述存储器装置不同的存储器装置)的数据匹配的指示;或通过所述组件输出对应于确定所述组件从所述存储器装置(或与所述存储器装置不同的存储器装置)读取的数据并不与写入到所述存储器装置(或与所述存储器装置不同的存储器装置)的数据匹配的指示。

图7说明计算机系统700的实例机器,在所述实例机器内,可执行用于致使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统700可对应于主机系统(例如图1的主机系统120),其包含、耦合到或利用存储器子系统(例如图1的存储器子系统110)或可用以执行控制器的操作(例如以执行操作系统来进行对应于图1的自测组件113的操作)。在替代性实施例中,机器可连接(例如连网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、开关或桥接器,或能够(依序或以其它方式)执行指定由所述机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以进行本文中所论述的方法中的任何一或多种。

实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambusdram(rdram)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(sram)等)以及数据存储系统718,它们经由总线730彼此通信。

处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更明确地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置702经配置以执行用于实施本文中所论述的操作和步骤的指令726。计算机系统700可进一步包含网络接口装置708以经由网络720通信。

数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有一或多组指令726或体现本文中所描述的方法或功能中的任何一或多种的软件。指令726还可在其由计算机系统700执行期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。

在一个实施例中,指令726包含用以实施对应于自测组件(例如,图1的自测组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体724示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还将被认为包含能够存储或编码供机器执行的一组指令且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。

已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是导致期望的结果的操作的自洽序列。操作是要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、cd-rom和磁性光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的进程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。

在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜