数据存储装置及其操作方法与流程

文档序号:29446816发布日期:2022-03-30 11:09阅读:132来源:国知局
数据存储装置及其操作方法与流程
数据存储装置及其操作方法
1.相关申请的交叉引用
2.本专利文件要求于2020年9月22日提交的、申请号为10-2020-0122028的韩国专利申请的优先权和权益,该韩国专利申请通过引用整体并入本文。
技术领域
3.本专利文件中公开的技术和实施方案涉及一种电子装置,并且更特别地,涉及一种数据存储装置及其操作方法。


背景技术:

4.存储装置或数据存储装置可以包括存储数据的存储器装置以及允许诸如计算机或智能电话的主机装置从数据存储装置读取数据和/或将数据写入数据存储装置的控制器。根据在没有电力的情况下存储器装置保持所存储的数据的功能,可以将存储器装置表征为易失性存储器装置或非易失性存储器装置。
5.易失性存储器装置在通电时保留所存储的数据,但是当电力中断时,所存储的数据会丢失。易失性存储器装置的示例可以包括静态随机存取存储器(sram)和动态随机存取存储器(dram)。
6.非易失性存储器装置即使在没有电源的情况下也可以保留所存储的数据。非易失性存储器装置的示例包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)和闪速存储器。


技术实现要素:

