掌桥专利:专业的专利平台
掌桥专利
首页

存储装置及其操作方法

文献发布时间:2023-06-19 18:32:25


存储装置及其操作方法

相关申请的交叉引用

本申请基于于2021年7月22日在韩国专利局提交的韩国专利申请No.10-2021-0096711和于2022年4月1日在韩国专利局提交的韩国专利申请No.10-2022-0041332并且要求其优先权,这些申请的公开内容通过引用整体地并入本文。

技术领域

发明构思涉及一种存储器件,并且更具体地,涉及一种存储装置、一种所述存储装置的操作方法、一种主机、以及一种所述主机的操作方法。

背景技术

存储系统包括主机和存储装置。主机通过诸如通用闪存(UFS)接口、串行高级技术附件(SATA)接口、小型计算机小型接口(SCSI)、串行附连SCSI(SAS)和嵌入式多媒体卡(eMMC)接口的各种标准接口连接到存储装置。当关于存储装置发生错误时,主机可以执行调试。此时,主机可能难以仅用存储装置的有限调试信息来执行流畅调试。

发明内容

发明构思提供一种能够针对由主机设置的目标和时段来对调试信息进行日志记录(logging)的存储装置,以及一种所述存储装置的操作方法。

发明构思还提供一种能够设置关于由存储装置存储的调试信息的日志记录目标和日志记录时段的主机以及一种所述主机的操作方法。

根据发明构思的示例实施例,提供了一种存储装置,所述存储装置包括:非易失性存储器;互连件,所述互连件被配置为与主机交换数据,从所述主机接收关于调试信息的日志记录目标设置请求和日志记录时段设置请求,从所述主机接收调试信息日志记录请求,并且从所述主机接收读取请求;以及装置控制器,所述装置控制器包括缓冲存储器,所述装置控制器被配置为控制所述非易失性存储器将所述数据写入到其或者从其中读取所述数据,响应于所述调试信息日志记录请求而基于由所述主机请求的日志记录目标和日志记录时段来控制对所述调试信息的日志记录操作,并且响应于所述读取请求而将所述调试信息发送到所述主机。所述装置控制器还被配置为根据所述调试信息日志记录请求而将所述调试信息日志记录在所述缓冲存储器中。

根据发明构思的另一示例实施例,提供了一种存储装置的操作方法。所述操作方法包括:从主机接收调试信息日志记录请求,所述调试信息日志记录请求请求开始命令历史记录操作;响应于所述调试信息日志记录请求开始关于命令历史记录的调试信息日志记录操作;从所述主机接收命令;响应于所述命令而在所述存储装置的缓冲存储器中对所述命令历史记录进行日志记录;从所述主机接收读取请求;以及响应于所述读取请求而将所述命令历史记录发送到所述主机。

根据发明构思的另一个示例实施例,提供了一种存储装置的操作方法。所述操作方法包括:从主机接收日志记录目标设置请求和日志记录时段设置请求;响应于所述日志记录目标设置请求和所述日志记录时段设置请求而设置日志记录目标和日志记录时段;从所述主机接收调试信息日志记录请求,所述调试信息日志记录请求开始装置状态记录操作;响应于所述调试信息日志记录请求而控制关于装置状态记录的调试信息日志记录操作;从所述主机接收读取请求;以及响应于所述读取请求而将所述装置状态记录发送到所述主机。

附图说明

根据结合附图进行的以下详细描述,将更清楚地理解发明构思的示例实施例,在附图中:

图1是根据示例实施例的存储系统的框图;

图2是根据示例实施例的存储系统的框图;

图3是根据示例实施例的装置控制器的框图;

图4是根据示例实施例的存储装置的操作方法的流程图;

图5是根据示例实施例的存储装置的操作方法的流程图;

图6是根据示例实施例的主机的操作方法的流程图;

图7是根据示例实施例的主机的操作方法的流程图;

图8是根据示例实施例的主机与存储装置之间的操作的流程图;

图9是根据示例实施例的主机与存储装置之间的操作的流程图;

图10是根据示例实施例的存储装置的操作方法的流程图;

图11是根据示例实施例的主机的操作方法的流程图;

图12是根据示例实施例的在存储装置的初始化或空闲时段中的主机与存储装置之间的操作的流程图;

图13是根据示例实施例的在存储装置的运行时时段期间的主机与存储装置之间的操作的流程图;

图14是根据示例实施例的在存储装置的运行时时段期间的主机与存储装置之间的操作的流程图;

图15是根据示例实施例的存储装置的操作方法的流程图;

图16是根据示例实施例的存储装置的操作方法的流程图;

图17是根据示例实施例的主机与存储装置之间的操作的流程图;

图18是根据示例实施例的主机与存储装置之间的操作的流程图;

图19是图示根据示例实施例的通用闪存(UFS)系统的图;以及

图20A至图20C是用于描述UFS卡的形状因数的图。

具体实施方式

在下文中,将参考附图详细地描述示例实施例。

图1是根据示例实施例的存储系统10的框图。参考图1,存储系统10包括主机100和存储装置200。例如,主机100可以根据通用闪存(UFS)标准中定义的接口协议连接到存储装置200,因此,主机100可以包括UFS主机并且存储装置200可以包括UFS装置。然而,示例实施例不限于此,并且主机100可以根据各种标准接口连接到存储装置200。

主机100可以相对于存储装置200控制数据处理操作,例如,数据读取操作或数据写入操作。主机100可以是指可以处理数据的数据处理装置,诸如中央处理单元(CPU)、处理器、微处理器或应用处理器(AP)。主机100可以运行操作系统(OS)和/或各种应用。在示例实施例中,可以将存储系统10包括在移动装置中,并且可以将主机100实现为AP。在示例实施例中,可以将主机100实现为片上系统(SoC)。

主机100可以包括主机控制器110、主机存储器120和互连件130。主机存储器120可以充当临时存储要向存储装置200发送的数据或从存储装置200发送的数据的缓冲存储器。互连件130可以提供用于主机100与存储装置200之间的数据交换的接口。主机100可以通过互连件130向存储装置200发送请求REQ并且通过互连件130从存储装置200接收响应RSP。例如,当请求REQ是写入请求时,请求REQ可以包括写入数据。例如,当请求REQ是读取请求时,对请求REQ的响应RSP可以包括读取数据。

存储装置通常将有关其硬件或软件信息的装置专用调试信息生成为快照。这种装置专用调试信息可以常常用于如单独的硬件模块的调试装置中。然而,即使主机从存储装置接收到调试信息,主机也难以有效地使用调试信息进行调试操作。因此,即使当在存储装置中发生错误时,主机也可能难以分析调试信息并且执行调试操作。

然而,根据示例实施例,主机100可以设置关于要存储在存储装置200中的调试信息的日志记录目标和日志记录时段并且向存储装置200发送调试信息日志记录请求,并且存储装置200可以通过在由主机100设置的日志记录时段中对由主机100设置的日志记录目标进行日志记录来生成调试信息。当必要时,主机100可以通过查询存储在存储装置200中的调试信息来流畅地执行调试操作。因此,主机100可以确定发生错误时的时间之前的历史并且通过在发生错误时分析期望的调试信息来管理类似情形。在下面描述主机100和存储装置200的特定操作。

主机100可以向存储装置200发送查询存储在存储装置200中的第一描述符的请求REQ并且基于从存储装置200接收到的响应RSP来确定存储装置200是否支持特定调试信息的日志记录特征。主机100可以向存储装置200发送查询存储在存储装置200中的第二描述符的请求REQ并且基于从存储装置200接收到的响应RSP来确定存储装置200中的特定调试信息的最大日志记录大小,即,存储特定调试信息的缓冲区的最大大小。例如,主机100可以在存储装置200的初始化或空闲时段中向存储装置200发送查询第一描述符或第二描述符的请求REQ。

