CN118013561A - 存储设备的运行方法和存储系统的运行方法 - Google Patents
存储设备的运行方法和存储系统的运行方法 Download PDFInfo
- Publication number
- CN118013561A CN118013561A CN202311447975.4A CN202311447975A CN118013561A CN 118013561 A CN118013561 A CN 118013561A CN 202311447975 A CN202311447975 A CN 202311447975A CN 118013561 A CN118013561 A CN 118013561A
- Authority
- CN
- China
- Prior art keywords
- host
- storage device
- public key
- signature
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 63
- 238000012795 verification Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 15
- 229910052751 metal Inorganic materials 0.000 description 68
- 239000002184 metal Substances 0.000 description 68
- 239000010410 layer Substances 0.000 description 66
- 239000000758 substrate Substances 0.000 description 24
- 230000002093 peripheral effect Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 16
- 239000000872 buffer Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 239000010949 copper Substances 0.000 description 5
- 238000011017 operating method Methods 0.000 description 5
- 101100449814 Arabidopsis thaliana GTL1 gene Proteins 0.000 description 4
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 4
- 101000894525 Homo sapiens Transforming growth factor-beta-induced protein ig-h3 Proteins 0.000 description 4
- 102100021398 Transforming growth factor-beta-induced protein ig-h3 Human genes 0.000 description 4
- 229910052802 copper Inorganic materials 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 3
- 229910052782 aluminium Inorganic materials 0.000 description 3
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 3
- 239000011229 interlayer Substances 0.000 description 3
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 3
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 3
- 229910052721 tungsten Inorganic materials 0.000 description 3
- 239000010937 tungsten Substances 0.000 description 3
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 2
- 101100058961 Arabidopsis thaliana CALS2 gene Proteins 0.000 description 2
- 101100058964 Arabidopsis thaliana CALS5 gene Proteins 0.000 description 2
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 2
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 2
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 2
- 101100287040 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ARG82 gene Proteins 0.000 description 2
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 150000002739 metals Chemical class 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 101150064834 ssl1 gene Proteins 0.000 description 2
- 101150062870 ssl3 gene Proteins 0.000 description 2
- 101100095974 Mus musculus Smc3 gene Proteins 0.000 description 1
- 101100383079 Schizosaccharomyces pombe (strain 972 / ATCC 24843) cdb4 gene Proteins 0.000 description 1
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000011810 insulating material Substances 0.000 description 1
- 150000002736 metal compounds Chemical class 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 208000009996 subepithelial mucinous corneal dystrophy Diseases 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
提供了一种存储设备的运行方法和一种存储系统的运行方法。一种包括非易失性存储器设备和存储控制器的存储设备的运行方法包括:由存储控制器存储从第一主机接收的公钥;由存储控制器响应于来自已经获得公钥和与公钥相对应的私钥的第二主机的主机认证开始请求,向第二主机发送随机数;由存储控制器从第二主机接收基于私钥和随机数生成的签名;由存储控制器基于公钥对签名进行验证;以及由存储控制器响应于对签名的验证成功根据来自第二主机的请求,改变第一设备参数。
Description
相关申请的交叉引用
本申请基于2022年11月10日向韩国知识产权局提交的第10-2022-0149352号韩国专利申请和2023年3月2日向韩国知识产权局提交的第10-2023-0027964号韩国专利申请并且要求其优先权,通过引用将上述韩国专利申请的公开内容全部并入本文。
技术领域
本发明构思涉及一种存储设备的运行方法,更具体地说,涉及一种根据来自授权主机的请求改变设备参数的存储设备的运行方法,以及一种包括该存储设备和主机的存储系统的运行方法。
背景技术
已经广泛地使用诸如通用闪存(UFS)和嵌入式多媒体卡(eMMC)的存储设备。出于安全考虑,存储设备包括具有一次性可写入的属性的参数,而参数一旦写入就可能无法改变,因此在制造包括存储设备在内的存储系统的工艺中降低了存储设备的重复利用率。因此,需要一种使得主机可以改变参数同时防止终端用户改变参数的方法。
发明内容
本发明构思的一些示例实施例提供了一种方法和/或设备,通过这种方法和/或设备,主机可以改变具有一次性可写入的属性的参数,同时防止终端用户改变参数。
本发明构思提供了一种存储设备的运行方法和一种包括该存储设备的存储系统的运行方法,该存储设备能够通过对主机的认证,出于安全原因改变具有一次性可写入的属性的参数。
根据本发明构思的一些示例实施例,提供了一种存储设备的运行方法,该存储设备包括非易失性存储器设备和被配置为与主机通信并且控制非易失性存储器设备的存储控制器,该运行方法包括:由存储控制器存储从第一主机接收的公钥;由存储控制器响应于来自已经获得公钥和与公钥相对应的私钥的第二主机的主机认证开始请求向第二主机发送随机数;由存储控制器从第二主机接收基于私钥和随机数生成的签名;由存储控制器基于公钥对签名进行验证;以及由存储控制器响应于对签名验证成功根据来自第二主机的请求,改变第一设备参数。
根据本发明构思的一些示例实施例,提供了一种被配置为与主机通信的存储设备的运行方法,该运行方法包括:由存储设备中包括的存储控制器从主机接收公钥;由存储控制器将公钥存储在存储设备的密钥存储区中;由存储控制器响应于来自主机的主机认证请求向主机发送随机数;由存储控制器从主机接收基于随机数和与公钥相对应的私钥生成的签名;由存储控制器基于公钥对签名进行验证;以及由存储控制器响应于对签名验证成功,改变第一设备参数。
根据本发明构思的一些示例实施例,提供了一种存储系统的运行方法,该存储系统包括主机和存储设备,该运行方法包括:由主机获取与存储设备相对应的公钥和与公钥相对应的私钥;由主机向存储设备发送公钥;由存储设备存储公钥;由存储设备响应于从主机接收的主机认证开始请求向主机发送随机数;由主机基于私钥和随机数生成签名;由主机向存储设备发送签名;由存储设备基于公钥对签名进行验证,以及由存储设备响应于对签名验证成功,根据来自主机的请求,改变第一设备参数。
根据本发明构思的一些示例实施例,提供了一种被配置为与主机通信的存储设备的运行方法,该运行方法包括:由存储设备从第一主机接收公钥;由存储设备将公钥存储在存储设备的密钥存储区中;响应来自第二主机的主机认证请求,向第二主机发送随机数;从第二主机接收基于随机数和与公钥相对应的私钥生成的签名;基于公钥对签名进行验证;以及响应于对签名验证成功,根据来自第二主机的请求,重置存储在存储设备中的包括公钥的多个密钥。
附图说明
通过以下结合附图的详细描述,将更清楚地理解一些示例实施例,在附图中:
图1是示出根据一些示例实施例的存储系统的框图;
图2是示出根据一些示例实施例的存储设备的运行方法的流程图;
图3是示出根据一些示例实施例的主机与存储设备之间的操作的流程图;
图4A和图4B示出根据一些示例实施例的存储设备的状态之间的切换;
图5示意性地示出根据一些示例实施例的非易失性存储器设备的存储区;
图6是示出根据一些示例实施例的主机与存储设备之间进行的命令和响应传输操作的流程图;
图7A示出根据一些示例实施例的公钥设定命令的命令块,并且图7B示出根据一些示例实施例的与公钥设定命令相对应的数据的数据块;
图8A示出根据一些示例实施例的公钥设定命令的命令块,并且图8B示出根据一些示例实施例的与公钥设定命令相对应的数据的数据块;
图9A示出根据一些示例实施例的认证命令的命令块,并且图9B示出根据一些示例实施例的与认证命令相对应的数据的数据块;
图10是示出根据一些示例实施例的在主机与存储设备之间进行的命令和响应传输操作的流程图;
图11A示出根据一些示例实施例的重置所有密钥命令的命令块,并且图11B示出根据一些示例实施例的与重置所有密钥命令相对应的数据块;
图12示出根据一些示例实施例的存储设备的操作;
图13是示出根据一些示例实施例的存储设备的运行方法的流程图;
图14示出根据一些示例实施例的主机和存储设备的软件层;
图15是示出根据一些示例实施例的非易失性存储器设备的框图;
图16是示出根据一些实施例的UFS系统的框图;
图17是描述根据一些示例实施例的适用于UFS设备的3D VNAND结构的图;
图18是描述根据一些示例实施例的适用于UFS设备的B-VNAND结构的图。
具体实施方式
在下文中将参考附图详细描述一些示例实施例。
当在本申请中结合数值使用词语“大约”和“基本上”时,除非另有明确定义,否则相关数值应包括所述数值左右±10%的公差。此外,无论数值是否被修饰为“大约”和“基本上”,将理解的是,这些数值应当被解释为包括所述数值左右±10%的公差。
图1是示出根据一些示例实施例的存储系统的框图。
参考图1,存储系统10可以包括存储设备100和/或主机200。存储系统10可以包括诸如移动电话、智能电话、MP3播放器、笔记本电脑、台式电脑、游戏机、电视(TV)、平板个人电脑(PC)和/或车载信息娱乐系统的数据存储设备之一。
主机200可以指能够处理数据的数据处理设备,诸如中央处理单元(CPU)、处理器、微处理器和/或应用处理器(AP)。主机200可以执行操作系统(OS)和/或各种应用程序(应用)。在一些示例实施例中,存储系统10可以包括在移动设备中,并且主机200可以被实现为应用处理器(AP)。在一些示例实施例中,主机200可以被实现为片上系统(SoC),因此可以嵌入到电子设备中。
主机200可以通过各种接口与存储设备100通信。例如,存储设备100和主机200可以根据在通用闪存(UFS)标准中定义的接口协议彼此连接,因此,存储设备100可以是UFS设备,并且主机200可以是UFS主机。然而,本发明构思不限于此,存储设备100和主机200可以根据各种标准接口彼此连接。
主机200可以控制存储设备100的数据处理操作,诸如数据读取操作或数据写入操作(或存储操作)。主机200可以向存储设备100发送数据和用于请求存储设备100的数据处理操作的命令CMD,并且存储设备100可以根据命令CMD执行数据操作并向主机200发送表示其操作结果的响应RES。主机200可以发送与存储设备100的普通操作相关的命令CMD,诸如读取命令或写入命令,并且主机200可以根据与存储设备100接口的安全协议发送命令CMD,诸如用于提供存储设备100的安全功能的安全输入命令或安全输出命令。存储设备100可以向主机200发送通过根据来自主机200的请求执行操作生成的数据或从非易失性存储器(NVM)设备120读取的数据。
主机200可以包括安全管理器210,并且安全管理器210可以在主机200与存储设备100之间的通信中提供安全功能。安全管理器210可以生成安全命令和/或数据并将其提供给存储设备100,并且可以基于从存储设备100接收到的响应RES和/或数据执行安全功能的操作。
安全管理器210可以获取对存储设备100具有唯一值的公钥和与公钥相对应的私钥(或称为秘钥)。例如,安全管理器210可以生成公钥和/或私钥。再例如,安全管理器210可以接收另一主机为存储设备100生成的公钥和/或私钥。例如,主机200(或另一主机)生成的公钥和/或私钥可以在单独的服务器中管理,并且当连接到存储设备100的主机发生变化时,变化后的主机可以从服务器接收公钥和/或私钥。
安全管理器210可以包括被实现为非易失性存储器元件的密钥存储区(例如图6的211),并且安全管理器210可以将公钥和/或私钥存储在密钥存储区中。
安全管理器210可以基于安全命令将公钥和/或私钥发送到存储设备100,然后基于公钥和/或私钥来认证主机200是否具有有效的控制权限。
根据与主机400通信的主机接口,存储设备100可以被制造为各种类型的存储设备中的任意一种。例如,存储设备100可以包括诸如下述的各种类型的存储设备中的任意一种:固态硬盘(SSD)、MMC、eMMC、RS-MMC或micro-MMC类型的多媒体卡、SD、mini-SD或micro-SD类型的安全数字卡、通用存储总线(USB)存储设备、通用闪存(UFS)设备、个人电脑存储卡国际协会(PCMCIA)卡型存储设备、外围组件互连(PCI)卡型存储设备、PCI Express(PCI-E)卡型存储设备、紧凑型闪存(CF)卡、智能媒体卡和/或记忆棒。
存储设备100可以被制造为各种类型的封装件中的任意一种。例如,存储设备100可以被制造为诸如下述的各种类型的封装件中的任意一种:叠层封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片封装(COB)、晶片级制造封装(WFP)和/或晶片级堆叠封装(WSP)。
存储设备100可以包括设备控制器110(或称为存储控制器)和/或非易失性存储器(NVM)设备120。设备控制器110可以控制非易失性存储器设备120响应于来自主机200的写入请求将数据写入非易失性存储器设备120中,和/或控制非易失性存储器设备120响应于来自主机200的读取请求读取存储在非易失性存储器设备120中的数据。
非易失性存储器设备120可以包括多个存储单元;例如,多个存储单元可以是闪存单元。在一些示例实施例中,多个存储单元可以是NAND闪存单元。然而,本发明构思不限于此,在一些示例实施例中,多个存储单元可以是电阻式存储单元,例如电阻式RAM(ReRAM)、相变RAM(PRAM)和/或磁性RAM(MRAM)。
每个或一个或更多个存储单元可以包括能够存储一个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)和/或能够存储四个数据位的四层单元(QLC)。
非易失性存储器设备120可以包括多个存储器块,例如,第一存储器块BLK1至第n存储器块BLKn(其中,“n”为大于或等于2的整数)。每个或一个或更多个存储器块可以包括多个存储单元。每个或一个或更多个存储器块可以包括多个页。在一些示例实施例中,页可以是在非易失性存储器设备120中存储数据或读取存储在非易失性存储器设备120中的数据的单元。存储器块可以是擦除数据的单元。
根据一些示例实施例的存储设备100的设备控制器110可以包括安全管理器11和/或状态管理器12。安全管理器11可以存储从主机200接收到的公钥。例如,安全管理器11可以将公钥存储在被实现为非易失性存储器的密钥存储区(例如,图6中的1)中,并且当从主机200接收到主机认证请求时,可以基于公钥执行主机认证。
状态管理器12可以管理存储设备100的状态(例如,初始状态、锁定状态和/或解锁状态)。当从主机200接收到的公钥存储在存储器中时,存储设备100可以将存储设备100的状态从初始状态改变为锁定状态。当主机认证成功时,状态管理器12可以将存储设备100的状态从锁定状态改变为解锁状态,或从锁定状态改变为初始状态。
用于设定存储设备100的操作的参数可以存储在存储设备100中。例如,参数可以存储在非易失性存储器设备120的特定区域和/或设备控制器110中包括的非易失性存储器中。参数可以具有诸如只读属性、一次性可写入的属性和/或读写属性的多种属性之一。存储设备100可以在解锁状态或初始状态下改变一次性可写入的参数(以下称为第一参数)。例如,存储设备100可以初始化第一参数。在这种情况下,初始化可以指的是使已经写入的第一参数值无效。在一些示例实施例中,第一参数可以是由主机200设定的值,并且可以包括用于认证访问重放保护存储器块(RPMB)的RPMB密钥、用于分割非易失性存储器设备120的设定值等。
在根据一些示例实施例的存储系统10中,主机200可以为存储设备100生成具有唯一值的公钥和/或与公钥相对应的私钥,并且存储设备100可以基于从主机200接收到的公钥执行主机认证,并且可以根据已通过认证的主机200的请求改变存储设备100的状态,并且还改变第一参数。存储设备100可以根据来自主机200的请求改变第一参数,同时防止终端用户改变第一参数。
图2是示出根据一些示例实施例的存储设备的运行方法的流程图。
图2的方法可以在存储设备100(见图1)中执行,并且上面参考图1描述的存储设备100的操作也可以适用于一些示例实施例。
参考图2,存储设备100可以从主机200(见图1)接收公钥(操作S101)。公钥可以由主机200生成,或可以由主机200从其他主机获取。
存储设备100可以存储接收到的公钥(操作S102)。存储设备100可以将公钥存储在非易失性存储器中,例如,存储在非易失性存储器设备120(见图1)的特定区域和/或设备控制器110中包括的非易失性存储器中。响应于存储了公钥,存储设备100的状态可以从初始状态改变为锁定状态。
存储设备100可以响应于来自主机200的认证开始请求向主机200发送随机数(操作S103)。响应于来自主机200的认证开始请求,存储设备100可以生成随机数并将随机数发送到主机200。例如,随机数可以是32字节的数据。
存储设备100可以从主机200接收基于私钥和随机数生成的签名(或称为数字签名)(操作S104)。在一些示例实施例中,主机200可以通过基于散列算法(或散列函数)处理从存储设备100接收到的随机数来生成散列值,并且通过使用私钥对散列值进行加密。存储设备100可以一起接收随机数和用于生成散列值的散列算法。
存储设备100可以基于公钥对签名进行验证(操作S105)。存储设备100可以基于在操作S102中存储的公钥对签名进行验证。在一些示例实施例中,存储设备100可以通过基于公钥解密签名来生成第一散列值,并且通过基于与签名一起接收到的散列算法对随机数进行处理来生成第二散列值。存储设备100可以通过比较第一散列值和第二散列值来对签名进行验证。当第一散列值和第二散列值彼此相等时,存储设备100可以确定签名验证和主机认证已经成功。
当签名验证成功时,即当主机认证成功时,存储设备100可以根据来自主机200的请求,改变第一设备参数(操作S106)。如参考图1描述的,第一设备参数可以是一次性可写入的设定值。在一些示例实施例中,当主机经过认证时,存储设备100的状态可以从锁定状态改变为解锁状态。存储设备100可以在解锁状态下改变第一设备参数。在一些示例实施例中,当主机经过认证时,存储设备100可以响应于来自主机200的安全命令从锁定状态改变为初始状态。例如,安全命令可以是密钥重置命令,并且存储在存储设备100中的密钥(包括公钥)可以在初始状态下重置。
图3是示出根据一些示例实施例的主机与存储设备之间的操作的流程图。图3的流程图示出图1的主机200与存储设备100之间的操作,并且上面参考图1和图2对主机200和存储设备100的操作所作的描述也可以适用于一些示例实施例。
参考图3,主机200可以获取公钥和私钥(操作S210)。在一些示例实施例中,主机200可以为存储设备100生成具有唯一值的公钥和/或与公钥相对应的私钥。在一些示例实施例中,可以在存储设备100所连接的另一主机中生成公钥和/或私钥,并且主机200可以接收在另一主机中生成的公钥和/或私钥。例如,公钥和/或私钥可以在主机200通过有线或无线所连接到的独立服务器中管理,并且主机200可以从服务器接收公钥和/或私钥。
主机200可以向存储设备100发送公钥(操作S220)。在一些示例实施例中,主机200可以将公钥与用于请求设定公钥(公钥设定)的安全命令一起发送到存储设备100。
存储设备100可以存储从主机200接收到的公钥(操作S110)。如上面参考图2描述的,当存储设备100存储公钥时,存储设备100的状态可以从初始状态改变为锁定状态。
此后,主机200可以向存储设备100发送主机认证开始请求(操作S230)。在一些示例实施例中,主机200可以向存储设备100发送挑战命令。响应于来自主机200的主机认证开始请求,存储设备100可以生成随机数(操作S120)并向主机200发送随机数(操作S130)。
主机200可以基于接收到的随机数和私钥生成签名(操作S240)。主机200可以向存储设备100发送签名。在一些示例实施例中,主机200可以将签名与指示认证请求的命令一起发送到存储设备100。在一些示例实施例中,主机200可以将签名与指示特定安全操作(例如,密钥清除命令)的安全命令一起发送到存储设备100。
存储设备100可以基于公钥对签名进行验证(操作S140)。存储设备100可以向主机200发送验证结果,例如验证成功或失败(操作S150)。当签名验证成功时,即当执行了主机认证以指示主机200是有权控制存储设备100的主机时,存储设备100可以改变第一设备参数(操作S160)。这里,对存储设备100的控制可以包括对存储设备100的安全功能以及存储设备100的读写功能的控制。
在一些示例实施例中,存储设备100可以从锁定状态改变为解锁状态,并且存储设备100可以在解锁状态下改变第一设备参数。如上所述,第一设备参数可以具有一次性可写入的属性。例如,第一设备参数可以是RPMB密钥。
在一些示例实施例中,存储设备100可以从锁定状态改变为初始状态。第一设备参数可以包括存储在存储设备100中的包括公钥在内的多个密钥,并且当存储设备100改变为初始状态时,可以重置多个密钥。例如,可以使多个密钥的密钥值失效。
图4A和图4B示出根据一些示例实施例的存储设备的状态之间的切换。
参考图4A和图4B,存储设备100(见图1)可以包括初始状态ST1、锁定状态ST2和/或解锁状态ST3。初始状态ST1可以表示存储设备的参数未设定的状态,即参数被重置的状态。锁定状态ST2可以是不能(或不允许)访问或改变包括第一参数在内的与安全设定相关的安全参数的状态。解锁状态ST3可以是能够(或允许)访问和改变包括第一参数在内的安全参数的状态。
参考图4A,当在存储设备100中设定了公钥时,即,当存储设备100存储了从主机200接收到的公钥时,存储设备100可以从初始状态ST1改变为锁定状态ST2。此后,当连接到存储设备100的主机200通过认证时,存储设备100可以从锁定状态ST2改变为解锁状态ST3。第一参数可以在解锁状态ST3下改变。在此,可以根据主机200的请求改变第一参数。在完成第一参数的改变后,存储设备100可以再次改变为锁定状态ST2。
参考图4B,在存储设备100根据公钥设定从初始状态ST1改变为锁定状态ST2之后,存储设备100可以响应于主机认证和重置命令从锁定状态ST2改变为初始状态ST1。例如,在图3的操作S250中,主机200可以将签名与重置命令一起发送到存储设备100,并且存储设备100可以在主机通过签名验证通过认证时根据重置命令从锁定状态ST2改变为初始状态ST1。例如,重置命令可以是安全命令,并且可以包括用于请求重置所有密钥的重置所有密钥命令。在初始状态ST1下,可以重置存储在存储设备100中的多个密钥。
图5示意性地示出根据一些示例实施例的非易失性存储器设备的存储区。
参考图5,非易失性存储器设备120可以包括引导区121、用户数据区122和公知(well-known)区123。引导区121、用户数据区122和/或公知区123中的每个或一个或更多个可以包括至少一个逻辑单元。
引导区121可以包括配置文件系统所需或足够的基本信息。在一些示例实施例中,引导区121可以包括文件系统访问卷所需或足够的信息。例如,引导区121可以包括运行存储系统10(见图1)的操作系统所需或足够的加载器,并且引导区121可以加载操作系统的内核文件。
用户数据区122可以存储用户数据。例如,用户数据区122可以存储从主机200请求存储在存储设备100中的数据(见图1)。
公知区123可以存储用于执行SCSI和/或UFS标准所定义的特定功能的数据(例如,命令和/或参数)。包括存储设备100的第一设备参数在内的参数可以存储在公知区123中。当如上所述存储设备100通过主机认证进入解锁状态或进入初始状态时,可以改变(或重置)存储在公知区123中的数据。在一些示例实施例中,公知区123可以包括RPMB逻辑单元,并且RPMB逻辑单元可以包括RPMB密钥。当存储设备100进入解锁状态或锁定状态时,可以改变或初始化RPMB密钥。
图6是示出根据一些示例实施例的主机和存储设备之间的命令和响应传输操作的流程图。参考图1至图5所给出的主机200和存储设备100的操作描述也可以适用于一些示例实施例。为了便于描述,主机200和存储设备100的某些组件和操作将一起表示。
参考图6,主机200和存储设备100可以分别包括密钥存储区211和密钥存储区1,并且主机200可以将公钥和/或私钥存储在密钥存储区211中。响应于从主机200发送到存储设备100的命令,可以分别执行多个操作,例如,操作S10、S20、S30和/或S40,从而设定公钥并基于公钥对主机进行认证。
在操作S10中,主机200可以向存储设备100发送第一安全命令SCMD1(操作S11),其中,第一安全命令SCMD1可以指示数据输出,并且可以是用于请求存储设备100设定公钥的公钥设定命令(设定公钥命令)。这里,第一安全命令SCMD1和下面描述的安全命令(例如,第二安全命令SCMD2和/或第三安全命令SMCD3)可以根据存储设备100与主机200之间的接口方法按照安全协议定义。
主机200可以将第一数据DT1作为与第一安全命令SCMD1相对应的输出数据发送到存储设备100(操作S12)。第一数据DT1可以包括公钥。
存储设备100可以响应于从主机200接收到的第一安全命令SCMD1,将公钥存储在密钥存储区1中。因此,可以设定公钥。
响应于第一安全命令SCMD1,存储设备100可以向主机200发送指示已设定了公钥的命令响应(操作S13)。
在操作S20中,主机200可以向存储设备100发送用于请求开始主机认证(主机认证开始)的第二安全命令SCMD2(操作S14)。第二安全命令SCMD2可以是数据输入命令,即用于从存储设备100请求数据的命令。在一些示例实施例中,第二安全命令SCMD2可以包括挑战命令。响应于第二安全命令SCMD2,存储设备100可以生成随机数并将包括随机数的第二数据DT2发送到主机200(操作S15)。另外,存储设备100还可以向主机200发送指示对第二安全命令SCMD2的响应已经完成的命令响应(操作S16)。
主机200可以基于从存储设备100接收到的随机数和公钥生成签名(数字签名)。此后,在操作S30中,主机200可以向存储设备100发送用于请求主机认证的第三安全命令SCMD3(操作S17)。第三安全命令SCMD3可以是数据输出命令,并且在一些示例实施例中,第三安全命令SCMD3可以是用于基于与第三安全命令SCMD3一起发送到存储设备100的数据请求认证的认证命令。主机200可以将与第三安全命令SCMD3相对应的第三数据DT3发送到存储设备100(操作S18)。第三数据DT3可以包括主机200生成的签名,并且还可以包括用于生成签名的散列算法(或散列函数)。存储设备100可以基于接收到的散列函数和存储在密钥存储区1中的公钥来对签名进行验证。存储设备100可以向主机200发送包括验证结果的命令响应(操作S19)。如上所述,当验证成功时,即主机通过认证时,存储设备100可以改变为解锁状态。
在操作S40中,当在操作S19中接收到的命令响应包括验证成功时,主机200可以向存储设备100发送用于请求改变第一参数的查询命令QCMD(操作S20)。在解锁状态下,存储设备100可以响应于查询命令QCMD改变第一参数。例如,查询命令QCMD可以包括RPMB密钥重置命令,并且存储设备100可以响应于RPMB密钥重置命令重置RPMB密钥。存储设备100可以向主机200发送查询响应,该查询响应指示已经根据查询命令QCMD改变了第一参数(操作S21)。
因此,根据示例实施例的存储系统10可以允许存储设备100根据来自主机200的请求改变第一参数,而无需使用单独的固件。因此,根据示例实施例的存储系统10可以增加存储设备100的重复使用和/或增加存储设备100的安全性。
图7A示出根据一些示例实施例的公钥设定命令(设定公钥命令)的命令块,并且图7B示出根据一些示例实施例的与公钥设定命令相对应的数据的数据块。
参考图7A,第一命令块CDB1可以是挑战命令的命令块,并且可以用12个字节实现(例如,第0至第11字节)。
第0字节可以是运行代码,其值可以为B5h。第1字节可以是表示安全协议的代码,其值可以为ECh。第2字节和第3字节可以是专用于安全协议的代码,其值可以分别为01h和10h。第4字节的第7位可以表示INC_512,其值可以为0b。第6字节至第9字节可以表示传输长度,并且第11字节可以是控制字节,并且可以设定为“00h”而不使用。第4字节、第5字节和第10字节的第0位至第6位可以被预留。
参考图7B,第一数据块DB1可以是与公钥设定命令相对应的数据的数据块。第一数据块DB1可以包括至少4个字节(例如,第0至第3字节)。第0字节可以包括标签,第1字节和第2字节可以表示数据的长度,并且包括第3字节在内的至少一个字节可以包括公钥的值。
图8A示出根据一些示例实施例的公钥设定命令(设定公钥命令)的命令块,并且图8B示出根据一些示例实施例的与公钥设定命令相对应的数据的数据块。
参考图8A,第二命令块CDB2可以是公钥设定命令的命令块,并且可以用12个字节实现(例如,第0至第11字节)。每个或一个或更多个字节可以包括7位(例如,第0位至第7位)。
第0字节可以是运行代码,其值可以为A2h。第1字节可以是表示安全协议的代码,其值可以为ECh。第2字节和第3字节可以是专用于安全协议的代码,其值可以分别为02h和10h。第4字节至第11字节可以与图7A的第一命令块CDB1的第4字节至第11字节相同。
参考图8B,第二数据块DB2可以是与挑战命令相对应的数据的数据块。第二数据块DB2可以包括32个字节(例如,第0字节至第31字节)。第0字节至第31字节中的每个或一个或更多个字节可以包括随机数。
图9A示出根据一些示例实施例的认证命令的命令块,并且图9B示出根据一些示例实施例的与认证命令相对应的数据的数据块。
参考图9A,第三命令块CDB3可以是认证命令的命令块,并且可以用12个字节(例如,第0字节至第11字节)实现。
第0字节可以是运行代码,其值可以为B5h。第1字节可以是表示安全协议的代码,其值可以为ECh。第2字节和第3字节可以是专用于安全协议的代码,其值可以分别为03h和10h。第4字节至第11字节可以与图7A的第一命令块CDB1的第4字节至第11字节相同。
参考图9B,第三数据块DB3可以是与认证命令相对应的数据的数据块。第三数据块DB3可以包括至少4个字节(例如,第0字节至第3字节)。第0字节可以包括散列算法(或散列函数),第1字节和第2字节可以表示数据的长度,并且包括第3字节在内的至少一个字节可以包括签名值。
图10是示出根据一些示例实施例的主机与存储设备之间的命令和响应传输操作的流程图。参考图1至图5所给出的主机200和存储设备100的操作描述也可以适用于一些示例实施例。为了便于描述,主机200和存储设备100的某些组件和操作将一起表示。
参考图10,主机200和存储设备100可以分别包括密钥存储区211和密钥存储区1,并且主机200可以将公钥和/或私钥存储在密钥存储区211中。多个操作(例如,操作S10、S20和/或S50)可以分别响应于从主机200发送到存储设备100的命令而执行,以设定公钥并且基于公钥对主机进行认证。操作S10和S20可以与图6的操作S10和S20相同。因此,为了简洁起见,将省略对其的多余描述。
在操作S50中,主机200可以向存储设备100发送第四安全命令SCMD4(操作S51)。第四安全命令SCMD4可以是指示数据输出的命令并且例如可以包括重置密钥命令(或重置所有密钥命令)。主机200可以将与第四安全命令SCMD4相对应的第四数据DT4发送到存储设备100(操作S52)。第四数据DT4可以包括主机200生成的签名并且还可以包括用于生成签名的散列算法(或散列函数)。存储设备100可以基于接收到的散列函数和/或存储在密钥存储区1中的公钥对签名进行验证。存储设备100可以重置存储在密钥存储区1中的所有或一个或更多个密钥(例如,公钥和/或认证密钥)。换言之,存储在密钥存储区1中的所有或一个或更多个密钥可以失效。存储设备100可以向主机200发送指示密钥已经被重置的命令响应(操作S53)。在一些示例实施例中,响应于指示存储设备100已重置密钥存储区1的密钥的命令响应,主机200可以重置存储在密钥存储区211中的密钥(例如,公钥、私钥和认证密钥)。在一些示例实施例中,主机200可以通过新生成公钥和/或私钥并根据操作S10将公钥提供给存储设备100来控制存储设备100设定公钥。
图11A示出根据一些示例实施例的用于重置所有密钥命令的命令块,并且图11B示出根据一些示例实施例的用于与重置所有密钥命令相对应的数据的数据块。
参考图11A,第四命令块CDB4可以用12个字节(例如,第0字节至第11字节)实现。
第0字节可以是运行代码,其值可以为B5h。第1字节可以是表示安全协议的代码,其值可以为ECh。第2字节和第3字节可以是专用于安全协议的代码,其值可以分别为04h和10h。第4字节至第11字节可以与图7A的第一命令块CDB1的第4字节至第11字节相同。
参考图11B,第四数据块DB4可以是与重置所有密钥命令相对应的数据的数据块。第四数据块DB4可以包括至少4个字节(例如,第0字节至第3字节)。第0字节可以包括散列算法(或散列函数),第1字节和第2字节可以表示数据的长度,并且包括第3字节的至少一个字节可以包括签名值。
图12示出根据一些示例实施例的存储设备的操作。
参考图12,存储设备100可以连接到第一主机200a。第一主机200a可以为存储设备100生成具有唯一值的私钥和/或公钥并且将生成的密钥存储在密钥存储区201a中。存储设备100可以从第一主机200a接收公钥并且存储公钥。
此后,在与第一主机200a的连接终止后,存储设备100可以连接到第二主机200b。第二主机200b可以获得由第一主机200a生成的公钥和/或私钥并且将获得的密钥存储在密钥存储区201b中。存储设备100可以与第二主机200b一起执行主机认证操作,例如图6的操作S20、S30和/或S30以及图10的操作S20和/或S50。
例如,即使与存储设备100连接的主机发生变化,第二主机200b也可以获取由第一主机200a生成的公钥和/或私钥,并且存储设备100可以根据第二主机200b的请求基于公钥和/或私钥执行主机认证并且在主机通过认证时改变第一参数。因此,可以提高存储设备100的重用率。
图13是示出根据一些示例实施例的存储设备的运行方法的流程图。
图13的方法可以在存储设备100(见图1)中执行,并且上面描述的存储设备100的操作也可以适用于一些示例实施例。
参考图13,存储设备100可以从第一主机200a(见图12)接收公钥(操作S201)。公钥可以由主机200生成,或者也可以由主机200从其他主机获取。
存储设备100可以存储接收到的公钥(操作S202)。存储设备100可以将公钥存储在非易失性存储器中,并且存储设备100的状态可以响应于存储了公钥而从初始状态改变为锁定状态。
存储设备100可以响应于来自第二主机200b的认证开始请求,向第二主机200b发送随机数(见图12)(操作S203)。响应于来自第二主机200b的认证开始请求,存储设备100可以生成随机数并将随机数发送到主机200。例如,随机数可以是32字节的数据。
存储设备100可以从第二主机200b接收基于私钥和随机数生成的签名(或称为数字签名)(操作S204)。在一些示例实施例中,第二主机200b可以通过基于散列算法(或散列函数)处理从存储设备100接收到的随机数来生成散列值,并使用私钥对散列值进行加密。存储设备100可以接收用于生成散列值的散列算法以及随机数。
存储设备100可以基于公钥对签名进行验证(操作S205)。当签名验证成功时,即当主机认证成功时,存储设备100可以根据来自主机200的请求改变第一设备参数(操作S206)。如参考图1所描述的,第一设备参数可以是一次性可写入的设定值。在一些示例实施例中,当主机通过认证时,存储设备100的状态可以从锁定状态改变为解锁状态。存储设备100可以在解锁状态下改变第一设备参数。在一些示例实施例中,当主机通过认证时,存储设备100可以响应于来自第二主机200b的安全命令从锁定状态改变为初始状态。例如,安全命令可以是密钥重置命令,并且存储在存储设备100中的包括公钥的密钥可以在初始状态下重置。
图14示出根据一些示例实施例的主机和存储设备的软件层。
参考图14,主机200可以包括安全管理器210、应用220、文件系统230、命令管理器240、数据传输管理器250、链路管理器260和/或物理层(PHY)(270)。
安全管理器210可以在主机200与存储设备100之间的通信中提供安全功能。安全管理器210可以包括:存储公钥、私钥和/或其他认证密钥的密钥存储区211;基于散列算法生成散列值(例如,第一散列值)的散列处理器212;和/或基于从存储设备100接收到的私钥和随机数生成签名的签名生成器213。
在主机200中执行的应用220可以通过文件系统230访问存储设备100。当应用220打算访问存储设备100(或其他外部设备)时,命令管理器240可以生成指示访问请求的命令。数据传输管理器250可以控制与存储设备100的数据通信,链路管理器260可以控制与存储设备100的连接管理,并且物理层270可以管理与存储设备100的物理数据通信。
存储设备100可以包括安全管理器11、设备参数13、状态管理器12、命令管理器14、数据传输管理器15、链路管理器16和/或物理层(PHY)17。
安全管理器11可以包括存储从主机200接收到的公钥和其他认证密钥的密钥存储区1、响应于来自主机200的认证开始请求生成随机数的随机数生成器2、通过基于从主机200接收到的散列算法处理随机数来生成散列值(例如,第二散列值)的散列处理器3和/或对来自主机200的签名进行验证的签名校验器4。
设备参数13可以包括具有各种属性的参数,例如具有只读属性的参数、具有一次性可写入的属性的参数和/或具有读写属性的参数。
状态管理器12可以管理存储设备100的状态(例如,初始状态、锁定状态和解锁状态)和/或设备参数13的状态。如上所述,当从主机200接收到的公钥存储在存储器中时,状态管理器120可以将存储设备100的状态从初始状态改变为锁定状态。当主机认证成功时,状态管理器12可以将存储设备100的状态从锁定状态改变为解锁状态或从锁定状态改变为初始状态。状态管理器12可以设定或重置(或初始化)设备参数13。
命令管理器14可以解释从主机200接收到的命令并根据命令控制存储设备100执行操作。数据传输管理器15可以控制与主机200的数据通信,链路管理器16可以控制与主机200的连接管理,并且物理层17可以管理与主机200的物理数据通信。
图15是示出根据一些示例实施例的非易失性存储器设备的框图。
参考图15,非易失性存储器设备120可以包括控制逻辑电路121、存储单元阵列122、页缓冲器电路123、电压发生器124和/或行译码器125。虽然图15中没有示出,但非易失性存储器设备120还可以包括存储器接口电路,并且还可以进一步包括命令译码器、地址译码器等。
控制逻辑电路121可以总体上控制非易失性存储器设备120中的各种操作。控制逻辑电路121可以响应于从设备控制器110(见图1)接收到的命令CMD和/或地址ADDR而输出各种控制信号。例如,控制逻辑电路121可以输出电压控制信号CTRL_vol、行地址X_ADDR和列地址Y_ADDR。
存储单元阵列122可以包括多个存储器块BLK1至BLKn(其中n为正整数),并且多个存储器块BLK1至BLKn中的每个或一个或更多个可以包括多个存储单元。存储单元阵列122可以通过位线BL连接到页缓冲器电路125,并且可以通过字线WL、串选择线SSL和/或接地选择线GSL连接到行译码器124。
在一些示例实施例中,存储单元阵列122可以包括三维(3D)存储单元阵列,并且3D存储单元阵列可以包括多个NAND串。每个或一个或更多个NAND串可以包括分别连接到垂直堆叠在衬底上的字线的存储单元。美国专利公布No.7,679,133、美国专利公布No.8,553,466、美国专利公布No.8,654,587、美国专利公布No.8,559,235和美国专利申请公布No.2011/0233648通过引用被全部并入本文。在一些示例实施例中,存储单元阵列122可以包括二维(2D)存储单元阵列,并且2D存储单元阵列可以包括沿着行和列方向布置的多个NAND串。
页缓冲器电路123可以包括多个页缓冲器,并且多个页缓冲器可以分别通过多条位线BL连接到存储单元。页缓冲器电路123可以响应于列地址Y_ADDR选择位线BL当中的至少一条位线。页缓冲器电路123可以根据运行模式运行为写入驱动器或读出放大器。例如,在编程操作中,页缓冲器电路123可以将与要编程的数据相对应的位线电压施加到选定的位线。在读取操作中,页缓冲器电路123可以通过感测选定的位线的电流或电压来检测存储在存储单元中的数据。
电压发生器124可以基于电压控制信号CTRL_vol产生用于执行编程、读取和/或擦除操作的各种类型的电压。例如,电压发生器124可以产生作为字线电压VWL的编程电压、读取电压、编程验证电压、擦除电压等。
行译码器125可以响应于行地址X_ADDR选择多条字线WL之一和多条串选择线SSL之一。例如,行译码器125可以在编程操作中向选定的字线施加编程电压和编程验证电压,并且可以在读取操作中向选定的字线施加读取电压。
一起参考图1和图15,存储单元阵列122可以存储包括第一参数在内的多个参数。当存储设备100(见图1)变为解锁状态时,可以重置第一参数。换言之,第一参数可以被设定为无效数据。
图16是示出根据一些示例实施例的UFS系统的框图。
UFS系统1000可以是符合联合电子设备工程委员会(JEDEC)公布的UFS标准的系统,并且可以包括UFS主机1100、UFS设备1200和/或UFS接口1300。对图1的存储系统10的以上描述也可以在不与参考图16给出的以下描述相冲突的范围内适用于图16的UFS系统1000。
参考图16,UFS主机1100和UFS设备1200可以通过UFS接口1300互联。当图1的主机200是应用处理器时,UFS主机1100可以被实现为应用处理器的一部分。UFS设备1200可以对应于图1的存储设备100,并且UFS设备控制器1210和非易失性存储器(NVM)1220可以分别对应于图1中的设备控制器110和非易失性存储器设备120。在UFS系统1000中,UFS主机1100可以为UFS设备1200生成具有唯一值的公钥和与公钥相对应的私钥,并且UFS设备1200可以基于从UFS主机1100接收到的公钥执行主机认证,根据认证的UFS主机1100的请求改变UFS设备1200的状态,并且在解锁状态或初始状态下改变一次性可写入的参数(第一参数)。因此,在减少或防止终端用户改变第一参数的同时,可以根据来自UFS主机1100的请求改变第一参数。
UFS主机1100可以包括UFS主机控制器1110、应用1120、UFS驱动器1130、主机存储器1140和/或UFS互连(UIC)层1150。UFS设备1200可以包括UFS设备控制器1210、非易失性存储器1220、存储接口1230、设备存储器1240、UIC层1250和/或调整器1260。非易失性存储器1220可以包括多个存储器单元1221,并且存储器单元1221可以包括2D结构和/或3D结构V-NAND闪存和/或还可以包括其他类型的非易失性存储器,诸如PRAM和/或RRAM。UFS设备控制器1210和非易失性存储器1220可以通过存储接口1230彼此连接。存储接口1230可以被实现为遵照标准协议,诸如Toggle和/或开放式NAND闪存接口(ONFI)。
应用1120可以指期望与UFS设备1200通信以使用UFS设备1200的功能的程序。应用1120可以向UFS驱动器1130发送输入输出请求(IOR),以进行与UFS设备1200有关的输入/输出。输入-输出请求(IOR)可以指对数据的读取请求、写入请求和/或丢弃请求;但是,本发明构思不限于此。
UFS驱动器1130可以通过主机控制器接口(UFS-HCI)管理UFS主机控制器1110。UFS驱动器1130可以将由应用1120生成的输入/输出请求转换为由UFS标准定义的UFS命令并将UFS命令发送到UFS主机控制器1110。一个输入/输出请求可以转换为多个UFS命令。UFS命令可以是基本上由SCSI标准定义的命令,或者也可以是UFS标准专用的命令。
UFS主机控制器1110可以通过UIC层1150和UFS接口1300将由UFS驱动器1130生成的UFS命令发送到UFS设备1200的UIC层1250。在该过程中,UFS主机控制器1110的UFS主机寄存器1111可以充当命令队列(CQ)。
UFS主机1100的UIC层1150可以包括MIPI M-PHY 1151和/或MIPI UniPro 1152,并且UFS设备1200的UIC层1250还可以包括MIPI M-PHY(1251)和/或MIPI UniPro 1252。
UFS接口1300可以包括用于发送参考时钟REF_CLK的线路、用于发送用于UFS设备1200的硬件重置信号RESET_n的线路、用于发送一对差分输入信号DIN_T和DIN_C的一对线路以及用于发送一对差分输出信号DOUT_T和DOUT_C的一对线路。
从UFS主机1100提供给UFS设备1200的参考时钟的频率值可以是19.2MHz、26MHz、38.4MHz和/或52MHz这四个值之一;但是,本发明构思并不限于此。UFS主机1100甚至可以在运行期间,即,甚至可以在UFS主机1100与UFS设备1200之间进行数据传输/接收的同时,改变参考时钟的频率值。通过使用锁相环(PLL)等,UFS设备1200可以根据从UFS主机1100接收到的参考时钟生成各种频率的时钟。另外,UFS主机1100可以基于参考时钟的频率值来设定UFS主机1100与UFS设备1200之间的数据速率值。即,数据速率值可以根据参考时钟的频率值确定。
UFS接口1300可以支持多个通道,并且每个通道可以被实现为差分对。例如,UFS接口1300可以包括一个或更多个接收通道和/或一个或更多个发送通道。在图16中,用于发送一对差分输入信号DIN_T和DIN_C的一对线路可以构成接收通道,并且用于发送一对差分输出信号DOUT_T和DOUT_C的一对线路可以构成发送通道。虽然图16中示出了一条发送通道和一条接收通道,但发送通道和接收通道的数量可以修改。
接收通道和/或发送通道可以通过串行通信方法传输数据,并且UFS主机1100与UFS设备1200之间的全双工通信可以通过接收通道和发送通道相互分离的结构来执行。即,即使在通过接收通道从UFS主机1100接收数据的同时,UFS设备1200也可以通过发送通道向UFS主机1100发送数据。另外,诸如从UFS主机1100到UFS设备1200的命令之类的控制数据和UFS主机1100意图存储在UFS设备1200的非易失性存储器1220中或从非易失性存储器1220中读取的用户数据可以通过同一通道发送。因此,除了一对接收通道和一对发送通道外,UFS主机1100与UFS设备1200之间可以不需要进一步提供用于数据传输的单独通道。
UFS设备1200的UFS设备控制器1210可以控制UFS设备1200的整体操作。UFS设备控制器1210可以通过作为逻辑数据存储单元的逻辑单元(LU)1211管理非易失性存储器1220。LU 1211的数量可以是8个;但是,本发明构思不限于此。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设备1200接收到表示用户数据已准备好接收(准备好传输)的响应,UFS主机1100可以将用户数据发送到UFS设备1200。UFS设备控制器1210可以将接收到的用户数据暂时存储在设备存储器1240中,并基于FTL的地址映射信息将暂时存储在设备存储器1240中的用户数据存储在非易失性存储器1220的选定位置处。
再例如,当UFS主机1100打算读取存储在UFS设备1200中的用户数据时,UFS主机1100可以向UFS设备1200发送数据读取命令。一旦接收到数据读取命令,UFS设备控制器1210可以基于数据读取命令从非易失性存储器1220读取用户数据,并将读取的用户数据暂时存储在设备存储器1240中。在该读取过程中,UFS设备控制器1210可以通过使用嵌入式纠错码(ECC)引擎(未示出)来检测和纠正读取的用户数据中的错误。更具体地,ECC引擎可以为将写入非易失性存储器1220中的写入数据生成奇偶校验位,并且生成的奇偶校验位可以与写入数据一起存储在非易失性存储器1220中。当从非易失性存储器1220中读取数据时,ECC引擎可以通过使用从非易失性存储器2220中与读取数据一起读取的奇偶校验位来纠正读取数据中的错误,并输出纠错后的读取数据。
另外,UFS设备控制器1210可以将临时存储在设备存储器1240中的用户数据发送到UFS主机1100。另外,UFS设备控制器1210还可以包括高级加密标准(AES)引擎(未示出)。AES引擎可以通过使用对称密钥算法,对输入到UFS设备控制器1210中的数据执行加密操作和/或解密操作中的至少之一。
UFS主机1100可以在可以用作命令队列的UFS主机寄存器1111中按顺序存储要发送到UFS设备1200的命令,并按顺序将命令发送到UFS设备1200。在这种情况下,即使在UFS设备1200仍在处理先前发送的命令时,即,即使在接收到指示UFS设备1200已完全地(或基本上)处理完先前发送的命令的通知之前,UFS主机1100仍可以向UFS设备1200发送在命令队列中等待的下一条命令,相应地,UFS设备1200仍可以在处理先前发送的命令的同时从UFS主机1100接收下一条命令。例如,命令队列中可以存储的最大命令数量(队列深度)可以是32。另外,命令队列可以作为循环队列类型实现,该循环队列类型通过头部指针和尾部指针分别指示队列中存储的命令序列的开始和结束。
多个存储单元1221中的每个或一个或更多个可以包括存储单元阵列(未示出)和/或控制存储单元阵列的操作的控制电路(未示出)。存储单元阵列可以包括2D存储单元阵列和/或3D存储单元阵列。3D存储单元阵列可以包括垂直NAND串,在垂直NAND串中,至少一个存储单元垂直地定向为位于另一个存储单元上方。
作为电源电压,VCC、VCCQ1、VCCQ2等可以输入到UFS设备1200。VCC可以是UFS设备1200的主电源电压,并且其值可以在大约2.4V至大约3.6V之间。VCCQ1可以是用于供应低电压的电源电压,可以主要用于UFS设备控制器1210,并且其值可以在大约1.14V至大约1.26V之间。VCCQ2可以是用于供应低于VCC但高于VCCQ1的电压的电源电压,可以主要用于输入/输出接口,例如MIPI M-PHY 1251,并且其值可以在大约1.7V至大约1.95V之间。电源电压可以通过调整器1260施加到UFS设备120的各个组件。调整器1260可以被实现为分别连接到上述电源电压当中的不同电压的一组单元调整器。
图17是用于描述根据一些示例实施例的适用于UFS设备的3D VNAND结构的图。当UFS设备的存储模块被实现为3D垂直NAND(VNAND)型闪存时,构成存储模块的多个存储器块中的每个或一个或更多个存储器块可以表示为图17所示的等效电路。图17中示出的存储器块BLKi可以表示在衬底上以3D结构形成的3D存储器块。例如,存储器块BLKi中包括的多个存储器NAND串可以在垂直于衬底的方向上形成。
参考图17,存储器块BLKi可以包括连接在位线BL1、BL2和/或BL3与公共源极线CSL之间的多个存储器NAND串NS11至NS33。多个存储器NAND串NS11至NS33中的每一者可以包括串选择晶体管SST、多个存储器单元MC1、MC2、...、MC8和/或接地选择晶体管GST。虽然图17示出多个存储器NAND串NS11至NS33中的每一者包括八个存储器单元MC1、MC2、......、MC8,但本发明构思不限于此。
串选择晶体管SST可以连接到相应的串选择线SSL1、SSL2和/或SSL3。多个存储单元MC1、MC2、......、MC8可以分别连接到相应的栅极线GTL1、GTL2、......、GTL8。栅极线GTL1、GTL2、......、GTL8可以对应于字线,并且栅极线GTL1、GTL2、......、GTL8中的一些栅极线可以对应于虚设字线。接地选择晶体管GST可以连接到相应的接地选择线GSL1、GSL2和/或GSL3。串选择晶体管SST可以连接到相应的位线BL1、BL2和/或BL3,并且接地选择晶体管GST可以连接到公共源极线CSL。
同一高度的字线(例如,WL1)可以公共地连接,而接地选择线GSL1、GSL2和/或GSL3以及串选择线SSL1、SSL2和/或SSL3可以彼此分开。尽管图17示出存储器块BLKi连接到八条栅极线GTL1、GTL2、......、GTL8以及三条位线BL1、BL2和BL3,但是本发明构思不限于此。
图18是用于描述根据一些示例实施例的适用于UFS设备的B-VNAND结构的示意图。当UFS设备中包括的非易失性存储器被实现为接合垂直NAND(B-VNAND)型闪存时,非易失性存储器可以具有图18中所示的结构。
参考图18,存储设备4000可以具有芯片到芯片(C2C)结构。对于C2C结构,包括单元区域CELL的上芯片可以在第一晶片上方制造,包括外围电路区域PERI的下芯片可以在不同于第一晶片的第二晶片上方制造,然后上芯片和下芯片可以通过接合方法彼此连接。例如,接合方法可以指将在上芯片的最上面的金属层中形成的接合金属电连接到在下芯片的最上面的金属层中形成的接合金属的方法。例如,当接合金属由铜(Cu)形成时,接合方法可以是铜-铜接合方法,并且接合金属也可以由铝或钨形成。
存储设备4000的外围电路区域PERI和单元区域CELL中的每个或一个或更多个可以包括外部焊盘接合区域PA、字线接合区域WLBA和/或位线接合区域BLBA。
外围电路区域PERI可以包括第一衬底4110、层间绝缘层4115、形成在第一衬底4110上方的多个电路元件4120a、4120b和/或4120c、分别连接到多个电路元件4120a、4120b和/或4120c的第一金属层4130a、4130b和/或4130c、和/或形成在第一金属层4130a、4130b和/或4130c上方的第二金属层4140a、4140b和/或4140c。在一些示例实施例中,第一金属层4130a、4130b和/或4130c可以由电阻相对高的钨形成,而第二金属层4140a、4140b和/或4140c可以由电阻相对低的铜形成。
在此,仅示出和描述了第一金属层4130a、4130b和4130c以及第二金属层4140a、4140b和4140c;但是,本发明构思不限于此,在第二金属层4140a、4140b和/或4140c上方还可以形成至少一个或更多个金属层。在第二金属层4140a、4140b和/或4140c上方形成的一个或更多个金属层中的至少一些金属层可以由电阻比形成第二金属层4140a、4140b和/或4140c的铜低的铝等形成。
层间绝缘层4115可以布置在第一衬底4110上方,以覆盖多个电路元件4120a、4120b和/或4120c、第一金属层4130a、4130b和/或4130c、和/或第二金属层4140a、4140b和/或4140c,并且可以包括诸如氧化硅和/或氮化硅的绝缘材料。
下接合金属4171b和/或4172b可以在字线接合区域WLBA的第二金属层4140b上方形成。在字线接合区域WLBA中,外围电路区域PERI的下接合金属4171b和/或4172b可以通过接合方法与单元区域CELL的上接合金属4271b和/或4272b电连接,并且下接合金属4171b和/或4172b以及上接合金属4271b和/或4272b可以由铝、铜、钨等形成。
单元区域CELL可以提供至少一个存储器块。单元区域CELL可以包括第二衬底4210和/或公共源极线4220。在第二衬底4210上方,可以在垂直于第二衬底4210的上表面的方向(Z轴方向)上堆叠多条字线4230(4231至4238)。串选择线和/或接地选择线可以分别布置在字线4230上方和/或下方,并且多条字线4230可以布置在串选择线与接地选择线之间。
在位线接合区域BLBA中,沟道结构CHS可以沿垂直于第二衬底4210的上表面的方向延伸,以穿过字线4230、串选择线和/或接地选择线。沟道结构CHS可以包括数据存储层、沟道层和/或掩埋绝缘层,并且沟道层可以与第一金属层4250c和/或第二金属层4260c电连接。例如,第一金属层4250c可以是位线接触,而第二金属层4260c可以是位线。在一些示例实施例中,位线4260c可以在平行于第二衬底4210的上表面的第一方向(Y轴方向)上延伸。
在图18中所示的一些示例实施例中,布置有沟道结构CHS和位线4260c的区域可以被定义为位线接合区域BLBA。位线4260c可以电连接到在位线接合区域BLBA中的外围电路区域PERI中提供页缓冲器4293的电路元件4120c。例如,位线4260c可以连接到外围电路区域PERI中的上接合金属4271c和/或4272c,而上接合金属4271c和/或4272c可以连接到与页缓冲器4293的电路元件4120c连接的下接合金属4171c和/或4172c。
在字线接合区域WLBA中,字线4230可以在平行于第二衬底4210的上表面的第二方向(X轴方向)上延伸,并且可以连接到多个单元接触插塞4240(4241至4247)。字线4230和单元接触插塞4240可以在通过至少一些字线4230在第二方向上以不同长度延伸所提供的焊盘处彼此连接。第一金属层4250b和第二金属层4260b可以依次连接到与字线4230连接的单元接触插塞4240的上部。单元接触插塞4240可以在字线接合区域WLBA中通过单元区域CELL的上接合金属4271b和/或4272b和/或外围电路区域PERI的下接合金属4171b和/或4172b连接到外围电路区域PERI。
单元接触插塞4240可以电连接到在外围电路区域PERI中提供行译码器4294的电路元件4120b。在一些示例实施例中,提供行译码器4294的电路元件4120b的工作电压可以不同于提供页缓冲器4293的电路元件4120c的工作电压。例如,提供页缓冲器4293的电路元件4120c的工作电压可以大于提供行译码器4294的电路元件4120b的工作电压。
公共源极线路接触插塞4280可以布置在外部焊盘接合区域PA中。公共源极线接触插塞4280可以由诸如金属、金属化合物和/或多晶硅的导电材料形成,并且可以与公共源极线4220电连接。第一金属层4250a和第二金属层4260a可以依次堆叠在公共源极线接触插塞4280上方。例如,其中布置有公共源极线接触插塞4280、第一金属层4250a和/或第二金属层4260a的区域可以被定义为外部焊盘接合区域PA。
此外,输入/输出焊盘4105和/或4205可以布置在外部焊盘接合区域PA中。参考图18,可以在第一衬底4110下方形成覆盖第一衬底4110的底表面的下绝缘层4101,并且在下绝缘层4101上方形成第一输入/输出焊盘4105。第一输入/输出焊盘4105可以通过第一输入/输出接触插塞4103连接到布置在外围电路区域PERI中的多个电路元件4120a、4120b和/或4120c中的至少一者,并且可以通过下绝缘层4101与第一衬底4110分离。另外,侧绝缘层可以布置在第一输入/输出接触插塞4103与第一衬底4110之间,以将第一输入/输出接触插塞4103与第一衬底4110电隔离。
参考图18,可以在第二衬底4210上方形成覆盖第二衬底4210的上表面的上绝缘层4201,并且在上绝缘层4201上方布置第二输入/输出焊盘4205。第二输入/输出焊盘4205可以通过第二输入/输出接触插塞4203连接到布置在外围电路区域PERI中的多个电路元件4120a、4120b和/或4120c中的至少一者。
在一些示例实施例中,第二衬底4210和公共源极线4220可以不布置在其中布置有第二输入/输出接触插塞4203的区域中。另外,第二输入/输出焊盘4205可以不在第三方向(Z轴方向)上与字线4230交叠。参考图18,第二输入/输出接触插塞4203可以在平行于第二衬底4210的上表面的方向上与第二衬底4210分离,并且可以通过单元区域CELL的层间绝缘层4215连接到第二输入/输出焊盘4205。
在一些示例实施例中,可以选择性地形成第一输入/输出焊盘4105和第二输入/输出焊盘4205。例如,存储设备4000可以仅包括布置在第一衬底4110上方的第一输入/输出焊盘4105,或可以仅包括布置在第二衬底4210上方的第二输入/输出焊盘4205。或者,存储设备4000可以包括第一输入/输出焊盘4105和第二输入/输出焊盘4205两者。
在单元区域CELL和外围电路区域PERI中分别包括的外部焊盘接合区域PA和/或位线接合区域BLBA的每个或一个或更多个中,最上面的金属层的金属图案可以作为虚设图案存在,或者最上面的金属层可以是空的。
在存储设备4000的外部焊盘接合区域PA中,对应于在单元区域CELL的最上面的金属层中形成的上金属图案4272a,可以在外围电路区域PERI的最上面的金属层中形成与上金属图案4272a具有相同形状的下金属图案4172a。在外围电路区域PERI的最上面的金属层中形成的下金属图案4173a可以不连接到外围电路区域PERI中的单独接触。类似地,在外部焊盘接合区域PA中,对应于在外围电路区域PERI的上金属层中形成的下金属图案4171a,可以在单元区域CELL的上金属层中形成与外围电路区域PERI的下金属图案4171a具有相同形状的上金属图案4271a。
下接合金属4171b和/或4172b可以在字线接合区域WLBA的第二金属层4140b上方形成。在字线接合区域WLBA中,外围电路区域PERI的下接合金属4171b和/或4172b可以通过接合方法与单元区域CELL的上接合金属4271b和/或4272b电连接。
另外,在位线接合区域BLBA中,对应于在外围电路区域PERI的最上面的金属层中形成的下金属图案4152,可以在单元区域CELL的最上面的金属层中形成与外围电路区域PERI的下金属图案4152具有相同形状的上金属图案4292。可以不在形成在单元区域CELL的最上面的金属层中的上金属图案4292上方形成接触。
上面公开的一个或更多个元件可以包括诸如下述的一个或更多个处理电路或实现在其中:包括逻辑电路的硬件;硬件/软件组合,例如执行软件的处理器;或它们的组合。例如,处理电路可以更具体地包括但不限于中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。
虽然已经参考本发明构思的一些示例实施例具体地示出并描述了本发明构思,但将理解的是,在不脱离所附权利要求的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
Claims (20)
1.一种存储设备的运行方法,所述存储设备包括非易失性存储器设备和存储控制器,所述存储控制器被配置为与主机通信并且控制所述非易失性存储器设备,所述运行方法包括:
由所述存储控制器存储从第一主机接收的公钥;
由所述存储控制器响应于来自已经获得所述公钥和与所述公钥相对应的私钥的第二主机的主机认证开始请求,向所述第二主机发送随机数;
由所述存储控制器从所述第二主机接收基于所述私钥和所述随机数生成的签名;
由所述存储控制器基于所述公钥对所述签名进行验证;以及
由所述存储控制器响应于对所述签名验证成功,根据来自所述第二主机的请求改变第一设备参数。
2.根据权利要求1所述的运行方法,其中,改变所述第一设备参数包括:改变用于设定所述存储设备的运行的设定值当中的一次性可写入的设定值。
3.根据权利要求2所述的运行方法,其中,所述一次性可写入的设定值存储在所述非易失性存储器设备的第一区域中。
4.根据权利要求3所述的运行方法,其中,改变所述第一设备参数还包括:将所述第一区域的状态从锁定状态改变为解锁状态。
5.根据权利要求1所述的运行方法,其中,所述非易失性存储器设备包括重放保护存储器块,并且
改变所述第一设备参数包括:初始化用于对访问所述重放保护存储器块进行认证的认证密钥。
6.根据权利要求1所述的运行方法,其中,改变所述第一设备参数包括:初始化存储在所述存储设备中的包括所述公钥的一个或更多个密钥。
7.根据权利要求6所述的运行方法,其中,改变所述第一设备参数还包括:将所述存储设备的状态从锁定状态改变为初始状态。
8.根据权利要求1所述的运行方法,其中,存储所述公钥包括:
从所述第一主机接收用于请求公钥设定的第一安全命令;以及
从所述第一主机接收包括所述公钥的第一数据。
9.根据权利要求1所述的运行方法,其中,向所述主机发送所述随机数包括:
从所述第二主机接收用于请求主机认证开始的第二安全命令;
生成所述随机数;以及
响应于所述第二安全命令,向所述第二主机发送包括所述随机数的第二数据。
10.根据权利要求1所述的运行方法,其中,接收所述签名包括:
接收用于请求基于所述签名的认证的第三安全命令;以及
接收包括所述签名和散列算法的第三数据。
11.根据权利要求1所述的运行方法,其中,接收所述签名包括:
接收用于请求密钥重置的第四安全命令;以及
接收包括所述签名和散列算法的第三数据。
12.根据权利要求11所述的运行方法,其中,改变所述第一设备参数包括:响应于所述第四安全命令,初始化存储在所述存储设备中的包括所述公钥的多个密钥。
13.根据权利要求11所述的运行方法,其中,对所述签名进行验证包括:
通过基于所述私钥对所述签名进行解密,来生成第一散列值;
通过基于所述散列算法对所述随机数进行处理,来生成第二散列值;以及
基于所述第一散列值和所述第二散列值,对所述签名进行验证。
14.根据权利要求1所述的运行方法,其中,所述第一主机和所述第二主机是同一主机。
15.根据权利要求1所述的运行方法,其中,所述存储设备包括通过通用闪存标准与所述主机互连的通用闪存设备。
16.一种存储设备的运行方法,所述存储设备被配置为与主机通信,所述运行方法包括:
由包括在所述存储设备中的存储控制器从所述主机接收公钥;
由所述存储控制器将所述公钥存储在所述存储设备的密钥存储区中;
由所述存储控制器响应于来自所述主机的主机认证请求,向所述主机发送随机数;
由所述存储控制器从所述主机接收基于所述随机数和与所述公钥相对应的私钥生成的签名;
由所述存储控制器基于所述公钥对所述签名进行验证;以及
由所述存储控制器响应于对所述签名验证成功,改变第一设备参数。
17.根据权利要求16所述的运行方法,其中,改变所述第一设备参数包括:
将所述存储设备的状态从锁定状态改变为解锁状态;以及
改变用于设定所述存储设备的运行的设定值当中的一次性可写入的设定值。
18.根据权利要求16所述的运行方法,其中,改变所述第一设备参数包括:初始化存储在所述存储设备中的包括所述公钥的所有密钥。
19.一种存储系统的运行方法,所述存储系统包括主机和存储设备,所述运行方法包括:
由所述主机获取与所述存储设备相对应的公钥和与所述公钥相对应的私钥;
由所述主机向所述存储设备发送所述公钥;
由所述存储设备存储所述公钥;
由所述存储设备响应于从所述主机接收的主机认证开始请求,向所述主机发送随机数;
由所述主机基于所述私钥和所述随机数生成签名;
由所述主机向所述存储设备发送所述签名;
由所述存储设备基于所述公钥对所述签名进行验证;以及
由所述存储设备响应于对所述签名验证成功,根据来自所述主机的请求改变第一设备参数。
20.根据权利要求19所述的运行方法,其中,改变所述第一设备参数包括:改变用于设定所述存储设备的运行的设定值当中的一次性可写入的设定值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0149352 | 2022-11-10 | ||
KR1020230027964A KR20240068509A (ko) | 2022-11-10 | 2023-03-02 | 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법 |
KR10-2023-0027964 | 2023-03-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118013561A true CN118013561A (zh) | 2024-05-10 |
Family
ID=90946305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311447975.4A Pending CN118013561A (zh) | 2022-11-10 | 2023-11-01 | 存储设备的运行方法和存储系统的运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118013561A (zh) |
-
2023
- 2023-11-01 CN CN202311447975.4A patent/CN118013561A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318193B2 (en) | Systems and methods of command authorization | |
US10387064B2 (en) | Storage device, host communicating with the storage device, and electronic device including the storage device | |
KR102154187B1 (ko) | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110383250B (zh) | 配置为使用无线接口执行操作的数据存储设备 | |
US11726672B2 (en) | Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device | |
US11714561B2 (en) | System, device and method for writing data to protected region | |
CN114255813A (zh) | 存储装置、主机装置、包括两者的电子装置及其操作方法 | |
CN114254402A (zh) | 数据存储装置及其操作方法 | |
EP4180977A1 (en) | Parameter change command for storage device interface tuning | |
KR20210060867A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
EP4369225A1 (en) | Operating method of storage device and operating method of storage system including storage device | |
CN118013561A (zh) | 存储设备的运行方法和存储系统的运行方法 | |
US20220197510A1 (en) | Storage device for executing processing code and operating method of the storage device | |
KR20240068509A (ko) | 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법 | |
CN114115713A (zh) | 用于执行高速链路启动的存储设备和包括其的存储系统 | |
CN114596888A (zh) | 存储器设备、存储器系统和存储器系统的操作方法 | |
CN114077391A (zh) | 存储系统、存储系统的控制器及存储系统的操作方法 | |
US20220187997A1 (en) | System, device, and method for writing data to protected region | |
KR102509646B1 (ko) | 스토리지 장치 | |
US20230281312A1 (en) | Storage device and operation method thereof | |
US11599284B2 (en) | Storage controller, storage system and operating methods thereof | |
KR102547251B1 (ko) | 비휘발성 메모리 장치를 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법 | |
US20230131062A1 (en) | Storage device and operating method thereof | |
US20240143183A1 (en) | Storage device operated by zone and data processing system including the same | |
KR20220010408A (ko) | 보호 영역에 데이터를 기입하기 위한 시스템, 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |