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

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


背景技术:

4.数据存储装置是用于响应于来自诸如计算机或智能电话的主机装置的请求而存储或提供数据的装置。这种数据存储装置可以包括用于存储数据的一个或多个存储器装置以及用于控制该一个或多个存储器装置的存储器控制器器。存储器装置可以被分类为易失性存储器装置和非易失性存储器装置。
5.易失性存储器装置仅在装置通电时保留其数据,而在断电时丢失其数据。易失性存储器装置可以包括例如静态随机存取存储器(sram)和动态随机存取存储器(dram)。
6.非易失性存储器装置即使在没有电力供应的情况下也保留所存储的数据,因此在断电时不会丢失其数据。非易失性存储器装置包括例如只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)和闪速存储器。


技术实现要素:

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