主机100可以设置关于调试信息的日志记录目标和日志记录时间或时段并且向存储装置200发送包括所设置的日志记录目标和所设置的日志记录时间或时段的请求REQ。此后,主机100可以向存储装置200发送指示要开始调试信息日志记录操作的请求REQ。此后,主机100可以向存储装置200发送查询调试信息的请求REQ。即使未发生特定事件,主机100也可以因此在调试信息为必要时从存储装置200接收调试信息。

在示例实施例中,当主机100是UFS主机并且存储装置200是UFS装置时,主机100可以将查询第一描述符的请求REQ、查询第二描述符的请求REQ、包括日志记录目标和日志记录时间或时段的请求REQ、以及指示要开始调试信息日志记录操作的请求REQ作为查询请求或查询请求UFS协议信息单元(UPIU)发送给存储装置200。这里,UPIU是在主机100的UFS传输协议(UTP)层与存储装置200的UTP层之间交换的单元。主机100的UTP从应用层或装置管理器接收请求,针对该请求生成UPIU,并且向存储装置200的对等UTP发送该UPIU。

这里,查询请求可以用于读取或写入有关存储装置200的参数数据并且获得关于存储装置200的配置的信息。详细地,可以在主机100与存储装置200之间使用查询请求来设置或写入数据结构,诸如描述符、属性、标志、系统数据、配置数据和生产信息。

描述符对应于描述存储装置200的配置相关信息的参数的页或块。例如,存在有装置描述符、配置描述符、单元描述符等。属性对应于指示可以由存储装置200设置或读取的某个范围的数值的参数。例如,块大小可以是属性。标志对应于指示“真”或“假”或者“0”或“1”的单个布尔值。标志可以用于使能或禁止存储装置200的某个特征、模式或状态。

存储装置200可以包括装置控制器210、非易失性存储器(NVM)220和互连件230。装置控制器210可以包括缓冲存储器211和调试日志记录器212。互连件230可以提供用于主机100与存储装置200之间的数据交换的接口。存储装置200可以通过互连件230从主机100接收请求REQ并且通过互连件230向主机100发送响应RSP。例如,当请求REQ是写入请求时,装置控制器210可以响应于主机100的写入请求而控制NVM 220向其写入数据。例如,当请求REQ是读取请求时,装置控制器210可以响应于主机100的读取请求而控制NVM 220从其中读取数据。

存储装置200可以在NVM 220或缓冲存储器211中存储包括第一描述符和第二描述符的多个描述符。这里,描述符对应于与存储装置200相关的参数的页或块。例如,第一描述符可以对应于装置描述符,而第二描述符可以对应于几何描述符。然而,示例实施例不限于此。例如,当对存储装置200施加电力时,可以初始化一些描述符。

响应于从主机100接收到的查询第一描述符的请求REQ,存储装置200可以向主机100发送包括第一描述符的至少一部分的响应RSP,例如,对于特定调试信息是否支持记录功能。类似地,响应于从主机100接收到的查询第二描述符的请求REQ,存储装置200可以向主机100发送包括第二描述符的至少一部分的响应RSP,例如,特定调试信息的最大记录大小。

响应于从主机100接收到的包括日志记录目标设置请求和日志记录时段设置请求的请求REQ,存储装置200可以识别关于调试信息的日志记录目标和日志记录时段。此后,响应于从主机100接收到的指示要开始调试信息日志记录操作的请求REQ,存储装置200可以开始调试信息日志记录操作。此后,响应于从主机100接收到的查询调试信息的请求REQ,存储装置200可以向主机100发送日志记录的调试信息。

NVM 220可以根据主机100的请求REQ来存储数据。当存在诸如来自主机100的某个命令的应用或装置重置的事件时,NVM 220可以将日志记录的调试信息备份到缓冲存储器211。当NVM 220包括闪速存储器时,闪速存储器可以包括二维(2D)NAND存储器阵列或三维(3D)或垂直NAND(VNAND)存储器阵列。存储装置200可以包括各种种类的NVM。例如,可以对于存储装置200使用磁随机存取存储器(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻式RAM和其他各种种类的存储器。

在一些示例实施例中,存储装置200可以包括无DRAM装置,其可以是指不包括动态RAM(DRAM)高速缓存的装置。此时,装置控制器210可以不包括DRAM控制器。例如,存储装置200可以使用NVM 220的一部分作为缓冲存储器。

在一些示例实施例中,存储装置200可以对应于嵌入在电子装置中的内部存储器。例如,存储装置200可以包括嵌入式UFS存储器件、嵌入式多媒体卡(eMMC)或固态驱动器(SSD)。然而,示例实施例不限于此。存储装置200可以对应于NVM(例如,一次性可编程只读存储器(OTPROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩模ROM或闪速ROM)。在一些示例实施例中,存储装置200可以对应于可从电子装置移除的外部存储器。例如,存储装置200可以包括从UFS存储卡、紧凑式闪存(CF)卡、安全数字(SD)卡、微型SD卡、迷你SD卡、极限数字(xD)卡和记忆棒中选择的至少一种。

可以将存储系统10实现为电子装置,诸如个人计算机(PC)、膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码静物相机、数码视频相机、音频装置、便携式多媒体播放器(PMP)、个人导航装置或便携式导航装置(PND)、MP3播放器、手持游戏机或电子书。可以在包括如手表或头戴式显示器(HMD)的可穿戴装置的各种类型的电子装置中实现存储系统10。

图2是根据示例实施例的存储系统10a的框图。存储系统10a可以对应于图1的存储系统10的示例实现方式,并且上面参考图1给出的描述也可以被应用于本示例实施例。

参考图2,主机100a可以包括装置驱动器111、调试管理器112、命令生成器113、响应解析器114、数据转移管理器115和物理层(PHY)131。在示例实施例中,装置驱动器111、调试管理器112、命令生成器113和响应解析器114可以由软件实现并加载到主机存储器120(在图1中),并且主机控制器110(在图1中)可以通过访问主机存储器120来控制装置驱动器111、调试管理器112、命令生成器113和响应解析器114的操作。然而,示例实施例不限于此。在一些示例实施例中,装置驱动器111、调试管理器112、命令生成器113和响应解析器114可以由硬件或固件实现。在示例实施例中,数据转移管理器115的部分可以由软件实现,而数据转移管理器115的其他部分可以由硬件实现。例如,可以将PHY 131包括在互连件130(在图1中)中。

PHY 131可以与存储装置200a交换数据,向存储装置200a发送命令或请求,并且从存储装置200a接收数据或响应。例如,PHY 131可以包括至少一个发送器和至少一个接收器。数据转移管理器115可以生成要向存储装置200a发送的数据的分组。命令生成器113可以生成对存储装置200a的命令,并且响应解析器114可以解释或解析从存储装置200a接收到的响应。调试管理器112可以设置要由存储装置200a日志记录的调试信息并且从存储装置200a查询调试信息。

装置驱动器111可以包括用于控制存储装置200a的内核的软件模块并且可以控制调试管理器112、命令生成器113、响应解析器114、数据转移管理器115或PHY 131。例如,主机100a可以包括用于与存储装置200a通信的应用并且通过装置驱动器111与存储装置200a进行通信。当在应用中发生读取请求时,装置驱动器111可以基于读取请求来生成读取命令并且向存储装置200a发送该读取命令。

存储装置200a可以包括装置控制器210a、调试日志记录器212、命令解析器213、响应生成器214、数据转移管理器215和PHY 231。在示例实施例中,调试日志记录器212、命令解析器213和响应生成器214可以由软件实现并加载到存储装置200a的工作存储器。然而,示例实施例不限于此。在一些示例实施例中,调试日志记录器212、命令解析器213和响应生成器214可以由硬件或固件实现。在示例实施例中,数据转移管理器215的部分可以由软件实现,而数据转移管理器215的其他部分可以由硬件实现。例如,图1中的控制器210可以对应于装置控制器210a。例如,可以将PHY 231包括在图1中的互连件230中。

PHY 231可以与主机100a交换数据,从主机100a接收命令或请求,并且向主机100a发送数据或响应。例如,PHY 231可以包括至少一个发送器和至少一个接收器。数据转移管理器215可以生成用于要向主机100a发送的数据的分组。命令解析器213可以解释或解析从主机100a接收到的命令,并且响应生成器214可以生成要向主机100a发送的响应。调试日志记录器212可以对由主机100a设置的调试信息进行日志记录。装置控制器210a通常可以控制存储装置200a。

图3是根据示例实施例的装置控制器210的框图。参考图3,装置控制器210可以包括通过总线219彼此通信的处理器PRC、缓冲存储器211、调试日志记录器212、命令解析器213、响应生成器214、闪存转换层(FTL)216、主机接口217和NVM接口218。

尽管在图3中图示了装置控制器210包括命令解析器213和响应生成器214,但是示例实施例不限于此。在一些示例实施例中,可以将命令解析器213和响应生成器214包括在主机接口217中。在示例实施例中,可以将图2中的数据转移管理器215包括在主机接口217中。然而,示例实施例不限于此。在一些示例实施例中,可以将数据转移管理器215包括在装置控制器210中。上面参考图2给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。在下面参考图1和图3做出描述。

处理器PRC可以包括CPU或微处理器并且通常控制装置控制器210的操作。在示例实施例中,可以将处理器PRC实现为多核处理器,例如,双核处理器或四核处理器。可以将调试日志记录器212、命令解析器213、响应生成器214和FTL 216加载到装置控制器210的工作存储器。例如,工作存储器可以包括易失性存储器,诸如静态RAM(SRAM)或DRAM,或非易失性存储器,诸如闪存或PRAM。

当处理器PRC运行加载到工作存储器的调试日志记录器212时,可以控制在缓冲存储器211中对调试信息进行日志记录的操作。调试日志记录器212可以在缓冲存储器211中对与由主机100设置的日志记录目标和日志记录时间或时段相对应的调试信息进行日志记录。缓冲存储器211还可以临时存储要写入到NVM的数据220或从NVM 220读取的数据。缓冲存储器211可以在装置控制器210内部或外部。

当处理器PRC运行加载到工作存储器的FTL 216时,可以控制NVM 220的数据写入或读取操作。FTL 216可以执行各种功能,诸如地址映射、损耗均衡和无用单元收集。地址映射是将从主机100接收到的逻辑地址转换成用于在NVM 220中实际地存储数据的物理地址的操作。损耗均衡是用于通过允许NVM 220的存储块被均匀地使用来防止存储块的过度劣化的技术。例如,可以将损耗均衡实现为用于平衡物理块的擦除计数的固件技术。无用单元收集是用于通过将旧存储块的有效数据拷贝到新存储块并且擦除旧存储块来保证NVM 220的可用容量的技术。

主机接口217可以与主机100交换分组。从主机100向主机接口217发送的分组可以包括请求REQ、命令、要写入到NVM 220的数据等。从主机接口217向主机100发送的分组可以包括对命令的响应RSP、从NVM 220读取的数据等。NVM接口218可以向NVM 220发送要写入到NVM 220的数据或者接收从NVM 220读取的数据。NVM接口218可以被实现为遵守标准,诸如Toggle或开放NAND闪存接口(ONFI)。

如图1-3所示,可以将存储装置200实现为互连硬件(诸如互连件230、PHY 231和主机接口217)、存储器硬件(诸如缓冲存储器211、和NVM 220)和处理电路(包括装置控制器210a、调试日志记录器212、命令解析器213、响应生成器214、数据转移管理器215、处理器PRC、FTL 216)的组合。

图4是根据示例实施例的存储装置的操作方法的流程图。参考图4,根据本示例实施例的存储装置的操作方法对应于存储装置的调试信息日志记录方法并且可以包括例如由图1中的存储装置200或图2中的存储装置200a按时间顺序执行的操作。上面参考图1至图3给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。

存储装置200可以在操作S110中从主机100接收调试信息日志记录请求。存储装置200可以在操作S120中响应于调试信息日志记录请求而控制调试信息日志记录操作。存储装置200可以在操作S160中从主机100接收调试信息读取请求。存储装置200可以在操作S170中响应于调试信息读取请求而向主机100发送调试信息。

图5是根据示例实施例的存储装置的操作方法的流程图。参考图5,根据本示例实施例的存储装置的操作方法对应于图4的操作方法的修改。上面参考图4给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。

存储装置200可以在操作S130中确定是否发生事件。例如,事件可以包括从主机100接收到任务中止请求。例如,事件可以包括存储装置200的重置。当未发生事件时,存储装置200可以在操作S140中在缓冲存储器211中对调试信息进行日志记录。否则,当发生事件时,存储装置200可以在操作S150中将调试信息备份到NVM 220。

存储装置200可以在操作S160中从主机100接收调试信息读取请求。存储装置200可以在操作S170中响应于调试信息读取请求而向主机100发送调试信息。

图6是根据示例实施例的主机的操作方法的流程图。参考图6,根据本示例实施例的主机的操作方法对应于使用存储装置的调试信息日志记录方法,并且可以包括例如由图1中的主机100或图2中的主机100a按时间顺序执行的操作。上面参考图1至图3给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。

主机100可以在操作S210中设置用于调试信息的日志记录目标和日志记录时段。主机100可以在操作S220中向存储装置200发送日志记录目标设置请求和日志记录时段设置请求。主机100可以在操作S230中向存储装置200发送调试信息日志记录请求。主机100可以在操作S260中向存储装置200发送调试信息读取请求。主机100可以在操作S270中从存储装置200接收调试信息。

图7是根据示例实施例的主机的操作方法的流程图。参考图7,根据本示例实施例的主机的操作方法对应于图6的操作方法的修改。上面参考图6给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。

主机100可以在操作S240中确定是否发生事件。例如,事件可以包括向存储装置200发送任务中止请求。例如,事件可以包括存储装置200的重置。当发生事件时,主机100可以在操作S250中向存储装置200发送装置初始化请求。主机100可以在操作S260a中向存储装置200发送指示NVM 220的调试信息读取请求。否则,当未发生事件时,主机100可以在操作S260b中向存储装置200发送指示缓冲存储器211的调试信息读取请求。主机100可以在操作S270中从存储装置200接收调试信息。

图8是根据示例实施例的在主机100与存储装置200之间的操作的流程图。

参考图8,主机100可以将命令历史记录设置或选择为调试信息,请求存储装置200在存储装置200接收到命令时将命令历史记录作为调试信息来进行日志记录,并且当调试信息为必要时从存储装置200查询命令历史记录。在下面描述主机100与存储装置200之间的特定操作。

主机100可以在操作S310中向存储装置200发送请求命令历史记录来作为调试信息的第一查询请求。例如,第一查询请求可以设置或指示将命令历史记录使能标志(fCommandHistoryRecordEn)设置为01h。例如,主机100可以向存储装置200发送第一查询请求UPIU。存储装置200可以在操作S315中响应于第一查询请求而设置fCommandHistoryRecordEn并且向主机100发送包括设置结果的第一查询响应。

主机100可以在操作S320中向存储装置200发送命令。存储装置200可以在操作S325中向主机100发送响应。可以重复地执行操作S320和S325若干次,并且每次从主机100接收到命令时,存储装置200可以在命令历史记录31中对命令接收历史进行日志记录。可以将命令历史记录31存储在存储装置200的缓冲存储器211中。换句话说,可以将命令历史附加到缓冲存储器211。

在操作S340中可能发生命令超时。例如,当在某个时间段内未从存储装置200发送响应时,可能发生命令超时。主机100可以在操作S350中向存储装置200发送任务中止请求。这里,任务是执行请求的服务的命令或动作序列。存储装置200的逻辑单元包括支持至少一个任务的运行的任务队列。例如,主机100可以向存储装置200发送任务中止请求UPIU,该任务中止请求中止存储装置200的某个逻辑单元的任务队列中的某个任务。存储装置200可以在操作S355中向主机100发送对任务中止请求的响应。

在示例实施例中,存储装置200可以在操作S350和S355之间将已经被日志记录在缓冲存储器211中的命令历史记录31备份到NVM 220,并且NVM 220可以将命令历史记录32存储为备份。此时,存储装置200可以针对命令历史记录31停用记录模式。在示例实施例中,存储装置200可以在操作S355之后将已经被日志记录在缓冲存储器211中的命令历史记录31备份到NVM 220。在示例实施例中,存储装置200可以在操作S340之后将已经被日志记录在缓冲存储器211中的命令历史记录31备份到NVM 220。

可以在操作S360中重置存储装置200。主机100可以在操作S370中向存储装置200发送设置或指示要设置装置初始化标志fDeviceInit的第二查询请求。存储装置200可以在操作S375中响应于第二查询请求而设置装置初始化标志fDeviceInit并且向主机100发送包括设置结果的第二查询响应。

主机100可以在操作S380中向存储装置200发送读取请求。例如,主机100可以向存储装置200发送指示存储装置200的NVM 220的读取请求。例如,主机100可以向存储装置200发送将缓冲区ID设置为01h并且将模式设置为1Dh的读取请求。存储装置200可以在操作S385中向主机100发送包括在NVM 220中备份的命令历史记录32的响应。主机100可以将命令历史记录32作为调试信息加载到主机存储器120。

图9是根据示例实施例的在主机100与存储装置200之间的操作的流程图。图9中的操作对应于图8中的操作的修改。上面参考图8给出的描述也可以被应用于本示例实施例。

参考图9,主机100可以在操作S310中向存储装置200发送请求命令历史记录来作为调试信息的第一查询请求。存储装置200可以在操作S315中响应于第一查询请求而设置fCommandHistoryRecordEn并且向主机100发送包括设置结果的第一查询响应。

主机100可以在操作S320中向存储装置200发送命令。存储装置200可以在操作S325中向主机100发送响应。主机100可以在操作S330中向存储装置200发送命令。存储装置200可以在操作S335中向主机100发送响应。可以重复地执行操作S320至S335若干次,并且每当从主机100接收到命令时,存储装置200可以在命令历史记录31中对命令接收历史进行日志记录。可以将命令历史记录31存储在存储装置200的缓冲存储器211中。换句话说,可以将命令历史连续地附加到缓冲存储器211。

主机100可以在操作S380a中向存储装置200发送读取请求。例如,主机100可以向存储装置200发送指示存储装置200的缓冲存储器211的读取请求。例如,主机100可以向存储装置200发送将缓冲区ID设置为00h并且将模式设置为1Dh的读取请求。存储装置200可以在操作S385a中向主机100发送响应,该响应包括被日志记录在缓冲存储器211中的命令历史记录31。主机100可以将命令历史记录31作为调试信息加载到主机存储器120。根据本示例实施例,因为与图8不同未发生装置重置,所以存储装置200可以不需要将已经被日志记录在缓冲存储器211中的命令历史记录31备份到NVM 220,并且主机100可以查询被日志记录在缓冲存储器211中的命令历史记录31。

主机100可以在操作S390中向存储装置200发送停止记录命令历史的第三查询请求。例如,第三查询请求可以将fCommandHistoryRecordEn清除为00h。例如,主机100可以向存储装置200发送第三查询请求UPIU。存储装置200可以在操作S395中响应于第三查询请求而将fCommandHistoryRecordEn清除为00h并且向主机100发送包括清除结果的第三查询响应。当fCommandHistoryRecordEn被清除为00h时,存储装置200可以停用针对命令历史记录31的记录模式。

图10是根据示例实施例的存储装置的操作方法的流程图。参考图10,根据本示例实施例的存储装置的操作方法对应于存储装置的调试信息日志记录方法并且可以包括例如由图1中的存储装置200或图2中的存储装置200a按时间顺序执行的操作。上面参考图1至图3给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。

存储装置200可以在操作S410中在装置初始化或空闲时段中从主机100接收描述符读取请求。存储装置200可以在操作S420中响应于描述符读取请求而向主机100发送描述符。存储装置200可以在操作S430中在装置运行时时段中从主机100接收调试信息日志记录请求。存储装置200可以在操作S440中响应于调试信息日志记录请求而控制调试信息日志记录操作。存储装置200可以在操作S450中在装置运行时时段中从主机100接收调试信息读取请求。存储装置200可以在操作S460中响应于调试信息读取请求而向主机100发送调试信息。

图11是根据示例实施例的主机的操作方法的流程图。参考图11,根据本示例实施例的主机的操作方法对应于使用存储装置的调试信息日志记录方法并且可以包括例如由图1中的主机100或图2中的主机100a按时间顺序执行的操作。上面参考图1至图3给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。

主机100可以在操作S510中在装置初始化或空闲时段中向存储装置200发送描述符读取请求。主机100可以在操作S520中从存储装置200接收包括描述符的响应。主机100可以在操作S530中在装置运行时时段中向存储装置200发送调试信息日志记录请求。主机100可以在操作S540中在装置运行时时段中向存储装置200发送调试信息读取请求。主机100可以在操作S550中从存储装置200接收调试信息。

图12是根据示例实施例的在存储装置200的初始化或空闲时段中在主机100与存储装置200之间的操作的流程图。参考图12,根据本示例实施例的操作可以对应于图10和图11的操作方法的示例实现方式。在下面参考图1和图12做出描述。

为了查询存储装置200是否支持命令历史记录特征,主机100可以在操作S610中向存储装置200发送第一查询请求以便读取第一描述符。例如,主机100可以向存储装置200发送第一查询请求UPIU。例如,第一描述符可以对应于装置描述符61并且可以被存储在存储装置200中。例如,装置描述符61可以包括指示是否支持命令历史记录特征的命令历史比特,例如,比特[10]。例如,可以在存储装置200的初始化或空闲时段中执行操作S610并且操作S610可以对应于图10中的操作S410和图11中的操作S510的示例。

存储装置200可以在操作S615中向主机100发送包括与第一描述符相对应的装置描述符61的至少一部分的第一查询响应。例如,存储装置200可以向主机100发送第一查询响应UPIU。例如,存储装置200可以从缓冲存储器211或NVM 220读取装置描述符61并且向主机100发送装置描述符61。主机100可以基于装置描述符61的某个字段例如比特[10]来确定是否支持命令历史记录特征。例如,可以在存储装置200的初始化或空闲时段中执行操作S615并且操作S615可以对应于图10中的操作S420和图11中的操作S520的示例。

为了查询与存储装置200中的命令历史记录相对应的命令历史缓冲区的最大大小,主机100可以在操作S620中向存储装置200发送第二查询请求以便读取第二描述符。例如,主机100可以向存储装置200发送第二查询请求UPIU。例如,第二描述符可以对应于几何描述符62并且可以被存储在存储装置200中。例如,几何描述符62可以包括指示命令历史缓冲区的最大大小的值,即wMaxCommandHistoryBufferSize。例如,可以在存储装置200的初始化或空闲时段中执行操作S620并且操作S620可以对应于图10中的操作S410和图11中的操作S510的示例。

存储装置200可以在操作S625中向主机100发送包括与第二描述符相对应的几何描述符62的至少一部分的第二查询响应。例如,存储装置200可以向主机100发送第二查询响应UPIU。例如,存储装置200可以从缓冲存储器211或NVM 220读取几何描述符62并且向主机100发送几何描述符62。主机100可以基于几何描述符62的某个字段来确定命令历史缓冲区的最大大小。例如,可以在存储装置200的初始化或空闲时段中执行操作S625并且操作S625可以对应于图10中的操作S420和图11中的操作S520的示例。

图13是根据示例实施例的在存储装置200的运行时时段中在主机100与存储装置200之间的操作的流程图。参考图13,根据本示例实施例的操作可以对应于图10和图11的操作方法的示例实现方式,并且可以在图12的操作之后执行图13的操作,但是示例实施例不限于此。在下面参考图1和图13做出描述。

为了指示要开始命令历史记录,主机100可以在操作S630中向存储装置200发送设置或指示要设置用于命令历史记录的第一标志的第三查询请求。例如,主机100可以向存储装置200发送第三查询请求UPIU。例如,第一标志可以对应于fCommandHistoryRecordEn 63并且可以被存储在存储装置200中。例如,可以在电力循环或硬件重置期间将fCommandHistoryRecordEn 63设置为默认值0,并且主机100可以通过第三查询请求来将fCommandHistoryRecordEn 63设置为1。例如,可以在存储装置200的运行时时段中执行操作S630并且操作S630可以对应于图10中的操作S430和图11中的操作S530的示例。

存储装置200可以在操作S635中向主机100发送包括设置第一标志的结果的第三查询响应。例如,存储装置200可以向主机100发送第三查询响应UPIU。例如,存储装置200可以响应于第三查询请求而设置与第一标志相对应的fCommandHistoryRecordEn 63并且开始命令历史记录操作。因此,在操作S635之后,每当从主机100接收到命令时,存储装置200可以在命令历史记录中对命令接收历史进行日志记录。

为了指示要执行时间设置,主机100可以在操作S640中向存储装置200发送写入用于时间设置(即,用于设置时间信息)的第一属性的第四查询请求。例如,主机100可以向存储装置200发送第四查询请求UPIU。例如,第一属性可以对应于时间戳属性64并且可以被存储在存储装置200中。例如,时间戳属性64可以包括第一时间戳dTimeStampA和第二时间戳dTimeStampB。例如,第一时间戳dTimeStampA的值可以对应于由主机100设置的第一实时时钟(RTC)并且可以在命令历史块描述符中被设置为主机时间A。例如,第二时间戳dTimeStampB的值可以对应于由主机100设置的第二RTC并且可以在命令历史块描述符中被设置为主机时间B。

存储装置200可以在操作S645中向主机100发送包括写入第一属性的结果的第四查询响应。例如,存储装置200可以向主机100发送第四查询响应UPIU。例如,存储装置200可以响应于第四查询请求而写入对应于第一属性的第一时间戳dTimeStampA和第二时间戳dTimeStampB,并且将第一时间戳dTimeStampA和第二时间戳dTimeStampB包括在命令历史记录中。

图14是根据示例实施例的在存储装置200的运行时时段中在主机100与存储装置200之间的操作的流程图。参考图14,根据本示例实施例的操作可以对应于图10和图11的操作方法的示例实现方式,并且可以在图13的操作之后执行图14的操作,但是示例实施例不是仅限于此。在下面参考图1和图14做出描述。

主机100可以在操作S650中向存储装置200发送读取请求以查询命令历史记录65。例如,主机100可以向存储装置200发送读取缓冲区UPIU。例如,可以将命令历史记录65存储在存储装置200的缓冲存储器211或NVM 220中。例如,命令历史记录65可以包括命令历史块描述符。命令历史块描述符可以包括根据第一时间戳dTimeStampA的主机时间A、根据第二时间戳dTimeStampB的主机时间B和装置时间。

存储装置200可以在操作S660中向主机100发送与命令历史记录65相对应的数据。例如,存储装置200可以向主机100发送数据输入UPIU。存储装置200可以在操作S665中向主机100发送包括数据传输结果的响应。详细地,存储装置200可以在数据被完全正常地发送时向主机100发送包括成功的响应,而可以在数据未被正常地发送时向主机100发送包括失败的响应。例如,存储装置200可以向主机100发送响应UPIU。

图15是根据示例实施例的存储装置的操作方法的流程图。参考图15,根据本示例实施例的存储装置的操作方法对应于存储装置的调试信息日志记录方法并且可以包括例如由图1中的存储装置200或图2中的存储装置200a按时间顺序执行的操作。上面参考图1至图3给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。

存储装置200可以在操作S710中从主机100接收日志记录目标设置请求和日志记录时段设置请求。存储装置200可以在操作S720中响应于日志记录目标设置请求和日志记录时段设置请求而设置日志记录目标和日志记录时段。存储装置200可以在操作S730中从主机100接收调试信息日志记录请求。存储装置200可以在操作S740中响应于调试信息日志记录请求而控制调试信息日志记录操作。存储装置200可以在操作S780中从主机100接收调试信息读取请求。存储装置200可以在操作S790中响应于调试信息读取请求而向主机100发送调试信息。

图16是根据示例实施例的存储装置的操作方法的流程图。参考图16,根据本示例实施例的存储装置的操作方法对应于图15的操作方法的修改。上面参考图15给出的描述也可以被应用于本示例实施例,并且省略其冗余描述。

存储装置200可以在操作S750中确定是否发生事件。例如,事件可以包括从主机100接收到任务中止请求。例如,事件可以包括存储装置200的重置。当未发生事件时,存储装置200可以在操作S760中在缓冲存储器211中对调试信息进行日志记录。否则,当发生事件时,存储装置200可以在操作S770中将调试信息备份到NVM 220。存储装置200可以在操作S780中从主机100接收调试信息读取请求。存储装置200可以在操作S790中响应于调试信息读取请求而向主机100发送调试信息。

图17是根据示例实施例的在主机100与存储装置200之间的操作的流程图。参考图17,根据本示例实施例的操作可以对应于图15和图16的操作方法的示例实现方式。在下面参考图1和图17做出描述。

根据本示例实施例,主机100可以将装置状态变化记录设置为调试信息并且可以将例如写入加速器(write booster)冲刷状态设置为装置状态变化。主机100可以设置调试目标和调试时间或时段,使得存储装置200将装置状态变化记录作为调试信息来进行日志记录。存储装置200可以在由主机100设置的调试时间或时段将调试目标记录为调试信息。在下面更详细地描述主机100与存储装置200之间的操作。

主机100可以在操作S810中向存储装置200发送设置关于调试信息的日志记录目标和日志记录时间的第一查询请求。换句话说,第一查询请求可以包括日志记录目标设置请求和日志记录时间或时段设置请求。主机100可以将日志记录目标设置为写入加速器冲刷状态并且将日志记录时间设置为状态变化时间,即,当写入加速器冲刷状态的值发生改变时的时间。主机100可以设置或写入WriteBoosterFlushStatus作为调试数据类型的第一属性并且可以设置或写入StatusChanged作为调试时段的第二属性。例如,主机100可以向存储装置200发送设置第一属性和第二属性的第一查询请求UPIU。例如,操作S810可以对应于图15中的操作S710的示例。

存储装置200可以响应于被包括在第一查询请求中的日志记录目标设置请求和日志记录时段设置请求而设置日志记录目标和日志记录时段,并且在操作S815中向主机100发送第一查询响应。例如,存储装置200可以发送第一查询响应UPIU,其包括写入或设置第一属性和第二属性的结果,即,设置日志记录目标和日志记录时段的结果。例如,操作S815可以对应于图15中的操作S720的示例。

为了指示要开始装置状态记录,主机100可以在操作S820中向存储装置200发送设置或指示要设置用于装置状态记录的第一标志的第二查询请求。例如,主机100可以向存储装置200发送第二查询请求UPIU。例如,第一标志可以对应于属性跟踪使能标志fAttrTrackingEn并且可以被存储在存储装置200中。例如,主机100可以通过第二查询请求来将属性跟踪使能标志fAttrTrackingEn设置为01h。例如,操作S820可以对应于图15中的操作S730的示例。

存储装置200可以在操作S825中向主机100发送包括设置第一标志的结果的第二查询响应。例如,存储装置200可以向主机100发送第二查询响应UPIU。例如,存储装置200可以根据第二查询请求来将与第一标志相对应的属性跟踪使能标志fAttrTrackingEn设置为01h并且开始装置状态记录操作。因此,每当写入加速器冲刷状态在操作S825之后发生改变时,存储装置200可以在缓冲存储器211中对装置状态记录81进行日志记录。例如,存储装置200可以在操作S820之后在装置状态记录81中对“空闲(00h)”进行日志记录。

主机100可以在操作S830中向存储装置200发送命令。存储装置200可以在操作S835中向主机100发送对该命令的响应。可以重复地执行操作S830和S835若干次。存储装置200可以在每一状态变化时将写入加速器冲刷状态记录在装置状态记录81中。例如,存储装置200可以在装置状态记录81中对已经从“空闲(00h)”改变为“在进行中(01h)”的写入加速器冲刷状态进行日志记录。此后,例如,存储装置200可以在装置状态记录81中对已经从“在进行中(01h)”改变为“完成(03h)”的写入加速器冲刷状态进行日志记录。

主机100可以在操作S840中向存储装置200发送读取请求以查询装置状态记录81。例如,主机100可以向存储装置200发送读取缓冲区UPIU。例如,主机100可以向存储装置200发送指示存储装置200的缓冲存储器211的读取请求。例如,主机100可以向存储装置200发送将缓冲区ID设置为00h并且将模式设置为1Dh的读取请求。存储装置200可以在操作S845中向主机100发送包括被日志记录在缓冲存储器211中的装置状态记录81的响应。主机100可以将装置状态记录81作为调试信息加载到主机存储器120。

在一些示例实施例中,当在操作S840之前发生诸如装置重置的某个事件时,主机100可以向存储装置200发送指示存储装置200的NVM 220的读取请求。例如,主机100可以向存储装置200发送将缓冲区ID设置为01h并且将模式设置为1Dh的读取请求。此时,存储装置200可以向主机100发送包括被备份到NVM 220的装置状态记录81的响应。主机100可以将装置状态记录81作为调试信息加载到主机存储器120。

为了指示要终止装置状态记录,主机100可以在操作S850中向存储装置200发送清除用于装置状态记录的第一标志的第三查询请求。例如,主机100可以向存储装置200发送第三查询请求UPIU。例如,第一标志可以对应于属性跟踪使能标志fAttrTrackingEn并且可以被存储在存储装置200中。例如,主机100可以通过第三查询请求来将属性跟踪使能标志fAttrTrackingEn清除为00h。

存储装置200可以在操作S855中向主机100发送包括清除第一标志的结果的第三查询响应。例如,存储装置200可以向主机100发送第三查询响应UPIU。例如,存储装置200可以根据第三查询请求来将与第一标志相对应的属性跟踪使能标志fAttrTrackingEn清除为00h并且终止装置状态记录操作。因此,即使当写入加速器冲刷状态在操作S855之后发生改变时,存储装置200此后也不可以在装置状态记录81中对写入加速器冲刷状态进行日志记录。

在一些示例实施例中,在操作S810之前,主机100可以向存储装置200发送查询请求,例如,读取第一描述符的查询请求UPIU,以查询存储装置200是否支持装置状态记录特征。例如,第一描述符可以对应于图12中的装置描述符61并且可以被存储在存储装置200中。例如,装置描述符61可以包括指示是否支持装置状态记录特征的比特。

在一些示例实施例中,在操作S810之前,主机100可以向存储装置200发送查询请求,例如,读取第二描述符的查询请求UPIU,以查询与存储装置200中的装置状态记录相对应的装置状态缓冲区的最大大小。例如,第二描述符可以对应于图12中的几何描述符62并且可以被存储在存储装置200中。例如,几何描述符62可以包括指示装置状态缓冲区的最大大小的值。

图18是根据示例实施例的在主机100与存储装置200之间的操作的流程图。图18的操作可以对应于图15和图16的操作方法的示例实现方式。在下面参考图1和图18做出描述。

主机100可以将装置状态变化记录设置为调试信息并且可以将例如温度通知设置为装置状态变化。主机100可以设置调试目标和调试时间或时段,使得存储装置200将装置状态变化记录作为调试信息来进行日志记录。存储装置200可以在由主机100设置的调试时间或时段将调试目标作为调试信息来进行日志记录。在下面更详细地描述主机100与存储装置200之间的操作。

主机100可以在操作S910中向存储装置200发送设置关于调试信息的日志记录目标和日志记录时间的第一查询请求。换句话说,第一查询请求可以包括日志记录目标设置请求和日志记录时间或时段设置请求。主机100可以将日志记录目标设置为温度事件通知并且将日志记录时段设置为第一时间段。主机100可以设置或写入与温度通知相对应的TempNoti作为调试数据类型的第一属性并且可以设置或写入第一时间段作为调试时段的第二属性。例如,主机100可以向存储装置200发送设置第一属性和第二属性的第一查询请求UPIU。例如,主机100可以将第一时间段设置为100ms并且向存储装置200发送第一查询请求,使得存储装置200每100ms(或换言之,每第一时间)地将温度通知作为调试信息来进行日志记录。例如,操作S910可以对应于图15中的操作S710的示例。

存储装置200可以响应于被包括在第一查询请求中的日志记录目标设置请求和日志记录时段设置请求而设置日志记录目标和日志记录时段,并且在操作S915中向主机100发送第一查询响应。例如,存储装置200可以发送第一查询响应UPIU,其包括写入或设置第一属性和第二属性的结果,即,设置日志记录目标和日志记录时段的结果。例如,操作S915可以对应于图15中的操作S720的示例。

为了指示要开始装置状态记录,主机100可以在操作S920中向存储装置200发送设置或指示要设置用于装置状态记录的第一标志的第二查询请求。例如,主机100可以向存储装置200发送第二查询请求UPIU。例如,第一标志可以对应于属性跟踪使能标志fAttrTrackingEn并且可以被存储在存储装置200中。例如,主机100可以通过第二查询请求来将属性跟踪使能标志fAttrTrackingEn设置为01h。例如,操作S920可以对应于图15中的操作S730的示例。

存储装置200可以在操作S925中向主机100发送包括设置第一标志的结果的第二查询响应。例如,存储装置200可以向主机100发送第二查询响应UPIU。例如,存储装置200可以根据第二查询请求来将与第一标志相对应的属性跟踪使能标志fAttrTrackingEn设置为01h并且开始装置状态记录操作。主机100可以在操作S930中向存储装置200发送命令。存储装置200可以在操作S935中向主机100发送对该命令的响应。可以重复地执行操作S930和S935若干次。

例如,存储装置200可以每100ms地在缓冲存储器211中将温度通知作为装置状态记录91来进行日志记录。例如,存储装置200可以在100ms过去时在缓冲存储器211中将与低温通知TEMP_LOW相对应的第一温度通知作为装置状态记录91来进行日志记录。存储装置200可以在200ms过去时在缓冲存储器211中将与高温通知TEMP_HIGH相对应的第二温度通知作为装置状态记录91来进行日志记录。存储装置200可以在300ms过去时在缓冲存储器211中将与高温通知TEMP_HIGH相对应的第三温度通知作为装置状态记录91来进行日志记录。

主机100可以在操作S940中向存储装置200发送读取请求以查询装置状态记录91。例如,主机100可以向存储装置200发送读取缓冲区UPIU。例如,主机100可以向存储装置200发送指示存储装置200的缓冲存储器211的读取请求。例如,主机100可以向存储装置200发送将缓冲区ID设置为00h并且将模式设置为1Dh的读取请求。存储装置200可以在操作S945中向主机100发送包括被日志记录在缓冲存储器211中的装置状态记录91的响应。主机100可以将装置状态记录91作为调试信息加载到主机存储器120。

在一些示例实施例中,当在操作S940之前发生诸如装置重置的某个事件时,主机100可以向存储装置200发送指示存储装置200的NVM 220的读取请求。例如,主机100可以向存储装置200发送将缓冲区ID设置为01h并且将模式设置为1Dh的读取请求。此时,存储装置200可以向主机100发送包括被备份到NVM 220的装置状态记录91的响应。主机100可以将装置状态记录91作为调试信息加载到主机存储器120。

为了指示要终止装置状态记录,主机100可以在操作S950中向存储装置200发送清除用于装置状态记录的第一标志的第三查询请求。例如,主机100可以向存储装置200发送第三查询请求UPIU。例如,第一标志可以对应于属性跟踪使能标志fAttrTrackingEn并且可以被存储在存储装置200中。例如,主机100可以通过第三查询请求来将属性跟踪使能标志fAttrTrackingEn清除为00h。

存储装置200可以在操作S955中向主机100发送包括清除第一标志的结果的第三查询响应。例如,存储装置200可以向主机100发送第三查询响应UPIU。例如,存储装置200可以根据第三查询请求来将与第一标志相对应的属性跟踪使能标志fAttrTrackingEn清除为00h并且终止装置状态记录操作。因此,即使当在操作S955之后接收到温度通知时,存储装置200也不可以在缓冲存储器211中对装置状态记录91进行日志记录。

在一些示例实施例中,在操作S910之前,主机100可以向存储装置200发送查询请求,例如读取第一描述符的查询请求UPIU,以查询存储装置200是否支持装置状态记录特征。例如,第一描述符可以对应于图12中的装置描述符61并且可以被存储在存储装置200中。例如,装置描述符61可以包括指示是否支持装置状态记录特征的比特。

在一些示例实施例中,在操作S910之前,主机100可以向存储装置200发送查询请求,例如读取第二描述符的查询请求UPIU,以查询与存储装置200中的装置状态记录相对应的装置状态缓冲区的最大大小。例如,第二描述符可以对应于图12中的几何描述符62并且可以被存储在存储装置200中。例如,几何描述符62可以包括指示装置状态缓冲区的最大大小的值。

图19是图示根据示例实施例的UFS系统1000的图。UFS系统1000遵守由联合电子装置工程委员会(JEDEC)发布的UFS标准并且可以包括UFS主机1100、UFS装置1200和UFS接口1300。在上面关于图1和图2的存储系统10和10a给出的描述、在上面关于图3的装置控制器210给出的描述、以及参考图4至图18在上面关于主机100和存储装置200的操作给出的描述也可以被应用于图19的UFS系统1000,除非这些描述与在下面参考图19给出的描述相矛盾。

UFS主机1100可以包括UFS主机控制器1110、应用1120、UFS驱动器1130、主机存储器1140和UFS互连件(UIC)层1150。UFS装置1200可以包括UFS装置控制器1210、NVM存储装置1220、存储接口1230、装置存储器1240、UIC层1250和调节器1260。NVM存储装置1220可以包括多个存储单元1221。存储单元1221可以包括二维(2D)或三维(3D)结构中的垂直NAND(VNAND)闪速存储器或诸如PRAM和/或RRAM的其他种类的NVM。UFS装置控制器1210和NVM存储装置1220可以通过存储接口1230彼此连接。存储接口1230可以被实现为遵守诸如Toggle或ONFI的标准协议。

应用1120可以是指代用于与UFS装置1200进行通信以使用UFS装置1200的功能的程序。应用1120可以向UFS驱动器1130发送用于UFS装置1200的输入/输出的输入-输出请求(IOR)。IOR可以包括数据读取请求、数据写入请求和/或数据丢弃请求,但是不限于此。

UFS驱动器1130可以通过UFS-主机控制器接口(HCI)来管理UFS主机控制器1110。UFS驱动器1130可以将由应用1120生成的IOR转换成由UFS标准定义的UFS命令并且可以将UFS命令发送到UFS主机控制器1110。单个IOR可以被转换成多个UFS命令。UFS命令可以是由小型计算机小型接口(SCSI)标准定义的命令或用于UFS标准的专属命令。

UFS主机控制器1110可以通过UIC层1150和UFS接口1300来将UFS命令从UFS驱动器1130发送到UFS装置1200的UIC层1250。在此过程中,UFS主机控制器1110的UFS主机寄存器可以充当命令队列。

UFS主机1100的UIC层1150可以包括MIPI M-PHY 1151和MIPI UniPro 1152,并且UFS装置1200的UIC层1250还可以包括MIPI M-PHY1251和MIPI UniPro 1252。

UFS接口1300可以包括发送参考时钟信号REF_CLK的线路、发送用于UFS装置1200的硬件重置信号RESET_n的线路、发送一对差分输入信号DIN_T和DIN_C的一对线路、以及发送一对差分输出信号DOUT_T和DOUT_C的一对线路。

从UFS主机1100向UFS装置1200提供的参考时钟信号REF_CLK的频率值可以是19.2MHz、26MHz、38.4MHz和52MHz之一,但是不限于此。UFS主机1100即使在与UFS装置1200一起操作或交换数据的同时也可以改变参考时钟信号REF_CLK的频率值。UFS装置1200可以使用锁相环(PLL)等来生成具有与从UFS主机1100接收到的参考时钟信号REF_CLK不同的频率的时钟信号。UFS主机1100可以使用参考时钟信号REF_CLK的频率值来设置UFS主机1100与UFS装置1200之间的数据速率的值。换句话说,可以取决于参考时钟信号REF_CLK的频率值而确定数据速率的值。

UFS接口1300可以支持多个通道,并且可以将每一个通道实现为差分对。例如,UFS接口1300可以包括至少一个接收通道和至少一个发送通道。在图19中,发送一对差分输入信号DIN_T和DIN_C的一对线路可以形成接收通道,而发送一对差分输出信号DOUT_T和DOUT_C的一对线路可以形成发送通道。尽管在图19中图示了一个发送通道和一个接收通道,但是可以改变发送通道和接收通道的数量。

接收通道和发送通道可以在串行通信模式下发送数据。因为接收通道与发送通道分开,所以UFS主机1100可以在全双工模式下与UFS装置1200进行通信。换句话说,UFS装置1200可以甚至在通过接收通道从UFS主机1100接收数据的同时通过发送通道向UFS主机1100发送数据。诸如从UFS主机1100到UFS装置1200的命令之类的控制数据可以通过与UFS主机1100向UFS装置1200的NVM存储装置1220写入或者从其中读取的用户数据相同的通道来发送。因此,在UFS主机1100与UFS装置1200之间,除一对接收通道和发送通道外的用于数据传输的其他通道是不必要的。

UFS装置1200的UFS装置控制器1210可以通常控制UFS装置1200的操作。UFS装置控制器1210可以使用与逻辑数据存储单元相对应的逻辑单元1211来管理NVM存储装置1220。逻辑单元1211的数量可以是八但是不限于此。UFS装置控制器1210可以包括闪存转换层(FTL)并且可以使用FTL的地址映射信息来将从UFS主机1100接收到的逻辑地址(例如,逻辑块地址(LBA))转换成物理数据地址(例如,物理块地址(PBA))。用于在UFS系统1000中存储用户数据的逻辑块可以具有某个范围内的大小。例如,可以将逻辑块的最小大小设置为4千字节。

当来自UFS主机1100的命令通过UIC层1250被输入到UFS装置1200时,UFS装置控制器1210可以执行与该命令相对应的操作并且在该操作完成之后向UFS主机1100发送完成响应。

例如,当UFS主机1100在UFS装置1200中写入用户数据时,UFS主机1100可以向UFS装置1200发送数据写入命令。当UFS主机1100从UFS装置1200接收到与准备好转移相对应的响应时,UFS主机1100可以向UFS装置1200发送用户数据。UFS装置控制器1210可以将用户数据临时存储在装置存储器1240中并且将临时存储在装置存储器1240中的用户数据写入到NVM存储装置1220的所选位置。

在另一示例中,当UFS主机1100从UFS装置1200读取用户数据时,UFS主机1100可以向UFS装置1200发送数据读取命令。UFS装置控制器1210可以接收数据读取命令,基于数据读取命令从NVM存储装置1220读取用户数据,并且将已经读取的用户数据临时存储在装置存储器1240中。在此读取操作中,UFS装置控制器1210可以使用嵌入式纠错码(ECC)引擎(未示出)来检测并校正已经读取的用户数据中的错误。详细地,ECC引擎可以关于要写入到NVM存储装置1220的数据生成奇偶校验比特,并且奇偶校验比特可以与数据一起被存储在NVM存储装置1220中。当从NVM存储装置1220读取数据时,ECC引擎可以使用与数据一起从NVM存储装置1220读取的奇偶校验比特来校正数据中的错误并且可以输出纠错后的读取数据。

UFS装置控制器1210可以向UFS主机1100发送已被临时存储在装置存储器1240中的用户数据。UFS装置控制器1210还可以包括高级加密标准(AES)引擎(未示出)。AES引擎可以使用对称密钥算法来对输入到UFS装置控制器1210的数据执行从加密和解密中选择的至少一种。

UFS主机1100可以将要向UFS装置1200发送的命令按顺序存储在可以充当命令队列的UFS主机寄存器1111中并且按顺序向UFS装置1200发送命令。此时,即使当向UFS装置1200发送的命令正在由UFS装置1200处理时,即,即使在UFS主机1100被通知向UFS装置1200发送的命令已由UFS装置1200完全地处理之前,UFS主机1100也可以向UFS装置1200发送命令队列中的后续命令,并且UFS装置1200可以甚至在处理之前接收到的命令的同时也从UFS主机1100接收后续命令。队列深度,即可以被存储在命令队列中的命令的最大数量,可以是32。命令队列可以是循环队列,其中头指针和尾指针分别指示存储在其中的命令序列的开头和结尾。

每一个存储单元1221可以包括存储单元阵列(未示出)和控制电路(未示出),所述控制电路控制存储单元阵列的操作。存储单元阵列可以包括2D存储单元阵列或3D存储单元阵列。存储单元阵列包括多个存储单元。每一个存储单元可以是存储一个比特信息的单阶(signle-level)单元(SLC)或存储至少两比特信息的单元,诸如多阶(multi-level)单元(MLC)、三阶(triple-level)单元(TLC)或四阶(quadruple-level cell)单元(QLC)。3D存储单元阵列可以包括垂直定向的NAND串,其中至少一个存储单元被布置在另一存储单元上方。

可以将电源电压VCC、VCCQ和VCCQ2输入到UFS装置1200。电源电压VCC可以是用于UFS装置1200的主电源电压并且可以具有约2.4V至约3.6V的值。电源电压VCCQ可以被用于供应低范围内的电压并且主要用于UFS装置控制器1210。电源电压VCCQ可以具有约1.14V至约1.26V的值。电源电压VCCQ2可以用于供应低于电源电压VCC且高于电源电压VCCQ并且主要用于诸如MIPI M-PHY 1251的输入/输出接口的电压。电源电压VCCQ2可以具有约1.7V至约1.95V的值。电源电压VCC、VCCQ和VCCQ2中的每一个可以通过调节器1260被供应给UFS装置1200的对应元件。可以将调节器1260实现为分别连接到电源电压VCC、VCCQ和VCCQ2的一组调节器单元。

图20A至图20C是用于描述UFS卡的形状因数的图。当以UFS卡2000的形式实现参考图19描述的UFS装置1200时,UFS卡2000的外形可以如图25A至图25C所示。

图20A图示UFS卡2000的顶视图。参考图20A,可以看到UFS卡2000总体上符合鲨鱼的设计。关于图20A,UFS卡2000可以具有表1所示的尺寸。

[表1]

图20B图示UFS卡2000的侧视图。关于图20B,UFS卡2000可以具有表2所示的尺寸。

[表2]

图20C图示UFS卡2000的底视图。参考图20C,可以在UFS卡2000的底部中形成电连接到UFS插槽的多个引脚,并且将在下面描述每个引脚的功能。基于UFS卡2000的顶部和底部之间的对称性,关于参考图20A和表1描述的尺寸的一些信息(例如,T1至T5和T9)也可以被应用于图20C的UFS卡2000的底视图。

可以在UFS卡2000的底部中形成电连接到UFS主机的多个引脚,并且根据图20C,引脚的总数可以是12。每一个引脚可以具有矩形形状,并且与每个引脚相对应的信号名称被示出在图20C中。可以参考表3以获得关于每个引脚的一般信息。

[表3]

示例实施例不一定是相互排斥的。例如,一些示例实施例可以包括参考一个或多个图描述的一个或多个特征并且还可以包括参考一个或多个其他图描述的一个或多个其他特征。

附加地,主机控制器110、装置控制器210、调试日志记录器212、命令解析器213、响应生成器214、数据转移管理器215、装置驱动器111、调试管理器112、命令生成器113、响应解析器114、数据转移管理器115、FTL 216和/或包括在其中的组件可以包括处理器和/或处理电路,诸如包括逻辑电路的硬件;硬件/软件组合,诸如运行软件的处理器;或其组合。例如,处理器和/或处理电路可以包括但不限于中央处理单元(CPU)、存储器控制器、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。

处理器、控制器和/或处理电路可以被配置为通过被具体地编程以执行动作或步骤(诸如用FPGA或ASIC)来执行那些动作或步骤或者可以被配置为通过运行从存储器接收到的指令来执行动作或步骤,或其组合。

上面公开的元件和/或功能块中的任一个可以包括或者被实现在以下各项中:处理电路,诸如包括逻辑电路的硬件;硬件/软件组合,诸如运行软件的处理器;或其组合。例如,处理电路更具体地可以包括但不限于中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。处理电路可以包括诸如晶体管、电阻器、电容器等中的至少一个的电组件。处理电路可以包括诸如逻辑门的电组件,所述逻辑门包括与门、或门、与非门、非门等中的至少一个。

虽然已经参考发明构思的示例实施例特别示出并描述了发明构思,但是应理解,在不脱离以下权利要求的精神和范围的情况下,可以在其中做出形式和细节上的各种变化。

相关技术
  • 非易失性存储装置、其操作方法以及包括其的存储设备
  • 存储器装置及其操作方法
  • 存储装置及其操作方法
  • 一种生物样本分区降温存储装置及其操作方法
  • 移动设备操作方法、装置、计算机设备及存储介质
  • 存储控制器的操作方法、包括存储控制器的存储装置及存储装置的操作方法
  • 存储装置、存储装置的操作方法和存储服务器的操作方法
技术分类

06120115608574