存储器子系统控制器及相关方法和存储媒体转让专利

申请号 : CN202110219279.2

文献号 : CN113326216B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·R·斯皮卡

申请人 : 美光科技公司

摘要 :

本申请案涉及用于存储器子系统控制器的专用可测试性设计路径。接收命令执行数据。所述命令执行数据包括对应于功能组件的块地址、对应于所述功能组件的可测试性设计DFT寄存器的寄存器识别符,和命令数据。将所述命令执行数据转换为串行命令。将所述串行命令提交到所述功能组件的所述DFT寄存器。接收对所述串行命令的响应。所述响应是由所述功能组件基于所述串行命令产生。将所述响应转换为命令响应数据,且提供到测试子系统。

权利要求 :

1.一种存储器子系统控制器,其包括:

多个功能组件,每个功能组件与唯一块地址相关联;以及处理装置,其经由二线连接可操作地连接到所述多个功能组件,所述处理装置执行包括以下各项的操作:从测试子系统接收命令执行数据,所述命令执行数据包括识别来自所述多个功能组件之中的目标功能组件的块地址、识别来自所述目标功能组件中的一组可测试性设计寄存器之中的可测试性设计寄存器的寄存器识别符,和命令数据;

将所述命令执行数据转换为串行命令;

基于所述寄存器识别符,将所述串行命令提交到对应于所述块地址的所述目标功能组件的所述可测试性设计寄存器;

接收由所述目标功能组件基于所述串行命令产生的对所述串行命令的响应;

将所述响应转换为命令响应数据;以及

将所述命令响应数据提供到所述测试子系统。

2.根据权利要求1所述的存储器子系统控制器,其中:所述处理装置包括命令状态寄存器;

所述测试子系统通过将所述命令执行数据写入到所述命令状态寄存器而将所述命令执行数据传达到所述处理装置;以及所述处理装置通过将所述命令响应数据写入到所述命令状态寄存器而将所述命令响应数据提供到所述测试子系统。

3.根据权利要求1所述的存储器子系统控制器,其中所述测试子系统使用并行通信协议将所述命令执行数据传达到所述处理装置。

4.根据权利要求3所述的存储器子系统控制器,其中:所述将所述命令执行数据转换为所述串行命令包括将所述命令数据从所述并行通信协议转换为串行通信协议;并且所述将所述响应转换为所述命令响应数据包括将响应数据从所述串行通信协议转换为所述并行通信协议。

5.根据权利要求4所述的存储器子系统控制器,其中所述处理装置包括至少一个缓冲区以:将所述命令数据从所述并行通信协议转换为所述串行通信协议;并且将所述响应数据从所述串行通信协议转换为所述并行通信协议。

6.根据权利要求4所述的存储器子系统控制器,其中:所述并行通信协议包括高级高性能总线AHB协议;并且所述串行通信协议包括集成电路间I2C协议。

7.根据权利要求6所述的存储器子系统控制器,其中:所述处理装置包括I2C组件;并且

所述测试子系统经由AHB总线连接可操作地耦合到所述处理装置。

8.根据权利要求1所述的存储器子系统控制器,其中将所述串行命令提交到所述目标功能组件的所述可测试性设计寄存器致使所述目标功能组件提供所述响应。

9.一种用于操作存储器子系统控制器的方法,其包括:在所述存储器子系统控制器的串行接口组件处从所述存储器子系统控制器的测试子系统接收命令执行数据,所述命令执行数据包括:块地址,其识别来自经由二线连接而连接到所述串行接口组件的所述存储器子系统控制器的多个功能组件之中的目标功能组件,所述目标功能组件包括一组可测试性设计寄存器;

寄存器识别符,其识别来自所述一组可测试性设计寄存器之中的可测试性设计寄存器,以及命令数据;

将所述命令执行数据转换为串行命令;

基于所述寄存器识别符,将所述串行命令提交到对应于所述块地址的所述目标功能组件的所述可测试性设计寄存器;

接收由所述目标功能组件基于所述串行命令产生的对所述串行命令的响应;

将所述响应转换为命令响应数据;以及

将所述命令响应数据提供到所述测试子系统。

10.根据权利要求9所述的方法,其中:所述串行接口组件包括能够由所述测试子系统读取的命令状态寄存器;

所述测试子系统通过将所述命令执行数据写入到所述命令状态寄存器而将所述命令执行数据传达到所述串行接口组件;以及所述提供所述命令响应数据包括将所述命令响应数据写入到所述命令状态寄存器。

11.根据权利要求9所述的方法,其中:所述将所述命令执行数据转换为所述串行命令包括将所述命令数据从并行通信协议转换为串行通信协议;并且所述将所述响应转换为所述命令响应数据包括将响应数据从所述串行通信协议转换为所述并行通信协议。

12.根据权利要求11所述的方法,其中:所述并行通信协议包括AHB协议;并且

所述串行通信协议包括集成电路间I2C协议。

13.根据权利要求11所述的方法,其中所述串行接口组件包括经由二线连接可操作地连接到多个功能组件的I2C组件。

14.根据权利要求9所述的方法,其中经由到所述测试子系统的大宽度总线连接接收所述命令执行数据,并且使用并行通信协议传达所述命令执行数据。

15.根据权利要求14所述的方法,其中所述大宽度总线连接包括高级高性能总线AHB连接。

16.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:在存储器子系统控制器的串行接口组件处从所述存储器子系统控制器的测试子系统接收命令执行数据,所述命令执行数据包括:块地址,其识别来自经由二线连接而连接到所述串行接口组件的多个功能组件之中的目标功能组件,所述目标功能组件包括一组可测试性设计寄存器;

寄存器识别符,其识别来自所述一组可测试性设计寄存器之中的可测试性设计寄存器,以及命令数据;

将所述命令执行数据转换为串行命令;

基于所述寄存器识别符,将所述串行命令提交到对应于所述块地址的所述目标功能组件的所述可测试性设计寄存器;

接收由所述目标功能组件基于所述串行命令产生的对所述串行命令的响应;

将所述响应转换为命令响应数据;以及

将所述命令响应数据提供到所述测试子系统。

17.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述命令执行数据是使用并行通信协议传达到所述处理装置。

18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中:所述将所述命令执行数据转换为所述串行命令包括将所述命令数据从所述并行通信协议转换为串行通信协议;并且所述将所述响应转换为所述命令响应数据包括将响应数据从所述串行通信协议转换为所述并行通信协议。

19.根据权利要求18所述的非暂时性计算机可读存储媒体,其中:所述并行通信协议包括高级高性能总线AHB协议;并且所述串行通信协议包括集成电路间I2C协议。

20.根据权利要求16所述的非暂时性计算机可读存储媒体,其中:所述接收所述命令执行数据包括从命令状态寄存器存取所述命令执行数据;以及所述提供所述命令响应数据包括将所述命令响应数据写入到所述命令状态寄存器。

说明书 :

存储器子系统控制器及相关方法和存储媒体

技术领域

[0001] 本公开的实例实施例大体上涉及存储器子系统,且更确切地说,涉及用于存储器子系统控制器的专用可测试性设计(DFT)路径。

背景技术

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

发明内容