7.除了其它特征和益处之外,所公开技术的实施例提供了一种可以提供改进的安全功能的数据存储装置及其操作方法。
8.基于所公开技术的一些实施例的数据存储装置包括:存储器装置,包括通过安全协议保护的保护存储块;以及存储器控制器,被配置成接收与安全协议相关联的命令协议组件,该安全协议包括请求将来自主机的数据写入保护存储块的主机端保护消息,使用主机端保护消息中包括的主机消息认证码对保护存储块执行认证操作,并且根据认证操作的结果存储来自主机的数据,其中命令协议组件包括:基本头部段,为在主机与存储器控制器之间传输的协议组件共有;事务专用字段,包括用于标识协议组件的类型的值;以及附加头部段,作为与基本头部段不同的头部段,并且被配置成包括主机端保护消息。
9.基于所公开技术的一些实施例的数据存储装置包括:非易失性存储器装置,包括重放保护块(replay protection block);以及存储器控制器,被配置成接收命令协议组件,该命令协议组件包括主机请求读取重放保护块中存储的数据的主机重放保护块消息,执行读取操作以获得与主机重放保护块消息中包括的地址相对应的数据,并且将从该地址读取的数据提供到主机,其中命令协议组件包括:基本头部段,共同包括在主机与存储器控制器之间传输和接收的协议组件中;事务专用字段,包括用于标识协议组件的类型的值;以
及附加头部段,作为与基本头部段不同的头部段,并且被配置成包括主机重放保护块消息。
10.根据本技术,提供了一种提供改进的安全功能的数据存储装置及其操作方法。
附图说明
11.图1是示出基于所公开技术的一些实施例的数据存储装置的示例的示图。
12.图2是示出图1的存储器装置的示例的示图。
13.图3是示出图2的存储块的示例配置的示图。
14.图4是示出对重放保护块的访问的示图。
15.图5是示出在重放保护块主机控制器和重放保护块装置控制器之间传输的数据的数据结构的示图。
16.图6是示出协议组件或协议信息单元(piu)的基本头部段的结构的示图。
17.图7是示出当执行重放保护块写入操作或重放保护块读取操作时所使用的重放保护块消息的结构的示图。
18.图8是示出重放保护块写入操作的示例的示图。
19.图9a至图9c是示出基于所公开技术的一些实施例的在图8的重放保护块写入操作期间提供的重放保护块消息的示例的示图。
20.图10是示出重放保护块读取操作的示图的示例。
21.图11a和图11b是示出基于所公开技术的一些实施例的在图10的重放保护块读取操作期间提供的重放保护块消息的示例的示图。
22.图12是示出基于所公开技术的一些实施例的重放保护块写入操作的示例的流程图。
23.图13是示出基于所公开技术的一些实施例的重放保护块读取操作的示例的流程图。
24.图14是示出基于所公开技术的一些实施例的图12和图13的命令piu的示例的示图。
25.图15是示出基于所公开技术的一些实施例的图12和图13的响应piu的示例的示图。
26.图16是示出图4的重放保护块主机控制器的操作的示图。
27.图17是示出图4的重放保护块装置控制器在重放保护块写入操作期间的操作的示图。
28.图18是示出图4的重放保护块装置控制器在重放保护块读取操作期间的操作的示图。
29.图19是示出基于所公开技术的一些实施例的图1的存储器控制器的示例的示图。
30.图20是示出包括基于所公开技术的一些实施例的数据存储装置的存储卡系统的框图。
31.图21是示出包括基于所公开技术的一些实施例的数据存储装置的固态驱动器(ssd)系统的框图。
32.图22是示出包括基于所公开技术的一些实施例的数据存储装置的用户系统的框图。
具体实施方式
33.本专利文件中公开的技术可以在一些实施例中实施以提供数据存储装置和数据存储方法,该数据存储装置和数据存储方法除了其它特征和优点之外,还可以通过使用诸如重放保护存储块特征的安全协议来提供改进的安全性。
34.图1是示出基于所公开技术的一些实施例的数据存储装置的示例的示图。
35.参照图1,数据存储装置50可以包括存储器装置100和存储器控制器200。数据存储装置50可以是在诸如以下的主机400的控制下存储数据的装置:移动电话、智能电话、mp3播放器、膝上型计算机、台式计算机、游戏机、tv、平板pc或车载信息娱乐系统。可选地,数据存储装置50可以是诸如服务器或数据中心的、在将高容量数据存储在一个地方的主机400的控制下存储数据的装置。
36.数据存储装置50可以是经由主机接口与主机400通信的任意类型的数据存储装置。数据存储装置50的示例可以包括ssd,以mmc、emmc、rs-mmc和微型mmc形式的多媒体卡,以sd、迷你型sd和微型sd形式的安全数字卡,通用串行总线(usb)存储装置,通用闪存(ufs)装置,个人计算机存储卡国际协会(pcmcia)卡型数据存储装置,外围组件互连(pci)卡型数据存储装置,高速pci(pci-e)卡型数据存储装置,紧凑型闪存(cf)卡,智能媒体卡和记忆棒。
37.数据存储装置50可以被制造为各种类型的封装中的任意一种。例如,数据存储装置50可以被制造为诸如以下的各种类型的封装类型中的任意一种:堆叠封装(pop)、系统级封装(sip)、片上系统(soc)、多芯片封装(mcp)、板上芯片(cob)、晶圆级制造封装(wfp)以及晶圆级堆叠封装(wsp)。
38.存储器装置100可以存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列(未示出),该存储器单元阵列包括存储数据的多个存储器单元。
39.存储器单元中的每一个可以被配置成存储一个数据位的单层单元(slc)、存储两个数据位的多层单元(mlc)、存储三个数据位的三层单元(tlc)或能够存储四个数据位的四层单元(qlc)。
40.存储器单元阵列(未示出)可以包括多个存储块。每个存储块可以包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或者读取存储器装置100中存储的数据的单位。存储块可以是用于擦除数据的单位。
41.存储器装置100中包括的存储块可以包括诸如重放保护块或重放保护存储块(rpmb)110a的保护存储块以及普通块(normal blk)110b。
42.保护存储块被配置成存储用于认证从存储器装置待读取或待写入存储器装置的数据的信息,并且被安全协议保护。重放保护块(rpmb)110a是这种保护存储块的一个示例,仅通过诸如使用预定专用命令或认证的安全协议可访问该保护存储块。主机400可以将重放保护块110a的写入计数限制为预定数量。当执行与重放保护块110a的最大写入计数值相对应的写入操作时,仅可以允许对重放保护块110a的读取操作。
43.在一些实施方案中,重放保护块或rpmb可以包括用于存储少量敏感信息的安全存储块。在一个示例中,重放保护块或rpmb可以被配置成使装置能够将数据存储在较小的专用区域中,该区域通过在以后阶段重新发送或重放权利实体(right entities)之间的初始
消息而被认证并保护以免受重放攻击,在运行重放攻击的一个恶意软件截获这种相同消息时发生该重放攻击。为了保护敏感信息免受这种重放攻击,rpmb认证密钥信息首先被主机写入安全存储块,然后被主机和存储器装置两者使用以认证涉及rpmb区域的读取消息和写入消息。
44.可以预先确定针对诸如重放保护块110a的保护存储块的写入数据(例如,被写入保护存储块的数据)的大小。例如,重放保护块110a中存储的数据可以以128kb(千字节)为单位。在实施例中,重放保护块110a中存储的数据的最大数据大小可以为16mb(兆字节)。
45.仅当认证通过时,才可以允许对重放保护块110a的访问。对重放保护块110a的认证可以包括以下操作:主机400和数据存储装置50中的每一个最初仅存储一次相同的认证密钥,并且使用待存储的数据和认证密钥来确定主机400和数据存储装置50中的每一个生成的消息认证码(mac)是否匹配。在一些实施方案中,主机400和数据存储装置50中的每一个可以使用诸如hmac安全哈希算法(sha)-256的基于哈希的mac来生成mac。在重放保护块110a中,可以在保持认证密钥和写入计数器的值的同时保持重放保护块110a中存储的数据。
46.在图1中,存储器装置100包括一个重放保护块110a,但是存储器装置100可以包括两个或更多个重放保护块110a。在这种情况下,每个重放保护块110a可以具有唯一的认证密钥和写入计数值。
47.普通块可以是可以无需单独认证就可以访问的存储块。普通块可以是存储除了重放保护块110a中存储的数据以外的数据的存储块。
48.在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(ddr sdram)、第四代低功率双倍数据速率(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、垂直nand闪速存储器、nor闪速存储器、电阻式随机存取存储器(rram)、相变存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)、自旋转移扭矩随机存取存储器(stt-ram)等。在本说明书中,为了便于描述,假设存储器装置100是nand闪速存储器。
49.存储器装置100被配置成从存储器控制器200接收命令和地址,并且访问存储器单元阵列中的由地址选择的区域。存储器装置100可以对由地址选择的区域执行由命令指示的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程在由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
50.存储器控制器200可以控制数据存储装置50的全部操作。
51.当向数据存储装置50施加电力时,存储器控制器200可以运行诸如闪存转换层(ftl)的固件以用于控制主机400与存储器装置100之间的通信。
52.在实施例中,存储器控制器200可以从主机400接收数据和逻辑块地址(lba),并且可以将lba转换为指示存储器装置100中包括的、待存储数据的存储器单元的地址的物理块地址(pba)。
53.存储器控制器200可以根据主机400的请求来控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将编程命令、pba和数据提供
到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和pba提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和pba提供到存储器装置100。
54.在实施例中,存储器控制器200可以不管来自主机400的请求而自主地生成命令、地址和数据,并且将命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以向存储器装置100提供用于执行伴随着执行损耗均衡、读取回收、垃圾收集等的编程操作、读取操作和擦除操作的命令、地址和数据。
55.在实施例中,存储器控制器200可以控制至少两个或更多个存储器装置100。在这种情况下,存储器控制器200可以根据交错方法来控制存储器装置100以提高操作性能。交错方法可以是控制至少两个存储器装置100的操作彼此重叠的方法。
56.存储器控制器200可以包括重放保护块装置控制器210。
57.重放保护块装置控制器210可以处理对重放保护块110a的访问请求。
58.重放保护块装置控制器210可以处理将数据存储在重放保护块110a中的重放保护块写入操作以及读取重放保护块110a中存储的数据的重放保护块读取操作。参照稍后描述的图4至图19更详细地描述重放保护块装置控制器210处理重放保护块写入操作和重放保护块读取操作的具体方法。
59.主机400可以使用诸如以下的各种通信方法中的至少一种与数据存储装置50通信:通用串行总线(usb)、串行at附件(sata)、串列scsi(sas)、高速芯片间(hsic)、小型计算机系统接口(scsi)、外围组件互连(pci)、高速pci(pcie)、高速非易失性存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)和负载减小的dimm(lrdimm)。例如,可以在一些实施例中使用所公开的技术以在ufs中实施重放保护存储块(rpmb)。
60.主机400可以进一步包括重放保护块主机控制器410。
61.重放保护块主机控制器410可以生成用于控制重放保护块110a的各种请求或命令,并且将各种请求或命令提供到重放保护块装置控制器210。重放保护块主机控制器410可以从重放保护块装置控制器210接收响应或处理结果。
62.图2是示出图1的存储器装置的示例的示图。
63.参照图2,存储器装置100可以包括存储器单元阵列110、电压生成器120、地址解码器130、输入/输出(i/o)电路140和控制逻辑150。
64.存储器单元阵列110包括多个存储块blk1至blki。多个存储块blk1至blki通过行线rl连接到地址解码器130。多个存储块blk1至blki可以通过列线cl连接到输入/输出电路140。在实施例中,行线rl可以包括字线、源极选择线和漏极选择线。在实施例中,列线cl可以包括位线。
65.多个存储块blk1至blki中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。多个存储器单元之中的、连接到相同字线的存储器单元可以被定义为一个物理页面。也就是说,存储器单元阵列110可以包括多个物理页面。存储器装置100的存储器单元中的每一个可以用作存储一个数据位的单层单元(slc)、存储两个数据位的多层单元(mlc)、存储三个数据位的三层单元(tlc)或能够存储四个数据位的四层单元(qlc)。
66.多个存储块blk1至blki可以包括参照图1描述的重放保护块110a以及普通块
110b。
67.在实施例中,电压生成器120、地址解码器130和输入/输出电路140可以被统称为外围电路。外围电路可以用于在控制逻辑150的控制下操作存储器单元阵列110。外围电路可以用于在执行编程操作、读取操作和擦除操作时操作存储器单元阵列110。
68.电压生成器120被配置成使用供应到存储器装置100的外部电源电压来生成多个操作电压。电压生成器120响应于控制逻辑150的控制而操作。
69.在一些实施方案中,电压生成器120可以通过调节外部电源电压来生成内部电源电压。由电压生成器120生成的内部电源电压用作存储器装置100的操作电压。
70.在一些实施方案中,电压生成器120可以使用外部电源电压或内部电源电压来生成多个操作电压。电压生成器120可以被配置成生成存储器装置100中所需的各种电压。例如,电压生成器120可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
71.电压生成器120可以包括接收内部电源电压以生成具有各种电压电平的多个操作电压的多个泵浦电容器,并且可以通过响应于控制逻辑150的控制,选择性地启用多个泵浦电容器来生成多个操作电压。
72.所生成的多个操作电压可以通过地址解码器130被供应到存储器单元阵列110。
73.地址解码器130通过行线rl连接到存储器单元阵列110。地址解码器130被配置成响应于控制逻辑150的控制而操作。地址解码器130可以从控制逻辑150接收地址addr。地址解码器130可以对接收到的地址addr之中的块地址进行解码。地址解码器130根据经解码的块地址从存储块blk1至blki之中选择至少一个存储块。地址解码器130可以对接收到的地址addr之中的行地址进行解码。地址解码器130可以根据经解码的行地址从所选择存储块的字线之中选择至少一个字线。在实施例中,地址解码器130可以对接收到的地址addr之中的列地址进行解码。地址解码器130可以根据经解码的列地址将输入/输出电路140和存储器单元阵列110彼此连接。
74.例如,地址解码器130可以包括诸如行解码器、列解码器和地址缓冲器的组件。
75.输入/输出电路140可以包括多个页面缓冲器。多个页面缓冲器可以通过位线连接到存储器单元阵列110。在编程操作期间,可以根据多个页面缓冲器中存储的数据(data)将数据存储在所选择的存储器单元中。
76.在读取操作期间,可以通过位线感测所选择的存储器单元中存储的数据,并且可以将感测到的数据存储在页面缓冲器中。
77.控制逻辑150可以控制地址解码器130、电压生成器120和输入/输出电路140。控制逻辑150可以响应于从外部装置传输的命令cmd而操作。控制逻辑150可以响应于命令cmd和地址addr而生成控制信号以控制外围电路。
78.图3是示出图2的存储块的示例配置的示图。
79.存储块blki是图2的存储块blk1至blki中的任意一个blki。
80.参照图3,彼此平行布置的多个字线可以连接在第一选择线与第二选择线之间。此处,第一选择线可以是源极选择线ssl,并且第二选择线可以是漏极选择线dsl。更具体地,存储块blki可以包括连接在位线bl1至bln和源极线sl之间的多个串st。位线bl1至bln可以分别连接到串st,并且源极线sl可以共同地连接到串st。因为串st可以被配置成彼此相同,
所以作为示例具体描述连接到第一位线bl1的串st。
81.串st可以包括串联连接在源极线sl和第一位线bl1之间的源极选择晶体管sst、多个存储器单元mc1至mc16和漏极选择晶体管dst。一个串st可以包括源极选择晶体管sst和漏极选择晶体管dst中的至少一个或多个,并且可以包括比附图中所示的数量更多的存储器单元mc1至mc16。
82.源极选择晶体管sst的源极可以连接到源极线sl,并且漏极选择晶体管dst的漏极可以连接到第一位线bl1。存储器单元mc1至mc16可以串联连接在源极选择晶体管sst和漏极选择晶体管dst之间。不同的串st中包括的源极选择晶体管sst的栅极可以连接到源极选择线ssl,漏极选择晶体管dst的栅极可以连接到漏极选择线dsl,并且存储器单元mc1至mc16的栅极可以连接到多个字线wl1至wl16。不同的串st中包括的存储器单元之中的、连接到相同字线的一组存储器单元可以被称为页面ppg。因此,存储块blki可以包括与字线wl1至wl16的数量一样多的页面pg。
83.一个存储器单元可以存储一个数据位。这通常被称为单层单元(slc)。在这种情况下,一个物理页面pg可以存储一个逻辑页面(lpg)数据。一个逻辑页面(lpg)数据可以包括与一个物理页面pg中包括的单元相同数量的数据位。
84.一个存储器单元可以存储两个或更多个数据位。在这种情况下,一个物理页面pg可以存储两个或更多个逻辑页面(lpg)数据。
85.图4是示出对重放保护块的访问的示图。
86.参照图4,数据存储装置50可以包括重放保护块110a以及控制重放保护块110a的重放保护块装置控制器210。重放保护块110a可以是参照图1描述的存储器装置100中包括的存储块中的一个,并且重放保护块装置控制器210可以包括在存储器控制器200中。
87.重放保护块110a可以包括认证密钥111、写入计数器112、结果寄存器113和重放保护块数据区域(rpmb数据区域)114。
88.认证密钥111可以被存储仅一次,可以不被读取,并且可以仅在计算用于认证的mac时被访问。在实施例中,认证密钥111的大小可以是32字节。
89.写入计数器112可以对成功执行重放保护块写入操作的次数进行计数。写入计数器112可以存储对应于4字节的写入计数值。写入计数器112的初始值可以是“0000 0000h”。写入计数器112的写入计数值可以不重置或减小。写入计数器112的值可以在达到最大值“ffff ffffh”之后不再增大。因此,当写入计数器112的值达到最大值时,可以不再将数据存储在重放保护块110a中,并且重放保护块110a可以用作只读块。
90.结果寄存器113可以存储重放保护块写入操作或重放保护块读取操作的结果。
91.在实施例中,认证密钥111、写入计数器112和结果寄存器113可以独立地包括在每个重放保护块110a中,并且可以具有唯一值。
92.重放保护块数据区域114可以是仅在认证通过时才存储数据的区域。
93.当执行重放保护块写入操作时,重放保护块主机控制器410可以根据预定格式将诸如重放保护块消息的保护消息提供到重放保护块装置控制器210。在一些实施方案中,保护消息可以包括主机端保护消息。由重放保护块主机控制器410提供的重放保护块消息可以包括对重放保护块执行认证操作所需的信息。例如,重放保护块消息可以包括认证数据和元数据。认证数据可以包括由重放保护块主机控制器410生成的mac。
94.重放保护块装置控制器210可以进一步包括认证管理器211和访问控制器212。
95.认证管理器211可以使用重放保护块消息中包括的认证数据和元数据以及重放保护块110a中存储的认证密钥111来执行认证操作。认证管理器211可以将执行认证操作的结果提供到访问控制器212。访问控制器212可以根据执行认证操作的结果将数据存储在重放保护块110a中或禁止数据存储在重放保护块110a中。
96.当认证操作通过时,访问控制器212可以控制重放保护块110a将待存储在重放保护块中的写入数据存储在重放保护块数据区域114中。访问控制器212可以增加写入计数器112的值,并且将指示重放保护块写入操作完成的信息存储在结果寄存器113中。
97.当认证操作失败时,访问控制器212可以不将请求存储在重放保护块中的写入数据存储在重放保护块数据区域114中。访问控制器212可以保持写入计数器112的值,并且将指示重放保护块写入操作完成的信息存储在结果寄存器113中。
98.当执行重放保护块读取操作时,重放保护块主机控制器410可以根据预定格式将诸如重放保护块消息的保护消息提供到重放保护块装置控制器210。在一些实施方案中,保护消息可以包括装置端保护消息。由重放保护块主机控制器410提供的重放保护块消息可以包括对重放保护块执行认证操作所需的信息。例如,重放保护块消息可以包括元数据。
99.访问控制器212可以读取重放保护块中存储的数据,并且生成待提供到重放保护块主机控制器410的重放保护块消息。访问控制器212可以获得从重放保护块主机控制器410接收的重放保护块消息中包括的一些元数据(例如,随机数),并且生成包括从重放保护块主机控制器410接收的重放保护块消息中包括的一些元数据以及重放保护块读取操作的结果。访问控制器212可以使用所生成的元数据以及重放保护块110a中存储的认证密钥111来生成认证数据。认证数据可以包括用于重放保护块主机控制器410执行认证操作以稍后访问读取数据的mac。
100.访问控制器212可以生成包括所生成的元数据和认证数据的重放保护块消息,并且将读取数据和重放保护块消息提供到重放保护块主机控制器410。在实施例中,由访问控制器212提供的重放保护块消息可以包括结果寄存器113中存储的结果信息。
101.图5是示出在重放保护块主机控制器和重放保护块装置控制器之间传输的数据的数据结构的示图。
102.参照图4和图5,重放保护块主机控制器410和重放保护块装置控制器210可以使用数据包进行通信。数据包或消息可以被称为协议组件或协议信息单元(piu),可以通过该数据包或消息在主机(例如,ufs主机)和数据存储装置之间传送诸如安全信息的信息。协议组件(或piu)可以具有预定义的数据结构,该数据结构包括将在下面进行讨论的被布置为各个字段的多个顺序寻址字节。
103.根据待由重放保护块主机控制器410或重放保护块装置控制器210执行的操作,piu可以包括命令piu、响应piu、数据输出piu、数据输入piu和准备传送piu。
104.命令piu可以是当主机400向数据存储装置50传输命令时所传输的piu。
105.响应piu可以是当数据存储装置50提供对由主机400提供的命令的响应时所传输的piu。
106.数据输出piu可以是当主机400向数据存储装置50提供数据时所传输的piu。
107.数据输入piu可以是当数据存储装置50向主机400提供数据时所传输的piu。
108.准备传送piu可以是当数据存储装置50通知数据存储装置50准备好从主机400接收数据输出piu时所传输的piu。准备传送piu可以是当数据存储装置50具有足够的缓冲空间来存储由主机400提供的数据时所传输的piu。
109.piu的最小大小可以是32字节,并且piu的最大大小可以是65600字节。根据类型,piu的格式可以具有不同的大小。
110.piu可以包括基本头部段61、事务专用字段62、附加头部段63和数据段64。
111.基本头部段61的大小可以是12字节。基本头部段61可以共同地包括在所有piu中。
112.事务专用字段62可以包括在来自piu的字节地址12的字节地址31中。根据piu的类型,事务专用字段62可以包括专用事务代码。
113.当基本头部段61的附加头部段总长度(ehs总长度)字段的值是非零时,可以定义附加头部段63。附加头部段63可以从piu的字节地址32开始。当基本头部段61中可能没有包括足够的信息时,附加头部段63可以是能够附加地存储数据的区域。
114.数据段64可以包括在数据输出piu或数据输入piu中,并且可以不包括在其它piu中。
115.在实施例中,附加头部段63和数据段64可以不包括在所有协议piu中,而是可以仅包括在特定piu中。
116.图6是示出piu的基本头部段的结构的示图。
117.参照图6,基本头部段61可以包括事务类型、标志、逻辑单元号(lun)、任务标签、启动端id、命令组类型、查询功能/任务管理功能(query function,task manag.function)、响应、状态、附加头部段总长度(ehs总长度)、装置信息和数据段长度。
118.根据piu的类型,事务类型可以具有唯一值。下面的[表1]中示出了根据piu的类型的事务类型的示例。
[0119]
[表1]
[0120][0121]
根据事务类型,标志可以是具有不同值的字段。
[0122]
逻辑单元号(lun)可以是指示待执行操作的目标中包括的多个逻辑组件之中的、执行相应操作的逻辑组件的数量的字段。
[0123]
根据事务类型,任务标签可以是具有不同值的字段。
[0124]
启动端id可以是标识谁是请求操作的启动端的字段。因此,在主机生成piu并且数据存储装置生成piu的情况下,启动端id可以具有不同的值。
[0125]
命令组类型可以是命令piu和响应piu中包括的字段。命令组类型可以是指示命令支持哪个接口(例如,命令是scsi命令、ufs命令还是制造商定义的命令)的字段。
[0126]
查询功能/任务管理功能(query function,task manag.function)可以是输入到
piu的字段,诸如查询请求、查询响应或任务管理请求。
[0127]
响应可以是指示所请求的操作的执行是成功还是失败的字段。
[0128]
状态可以是指示scsi状态的字段。
[0129]
附加头部段总长度(ehs总长度)可以是指示以32位为单位的附加头部段的大小的字段。当piu包括附加头部段时,可以使用附加头部段总长度(ehs总长度)。附加头部段的长度可以是以4字节为单位。附加头部段总长度(ehs总长度)的值可以是通过将附加头部段的总字节数除以4而获得的值。附加头部段的最大大小可以是1024字节。当不使用附加头部段时,附加头部段总长度(ehs总长度)可以是0。
[0130]
装置信息可以包括仅在执行特定功能时才使用的信息。
[0131]
数据段长度可以是指示piu的数据段的长度的字段。当piu不包括数据段时,数据段长度可以是0。
[0132]
图7是示出当执行重放保护块写入操作或重放保护块读取操作时所使用的重放保护块消息的结构的示图。
[0133]
参照图4和图7,重放保护块消息(rpmb消息)可以是当对重放保护块执行操作时所提供的消息。
[0134]
重放保护块消息(rpmb消息)可以包括认证数据和元数据。
[0135]
认证数据可以包括填充字节和mac。mac可以是由重放保护块主机控制器410使用预先存储的认证密钥以及元数据计算出的结果。也就是说,mac可以是使用基于哈希的mac(hmac sha-256)计算的认证码。mac的长度可以是256位(32字节)。用于生成mac的认证密钥可以是256位。
[0136]
元数据可以包括随机数、写入计数器、地址、块计数、结果和请求消息类型/响应消息类型。
[0137]
随机数可以是由重放保护块主机控制器410生成的随机数值。可以将由重放保护块主机控制器410提供的随机数复制到重放保护块装置控制器210向重放保护块主机控制器410提供的响应。
[0138]
写入计数器可以是对重放保护块110a成功地执行写入操作的次数。
[0139]
地址可以是数据待被存储在重放保护块110a中的逻辑地址,或者从重放保护块110a待读取数据的逻辑地址。
[0140]
块计数可以是请求重放保护块写入操作或重放保护块读取操作的逻辑块的数量。块计数可以是以256字节为单位的逻辑块的数量。
[0141]
结果可以是执行重放保护块写入操作或重放保护块读取操作的结果。
[0142]
请求消息类型/响应消息类型可以指示重放保护块消息是与重放保护块写入操作有关的消息还是与重放保护块读取操作有关的消息。
[0143]
图8是示出重放保护块写入操作的示图。
[0144]
参照图8,将数据存储在重放保护块中的重放保护块写入操作涉及主机400和数据存储装置50之间的三个命令的组合(协议握手)。
[0145]
具体地,重放保护块写入操作包括认证写入请求、结果读取请求和结果读取响应。
[0146]
可以通过执行多个操作s801至s807来运行认证写入请求,可以通过执行多个操作s809至s815来运行结果读取请求,并且可以通过执行多个操作s817至s821来运行结果读取
响应。
[0147]
认证写入请求可以是包括在重放保护块中的数据存储和待存储的数据的请求。
[0148]
结果读取请求可以是用于传送请求结果寄存器中存储的值的命令的请求,执行重放保护块写入操作的结果存储在该结果寄存器中。
[0149]
结果读取响应可以是提供结果寄存器的值的响应。
[0150]
在s801中,主机400可以将命令piu提供到数据存储装置50。在s801中提供的命令piu可以包括重放保护块消息。数据存储装置50可以使用重放保护块消息中包括的mac和元数据对重放保护块执行认证操作。
[0151]
在s803中,数据存储装置50可以将准备传送piu提供到主机400。准备传送piu可以是当数据存储装置50准备好接收待由主机400提供的数据时所提供的piu。在实施例中,准备传送piu可以是提供指示准备好接收数据输出piu的消息的piu。
[0152]
在s805中,主机400可以将数据输出piu提供到数据存储装置50。由主机400提供的数据输出piu可以包括多个数据段,该多个数据段包括待存储在重放保护块中的数据。
[0153]
在s807中,数据存储装置50可以将响应piu提供到主机400。由数据存储装置50提供的响应piu可以包括执行重放保护块写入操作的结果。
[0154]
在s809中,主机400可以将命令piu提供到数据存储装置50。在s809中提供的命令piu可以包括重放保护块消息。在实施例中,在s809中提供的命令piu中包括的重放保护块消息可以包括由主机400提供的命令piu请求结果寄存器中存储的值的消息。
[0155]
在s811中,数据存储装置50可以将准备传送piu提供到主机400。准备传送piu可以是当数据存储装置50准备好接收待由主机400提供的数据时所提供的piu。在实施例中,准备传送piu可以是提供指示准备好接收数据输出piu的消息的piu。
[0156]
在s813中,主机400可以将数据输出piu提供到数据存储装置50。
[0157]
在s815中,数据存储装置50可以将响应piu提供到主机400。在s815中,由数据存储装置50提供的响应piu可以包括指示成功接收在s809中接收的消息的信息,该消息指示请求结果寄存器中存储的值的命令。
[0158]
在s817中,主机400可以将命令piu提供到数据存储装置50。在s817中提供的命令piu可以是用于请求从数据存储装置50提供数据的命令。
[0159]
在s819中,数据存储装置50可以将数据输入piu提供到主机400。
[0160]
在s821中,数据存储装置50可以将响应piu提供到主机400。在s821中被主机400接收的响应piu可以包括重放保护块消息,该重放保护块消息包括结果寄存器中存储的值。
[0161]
图9a至图9c是示出基于所公开技术的一些实施例的在图8的重放保护块写入操作期间提供的重放保护块消息的示例的示图。
[0162]
图9a是在认证写入请求中由主机400提供到数据存储装置50的重放保护块消息。
[0163]
参照图9a,认证写入请求的重放保护块消息可以包括在图8所示的s801中由主机400提供到数据存储装置50的命令piu中。
[0164]
具体地,认证写入请求的重放保护块消息可以包括主机400计算的mac、当前写入计数器值、数据待存储在重放保护块中的地址、逻辑块计数、指示命令piu是认证写入请求的消息。
[0165]
图9b是在结果读取请求中由主机400提供到数据存储装置50的重放保护块消息。
[0166]
参照图9b,结果读取请求的重放保护块消息可以包括在参照图8描述的s809中由主机400提供到数据存储装置50的命令piu中。
[0167]
结果读取请求的重放保护块消息可以仅包括指示命令piu是结果读取请求的消息,并且其余字段可以是0。
[0168]
图9c是在结果读取响应中由数据存储装置50提供到主机400的重放保护块消息。
[0169]
参照图9c,结果读取响应的重放保护块消息可以包括在参照图8描述的s821中由数据存储装置50提供到主机400的响应piu中。
[0170]
参照图9c,结果读取响应的重放保护块消息可以包括由数据存储装置计算的mac。由数据存储装置计算的mac可以是通过使用数据存储装置中存储的认证密钥以及结果读取响应的重放保护块消息中包括的元数据而计算的认证码。
[0171]
结果读取响应的重放保护块消息可以包括更新后的写入计数器值,该更新后的写入计数器值相比于图9a的重放保护块消息的写入计数器值有所增加。
[0172]
在实施例中,结果读取响应的重放保护块消息可以进一步包括指示命令piu是结果读取响应的消息。
[0173]
图10是示出重放保护块读取操作的示图的示例。
[0174]
参照图10,读取重放保护块中存储的数据的重放保护块读取操作涉及主机400和数据存储装置50之间的两次握手。
[0175]
具体地,重放保护块读取操作包括认证读取请求和认证读取响应。
[0176]
可以通过执行多个操作s1001至s1007来运行认证读取请求,并且可以通过执行多个操作s1009至s1013来运行认证读取响应。
[0177]
认证读取请求可以是指示读取重放保护块中存储的数据的请求。
[0178]
认证读取响应可以是提供读取数据的响应。
[0179]
在s1001中,主机400可以将命令piu提供到数据存储装置50。在s1001中提供的命令piu可以包括重放保护块消息。数据存储装置50可以使用重放保护块消息中包括的mac和元数据对重放保护块执行认证操作。
[0180]
在s1003中,数据存储装置50可以将准备传送piu提供到主机400。准备传送piu可以是当数据存储装置50准备好接收待由主机400提供的数据时所提供的piu。在实施例中,准备传送piu可以是提供指示准备好接收数据输出piu的消息的piu。
[0181]
在s1005中,主机400可以将数据输出piu提供到数据存储装置50。
[0182]
在s1007中,数据存储装置50可以将响应piu提供到主机400。由数据存储装置50提供的响应piu可以包括正常接收执行重放保护块读取操作的请求的结果。
[0183]
在s1009中,主机400可以将命令piu提供到数据存储装置50。在s1009中提供的命令piu可以包括重放保护块消息。在实施例中,在s1009中提供的命令piu中包括的重放保护块消息可以包括指示由主机400提供的命令piu是请求提供读取数据的命令的消息。
[0184]
在s1011中,数据存储装置50可以将数据输入piu提供到主机400。由数据存储装置50提供的数据输入piu可以包括多个数据段。多个数据段可以是读取数据。
[0185]
在s1013中,数据存储装置50可以将响应piu提供到主机400。在s821中被主机400接收的响应piu可以包括重放保护块消息,该重放保护块消息包括结果寄存器中存储的值。
[0186]
图11a和图11b是示出基于所公开技术的一些实施例的在图10的重放保护块读取
操作期间提供的重放保护块消息的示例的示图。
[0187]
图11a是在认证读取请求中由主机400提供到数据存储装置50的重放保护块消息。
[0188]
参照图11a,认证读取请求的重放保护块消息可以包括在参照图10描述的s1001中由主机400提供到数据存储装置50的命令piu中。
[0189]
具体地,认证读取请求的重放保护块消息可以包括由主机400提供的随机数、待读取的地址、待读取的块计数以及指示在s1001中由主机400提供到数据存储装置50的命令piu是认证读取请求的消息。
[0190]
图11b是在认证读取响应中由数据存储装置50提供到主机400的重放保护块消息。
[0191]
参照图11b,认证读取响应的重放保护块消息可以包括在参照图10描述的s1009中由数据存储装置50提供到主机400的响应piu中。
[0192]
认证读取响应的重放保护块消息可以包括图11a的认证读取请求的重放保护块消息的随机数、读取地址、读取块计数、结果代码以及指示由数据存储装置50提供到主机400的响应piu是结果读取响应的消息。在实施例中,结果读取响应的重放保护块消息可以进一步包括由数据存储装置50生成的mac。
[0193]
如通过图8和图10的实施例所述,在常规的重放保护块写入操作和重放保护块读取操作中,实际提供写入数据或读取数据的握手仅一次。然而,包括请求重放保护块写入操作和重放保护块读取操作并提供对其的响应的不必要握手。这导致重放保护块的速度延迟、设计复杂性等。因此,本公开的实施例提供了一种通过使用一个命令的组合(piu的组合)来执行该操作的方法。
[0194]
图12是示出基于所公开技术的一些实施例的重放保护块写入操作的示例的流程图。
[0195]
参照图12,在s1201中,主机400可以将命令piu提供到数据存储装置。命令piu可以包括附加头部段。附加头部段可以包括重放保护块消息。重放保护块消息可以包括指示命令piu是指示重放保护块写入操作的piu的消息。例如,命令piu中包括的重放保护块消息可以是参照图9a描述的认证写入请求的重放保护块消息。
[0196]
在s1203中,主机400可以将数据输出piu提供到数据存储装置50。数据输出piu可以包括待存储在重放保护块中的数据。
[0197]
在s1205中,数据存储装置50可以将响应piu提供到主机400。由数据存储装置50提供的响应piu可以包括重放保护块消息。例如,响应piu中包括的重放保护块消息可以是参照图9c描述的结果读取响应的重放保护块消息。在实施例中,响应piu可以包括附加头部段,并且重放保护块消息可以包括在附加头部段中。
[0198]
图13是示出基于所公开技术的一些实施例的重放保护块读取操作的示例的流程图。
[0199]
参照图13,在s1301中,主机400可以将命令piu提供到数据存储装置。命令piu可以包括附加头部段。附加头部段可以包括重放保护块消息。重放保护块消息可以包括命令piu是指示重放保护块读取操作的piu的消息。例如,命令piu中包括的重放保护块消息可以是参照图11a描述的认证读取请求的重放保护块消息。
[0200]
在s1303中,数据存储装置50可以将数据输入piu提供到主机400。数据输入piu可以包括从重放保护块读取的数据。
[0201]
在s1305中,数据存储装置50可以将响应piu提供到主机400。由数据存储装置50提供的响应piu可以包括重放保护块消息。例如,响应piu中包括的重放保护块消息可以是参照图11b描述的认证读取响应的重放保护块消息。在实施例中,响应piu可以包括附加头部段,并且重放保护块消息可以被包括在附加头部段中。
[0202]
图14是示出基于所公开技术的一些实施例的图12和图13的命令piu的示例的示图。
[0203]
参照图14,命令piu可以包括基本头部段、事务专用字段、附加头部段和数据段。基于所公开技术的一些实施例,因为图12的命令piu和图13的命令piu包括附加头部段,所以与基本头部段中包括的字段之中的字节地址8相对应的附加头部段总长度(ahs总长度)可以具有非0(非零)的值。图12的命令piu和图13的命令piu可以包括附加头部段中与主机400提供的重放保护块消息的大小相对应的数据。因此,图12的命令piu和图13的命令piu的附加头部段总长度(ahs总长度)的值可以是通过将重放保护块消息的总字节数除以4而获得的值。
[0204]
图15是示出基于所公开技术的一些实施例的图12和图13的响应piu的示例的示图。
[0205]
参照图15,响应piu可以包括基本头部段、事务专用字段、附加头部段和数据段。基于所公开技术的一些实施例,因为图12的响应piu和图13的响应piu包括附加头部段,所以与基本头部段中包括的字段之中的字节地址8相对应的附加头部段总长度(ehs总长度)可以具有非0(非零)的值。图12的响应piu和图13的响应piu可以包括附加头部段中与数据存储装置50提供到主机400的重放保护块消息的大小相对应的数据。因此,图12的响应piu和图13的响应piu的附加头部段总长度(ehs总长度)的值可以是通过将重放保护块消息的总字节数除以4而获得的值。
[0206]
图16是示出图4的重放保护块主机控制器的操作的示图。
[0207]
参照图16,重放保护块主机控制器410可以包括主机消息认证码计算器411、主机认证密钥数据存储装置412、主机元数据生成器413和主机协议组件生成器414。
[0208]
主机认证密钥数据存储装置412可以存储认证密钥。由主机认证密钥数据存储装置412存储的认证密钥可以是与数据存储装置50存储的认证密钥相同的认证密钥。可以在对重放保护块执行写入或读取操作之前预先存储认证密钥。
[0209]
当执行重放保护块写入操作时,主机元数据生成器413可以生成元数据。元数据可以包括当前写入计数器值、待存储数据的地址、待存储的数据的块计数以及请求重放保护块写入操作的消息的信息。
[0210]
主机元数据生成器413可以将所生成的元数据提供到主机消息认证码计算器411和主机协议组件生成器414。
[0211]
主机消息认证码计算器411可以使用元数据和认证密钥来生成mac。具体地,主机消息认证码计算器411可以使用基于哈希的mac(hmac sha-256)来生成mac。所生成的mac可以用于数据存储装置50执行认证操作。mac的长度可以是256位(32字节)。用于生成mac的认证密钥可以是256位。主机消息认证码计算器411可以将所生成的mac提供到主机协议组件生成器414。
[0212]
主机协议组件生成器414可以生成待提供到数据存储装置50的piu。具体地,主机
协议组件生成器414可以生成包括认证数据和元数据的重放保护块消息。认证数据可以包括由主机消息认证码计算器411生成的mac。主机协议组件生成器414可以生成将重放保护块消息包括在附加头部段中的命令piu,并且将所生成的命令piu提供到数据存储装置50。命令piu可以包括附加头部段,并且基本头部段中的附加头部段总长度字段可以包括非0的值。
[0213]
主机协议组件生成器414可以生成协议组件,例如数据输出piu。数据输出piu可以包括数据段。主机协议组件生成器414生成数据输出piu,并且将所生成的数据输出piu提供到数据存储装置50,待存储在重放保护块中的写入数据包括在数据段中。
[0214]
当执行重放保护块读取操作时,主机元数据生成器413可以生成元数据。元数据可以包括关于随机数(任意的随机数值)、待读取的地址、待读取的块计数以及请求重放保护块读取操作的消息的信息。
[0215]
主机元数据生成器413可以将所生成的元数据提供到主机协议组件生成器414。
[0216]
主机协议组件生成器414可以生成待提供到数据存储装置50的piu。具体地,主机协议组件生成器414可以生成包括所生成的元数据的重放保护块消息。主机协议组件生成器414可以生成在附加头部段中包括重放保护块消息的命令piu,并且将所生成的命令piu提供到数据存储装置50。命令piu可以包括附加头部段,并且基本头部段中的附加头部段总长度字段可以包括非0的值。
[0217]
此后,重放保护块主机控制器410可以接收通过数据输入piu从数据存储装置50读取的数据,并且接收响应piu。重放保护块主机控制器410可以获得响应piu的附加头部段中包括的重放保护块消息。由数据存储装置50提供的响应piu中包括的重放保护块消息可以包括由数据存储装置50生成的mac、由主机元数据生成器413生成的随机数的副本、地址、读取块计数、由于重放保护块读取操作而得到的代码以及重放保护块的读取响应。
[0218]
重放保护块主机控制器410可以使用接收到的重放保护块的消息中包括的元数据以及主机认证密钥数据存储装置412中存储的认证密钥来对读取数据执行认证操作。根据执行认证操作的结果,重放保护块主机控制器410可以获得读取数据或破坏读取数据。
[0219]
图17是示出图4的重放保护块装置控制器在重放保护块写入操作期间的操作的示图。
[0220]
参照图17,重放保护块装置控制器210可以包括认证管理器211和访问控制器212。
[0221]
认证管理器211可以包括装置消息认证码计算器211a和消息认证码比较器211b。
[0222]
在重放保护块写入操作期间,装置消息认证码计算器211a可以从自重放保护块主机控制器410接收的命令piu中获得元数据。装置消息认证码计算器211a可以获得重放保护块中存储的认证密钥。装置消息认证码计算器211a可以使用基于哈希的mac(hmac sha-256)来计算mac。装置消息认证码计算器211a可以将使用来自重放保护块主机控制器410的重放保护块消息的元数据以及存储器装置的重放保护块中存储的认证密钥计算的mac提供到认证码比较器211b。
[0223]
消息认证码比较器211b可以从从重放保护块主机控制器410接收的命令piu获得mac。具体地,消息认证码比较器211b可以从自重放保护块主机控制器410接收的命令piu中包括的重放保护块消息获得由重放保护块主机控制器410生成的mac。消息认证码比较器211b可以比较由重放保护块主机控制器410生成的mac和由装置消息认证码计算器211a计
算出的mac是否相同。消息认证码比较器211b可以将比较结果提供到访问控制器212。
[0224]
当由重放保护块主机控制器410生成的mac和由装置消息认证码计算器211a计算出的mac相同时,访问控制器212可以控制存储器装置将数据存储在重放保护块中。访问控制器212可以增加写入计数器值,并且将指示重放保护块写入操作成功的信息存储在结果寄存器中。
[0225]
当由重放保护块主机控制器410生成的mac和由装置消息认证码计算器211a计算的mac不相同时,访问控制器212可以不将数据存储在重放保护块中。在这种情况下,访问控制器212可以不增加写入计数器值,并且将指示认证失败的信息存储在结果寄存器中。
[0226]
访问控制器212可以生成重放保护块消息,并且生成包括所生成的消息的piu。具体地,访问控制器212可以生成响应piu。由访问控制器212生成的响应piu可以包括附加头部段。访问控制器212可以将重放保护块消息包括在响应piu的附加头部段中,并且将重放保护块消息提供到主机400。
[0227]
由访问控制器212提供到主机400的响应piu可以包括由装置消息认证码计算器211a计算的mac。由访问控制器212提供到主机400的响应piu可以进一步包括指示写入计数值、结果代码以及作为重放保护块写入操作的结果的响应的消息。此处,当重放保护块写入操作成功时,写入计数值可以包括增加后的写入计数值。另外,结果代码可以是指示重放保护块写入操作成功的结果代码。相反,当重放保护块写入操作失败时,写入计数值可以包括现有的写入计数值。另外,结果代码可以是指示重放保护块写入操作失败的原因的结果代码。
[0228]
图18是示出图4的重放保护块装置控制器在重放保护块读取操作期间的操作的示图。
[0229]
参照图18,重放保护块装置控制器210可以包括认证管理器211和访问控制器212。
[0230]
访问控制器212可以包括装置元数据生成器212a和装置协议组件生成器212b。
[0231]
在重放保护块读取操作期间,装置元数据生成器212a可以从由重放保护块主机控制器410提供的命令piu中包括的重放保护块消息获得元数据,并且获得元数据中包括的随机数。
[0232]
此后,重放保护块装置控制器210可以读取重放保护块中存储的数据,将所读取数据包括在数据输入piu的数据段中,并且将所读取数据提供到重放保护块装置控制器210。
[0233]
接下来,装置元数据生成器212a可以生成元数据,该元数据包括由重放保护块主机控制器410提供的命令piu中包括的重放保护块消息中包括的随机数值,以及指示执行重放保护块读取操作的结果的结果代码。装置元数据生成器212a可以将所生成的元数据提供到认证管理器211。认证管理器211可以使用基于哈希的mac(hmac sha-256)来计算mac。具体地,认证管理器211可以使用重放保护块中存储的认证密钥以及由装置元数据生成器212a生成的元数据来计算mac。认证管理器211可以将计算的mac提供到装置协议组件生成器212b。
[0234]
装置协议组件生成器212b可以生成响应piu。由装置协议组件生成器212b生成的响应piu可以包括附加头部段。装置协议组件生成器212b可以将重放保护块消息包括在响应piu的附加头部段中,并且将重放保护块消息提供到主机400。附加头部段中包括的重放保护块消息可以包括由认证管理器211计算的mac。附加头部段中包括的重放保护块消息可
以进一步包括由重放保护块主机控制器410提供的命令piu中包括的重放保护块消息的随机数、读取地址、读取块计数、结果代码以及指示作为重放保护块读取操作的结果的响应的消息。
[0235]
图19是示出基于所公开技术的一些实施例的图1的存储器控制器的示例的示图。
[0236]
参照图19,存储器控制器800可以包括处理器810、ram 820、错误校正(ecc)电路830、主机接口840、rom 850和闪存接口860。
[0237]
处理器810可以控制存储器控制器800的全部操作。ram 820可以用作存储器控制器800的缓冲存储器、高速缓存存储器、操作存储器等。
[0238]
rom 850可以以固件的形式存储存储器控制器800操作所需的各种信息。
[0239]
存储器控制器800可以通过主机接口840与外部装置(例如,主机400、应用处理器等)通信。
[0240]
存储器控制器800可以通过闪存接口860与存储器装置100通信。存储器控制器800可以通过闪存接口860将命令cmd、地址addr和控制信号ctrl传输到存储器装置100,并且接收数据data。例如,闪存接口860可以包括nand接口。
[0241]
图20是示出包括基于所公开技术的一些实施例的数据存储装置的存储卡系统的框图。
[0242]
参照图20,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
[0243]
存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置成访问存储器装置2200。例如,存储器控制器2100可以被配置成控制存储器装置2200的读取操作、编程操作、擦除操作和后台操作。存储器控制器2100被配置成提供存储器装置2200与主机之间的接口。存储器控制器2100被配置成运行固件操作,以控制存储器装置2200。存储器控制器2100可以与参照图1描述的存储器控制器200相同地实施。
[0244]
例如,存储器控制器2100可以包括诸如随机存取存储器(ram)、处理器、主机接口、存储器接口和错误校正器的组件。
[0245]
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定的通信标准与外部装置(例如,主机)通信。例如,存储器控制器2100被配置成通过诸如以下的各种通信标准中的至少一种与外部装置通信:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pci-e)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi-fi、蓝牙和nvme。例如,连接器2300可以由上述各种通信标准中的至少一种定义。
[0246]
例如,存储器装置2200可以由诸如以下的各种非易失性存储器元件配置:电可擦除可编程rom(eeprom)、nand闪速存储器、nor闪速存储器、相变ram(pram)、电阻式ram(reram)、铁电ram(fram)和自旋转移扭矩磁性ram(stt-mram)。
[0247]
存储器控制器2100和存储器装置2200可以被集成到一个半导体装置中以配置存储卡。例如,存储器控制器2100和存储器装置2200可以被集成到一个半导体装置中以配置诸如以下的存储卡:pc卡(个人计算机存储卡国际协会(pcmcia))、紧凑型闪存卡(cf)、智能媒体卡(sm或smc)、记忆棒、多媒体卡(mmc、rs-mmc、微型mmc或emmc)、sd卡(sd、迷你型sd、微
型sd或sdhc)和通用闪存(ufs)。
[0248]
图21是示出包括基于所公开技术的一些实施例的数据存储装置的固态驱动器(ssd)系统的框图。
[0249]
参照图21,ssd系统3000包括主机3100和ssd 3200。ssd 3200通过信号连接器3001与主机3100交换信号,并且通过电源连接器3002接收电力。ssd 3200包括ssd控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
[0250]
基于所公开技术的一些实施例,ssd控制器3210可以执行参照图1描述的存储器控制器200的功能。
[0251]
ssd控制器3210可以响应于从主机3100接收的信号来控制多个闪速存储器3221至322n。例如,信号可以是基于主机3100和ssd 3200之间的接口的信号。例如,信号可以是由诸如以下的接口中的至少一种定义的信号:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pci-e)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi-fi、蓝牙和nvme。
[0252]
辅助电源3230通过电源连接器3002连接到主机3100。辅助电源3230可以从主机3100接收电力并且可以充电。当来自主机3100的电力供应不平稳时,辅助电源3230可以提供ssd 3200的电力。例如,辅助电源3230可以位于ssd 3200中或者可以位于ssd 3200的外部。例如,辅助电源3230可以位于主板上,并且可以向ssd 3200提供辅助电力。
[0253]
缓冲存储器3240作为ssd 3200的缓冲存储器操作。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如dram、sdram、ddr sdram、lpddr sdram和gram的易失性存储器,或者诸如fram、reram、stt-mram和pram的非易失性存储器。
[0254]
图22是示出包括基于所公开技术的一些实施例的数据存储装置的用户系统的框图。
[0255]
参照图22,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
[0256]
应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(os)、用户程序等。例如,应用处理器4100可以包括控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(soc)。
[0257]
存储器模块4200可以作为用户系统4000的主存储器、操作存储器、缓冲存储器或高速缓存存储器操作。存储器模块4200可以包括诸如dram、sdram、ddr sdram、ddr2 sdram、ddr3 sdram、lpddr sdram、lpddr2 sdram和lpddr3 sdram的易失性随机存取存储器,或者诸如pram、reram、mram和fram的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可以基于堆叠封装(pop)进行封装并设置为一个半导体封装。
[0258]
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(cdma)、全球移动通信系统(gsm)、宽带cdma(wcdma)、cdma-2000、时分多址(tdma)、长期演进(lte)、wimax、wlan、uwb、蓝牙和wi-fi。例如,网络模块4300可以被包括在应用处理器4100中。
[0259]
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。例如,存储模块4400可以利用诸如以下的非易失性半导体存储器元件来实施:相变ram(pram)、磁性ram(mram)、电阻式ram(rram)、nand闪存、nor闪存和三维nand闪存。例如,存储模块4400可以被设置为用户系统4000的诸如存储卡的可移动数据存储装置(可移动驱动器),和外部驱动器。
[0260]
例如,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图1描述的存储器装置100相同地操作。存储模块4400可以与参照图1描述的数据存储装置50相同地操作。
[0261]
用户接口4500可以包括用于向应用处理器4100输入数据或指令或者用于向外部装置输出数据的接口。例如,用户接口4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括诸如以下的用户输出接口:液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和监视器。
[0262]
仅描述了所公开技术的一些示例或实施例。基于所公开的内容,可以对所公开示例或实施例以及其它实施例进行变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1