[0003] 根据本申请的一方面,提供一种存储器子系统控制器。所述存储器子系统控制器包括:功能组件,其包括可测试性设计(DFT)寄存器;以及处理装置,其经由二线连接可操作地连接到所述功能组件,所述处理装置执行包括以下各项的操作:从测试子系统接收命令执行数据,所述命令执行数据包括对应于所述功能组件的块地址、对应于所述DFT寄存器的寄存器识别符,和命令数据;将所述命令执行数据转换为串行命令;将所述串行命令提交到所述功能组件的所述DFT寄存器;接收由所述功能组件基于所述串行命令产生的对所述串行命令的响应;将所述响应转换为命令响应数据;以及将所述命令响应数据提供到所述测试子系统。
[0004] 根据本申请的另一方面,提供一种方法。所述方法包括:在存储器子系统控制器的串行接口组件处从所述存储器子系统控制器的测试子系统接收命令执行数据,所述命令执行数据包括:块地址,其对应于来自经由二线连接而连接到所述串行接口组件的所述存储器子系统控制器的多个功能组件之中的目标功能组件,所述目标功能组件包括可测试性设计(DFT)寄存器;寄存器识别符,其对应于所述DFT寄存器,以及命令数据;将所述命令执行数据转换为串行命令;将所述串行命令提交到所述目标功能组件的所述DFT寄存器;接收由所述目标功能组件基于所述串行命令产生的对所述串行命令的响应;将所述响应转换为命令响应数据;以及将所述命令响应数据提供到所述测试子系统。
[0005] 根据本申请的另外的另一方面,提供一种非暂时性计算机可读存储媒体。所述非暂时性计算机可读存储媒体包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:在存储器子系统控制器的串行接口组件处从所述存储器子系统控制器的测试子系统接收命令执行数据,所述命令执行数据包括:块地址,其对应于来自经由二线连接而连接到所述串行接口组件的所述存储器子系统控制器的多个功能组件之中的目标功能组件,所述目标功能组件包括可测试性设计(DFT)寄存器;寄存器识别符,其对应于所述DFT寄存器,以及命令数据;将所述命令执行数据转换为串行命令;将所述串行命令提交到所述目标功能组件的所述DFT寄存器;接收由所述目标功能组件基于所述串行命令产生的对所述串行命令的响应;将所述响应转换为命令响应数据;以及将所述命令响应数据提供到所述测试子系统。

附图说明

[0006] 根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
[0007] 图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
[0008] 图2说明根据本公开的一些实施例的具有专用DFT路径的存储器子系统控制器,所述存储器子系统控制器可包含于存储器子系统中。
[0009] 图3为根据本公开的一些实施例的使用专用DFT路径以促进测试和调试存储器子系统的实例方法的流程图。
[0010] 图4为本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

[0011] 本公开的各方面针对专用DFT路径以促进测试和调试安装有印刷电路板(PCB)的存储器子系统控制器。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件的存储器子系统,所述一或多个组件例如存储数据的存储器装置。主机系统可提供待存储于存储器子系统处的数据,并且可请求从存储器子系统检索数据。
[0012] 存储器装置可以是非易失性存储器装置。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。数据操作可由存储器子系统执行。数据操作可以是主机发起的操作。例如,主机系统可在存储器子系统上发起数据操作(例如,写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。
[0013] 存储器子系统可包含存储器子系统控制器,所述存储器子系统控制器可与存储器子系统的存储器装置通信以在存储器装置处执行例如读取数据、写入数据或擦除数据的操作和其它此类操作。存储器子系统控制器(在下文中简称为“控制器”)可从主机系统接收命令或操作,并且可将所述命令或操作转换为指令或适当命令以实现对存储器装置的所要存取。预先设计的功能组件常常用作常规存储器子系统控制器设计中的构造块以执行特定功能。如本文所使用的功能组件,“功能组件”包含逻辑、单元或集成电路(IC)布局设计的可重复使用单元的物理实施方式。
[0014] 通常,这些预先设计的功能组件包含由待利用的存储器子系统控制器寄存器映射或存储器映射的功能接口。然而,存在仅可经由替代性测试和调试接口存取的功能组件的某些特征。常规地,存储器子系统控制器使用映射到功能组件的内部DFT寄存器的命令状态寄存器(CSR)存取这些测试和调试接口。例如,物理层(PHY)功能组件通常具有用于测试和调试的较低层存取信息,所述较低层存取信息可经由例如集成电路间(I2C)组件的串行总线供测试子系统使用。
[0015] 然而,存储器子系统控制器利用的寄存器映射可能不完整(例如,在功能组件的文档不完整的情况下)。经由寄存器映射技术存取这些测试和调试接口也可能成问题,因为寄存器未被自然地存取。另外,将存储器子系统控制器的CSR映射到存储器子系统控制器中的每一功能组件需要大量布线,所述大量布线可能导致在芯片布局期间出现线拥塞问题。
[0016] 本公开的各方面通过使用利用自定义串行接口组件的专用DFT路径来解决常规控制器设计的上述和其它缺陷。例如,存储器子系统控制器可包含经由二线连接而连接到串行接口组件(例如,I2C总线)的一或多个功能组件。存储器子系统控制器的测试子系统(例如,测试固件)可将命令执行数据提交到串行接口组件。例如,串行接口组件可包含命令状态寄存器,且测试子系统可将命令数据写入到命令状态寄存器。命令数据可指定对应于目标功能组件的块地址、对应于目标功能组件中的DFT寄存器的寄存器识别符和命令数据。命令数据在串行接口组件处转换为串行命令,且串行接口组件将串行命令供应到目标功能组件的DFT寄存器。为此目的,串行接口组件可包含用以执行命令执行数据到串行命令的转换的缓冲区,所述缓冲区可包含将命令数据从并行通信协议(例如,高级高性能总线(AHB)协议)转换为串行通信协议(例如,I2C协议)。目标功能组件经由串行接口组件将对命令的响应提供回测试子系统。作为实例,命令响应数据可被写入到可由测试子系统存取的命令状态寄存器。
[0017] 应了解,上文和本文所描述的专用DFT路径可用于避免验证错误且减少存储器子系统控制器设计中的总信号路由和芯片面积。例如,功能组件DFT寄存器通常为16、32和64位宽,且常规存储器子系统控制器设计利用与将控制器映射到功能组件的DFT寄存器的寄存器中的位一样多的线。通过利用如本文所描述的专用DFT路径,存储器子系统控制器可将用于每一功能组件的线的数量减少到二。另外,利用这些专用DFT路径以将功能组件DFT接口标准化到完善的协议。此外,本文所描述的存储器子系统控制器设计实现对功能组件DFT功能的本机存取而无需使用特殊外部连接点。
[0018] 图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。
[0019] 存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO‑DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
[0020] 计算系统100可以是计算装置,例如台式计算机、笔记本电脑、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
[0021] 计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到”或“与耦合”一般是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,无介入组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。
[0022] 主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用例如存储器子系统110以将数据写入到存储器子系统110,且从存储器子系统110读取数据。
[0023] 主机系统120可经由主机接口102耦合到存储器子系统110。主机接口102的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、USB接口、光纤信道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双倍数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双倍数据速率(DDR)、低功率双倍数据速率(LPDDR),或任何其它接口。主机接口102可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用非易失性存储器(Non‑Volatile Memory,NVM)高速(NVMe)接口来存取组件(例如,存储器装置130)。主机接口102可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1将存储器子系统110说明为实例。一般来说,主机系统120可经由同一通信连接、多个独立通信连接和/或通信连接的组合来存取多个存储器子系统。
[0024] 存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以但不限于是随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
[0025] 非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器(write‑in‑place memory),例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
[0026] 每个存储器装置130可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层单元(MLC)、三层单元(TLC)、四层单元(QLC)和五层单元(PLC)可每单元存储多个位。在一些实施例中,每个存储器装置130可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可被分组以形成块。
[0027] 尽管描述了例如NAND型快闪存储器(例如,2D NAND、3D NAND)和非易失性存储器单元的3D交叉点阵列的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)‑MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器和电可擦除可编程只读存储器(EEPROM)。
[0028] 存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
[0029] 存储器子系统控制器115可包含配置成执行存储在本地存储器119中的指令的处理器117(处理装置)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作,包含处理存储器子系统110与主机系统120之间的通信的各种过程、操作、逻辑流程和例程。
[0030] 在一些实施例中,本地存储器119可包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的ROM。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
[0031] 一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,且将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
[0032] 如所展示,存储器子系统控制器115包含一或多个功能组件122。每个功能组件122包含DFT寄存器组以促进组件的测试。每个功能组件122与唯一块地址相关联,且每个功能组件122中的DFT寄存器组与寄存器识别符相关联。
[0033] 功能组件122各自经由二线连接而连接到串行接口组件113。功能组件122可经由内部连接(例如,总线连接)以及外部连接(例如,PCB连接)连接到串行接口组件113。
[0034] 测试子系统118(例如,测试固件)执行对包含功能组件122的存储器子系统控制器115的测试。测试子系统118可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。
作为实例,测试子系统118可对应于由处理器117执行且存储于本地存储器119或存储器装置130或140中的一个中的测试固件。
[0035] 在测试功能组件122中的一个时,测试子系统118可使用串行接口组件113以将测试命令经由大宽度总线连接(例如,16、32或64位AHB、控制存取总线或CSR总线映射)发布到目标功能组件,从而发布到串行接口组件113。测试子系统118可包含总线控制器,所述总线控制器包含映射到串行接口组件113的一或多个寄存器的寄存器或存储器。测试子系统118可通过将命令执行数据提供到串行接口组件113而将命令发布到功能组件122中的任一个。测试子系统118可利用并行通信协议将命令执行数据发送到串行接口组件113。命令执行数据可包含从功能组件122之中识别目标功能组件的块地址、对应于目标功能组件中的寄存器的一或多个寄存器识别符、命令数据和命令数据将写入到目标功能组件的一或多个寄存器的指示。
[0036] 串行接口组件113处所接收的命令执行数据被转换为串行命令。在将命令执行数据转换为串行命令时,串行接口组件113将命令数据从并行通信协议转换为串行通信协议。
[0037] 串行接口组件113将命令提交到对应于命令执行数据中的块地址的目标功能组件的一或多个所识别寄存器。目标功能组件可通过经由二线连接将响应串行地发送到串行接口组件113而将响应提供回测试子系统118。响应可包含对应于串行接口组件113的块地址、对应于串行接口组件113的一或多个寄存器的寄存器识别符和响应数据。串行接口组件113将响应转换为可由测试子系统118读取的命令响应数据。
[0038] 串行接口组件113可包含用于处理从目标功能组件读取的操作与写入到目标功能组件的操作之间的协议转换的至少一个缓冲区。即,缓冲区将命令执行数据转换为串行命令且将串行响应转换为命令响应数据。缓冲区的大小可设定成防止与测试子系统118的串行化通信与操作之间的时钟域差异相关联的数据过量运行。
[0039] 存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲区(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址,且对地址进行解码以存取存储器装置130。
[0040] 在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以用于在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
[0041] 尽管图1说明测试子系统118、串行接口组件113和驻留于存储器子系统控制器115上的功能组件122,但应了解,在其它实施例中,这些组件可驻留于本地媒体控制器135上。此外,在一些实施例中,测试子系统118、串行接口组件113和功能组件122可实施于存储器子系统控制器115和本地媒体控制器135两者内。
[0042] 参考图2,根据一些实施例说明了PCB上的实例存储器子系统控制器200的物理布局。存储器子系统控制器200为图1的存储器子系统控制器115的实例。存储器子系统控制器200包含多个功能组件‑串行器/解串器(SERDES)PHY 201、非易失性双倍数据速率(NVDDR)PHY 202和DRAM双倍数据速率(DDDR)PHY 203。组件201‑203中的每一个为图1的功能组件
122的实例。组件201‑203中的每一个可包含用于测试组件201‑203的DFT寄存器组。唯一块地址与组件201‑203中的每一个相关联,且寄存器识别符与组件201‑203中的每一个的DFT寄存器相关联。
[0043] 组件201‑203各自经由二线连接而连接到I2C 204。如所展示,组件201‑203中的每一个可经由内部连接(例如,总线连接)以及外部连接(例如,PCB连接)连接到I2C 204。
[0044] 总线控制器205经由到大宽度总线(例如,16、32或64位)的连接促进核心206(例如,处理器117)与I2C 204之间的数据交换。作为实例,总线控制器205可包含AHB、控制存取总线或CSR总线映射。核心206可由机器可读指令(例如,通过测试固件)配置成或包含测试系统,且测试系统可通过将命令执行数据提供到I2C 204而将命令发布到组件201‑203中的任一个。命令执行数据可包含从组件201‑203之中识别目标功能组件的块地址、对应于目标功能组件的一或多个寄存器识别符和待写入到目标功能组件的一或多个寄存器的命令数据。
[0045] 发送到I2C 204的命令执行数据被转换为串行命令,且I2C 204将命令提交到对应于命令执行数据中的块地址的目标功能组件的一或多个所识别寄存器。目标功能组件可通过经由二线连接将响应串行地发送到I2C 204而将响应提供回测试子系统(例如,由核心206执行)。由I2C 204接收的响应可转换为可由测试子系统读取的命令响应数据。
[0046] 控制器200可包含用于处理从目标功能组件读取的操作与写入到目标功能组件的操作之间的寄存器转换的缓冲区。即,缓冲区将命令执行数据转换为串行命令且将串行响应转换为命令响应数据。缓冲区的大小可设定成防止与核心206时钟的串行化通信与操作之间的时钟域差异相关联的数据过量运行。缓冲区可例如与I2C 204组合以形成串行接口组件113。
[0047] 为了避免本发明主题与不必要的细节混淆,已从图2省略了与传达本发明主题的理解无密切关系的各种组件和其它细节。因此,本领域的技术人员将易于认识到,各种额外功能组件可包含在图2的上下文内以促进本文未具体描述的额外功能。
[0048] 图3为根据本公开的一些实施例的使用专用DFT路径以促进测试和调试PCB上的存储器子系统的实例方法300的流程图。方法300可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法300由串行接口组件113执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
[0049] 在操作305处,处理装置从测试子系统(例如,测试子系统118)接收命令执行数据。命令执行数据可识别目标功能组件和目标寄存器(例如,DFT寄存器),且可包含待写入到目标功能组件的目标寄存器的命令数据。命令执行数据可使用与功能组件相关联的唯一块地址来识别目标功能组件,且可使用与目标寄存器相关联的寄存器识别符来识别目标寄存器。测试子系统使用并行通信协议经由大宽度总线连接(例如,AHB连接)将命令执行数据传达到处理装置。在一些实施例中,处理装置可包含可由测试子系统存取的命令状态寄存器,且在将命令执行数据传达到处理装置时,测试子系统可将命令执行数据写入到命令状态寄存器。
[0050] 在操作310处,处理装置将命令执行数据转换为串行命令。在将命令执行数据转换为串行命令时,处理装置将命令数据从并行通信协议转换为串行通信协议。例如,处理装置可将命令数据从AHB协议转换为集成电路间(I2C)协议。处理装置可例如包含硬件缓冲区以执行并行通信协议与串行通信协议之间的转换。
[0051] 在操作315处,处理装置使用串行通信协议将串行命令提交到目标功能组件。在将串行命令提供到目标功能组件时,处理装置将命令写入到目标功能组件的目标寄存器。
[0052] 命令可在被写入到目标功能组件的目标寄存器时致使目标功能组件产生对命令的响应数据。在操作320处,处理装置从目标功能组件接收串行响应。响应包含响应数据。目标功能组件可使用串行通信协议提供响应。
[0053] 在操作325处,处理装置将串行响应转换为命令响应数据。即,处理装置将响应数据从串行通信协议转换为并行通信协议。如上文所指出,处理装置可包含缓冲区以执行此转换。
[0054] 在操作330处,处理装置使用并行通信协议向测试子系统提供对命令响应数据的存取。在提供命令响应数据时,处理装置可将命令响应数据写入到可由测试子系统读取的寄存器组。在处理装置包含可由测试子系统存取的命令状态寄存器的实施例中,处理装置可将命令响应数据写入到命令状态寄存器以将命令响应数据提供到测试子系统。
[0055] 实例
[0056] 实例1为存储器子系统控制器,其包括:功能组件,其包括可测试性设计(DFT)寄存器;以及处理装置,其经由二线连接可操作地连接到所述功能组件,所述处理装置执行包括以下各项的操作:从测试子系统接收命令执行数据,所述命令执行数据包括对应于所述功能组件的块地址、对应于所述DFT寄存器的寄存器识别符,和命令数据;将所述命令执行数据转换为串行命令;将所述串行命令提交到所述功能组件的所述DFT寄存器;接收由所述功能组件基于所述串行命令产生的对所述串行命令的响应;将所述响应转换为命令响应数据;以及将所述命令响应数据提供到所述测试子系统。
[0057] 实例2包括实例1的标的物,其中处理装置任选地包括命令状态寄存器;测试子系统通过将命令执行数据写入到命令状态寄存器而任选地将命令执行数据传达到处理装置;并且处理装置通过将命令响应数据写入到命令状态寄存器而任选地将命令响应数据提供到测试子系统。
[0058] 实例3包括实例1和2中的任一项的标的物,其中测试子系统使用并行通信协议将命令执行数据传达到处理装置。
[0059] 实例4包括实例1‑3中任一项的标的物,其中:将命令执行数据转换为串行命令任选地包括将命令数据从并行通信协议转换为串行通信协议;且转换对命令响应数据的响应任选地包括将响应数据从串行通信协议转换为并行通信协议。
[0060] 实例5包括实例1‑4中任一项的标的物,其中处理装置任选地包括至少一个缓冲区以:将命令数据从并行通信协议转换为串行通信协议;且将响应数据从串行通信协议转换为并行通信协议。
[0061] 实例6包括实例1‑5中任一项的标的物,其中并行通信协议包括AHB协议;且串行通信协议包括集成电路间(I2C)协议。
[0062] 实例7包括实例1‑6中任一项的标的物,其中:处理装置任选地包括I2C;且测试子系统任选地经由AHB总线连接可操作地耦合到处理装置。
[0063] 实例8包括实例1‑7中任一项的标的物,其中处理装置任选地经由二线连接可操作地连接到多个功能组件,每一功能组件与唯一块地址相关联。
[0064] 实例9为方法,其包括:在存储器子系统控制器的串行接口组件处从所述存储器子系统控制器的测试子系统接收命令执行数据,所述命令执行数据包括:块地址,其对应于来自经由二线连接而连接到所述串行接口组件的所述存储器子系统控制器的多个功能组件之中的目标功能组件,所述目标功能组件包括可测试性设计(DFT)寄存器;寄存器识别符,其对应于所述DFT寄存器,以及命令数据;将所述命令执行数据转换为串行命令;将所述串行命令提交到所述目标功能组件的所述DFT寄存器;接收由所述目标功能组件基于所述串行命令产生的对所述串行命令的响应;将所述响应转换为命令响应数据;以及将所述命令响应数据提供到所述测试子系统。
[0065] 实例10包括实例1‑9中任一项的标的物,其中串行接口组件任选地包括可由测试子系统存取的命令状态寄存器;测试子系统通过将命令执行数据写入到命令状态寄存器而任选地将命令执行数据传达到串行接口组件;且提供命令响应数据任选地包括将命令响应数据写入到命令状态寄存器。
[0066] 实例11包括实例9或10中任一项的标的物,其中将命令执行数据转换为串行命令任选地包括将命令数据从并行通信协议转换为串行通信协议;且转换对命令响应数据的响应任选地包括将响应数据从串行通信协议转换为并行通信协议。
[0067] 实例12包括实例9‑11中任一项的标的物,其中串行接口组件任选地包括经由二线连接可操作地连接到多个功能组件的I2C。
[0068] 实例13包括实例9‑12中任一项的标的物,其中任选地经由到测试子系统的大宽度总线连接接收命令执行数据且使用并行通信协议传达所述命令执行数据。
[0069] 实例14包括实例9‑13中任一项的标的物,其中任选地经由高级AHB总线连接接收命令执行数据。
[0070] 实例15包括实例9‑14中任一项的标的物,其中:并行通信协议任选地包括AHB协议;且串行通信协议任选地包括集成电路间(I2C)协议。
[0071] 实例16为非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:在存储器子系统控制器的串行接口组件处从存储器子系统控制器的测试子系统接收命令执行数据,所述命令执行数据包括:块地址,其对应于来自经由二线连接而连接到串行接口组件的多个功能组件之中的目标功能组件,所述目标功能组件包括DFT寄存器;对应于DFT寄存器的寄存器识别符和命令数据;
将所述命令执行数据转换为串行命令;将所述串行命令提交到所述目标功能组件的所述DFT寄存器;接收由所述目标功能组件基于所述串行命令产生的对所述串行命令的响应;将所述响应转换为命令响应数据;以及将所述命令响应数据提供到所述测试子系统。
[0072] 实例17包括实例16的标的物,其中使用并行通信协议任选地将命令执行数据传达到处理装置。
[0073] 实例18包括实例16或17中任一项的标的物,其中:将命令执行数据转换为串行命令任选地包括将命令数据从并行通信协议转换为串行通信协议;且转换对命令响应数据的响应任选地包括将响应数据从串行通信协议转换为并行通信协议。
[0074] 实例19包括实例16‑18中任一项的标的物,其中:并行通信协议任选地包括AHB协议;且串行通信协议任选地包括集成电路间(I2C)协议。
[0075] 实例20包括实例16‑19中任一项的标的物,其中接收命令执行数据任选地包括从命令状态寄存器存取命令执行数据;且提供命令响应数据任选地包括将命令响应数据写入到命令状态寄存器。
[0076] 图4说明呈计算机系统400的形式的实例机器,在其内可执行指令集以致使所述机器执行本文所论述的方法中的任何一或多个。在一些实施例中,计算机系统400可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,运行操作系统以执行对应于图1的串行接口组件113的操作)。在替代实施例中,机器可连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端‑服务器网络环境中的服务器或客户端机器的容量中操作。
[0077] 机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由机器采取的动作的指令集的任何机器。此外,虽然说明了单个机器,但还应认为术语“机器”包含单独地或共同地执行(一或多个)指令集以执行本文所论述的方法中的任何一或多个的机器的任何集合。
[0078] 实例计算机系统400包含处理装置402、主存储器404(例如,ROM、快闪存储器、例如SDRAM或Rambus DRAM(RDRAM)等的DRAM)、静态存储器406(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统418,其经由总线430彼此通信。
[0079] 处理装置402表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置402可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器或实施指令集的组合的处理器。处理装置402还可以是一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等。处理装置402被配置成执行指令426以用于执行本文所论述的操作和步骤。计算机系统400可进一步包含网络接口装置408以在网络420上通信。
[0080] 数据存储系统418可包含机器可读存储媒体424(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集426或体现本文所描述的方法或功能中的任何一或多个的软件。指令426还可在由计算机系统400执行其期间完全或至少部分地驻留在主存储器404内和/或处理装置402内,所述主存储器404和所述处理装置402还构成机器可读存储媒体。机器可读存储媒体424、数据存储系统418和/或主存储器404可对应于图1的存储器子系统110。
[0081] 在一个实施例中,指令426包含指令以实施对应于安全组件(例如,图1的测试子系统118)的功能。虽然在实例实施例中将机器可读存储媒体424展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或对供机器执行的指令集进行编码且致使机器执行本公开的方法中的任何一或多个的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
[0082] 已就计算机存储器内的数据位的操作的算法和符号表示而言呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在本文中且一般被认为是产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电信号或磁信号的形式。主要出于常用的原因,已证明将这些信号称为位、值、元素、符号、字符、术语、编号等有时是方便的。
[0083] 然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标记。本公开可涉及将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操控且变换成类似地表示为计算机系统的存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0084] 本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构建,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、只读光盘(Compact Disc Read‑Only Memory,CD‑ROM)和磁性光盘);ROM;RAM;可擦除可编程只读存储器(EPROM);EEPROM;磁卡或光卡或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
[0085] 本文中呈现的算法和显示在本质上并不与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可以证明构造更专用的设备来执行方法是方便的。将如上文描述中所阐述的那样呈现用于各种这些系统的结构。另外,并不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施如本文所描述的本公开的教示。
[0086] 本公开可提供为计算机程序产品或软件,其可包含其上存储有可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器可读(例如,计算机可读)存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
[0087] 在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。