一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理系统中共享数据的设备和方法与流程

2022-02-24 17:14:16 来源:中国专利 TAG:

数据处理系统中共享数据的设备和方法
1.相关申请的交叉引用
2.本专利申请要求于2020年8月13日提交的申请号为10-2020-0101705的韩国专利申请的优先权,其全部公开通过引用并入本文。
技术领域
3.本公开的实施例涉及存储器系统和包括存储器系统的数据处理系统,并且更特别地,涉及用于共享在存储器系统中生成的数据的方法和设备。


背景技术:

4.近来,计算环境的范例已经转变为使得可以随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用正在迅速增加。这种便携式电子装置通常使用或者包括采用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可用作便携式电子装置的主存储装置或辅助存储装置。
5.与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,由于该数据存储装置不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。在具有这些优点的存储器系统的背景下,示例性数据存储装置可以是usb(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(ssd)等中的任意一个或多个。


技术实现要素:

6.本公开的实施例可提供一种数据处理系统和操作数据处理系统的方法,该数据处理系统包括诸如存储器系统和主机的组件和资源,并且能够基于组件和资源的使用来动态地分配用于组件之间的数据通信的多个数据路径。
7.另外,本公开的实施例可以提供一种用于提高或增强存储器系统的操作或性能的方法和设备。虽然数据处理系统中的存储器系统将映射信息传输到主机或计算装置,但是主机或计算装置可以传输包括从映射信息中识别的特定项的请求(或命令)。因为该特定项连同从主机传输的请求一起被传递到存储器系统,所以存储器系统可减少在用于对应于该请求的操作的地址转换上花费的时间。
8.另外,根据本公开的实施例,数据处理系统中包括的存储器系统可将映射数据或映射信息传输到主机或计算装置,并且主机或计算装置可将请求与映射数据或映射信息一起传输到存储器系统,因此数据处理系统具有提高的性能(例如,增加的输入/输出(i/o)吞吐量)。
9.进一步,本公开的实施例可以提供一种通过对在存储器系统和主机之间传输的映射数据或映射信息进行加密来增强数据处理系统中的安全性的方法和设备。
10.在根据本公开的实施例提供的方法和设备中,当存储器系统对映射数据或映射信息进行加密并且向主机传输包括映射数据或映射信息的加密数据,并且随后从主机接收加
密数据时,可以通过对加密数据进行解码的进程来检查映射信息中包括的错误。
11.进一步,根据本公开的实施例的方法和设备,可以通过减少在存储器系统和主机之间传输和接收加密数据的过程所产生的开销,提高存储器系统的输入/输出性能和数据处理系统的性能。
12.在示例性实施例中,控制器可以联接到非易失性存储器装置和主机。控制器可以被配置为:对与非易失性存储器装置中存储的用户数据组块相关联的映射数据组块执行循环冗余校验,基于映射数据组块中包括的逻辑地址生成加密代码,通过对加密代码和映射数据组块的逻辑运算来生成加密数据,并且将加密数据传输到主机。
13.通过示例而非限制的方式,映射数据组块可以包括物理地址,该物理地址指示用户数据组块存储在非易失性存储器装置中的位置。
14.加密数据可以包括循环冗余校验的结果、逻辑地址和物理地址,并且循环冗余校验的结果和物理地址通过逻辑运算进行加密。
15.可以通过以下进程生成加密代码:将逻辑地址随机化,通过对逻辑地址执行的遮蔽进程提取第一加密数据,对第一加密数据和作为除通过遮蔽进程提取的第一加密数据之外的剩余部分的第二加密数据执行逻辑运算。
16.加密数据可以包括与映射数据组块相关联的时间信息,通过逻辑运算利用加密代码来对时间信息和映射数据组块进行加密。
17.控制器可以被配置为当接收到连同读取请求一起从主机输入的加密数据和逻辑地址时,对该加密数据进行解密。
18.控制器可以被配置为对加密数据进行解密,以确定该加密数据是否包括错误以及该加密数据是否与该逻辑地址相关联。
19.在另一实施例中,控制器可以联接到主机。控制器可以被配置为:接收从主机输入的加密数据,基于连同加密数据一起输入的逻辑地址生成加密代码,对该加密代码和该加密数据执行逻辑运算以获得映射数据组块,并且对该映射数据组块执行循环冗余校验,以确定映射数据组块是否有效。
20.映射数据组块可以包括物理地址,该物理地址指示用户数据组块存储在非易失性存储器装置中的位置,并且控制器被配置为使用该物理地址来读取用户数据组块并将该用户数据组块传送到主机。
21.加密数据可以包括循环冗余校验的结果、逻辑地址和物理地址,并且循环冗余校验的结果和物理地址通过逻辑运算进行加密。
22.可以通过以下进程生成加密代码:将逻辑地址随机化,通过对该逻辑地址执行的遮蔽进程提取第一加密数据,对第一加密数据和作为除通过遮蔽进程提取的第一加密数据之外的剩余部分的第二加密数据执行逻辑运算。
23.加密数据可以包括关于映射数据组块的时间信息,通过逻辑运算利用加密代码对该时间信息和映射数据组块进行加密。
24.控制器可以被配置为通过循环冗余校验来确定该加密数据是否包括错误以及该加密数据是否与逻辑地址相关联。
25.控制器可以被配置为将包括与非易失性存储器装置中存储的用户数据组块相关联的映射数据组块的加密数据传输到主机。
26.在另一实施例中,一种存储器系统可以包括:非易失性存储器装置,存储用户数据组块;以及控制器,被配置为对包括与非易失性存储器装置中存储的用户数据组块相关联的物理地址的映射数据组块进行加密,以及向主机传输加密数据或从主机接收加密数据。控制器可以被进一步配置为执行循环冗余校验,以确定物理地址是否对应于与用户数据组块相关联的逻辑地址。
27.控制器可以包括编码器,该编码器被配置为对关于非易失性存储器装置中存储的用户数据组块的映射数据组块执行循环冗余校验,基于映射数据组块中包括的逻辑地址生成加密代码,以及通过对加密代码和映射数据组块的逻辑运算生成加密数据。该控制器可以进一步包括解码器,该解码器被配置为:基于连同加密数据一起输入的逻辑地址来生成加密代码,对加密代码和加密数据执行逻辑运算以获得映射数据组块,并且对映射数据组块执行循环冗余校验。
28.编码器和解码器可以被配置为:将逻辑地址随机化,通过对逻辑地址执行的遮蔽进程提取第一加密数据,并且对第一加密数据和作为除通过遮蔽进程提取的第一加密数据之外的剩余部分的第二加密数据执行逻辑运算,以生成加密代码。
29.加密数据可以包括关于映射数据组块的时间信息,通过逻辑运算利用加密代码对时间信息和映射数据组块进行加密。
30.加密数据可以包括循环冗余校验的结果、逻辑地址和物理地址,并且循环冗余校验的结果和物理地址通过逻辑运算进行加密。
31.控制器可以被配置为:当从主机接收到连同读取请求和逻辑地址一起输入的加密数据时,基于从加密数据获得的物理地址执行对应于读取请求的操作。
附图说明
32.本文参照附图进行描述,其中在所有附图中,相同的附图标记指代相同的部件。
33.图1是描绘根据本公开的示例性实施例的数据处理系统中的主机和存储器系统的高级框图。
34.图2示出根据本公开的示例性实施例的数据处理系统中的主机和存储器系统的示例性实施例的框图。
35.图3示出根据本公开的另一示例性实施例的包括存储器系统的数据处理系统的示例。
36.图4示出根据本公开的又一实施例的包括存储器系统的数据处理系统的示例。
37.图5示出根据本公开的示例性实施例的由数据处理系统中的主机和存储器系统执行的读取操作。
38.图6示出根据本公开的示例性实施例的用于确定和传输映射信息的操作的示例性方法。
39.图7示出根据本公开的示例性实施例的主机和存储器系统的操作的示例性方法。
40.图8示出根据本公开的示例性实施例的数据处理系统中的主机与存储器系统之间的事务的示例。
41.图9示出根据本公开的示例性实施例的在存储器系统中执行的第一数据编码操作。
42.图10示出根据本公开的示例性实施例的在存储器系统中执行的第一数据解码操作。
43.图11示出根据本公开的示例性实施例的在存储器系统中执行的第二数据编码操作。
44.图12示出根据本公开的示例性实施例的在存储器系统中执行的第三数据编码操作。
45.图13示出根据本公开的示例性实施例的在存储器系统中执行的第二数据解码操作。
46.图14示出根据本公开的示例性实施例的在存储器系统中执行的第三数据解码操作。
47.注意的是,对“实施例”、“另一实施例”等的引用不一定仅意指一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。
具体实施方式
48.下面参照附图描述本公开的各个实施例。然而,可以不同地配置或布置本公开的元件和特征,以形成可以作为所公开的实施例中的任意一个的变型的其他实施例。因此,本教导不限于本文所阐述的实施例。相反,提供了所描述的实施例,使得本公开是彻底且完整的,并且将本公开的范围充分地传达给本教导所属领域的技术人员。
49.将理解的是,虽然可能在本文中使用术语“第一”、“第二”、“第三”等以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与否则具有相同或相似名称的另一元件区分开。因此,在不脱离本教导的精神和范围的情况下,在一个实例中的第一元件也可以在另一实例中被称为第二元件或第三元件。
50.附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被放大。当元件被称为连接或联接到另一元件时,应当理解的是,前者可以直接连接或联接到后者,或者经由其间的中间元件电连接或电联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
51.本文所使用的术语仅用于描述特定实施例的目的,并且不旨在进行限制。如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。在本技术和所附权利要求书中所使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”,除非另有说明或从上下文清楚地指向单数形式。
52.将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其指明存在所陈述元件,并且不排除存在或添加一个或多个其他元件。如本文所使用的,短语“和/或”包括一个或多个相关联所列项的任意和全部组合。
53.除非另有定义,否则本文所使用的包括技术和科学术语的所有术语具有与本领域普通技术人员通常理解的相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术的语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中如此明确地限定。
54.在下面的描述中,为了提供对本公开的透彻理解,阐述了大量的具体细节。可以在
没有一些或所有这些具体细节的情况下实践本文所公开的教导。在其他情况下,没有详细描述公知的进程结构和/或进程,以免不必要地模糊本文所公开的教导。
55.还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的,除非另有明确说明,否则结合一个实施例所描述的特征或元件可以单独使用或与另一实施例的其他特征或元件组合使用。
56.现在将参照附图描述本公开的实施例,其中相同的附图标记指代相同的元件。
57.图1是根据本公开的示例性实施例的数据处理系统中的主机和存储器系统的高级框图。
58.参照图1,数据处理系统可以包括存储器系统110和主机102。
59.根据实施例,主机102是一种执行对应于用户请求的操作的装置。存储器系统110可以用于临时或永久地存储主机102的操作所需或在主机102的操作期间生成的信息。存储器系统110和主机102可以被电联接来以预设的方式(例如,协议)传输和接收数据、信号、命令、请求等。将参照图2至图4详细描述存储器系统110和主机102。
60.主机102和存储器系统110可以具有不同的地址方案。因此,为了将由主机102请求的数据组块存储在存储器系统110中的包括非易失性存储器单元的存储空间中,存储器系统110可以执行将由主机102使用的文件系统与包括非易失性存储器单元的存储空间接合的地址转换。例如,根据主机102所使用的文件系统的数据地址可以被称为逻辑地址或逻辑块地址,并且存储器系统110内包括非易失性存储器单元的存储空间中的数据位置可以被称为物理地址或物理块地址。当主机102将逻辑地址连同读取请求一起传输到存储器系统110时,存储器系统110可以搜索对应于该逻辑地址的物理地址,然后读取和输出在对应于该物理地址的位置处存储的数据组块。在该进程中,可以在存储器系统110搜索与从主机102接收的逻辑地址相对应的物理地址的同时执行地址转换。
61.在本文中,数据的组块或数据组块可以是位序列。例如,数据组块可以包括文件内容、文件的一部分、存储器中的页面、面向对象程序中的对象、数字消息、数字扫描图像、视频或音频信号的一部分或任何其他可由位序列表示的信息。根据示例性实施例,数据组块可以包括离散对象。根据另一示例性实施例,数据组块可以包括两个不同组件之间的传输信息包内的信息单元。
62.响应于从主机102传输的请求,存储器系统110可以执行数据输入/输出操作。例如,当存储器系统110响应于从外部装置传输的读取请求而执行读取操作时,多个非易失性存储器单元中存储的数据组块可以被传送到主机102。对于读取操作,存储器系统110可以基于映射数据或映射信息对从主机102接收的逻辑地址执行地址转换,然后访问在与通过地址转换获得的物理地址相对应的位置处存储的数据组块。进一步,存储器系统110可以将与主机102所传输的写入请求一起传输的数据组块存储在多个非易失性存储器单元中。在将数据组块存储在多个非易失性存储器单元中之后,存储器系统110可以生成或更新将对应于数据组块的逻辑地址与物理地址相关联的映射数据或映射信息。
63.存储器系统110可以包括主机性能增强器(hpb)310,以提高数据输入/输出性能。主机性能增强器hpb 310可以向主机102传输将主机102中使用的逻辑地址与存储器系统110中使用的物理地址相关联的映射数据或映射信息。如果主机102存储映射信息,则在主机102将读取请求传输到存储器系统110之前,主机102参考映射信息。主机102可以将读取
请求连同存储器系统110中使用的物理地址一起发送到存储器系统110。当存储器系统110使用与读取请求一起接收的物理地址时,存储器系统110不需要执行地址转换,并且可以更快地从非易失性存储器单元中检索对应于读取请求的数据组块,并且将数据组块输出到主机102。映射数据或映射信息可以通过内部操作由存储器系统110独立地生成和使用。然而,当可以与主机102共享映射数据或映射信息时,可以提高存储器系统110的数据输入/输出性能。
64.当与作为外部装置的主机102共享在存储器系统110内部使用的映射信息时,可能损害数据安全性。可能的是,通过主机102中执行的操作,也可能发生映射信息的失真或变形。因此,主机性能增强器(hpb)310可以对映射数据或映射信息进行加密,并且将加密数据传输到主机102。因此,对映射信息的加密减少了主机102执行错误操作的可能性。
65.当存储器系统110将加密hpb数据组块传输到主机102时,主机102可以对数据进行解码(即,解密)以便使用该加密hpb数据组块。例如,映射信息可以包括逻辑地址和物理地址。当映射信息的逻辑地址和物理地址两者都被加密时,主机102可以对加密映射信息进行解码(即,解密)以识别与逻辑地址相关联的物理地址。当主机102和存储器系统110传输和接收加密映射信息并且对加密映射信息进行解码时,主机102可以对该映射信息进行编码(加密)和解码(解密)。然而,当主机102执行编码和解码以便使用该主机不需要使用的映射信息(更具体地为物理地址)时,可能会增加与存储器系统110的数据通信中的开销。根据实施例,主机102可以不对加密映射信息执行解码操作。在该实施例中,主机102可以存储与逻辑地址相关联的加密映射信息,并且将加密映射信息连同逻辑地址一起传输到存储器系统110。
66.进一步,在本公开的实施例中,存储器系统110可以仅对映射信息的一部分进行加密,使得主机102不需要对加密数据执行编码或解码操作。例如,在存储器系统110将映射信息传输到主机102之前,可以对映射信息的物理地址进行加密,而不考虑逻辑地址。即,存储器系统110可以对映射信息进行部分加密,并且将部分加密的数据组块传输到主机102。在接收到从主机102输入的部分加密的数据时,存储器系统110可以对部分加密的数据进行解码。在这种情况下,主机102可以不包括用于对映射信息执行编码/解码操作的模块、电路等,但是存储器系统110可以包括用于在与主机102交互之前/之后对映射信息执行编码/解码操作的模块或电路。在可由主机102检测映射信息的任何失真或变形同时,可增强数据通信的安全性。
67.当逻辑地址未被加密时,主机102可容易地识别出哪个逻辑地址与从存储器系统110传输的部分加密的数据组块相关联。因此,当从存储器系统110接收到部分加密的数据组块时,因为主机102容易地检测到该部分加密的数据组块与特定的逻辑地址相关联,所以主机102可以将相应的信息存储在主机102的适当的存储空间中。在主机102存储与特定的逻辑地址相关联的部分加密的数据组块之后,主机102可以将该部分加密的数据与逻辑地址和读取请求一起传输到存储器系统110。
68.如上所述,存储器系统110可以对映射信息的一部分进行加密,使得存储器系统110和主机102可以传输或接收与特定逻辑地址相关联的部分加密的数据组块,以便提高存储器系统110的数据输入/输出性能。因此,根据该实施例,当在存储器系统110和主机102之间交换映射信息时,可以避免与主机102使用映射信息进行错误操作相关联的问题,并且进
一步地,存储器系统110可以识别出由主机102或由存储器系统110与主机102之间的传输所导致的失真或变形。
69.图2示出根据本公开的示例性实施例的数据处理系统中的主机和存储器系统的示例性实施例的框图。
70.参照图2,主机102可以包括处理器104、主机存储器106和主机控制器接口108。存储器系统110可以包括控制器130和存储器装置150。控制器130可以包括主机接口132、闪存转换层(ftl)240、存储器接口142和存储器144。根据实施例,主机性能增强器(hpb)310可以被包括在主机接口132或闪存转换层(ftl)240中。
71.图2中描述的控制器130和存储器装置150可以对应于图3至图4所描述的控制器130和存储器装置150。在下文中,主要描述可在技术上加以区分的图2所示的控制器130和存储器装置150与图3至图4所示的控制器130和存储器装置150之间的差异。
72.主机102可以包括:处理器104,处理器104的性能高于存储器系统110的处理器的性能;以及主机存储器106,主机存储器106能够比与主机102协作的存储器系统110中的存储器存储更大量的数据。主机102中的处理器104和主机存储器106可以在大小或空间以及可升级性方面提供优势。例如,处理器104和主机存储器106可以具有比存储器系统110中的处理器134和存储器144更少的空间限制。处理器104和主机存储器106可以是可替换的,以升级它们的性能,这与存储器系统110中的处理器134和存储器144是有区别的。在本实施例中,存储器系统110可以利用主机102所拥有的资源,以便提高存储器系统110的操作效率。
73.随着可存储在存储器系统110中的数据的量增加,对应于存储器系统110中存储的数据的元数据的量也增加。当用于在控制器130的存储器144中加载元数据的存储能力受到限制或有限时,所加载的元数据的量的增加可能导致对控制器130的操作的操作负担。例如,因为控制器130的存储器144中针对元数据分配的空间或区域的限制,可能加载元数据的一部分而非全部。如果部分加载的元数据不包括主机102意图访问的物理位置的特定元数据,如果所加载的元数据中的一些已经被更新,则控制器130将所加载的元数据存储回存储器装置150中,而且加载主机102意图访问的物理位置的特定元数据。这允许控制器130执行主机102所需的读取操作或写入操作,但是可能使存储器系统110的性能劣化。
74.主机102中包括的主机存储器106的存储能力可以比控制器130中包括的存储器144的存储能力大几十倍或几百倍。存储器系统110可以将由控制器130使用的元数据(l2p map)166传送到主机存储器106,使得主机存储器106的至少一些部分可以由存储器系统110访问。主机存储器106的至少一些部分可以用作用于在存储器系统110中读取或写入数据所需的地址转换的高速缓存存储器。在本文中,元数据155可以包括图1中描述的加密hpb数据组块。在这种情况下,主机102基于主机存储器106中存储的元数据166将逻辑地址转换为物理地址,然后将转换后的物理地址连同请求、命令或指令一起传输到存储器系统110。接收转换后的物理地址以及请求、命令或指令的存储器系统110可以跳过将逻辑地址转换为物理地址的内部进程,并且基于其接收的物理地址来访问存储器装置150。在这种情况下,可以消除与控制器130从存储器装置150加载元数据以进行地址转换相关联的开销(例如,操作负担),并且可以提高存储器系统110的操作效率。
75.另一方面,即使存储器系统110将元数据166传输到主机102,存储器系统110也可以基于元数据166来控制映射信息,诸如元数据生成、擦除、更新等。存储器系统110中的控
制器130可以根据存储器装置150的操作状态来执行诸如垃圾收集和损耗均衡的后台操作,并且可以确定物理地址,即从主机102传送的数据存储在存储器装置150中的哪个物理位置。因为存储器装置150中存储的数据的物理地址可能被改变并且主机102可能不知道改变后的物理地址,所以存储器系统110可以如本文所描述地控制元数据166。
76.在存储器系统110控制用于地址转换的元数据的同时,存储器系统110可能需要修改或更新先前传输到主机102的元数据166。存储器系统110可以向主机102发送信号或元数据,以便请求更新主机102中存储的元数据166。主机102可以响应于从存储器系统110传递的请求来更新主机存储器106中存储的元数据166。这允许将主机存储器106中存储的元数据166保持为最新版本,使得即使主机控制器接口108使用主机存储器106中存储的元数据166,当逻辑地址被转换成物理地址并且转换后的物理地址连同逻辑地址一起被传输到存储器系统110时也不存在问题。
77.同时,主机存储器106中存储的元数据166可以包括与逻辑地址相关联的加密hpb数据组块。根据实施例,除了将加密hpb数据组块传输到存储器系统110的操作或目的之外,主机102可以不出于任何目的或操作来使用加密hpb数据组块。
78.根据实施例,将逻辑地址与存储器系统110中的物理地址相关联的元数据可以包括两个可区分的项:第一映射信息项,用于将逻辑地址转换为物理地址;以及第二映射信息项,用于将物理地址转换为逻辑地址。其中,主机存储器106中存储的元数据166可以包括第一映射信息项。第二映射信息项可主要用于存储器系统110的内部操作,但是可以用于或可以不用于主机102所请求的将数据存储在存储器系统110中或从存储器系统110读取对应于特定逻辑地址的数据的操作。根据实施例,第二映射信息项可以被或可以不被存储器系统110传输到主机102。
79.同时,存储器系统110中的控制器130可控制(例如,创建、删除、更新等)第一映射信息项或第二映射信息项,并且将第一映射信息项或第二映射信息项存储在存储器装置150中。因为主机存储器106可以是易失性存储器的类型,所以当发生诸如供电中断的事件时,主机存储器106中存储的元数据166可能消失。因此,存储器系统110中的控制器130不仅可以保持主机102的主机存储器106中存储的元数据166的最新状态,而且也可以将最新状态的第一映射信息项和/或第二映射信息项存储在存储器装置150中。
80.图3示出根据本公开的示例性实施例的包括存储器系统的数据处理系统的示例。
81.参照图3,数据处理系统100可以包括联接到存储器系统110的主机102。例如,主机102和存储器系统110可以经由诸如数据总线、主机电缆等的数据传输方式彼此联接,以传输或接收数据组块。
82.例如,主机102可以包括例如诸如移动电话、mp3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(tv)和投影仪等的非便携式电子装置。
83.主机102也包括通常可以管理和控制在主机102中执行的功能和操作的至少一个操作系统(os)。os可以提供与存储器系统110接合的主机102与需要和使用存储器系统110的用户之间的互操作性。os可以支持对应于用户请求的功能和操作。通过示例而非限制的方式,可根据主机102的移动性将os分类为通用操作系统和移动操作系统。根据系统要求或用户环境,可以将通用操作系统分为个人操作系统和企业操作系统。但是企业操作系统可以专门用于确保和支持高性能。移动操作系统可以服从于支持用于移动性的服务或功能
(例如,省电功能)。主机102可以包括多个操作系统。主机102可以对应于用户的请求运行与存储器系统110互锁的多个操作系统。主机102可以将对应于用户请求的多个命令传输到存储器系统110中,从而在存储器系统110内执行对应于命令的操作。
84.存储器系统110中的控制器130可以响应于从主机102接收的请求或命令来控制存储器装置150。例如,控制器130可以执行读取操作以将从存储器装置150读取的数据片段提供到主机102,并且执行写入操作(或编程操作)以将从主机102接收的数据片段存储在存储器装置150中。为了执行数据输入/输出(i/o)操作,控制器130可以控制和管理用于数据读取、数据编程、数据擦除等的内部操作。
85.根据实施例,控制器130可以包括主机接口132、处理器134、错误校正电路(在本文中,也称为ecc组件)138、电源管理单元(pmu)140、存储器接口142和存储器144。图3所描述的控制器130中包括的组件可以根据关于存储器系统110的实施形式、操作性能等而变化。例如,存储器系统110可以根据主机接口的协议,利用可以与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(ssd)、多媒体卡(mmc)、嵌入式mmc(emmc)、缩小尺寸的mmc(rs-mmc)、微型mmc、安全数字(sd)卡、迷你sd、微型sd、通用串行总线(usb)存储装置、通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体(sm)卡、记忆棒等。可以基于存储器系统110的实施方案来添加或省略控制器130中的组件。
86.主机102和存储器系统110可以包括用于在预定协议下传输和接收信号、数据片段等的控制器或接口。例如,存储器系统110中的主机接口132可以包括能够将信号、数据片段等传输到主机102或接收由主机102传输的信号、数据片段等形式的信息的设备。
87.控制器130中包括的主机接口132可以接收由主机102传输的信号、命令(或请求)或数据片段。即,主机102和存储器系统110可以使用预定协议在彼此之间传输和接收信息。由主机102和存储器系统110支持的用于发送和接收信息的协议或接口的示例可以包括:通用串行总线(usb)、多媒体卡(mmc)、并行高级技术附件(pata)、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、高速外围组件互连(pcie)、串列scsi(sas)、串行高级技术附件(sata)、移动工业处理器接口(mipi)等。根据实施例,主机接口132是一种用于与主机102交换数据片段的层,并且由被称为主机接口层(hil)的固件来实施或驱动。
88.作为传输和接收信息的接口中的一种使用的电子集成驱动器(ide)或高级技术附件(ata)可以使用包括多个(例如40个)并行连接的导线的电缆来支持主机102和存储器系统110之间的数据传输和接收。当多个存储器系统110连接到单个主机102时,可以通过使用多个存储器系统110所联接的位置或拨码开关来将多个存储器系统110划分为主设备和从设备。当存储器系统110被设置为主设备时,该存储器系统可以被用作主存储器装置。ide(ata)已发展为fast-ata、atapi和增强型ide(eide)。
89.串行高级技术附件(sata)是一种与电子集成驱动器(ide)装置所使用的各种ata标准的并行数据通信接口兼容的串行数据通信接口。ide接口中的40个导线可以被减少到sata接口中的6个导线。例如,用于ide的40个并行信号可以被转换为用于sata的待在彼此之间传输的6个串行信号。sata由于其更快的数据传输和接收速率已被广泛使用,并且在主机102中使用更少的资源来进行数据传输和接收。sata可以支持将30个外部装置连接到主
机102中包括的单个收发器。另外,即使在主机102和另一装置之间的数据通信正在执行时,sata也可支持允许将外部装置附接到主机102或从主机102拆卸该外部装置的热插拔。因此,即使当主机102通电时,存储器系统110也可以作为如通用串行总线(usb)所支持的装置的附加装置来连接或断开。例如,在具有esata端口的主机102中,存储器系统110可以如外部硬盘一样自由拆卸。
90.小型计算机系统接口(scsi)是一种用于计算机、服务器和/或其他外围装置之间的连接的串行数据通信接口。与诸如ide和sata的其他接口相比,scsi可以提供高传输速度。在scsi中,主机102和至少一个外围装置(例如,存储器系统110)串联连接,但是可以通过并行数据通信来执行主机102和每个外围装置之间的数据传输和接收。在scsi中,较容易将诸如存储器系统110的装置与主机102连接或从其断开。scsi可以支持将15个其他的装置与主机102中包括的单个收发器进行连接。
91.串列scsi(sas)可以被理解为scsi的串行数据通信版本。在sas中,不仅主机102和多个外围装置串联连接,而且也可以以串行数据通信方案来执行主机102和每个外围装置之间的数据传输和接收。sas可以通过串行电缆而不是并行电缆来支持主机102和外围装置之间的连接,以便使用sas轻松管理设备并且增强或提高操作可靠性和通信性能。sas可以支持将八个外部装置与主机102中包括的单个收发器进行连接。
92.高速非易失性存储器(nvme)是一种至少基于被设计为增加配备有非易失性存储器系统110的主机102、服务器、计算装置等的性能和设计灵活性的高速外围组件互连(pcie)的接口。此处,pcie可以使用插槽或专用电缆来连接诸如计算装置的主机102和诸如外围装置的存储器系统110。例如,pcie可使用多个引脚(例如,18引脚、32引脚、49引脚、82引脚等)和至少一个导线(例如,x1、x4、x8、x16等)以实现每秒几百mb以上(例如,250mb/s、500mb/s、984.6250mb/s、1969mb/s等)的高速数据通信。根据实施例,pcie方案可以实现每秒数十到数百千兆位的带宽。使用nvme的系统可以充分利用诸如运行速度高于硬盘的ssd的非易失性存储器系统110的运行速度。
93.根据实施例,可以通过通用串行总线(usb)连接主机102和存储器系统110。通用串行总线(usb)是一种可扩展、可热插拔即插即用的串行接口,该串行接口可以在主机102和诸如键盘、鼠标、操纵杆、打印机、扫描仪、存储装置、调制解调器、摄像机等的外围装置之间提供经济高效的标准连接。诸如存储器系统110的多个外围装置可以联接到主机102中包括的单个收发器。
94.参照图3,错误校正电路138可以校正在存储器装置150中处理的(例如,从存储器装置150输出的)数据的错误位,错误校正电路138可以包括ecc编码器和ecc解码器。此处,ecc编码器可对待编程在存储器装置150中的数据执行错误校正编码,以生成添加了奇偶校验位的经编码数据,并且将经编码数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ecc解码器可检测和校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ecc组件138可确定错误校正解码是否已成功并且输出指令信号(例如,校正成功信号或校正失败信号)。ecc组件138可使用在ecc编码进程期间所生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ecc组件138可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
95.根据实施例,错误校正电路138可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose-chaudhri-hocquenghem,bch)码、涡轮码、里德-所罗门(reed-solomon,rs)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)、分组编码调制(bcm)等。错误校正电路138可以包括基于上述代码中的至少一种来执行错误校正操作的任何和所有电路、模块、系统或装置。
96.电源管理单元(pmu)140可以控制在控制器130中提供的电力。pmu 140可以监测供应到存储器系统110的电力(例如,供应到控制器130的电压),并且将电力提供到控制器130中包括的组件。当供应到存储器系统110的电力不稳定时,pmu 140可检测通电或断电,并且也可以生成触发信号以使存储器系统110能够紧急备份当前状态。根据实施例,pmu 140可以包括能够积蓄可以在紧急情况下使用的电力的装置或组件。
97.存储器接口142可以用作用于处置在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102接收的命令或请求来控制存储器装置150。在存储器装置150是闪速存储器的情况下,存储器接口142可以生成用于存储器装置150的控制信号,并且可以在处理器134的控制下处理输入到存储器装置150或从存储器装置150输出的数据。例如,当存储器装置150包括nand闪速存储器时,存储器接口142包括nand闪存控制器(nfc)。存储器接口142可提供用于处置控制器130和存储器装置150之间的命令和数据的接口。根据实施例,存储器接口142可通过作为用于与存储器装置150交换数据的组件的被称为闪存接口层(fil)的固件来实施或由该固件驱动。
98.根据实施例,对于与存储器装置150的数据输入/输出,存储器接口142可以支持开放nand闪存接口(onfi)、切换模式等。例如,onfi可以使用包括能够支持以例如8位或16位数据为单位进行双向传输和接收的至少一个信号线的数据路径(例如,通道、通路等)。控制器130与存储器装置150之间的数据通信可以通过处置异步单数据速率(sdr)、同步双倍数据速率(ddr)和切换双倍数据速率(ddr)的至少一个接口来实现。
99.存储器144可以是存储器系统110或控制器130中的一种工作存储器,同时将操作所需的临时数据或事务数据存储在存储器系统110和控制器130中。例如,在将响应于来自主机102的请求而从存储器装置150输出的读取数据片段输出到主机102之前,存储器144可以临时存储该读取数据片段。另外,在将从主机102输入的写入数据片段编程在存储器装置150中之前,控制器130可以将该写入数据片段临时存储在存储器144中。当控制器130控制诸如存储器装置150的数据读取、数据写入、数据编程、数据擦除等操作时,可以将在存储器系统110的控制器130和存储器装置150之间传输或生成的数据片段存储在存储器144中。除了该读取数据或写入数据片段之外,存储器144还可以存储在主机102和存储器装置150之间执行用于输入或输出数据片段的操作所必需的其他信息(例如,映射数据、读取请求、编程请求等)。根据实施例,存储器144可以包括命令队列、程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
100.在实施例中,存储器144可以利用易失性存储器来实施。例如,存储器144可以利用静态随机存取存储器(sram)、动态随机存取存储器(dram)或两者来实施。尽管图3示出,例如存储器144设置在控制器130内,但是实施例不限于此。存储器144可以位于控制器130内部或外部。例如,存储器144可以通过具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来实现。
101.处理器134可以控制存储器系统110的全部操作。例如,处理器134可以响应于从主机102接收的写入请求或读取请求来控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以运行固件以控制存储器系统110中的编程操作或读取操作。在本文中,固件可以被称为闪存转换层(ftl)。稍后将详细描述ftl的示例。根据实施例,可以利用微处理器或中央处理单元(cpu)来实施处理器134。
102.进一步,根据实施例,可以利用至少一个多内核处理器来实施存储器系统110。多内核处理器是一种集成了被认为是不同的处理区域的两个或多个内核的电路或芯片。例如,当多内核处理器中的多个内核独立地驱动或运行多个闪存转换层(ftl)时,可以提高存储器系统110的数据输入/输出速度。
103.控制器130中的处理器134可以执行对应于从主机102接收的请求或命令的操作。进一步,存储器系统110可以独立于从诸如主机102的外部装置接收的命令或请求。通常,由控制器130响应于从主机102接收的请求或命令而执行的操作可以被认为是前台操作,而由控制器130独立执行(例如,与从主机102接收的请求或命令无关)的操作可以被认为是后台操作。控制器130可以对存储器装置150中的数据执行用于读取、写入或编程、擦除等的前台操作或后台操作。另外,可以将与作为从主机102传输的设定命令的设定参数命令或设定特征命令相对应的参数设定操作视为前台操作。同时,作为在没有从主机102传输的命令的情况下的后台操作,控制器130可以执行关于存储器装置150中包括的多个存储块152、154、156的垃圾收集(gc)、损耗均衡(wl)、用于识别和处理坏块的坏块管理等。
104.根据实施例,可以执行基本类似的操作作为前台操作和后台操作两者。例如,如果存储器系统110响应于从主机102接收的请求或命令执行垃圾收集(例如,手动gc),则垃圾收集可以被认为是前台操作。然而,当存储器系统110可能独立于主机102来执行垃圾收集(例如,自动gc)时,垃圾收集可被认为是后台操作。
105.当存储器装置150包括具有非易失性存储器单元的多个管芯(或多个芯片)时,控制器130可以被配置为对从主机102接收的多个请求或命令执行并行处理,以提高存储器系统110的性能。例如,所传输的请求或命令可以被划分,并且同时被处理到存储器装置150中的多个管芯或多个芯片中。控制器130中的存储器接口142可以通过至少一个通道和/或至少一个通路连接到存储器装置150中的多个管芯或芯片。当控制器130响应于与包括非易失性存储器单元的多个页面相关联的请求或命令而通过每个通道或每个通路将多个数据片段分配和存储在多个管芯中时,可以同时或并行地执行对应于该请求或命令的多个操作。该处理方法或方案可以被认为是交错方法。因为以交错方法操作的存储器系统110的数据输入/输出速度可以快于没以交错方法操作的存储器系统的数据输入/输出速度,所以可以提高存储器系统110的数据i/o性能。
106.通过示例而非限制的方式,控制器130可识别出关于与存储器装置150中包括的多个存储器管芯相关联的多个通道(或通路)的状态。控制器130可以将每个通道或每个通路的状态确定为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态中的一个。控制器对指令和/或数据通过哪个通道或通路进行传递的确定可与物理块地址相关联,例如,指令和/或数据被传递到哪个(哪些)管芯中。控制器130可参考从存储器装置150传递的描述符。该描述符可包括描述存储器装置150的参数块或参数页面,该描述符是具有预定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器
130可以参考或使用描述符来确定经由哪个(哪些)通道或通路来交换指令和/或数据。
107.参照图3,存储器系统110中的存储器装置150可以包括多个存储块152,154、156等。多个存储块中的每一个包括多个非易失性存储器单元。根据实施例,存储块152、154、156可以是被一起擦除的一组非易失性存储器单元。存储块152、154、156可以包括作为一起读取或编程的一组非易失性存储器单元的多个页面。尽管在图3中未示出,但是每个存储块152、154、156可以具有高度集成的三维堆叠结构。进一步,存储器装置150可以包括多个管芯,每个管芯包括多个平面,每个平面包括多个存储块152、154、156。根据存储器系统110的期望性能,存储器装置150的配置可以不同。
108.在图3所示的存储器装置150中,包括了多个存储块152、154、156等。根据一个存储器单元中可以存储或表示的位的数量,多个存储块152、154、156可以是诸如单层单元(slc)存储块、多层单元(mlc)存储块等的不同类型的存储块中的任意一个。此处,slc存储块包括由每个存储一位数据的存储器单元实施的多个页面。slc存储块可以具有高数据i/o操作性能和高耐用性。mlc存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。与slc存储块相比,mlc存储块可以在相同的空间中具有更大的存储容量。对于给定的存储容量,mlc存储块可高度集成。在实施例中,存储器装置150可以利用诸如双层单元(dlc)存储块、三层单元(tlc)存储块、四层单元(qlc)存储块和/或其任意组合的mlc存储块中的任意一个来实施。双层单元(dlc)存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(tlc)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(qlc)存储块可包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150能够利用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块实施。
109.根据实施例,控制器130可以将包括在存储器装置150中的多层单元(mlc)存储块用作在一个存储器单元中存储一位数据的slc存储块。多层单元(mlc)存储块的数据输入/输出速度可以慢于slc存储块的数据输入/输出速度。即,当将mlc存储块用作slc存储块时,可以减少用于读取操作或编程操作的裕量。当使用多层单元(mlc)存储块作为slc存储块时,控制器130可以利用多层单元(mlc)存储块的更快的数据输入/输出速度。例如,控制器130可以使用mlc存储块作为临时存储数据片段的缓冲器,因为该缓冲器可能需要高数据输入/输出速度以提高存储器系统110的性能。
110.进一步,根据实施例,控制器130可以在不对存储器装置150中包括的特定多层单元(mlc)存储块执行擦除操作的情况下,多次将多个数据片段编程在该mlc中。通常,非易失性存储器单元具有不支持数据重写的特征。然而,控制器130可以使用多层单元(mlc)可以存储多位数据的特征,以便多次将多个1位数据片段编程在mlc中。对于mlc重写操作,当将1位数据片段编程在非易失性存储器单元中时,控制器130可以将编程次数作为单独的操作信息进行存储。根据实施例,可以在将另一数据片段重写到相同的非易失性存储器单元中之前,执行用于均匀地均衡非易失性存储器单元的阈值电压的操作。
111.在本公开的实施例中,存储器装置150被实现为诸如闪速存储器的非易失性存储器,该闪速存储器的示例包括nand闪速存储器、nor闪速存储器等。可选地,存储器装置150可以由相变随机存取存储器(pcram)、铁电随机存取存储器(fram)、自旋注入磁性存储器(stt-ram)和自旋转移力矩磁性随机存取存储器(stt-ram或stt-mram)等中的至少一个来
实施。
112.图4示出根据本公开的另一示例性实施例的存储器系统的示例。
113.参照图4,描述根据本公开的另一实施例的存储器系统中的控制器130。控制器130与主机102和存储器装置150通信。如图所示,控制器130包括先前结合图2识别的主机接口132、闪存转换层(ftl)240以及存储器接口142和存储器144。
114.尽管未在图4中示出,但是根据实施例,图3中描述的ecc组件138可以被包括在闪存转换层(ftl)240中。在另一实施例中,ecc组件138可以被实施为被包括在控制器130中或与控制器130相关联的单独的模块、电路、固件等。
115.主机接口132用于处置从主机102传输的命令、数据等。通过示例而非限制的方式,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且例如以命令、数据等被存储的顺序将它们输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56接收的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传输用于处理从缓冲器管理器52接收的命令、数据等的事件。
116.可以从主机102传输具有相同特性的多个命令和/或数据,例如读取命令或写入命令,或者可以将具有不同特性的命令和数据通过主机102混合或打乱之后传输到存储器系统110。例如,可以将用于读取数据的多个命令(读取命令)传递到存储器系统110,或者可以将用于读取数据的命令(读取命令)和编程/写入数据的命令(写入命令)交替地传输到存储器系统110。主机接口132可以将从主机102传输的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据已经从主机102输入的命令、数据等的特性来估计或预测控制器130将执行哪种内部操作。主机接口132可以至少基于它们的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传输的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置为确定该缓冲器管理器是否应将命令、数据等存储在存储器144中,或者该缓冲器管理器是否应将命令、数据等传递到闪存转换层(ftl)240中。事件队列54接收从缓冲器管理器52输入的事件,这些事件将由存储器系统110或控制器130响应于从主机102传输的命令、数据等而在内部运行和处理,以便按所接收的顺序将事件传递到闪存转换层(ftl)240中。
117.根据实施例,闪存转换层(ftl)240可以包括主机请求管理器(hrm)46、映射管理器(mm)44、状态管理器(gc/wl)42和块管理器(bm/bbm)48。主机请求管理器(hrm)46可以管理从事件队列54输入的事件。映射管理器(mm)44可以处置或控制映射数据。状态管理器42可执行垃圾收集(gc)或损耗均衡(wl)。块管理器48可对存储器装置150中的块执行命令或指令。
118.通过示例而非限制的方式,主机请求管理器(hrm)46可以根据从主机接口132传递的读取命令和编程命令以及事件来使用映射管理器(mm)44和块管理器48来处置或处理请求。主机请求管理器(hrm)46可向映射数据管理器(mm)44发送查询请求,以确定对应于与事件一起输入的逻辑地址的物理地址。主机请求管理器(hrm)46可以将读取请求与物理地址一起发送到存储器接口142,以处理读取请求(处置事件)。另一方面,主机请求管理器(hrm)46可向块管理器48发送编程请求(写入请求),以将数据编程到存储器装置150中的特定空页面,然后可向映射管理器(mm)44传输对应于编程请求的映射更新请求,以在将逻辑-物理
地址彼此映射的映射表中更新与编程数据有关的项。
119.此处,块管理器48可将从主机请求管理器(hrm)46、映射数据管理器(mm)44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110(参见图2)的编程或写入性能,块管理器48可以收集编程请求并将用于多平面和单触发编程操作的闪存编程请求发送到存储器接口142。在实施例中,块管理器48向存储器接口142发送若干闪存编程请求,以增强或最大化多通道和多方向闪存控制器的并行处理。
120.另一方面,块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除没有有效页面的块,并且当确定有必要进行垃圾收集时选择包括最小数量的有效页面的块。状态管理器42可执行垃圾收集以将有效数据移动到空块,并且擦除包含被移动的有效数据的块,使得块管理器48可以具有足够的空闲块(没有数据的空块)。如果块管理器48将关于待擦除的块的信息提供到状态管理器42,则状态管理器42可以检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可识别记录在每个页面的带外(oob)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可将页面的物理地址与被映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面向块管理器48发送编程请求。当编程操作完成时,可通过映射管理器44进行的更新来更新映射表。
121.映射管理器44可管理逻辑-物理映射表。映射管理器44可处理由主机请求管理器(hrm)46或状态管理器42生成的诸如查询、更新等的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪速存储器/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求的同时发生映射高速缓存未命中时,映射管理器44可以向存储器接口142发送读取请求以加载存储器装置150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某个阈值时,可将编程请求发送到块管理器48,从而清理高速缓存块,并且可以将脏映射表存储在存储器装置150中。
122.另一方面,当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器(hrm)46可以针对相同逻辑地址的页面来编程最新版本的数据,并且即时发出更新请求。当状态管理器42在未正常完成有效页面的复制的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为如果状态管理器42请求映射更新,并且稍后才完成有效页面复制,则将利用旧物理信息来发出映射请求。当最新的映射表仍然指向旧物理地址时,映射管理器44可以执行映射更新操作以保证准确性。
123.图5示出根据本公开的示例性实施例的在数据处理系统中的主机和存储器系统中执行的读取操作。参照图2和图5,描述了当元数据166存储在主机102的主机存储器106中时,主机102所请求的读取存储器系统110中存储的数据的操作。
124.电力被供应到主机102和存储器系统110,然后主机102和存储器系统110可以彼此通信。当主机102和存储器系统110通信时,存储器装置150中存储的元数据(l2p map)可被传送到主机存储器106。
125.当由主机102中的处理器104发出读取命令(read cmd)时,该读取命令被传输到主机控制器接口108。在接收读取命令之后,主机控制器接口108在主机存储器106中存储的元数据(l2p map)中搜索与对应于读取命令的逻辑地址相对应的物理地址。基于主机存储器
106中存储的元数据(l2p map),主机控制器接口108可识别对应于该逻辑地址的物理地址。主机控制器接口108针对与读取命令相关联的逻辑地址实行地址转换。
126.主机控制器接口108将读取命令(read cmd)与逻辑地址以及物理地址一起传送到存储器系统110的控制器130中。控制器130可以基于与读取命令一起输入的物理地址来访问存储器装置150。可响应于读取命令(read cmd)将在存储器装置150中对应于该物理地址的位置处存储的数据传送到主机存储器106。
127.与读取可以是易失性存储器的主机存储器106等中存储的数据的操作相比,读取包括非易失性存储器的存储器装置150中存储的数据的操作可能花费更多时间。在用于处置读取命令(read cmd)的上述操作中,控制器130可以跳过或省略与从主机102输入的逻辑地址相对应的地址转换(例如,搜索和检测与逻辑地址相关联的物理地址)。例如,在地址转换中,当控制器130在存储器144中未能找到用于地址转换的元数据时,控制器130可以不必从存储器装置150加载元数据或替换存储器144中存储的元数据。这允许存储器系统110更快地执行由主机102所请求的读取操作。
128.参照图1和图5,控制器130可以对存储器装置150中存储的映射信息(l2p map)的一部分进行加密。控制器130可以对映射信息(l2p map)的该部分进行加密,以将部分加密的数据组块传输到主机102,使得部分加密的数据组块可以被存储在主机存储器106中。主机存储器106可以存储部分加密的数据组块。主机控制器接口108可访问主机存储器106以获得与逻辑地址相关联的部分加密的数据组块,然后将部分加密的数据组块与读取请求(read cmd)一起传输到控制器130。控制器130可以对加密的传输数据进行解码并且识别与逻辑地址相关联的物理地址,而不执行地址转换。在下文中,将详细描述被配置为传输和接收加密的数据组块的存储器系统110和主机102。
129.图6示出根据本公开的示例性实施例的用于确定和传输映射信息的方法的示例。详细地,图6示出当主机和存储器系统彼此可操作地接合时,存储器系统试图向主机传输映射信息的情况。
130.参照图6,存储器系统可以确定对应于从主机传输的命令的操作是否完成(步骤862)。在完成对应于该命令的操作之后,存储器系统可以在传输对应于该命令的响应之前检查是否存在待传输到主机的映射信息(步骤864)。如果没有待传输到主机的映射信息(在步骤864中为“否”),则存储器系统可以传输包括指示是否已经完成与从主机发送的命令相对应的操作的信息(例如,成功或失败)的响应response(步骤866)。
131.当存储器系统检测到待传输到主机的映射信息(在步骤864中为“是”)时,存储器系统可以检查是否已发出用于传输映射信息的通知notice(步骤868)。该通知可以类似于在下面参照图13描述的通知。当存储器系统想要发送映射信息但是尚未预先发出关于存储器系统向主机发送映射信息的通知(在步骤868中为“否”)时,存储器系统可以将通知notice添加到响应response。另外,存储器系统可以将响应response与通知notice一起传输到主机(步骤870)。
132.当已经发出了用于询问对映射信息的传输的通知notice(在步骤868中为“是”)时,存储器系统可以对映射信息进行编码(或加密)并且将经编码的(或经加密的)映射信息添加到响应(步骤872)。此后,存储器系统可以传输包括加密hpb数据组块的响应(步骤874)。在图6中,在存储器系统110执行与从主机102接收的请求相对应的操作之后,存储器
系统110可以将加密hpb数据组块包括在响应中,并且将该响应传输到主机102。
133.主机可以接收由存储器系统传输的响应response、包括通知的响应(带有通知的响应)和包括映射信息的响应(带有映射信息的响应)中的至少一个(步骤842)。
134.主机可以验证所接收的响应是否包括通知(步骤844)。如果所接收的响应包括通知(在步骤844中为“是”),则主机可以准备接收和存储可能稍后传递的映射信息(步骤846)。此后,主机可以检查与先前传输到存储器系统的命令相对应的响应(步骤852)。例如,主机可以检查该响应以确认在存储器系统中与先前发送的命令相对应的操作是已成功还是已失败。
135.当所接收的响应不包括通知(在步骤844中为“否”)时,主机可以确定该响应是否包括映射信息(步骤848)。当该响应不包括映射信息(在步骤848中为“否”)时,主机可以检查与先前传输到存储器系统的命令相对应的响应(步骤852)。
136.当所接收的响应包括加密hpb数据组块(在步骤848中为“是”)时,主机可以将响应中包括的加密hpb数据组块存储在存储空间内,或者更新已经存储在存储空间中的加密hpb数据组块(步骤850)。然后,主机可以检查与先前传输到存储器系统的命令相对应的响应(步骤852)。
137.图7示出根据本公开的示例性实施例的主机和存储器系统的操作。与参照图6描述的主机102和存储器系统110之间的通信类似,图7示出主机传输命令和加密hpb数据组块以及存储器系统接收命令连同加密hpb数据组块的详细操作。
138.参照图7,主机可以生成包括逻辑地址lba的命令command(步骤812)。此后,主机可以检查映射信息中是否存在对应于逻辑地址lba的加密hpb数据组块(步骤814)。如果不存在加密hpb数据组块(在步骤814中为“否”),则主机可以传输包括逻辑地址lba而没有加密hpb数据组块的命令command(步骤818)。
139.另一方面,如果存在加密hpb数据组块(在步骤814中为“是”),则主机可以将加密hpb数据组块添加到包括逻辑地址lba的命令command(步骤816)。主机可以传输包括逻辑地址lba和加密hpb数据组块的命令command(步骤818)。
140.存储器系统可以接收从外部传输的命令(步骤822)。存储器系统可以检查该命令是否与加密hpb数据组块一起被接收(步骤824)。当该命令未与加密hpb数据组块一起被接收(在步骤824中为“否”)时,存储器系统可以执行映射操作或地址转换,例如搜索对应于与命令一起接收的逻辑地址的物理地址(步骤832)。
141.当该命令与加密hpb数据组块一起被接收(在步骤822中为“是”)时,存储器系统可以对加密hpb数据组块进行解码(步骤824)。存储器系统可以对加密hpb数据组块进行解码,并且检查该加密hpb数据组块中包括的物理地址ppn是否有效(步骤826)。重新参照图6,存储器系统已经将加密hpb数据组块传递到主机,并且主机可以基于从存储器系统传递的加密hpb数据组块执行映射操作,以便将命令和加密hpb数据组块一起传输到存储器系统。然而,在存储器系统将加密hpb数据组块传输到主机之后,主机可能改变或更新主机存储器中的加密hpb数据组块。当映射信息是脏的时,从主机传递的加密hpb数据组块可能无法按原样用于访问数据,因此存储器系统可以确定通过对与该命令一起输入的加密hpb数据组块的解码操作而获得的物理地址pnn是否有效,即,对应于加密hpb数据组块的映射信息是否被改变或更新。当与该命令一起接收的物理地址pnn有效(在步骤826中为“是”)时,存储器
系统可以使用该物理地址pnn来执行对应于该命令的操作(步骤830)。
142.当与命令一起输入的物理地址pnn无效(在步骤826中为“否”)时,存储器系统可以忽略从与该命令一起接收的加密hpb数据组块获得的物理地址pnn(步骤828)。在这种情况下,存储器系统可以基于与该命令一起接收的逻辑地址lba来搜索物理地址pnn(步骤832)。
143.图8示出根据本公开的示例性实施例的数据处理系统中的主机与存储器系统之间的事务的示例。
144.参照图8,存储器系统110中包括的主机性能增强器(hpb)130(如图1至图4所示)可以对源数据sd的一部分进行加密以生成加密数据组块(hpb数据),并且将加密数据组块(hpb数据)传输到主机102。主机102可以将从存储器系统110输出的加密数据组块存储在主机存储器h_mem中。
145.源数据sd可以包括在存储器系统110中生成并存储的映射信息或映射数据md、映射时间数据td和物理页面编号ppn。映射数据md可以基于物理页面编号ppn来指示连续的逻辑块地址(lba)的数量。映射时间数据td可以表示关于何时生成映射数据md的定时信息。根据实施例,映射时间数据td可以用作用于确定图7所示的物理地址ppn的有效性的信息。物理页面编号ppn可以是一种指示通过在存储器装置150中执行的编程操作来存储数据的位置的地址。例如,当主机102将编程请求连同数据一起传输到存储器系统110时,存储器系统110在存储器装置150中包括的多个存储块之中选择至少一个存储块,并且将数据编程在一个或多个所选择的存储块中的多个页面上。因此,物理页面编号ppn可以包括示出存储数据组块的特定存储块和特定页面的地址。与加密数据组块(hpb数据)一起传输的逻辑块地址lba是一种由主机102使用的地址。该逻辑块地址lba可以与指示存储数据组块的位置的物理页面编号(ppn)相关联。
146.参照图8,当主机102所请求的编程操作成功完成时,存储器系统110识别编程了数据组块的物理页面编号(ppn),将逻辑块地址lba映射(关联)到该物理页面编号ppn,以生成映射数据或映射信息,并且将该映射数据或映射信息传输到主机102。在这种情况下,存储器系统110可以将映射数据或映射信息以及与地址映射有关的各种信息传输到主机102。
147.在实施例中,存储器系统110将映射信息md、映射时间数据td、物理页面编号ppn和逻辑块地址lba传输到主机102。进一步,可以将各种其他数据从存储器系统110传输到主机102。其中,因为逻辑块地址lba是一种由主机102使用的数据,所以存储器系统110可以输出逻辑块地址lba而不加密。然而,由于映射信息md、映射时间数据td和物理页面编号ppn是一种在存储器系统110中使用的数据,所以存储器系统110可对映射信息md、映射时间数据td和物理页面编号ppn进行加密,并且将加密数据输出到主机102。由于主机102可以使用或利用这些数据中的一些,根据实施例的存储器系统110可以对源数据sd中的包括映射信息md、映射时间数据td和物理页面编号ppn的一部分进行加密,但是可以对或可以不对源数据sd的剩余部分进行加密。该剩余部分可原样地传输到主机102。
148.根据特定的实施方案,存储器系统110可以不对主机102可以连同逻辑块地址lba来使用的映射信息md进行加密。然而,存储器系统110可以对映射时间数据td和物理页面编号ppn进行加密并且传输加密数据组块。主机102可以不对加密数据组块进行解密,而是基于未加密数据(或根据另一实施例的解密数据),诸如逻辑块地址lba和映射信息md,按原样存储加密数据组块。主机102可以在向存储器系统110传输读取请求之前,参考逻辑块地址
lba和映射信息md以将加密数据组块添加到读取请求。例如,存储器系统110选择性地对源数据sd中的映射时间数据td和物理页面编号pnn进行加密,按原样保留映射信息md,并且将部分加密的数据组块输出到主机102。在这种情况下,存储器系统110可以执行部分加密操作以输出源数据sd的一部分被加密的加密数据组块(hpb数据)。
149.加密数据组块(hpb数据)可以包括循环冗余校验值crcv、映射信息md和加密数据en_d。此处,加密数据en_d可以包括被加密的映射时间数据td和物理页面编号pnn。当存储器系统110对源数据sd进行部分加密并且将加密数据组块(hpb数据)输出到主机102时,对应于物理页面编号pnn的逻辑块地址lba也被传输到主机102。
150.当主机102针对读取操作将读取请求与逻辑块地址lba一起输出到存储器系统110以获得对应于逻辑块地址lba的数据时,可以将对应于逻辑块地址lba的加密数据组块(hpb数据)输出到存储器系统110。存储器系统110可以对加密数据组块(hpb数据)进行解码以恢复源数据sd。
151.根据实施例,存储器系统110中的能够执行上述部分加密操作的主机性能增强器(hpb)310可以包括编码器(例如,编码电路)312和解码器(例如,解码电路)314。编码器312可以对源数据sd的一部分进行编码以生成加密数据组块(hpb数据),并且解码器314可以对加密数据组块(hpb数据)进行解码以恢复源数据(sd)。在下文中,参照图9至图14,将详细描述存储器系统110中的主机性能增强器(hpb)310中包括的编码器312和解码器314。
152.图9示出根据本公开的示例性实施例的在存储器系统中执行的第一数据编码操作。第一数据编码操作312a可以是由图8中描述的编码器312执行的操作的示例。
153.参照图9,编码器312可以使用源数据sd和逻辑块地址lba来对映射信息进行加密。例如,源数据sd可以包括例如12位映射信息md、4位映射时间数据td和32位物理页面编号ppn。逻辑块地址可以具有例如32位的长度。图9所示的用于多个数据片段的位信息(长度信息)可以根据存储器系统110或存储器装置150的内部配置而变化。
154.根据该示例性实施例,第一数据编码操作312a可以包括基于32位逻辑地址和种子生成64位随机数的随机化进程。通过遮蔽进程,将64位随机数改变为36位加密代码552。在这种情况下,可以不使用64位随机数中的28位剩余部分。在本文中,由于作为待加密的部分的4位映射时间数据(td)和32位物理页面编号(ppn)具有36位的长度,因此通过遮蔽进程生成36位加密代码552。
155.此后,对36位加密代码522和36位数据(即,源数据sd的4位映射时间数据td和32位物理页面编号ppn)执行逻辑运算。例如,逻辑运算可以是异或(xor)运算。可以通过异或(xor)运算来生成图8中描述的36位加密数据en_d。
156.在逻辑运算之后,第一数据编码操作312a可以包括执行循环冗余校验(crc)以生成16位循环冗余校验结果crcv。加密数据组块hpb_d可以包括16位循环冗余校验结果crcv以及未加密的12位映射信息md和通过这些处理生成的36位加密数据en_d。图9中描述的36位加密数据en_d和图8中描述的加密数据en_d可以基本相同。
157.图10示出根据本公开的示例性实施例的在存储器系统中执行的第一数据解码操作。第一数据解码操作314a可以是由图8中描述的解码器314执行的操作的示例。
158.参照图10,从主机102向存储器系统110输入加密数据组块(hpb数据)和逻辑块地址lba。存储器系统110可以通过使用从主机102传输的逻辑块地址lba来对加密数据组块
(hpb数据)进行解码。
159.根据该示例性实施例,第一数据解码操作314a可以包括基于从主机102传输的种子和逻辑块地址lba来生成64位随机数的随机化进程。通过遮蔽进程,将64位随机数改变为36位加密代码552。在这种情况下,可能不会使用64位随机数中的24位剩余部分。在类似于第一数据编码操作312a的第一数据解码操作314a中,可以基于逻辑块地址lba来生成在第一数据编码操作312a中生成的36位加密代码552。
160.当接收到包括未加密的12位映射信息md、36位加密数据en_d和16位循环冗余校验值的加密数据组块hpb_d时,解码器314可以执行循环冗余校验(crc)。通过循环冗余校验(crc),可以检查在传输/接收进程期间是否正常传输了加密数据组块hpb_d(即,在主机102和存储器系统110之间的数据传输中是否发生任何错误)。
161.当通过循环冗余校验确定在加密数据组块hpb_d中没有错误时,对36位加密代码552和加密数据组块hpb_d中包括的36位加密数据en_d执行逻辑运算。此处,逻辑运算可以是例如异或(xor)运算。通过异或(xor)运算,可以从36位加密数据en_d中对4位映射时间数据(td)和32位物理页面编号(ppn)进行解密。
162.参照图9和图10,第一数据编码操作312a和第一数据解码操作314a可以利用对逻辑块地址执行的随机化进程来针对每个逻辑块地址生成加密代码。进一步,第一数据编码操作312a和第一数据解码操作314a可以包括基于对应于每个逻辑地址的加密代码552的逻辑运算。
163.参照图9,可以通过基于逻辑块地址lba对映射时间数据td和物理页面编号ppn进行加密来生成被传输到主机102的加密数据组块hpb_d。此外,因为加密数据组块hpb_d可以包括部分加密的信息以及未加密的信息,所以接收加密数据组块hpb_d的主机102和存储器系统110可以利用未加密的信息来对部分加密的信息进行识别或解密。例如,12位映射信息md可以用于存储器系统110,以预先识别连同当前请求或命令一起输入的物理地址ppn是否连续,并且准备对应于下一请求或命令的另一操作。
164.与逻辑地址相关联的加密数据组块hpb_d可能包括在由主机102执行的内部操作期间生成的错误。例如,部分加密的信息可能错误地与逻辑块地址相关联,并且被包括在加密数据组块hpb_d中。在图9和图10中描述的执行第一数据编码操作和第一数据解码操作的存储器系统110中,在加密数据组块hpb_d的解码进程中可能未检测到错误。主机102可以将基于12位映射信息md和36位加密数据en_d的循环冗余校验的结果添加到加密数据组块hpb_d,并且将加密数据组块hpb_d与对应的逻辑块地址一起传输到存储器系统110。基于循环冗余校验的结果,可以检测和校正在主机102与存储器系统110之间的数据通信中发生的错误。但是,如果对应于逻辑块地址,错误地匹配和包括了12位映射信息md或36位加密数据en_d,则不能通过循环冗余校验来检查该错误。在这种情况下,如果参照图7确定通过解码操作所获得的物理地址是最新的映射信息,则存储器系统110在使用与逻辑地址错误地关联的物理地址读取数据时可能发生故障。
165.另外,在图9和图10中描述的第一数据编码操作和第一数据解码操作中,可以将32位逻辑块地址随机化以生成64位随机数,然后对应于36位加密数据,未通过遮蔽操作使用64位随机数中的28位随机数。因为未使用通过随机化进程生成的随机数中的一些,因此可能无法充分利用随机化进程中可支持的随机特性。如果随机特性被削弱,则可能增加对应
于不同逻辑块地址的加密代码552可能具有相同值的概率。当对应于不同逻辑块地址的加密代码552具有相同的值时,可以降低加密效果。
166.图11示出根据本公开的另一示例性实施例的在存储器系统中执行的第二数据编码操作。第二数据编码操作312b可以是由图8中描述的编码器312执行的操作的另一示例。
167.在图11所示的示例性实施例中,编码器312可以使用源数据sd和逻辑块地址lba来对映射信息进行加密。例如,源数据sd可以包括12位映射信息md、4位映射时间数据td和32位物理页面编号ppn。逻辑块地址的长度可以为32位。图11所示的用于多个数据片段的位信息(长度信息)可以根据存储器系统110或存储器装置150的内部配置而变化。
168.在该示例中,第二数据编码操作312b可以包括基于32位逻辑地址和种子生成64位随机数的随机化进程。通过遮蔽进程,可以将64位随机数划分为36位第一过渡加密代码552和28位第二过渡加密代码554。此后,可以对36位第一过渡加密代码552和28位第二过渡加密代码554执行逻辑运算以生成加密代码。参照图11,对36位第一过渡加密代码552和28位第二过渡加密代码554执行诸如异或(xor)运算的逻辑运算,以生成36位第三加密代码556。遮蔽进程和逻辑运算可以生成36位第三加密代码556,因为作为待加密的部分的4位映射时间数据(td)和32位物理页面编号(ppn)的长度为36位。
169.在第二数据编码操作312b中,对包括12位映射信息md、4位映射时间数据td和32位物理页面编号ppn的源数据(sd)执行循环冗余校验,以生成循环冗余校验的结果。
170.此后,对第三加密代码556以及源数据sd的映射时间数据td和物理页面编号ppn执行逻辑运算。此处,逻辑运算可以是例如异或(xor)运算。可以通过该异或(xor)运算来生成图8中描述的加密数据en_d。加密数据组块hpb_d可以包括16位循环冗余校验结果crcv以及未加密的12位映射信息md和通过这些处理生成的36位加密数据en_d。图11中描述的36位加密数据en_d和图8中描述的加密数据en_d可以基本相同。
171.图12示出根据本公开的又一示例性实施例的在存储器系统中执行的第三数据编码操作。
172.参照图12,第三数据编码方法可以包括:确定待传输到主机的hpb数据(930),对待传输到主机的hpb数据执行循环冗余校验(932),基于逻辑地址提取加密代码(934),对hpb数据和加密代码执行逻辑运算以生成加密hpb数据组块(936)。
173.在该示例中,基于逻辑地址提取加密代码(934)可以包括:如图11所示的基于32位逻辑地址生成64位随机数的随机化进程,对待划分为两个过渡加密代码的64位随机数的遮蔽进程,以及对两个过渡加密代码执行的以生成加密代码的逻辑运算。为了增强加密代码的随机特性,第三数据编码方法可以采用图11所示的使用所有位随机数的过程,而不是采用图9所示的使用通过随机化进程生成的随机数的一部分的过程。
174.另外,可以对hpb数据和加密代码执行逻辑运算(936)。可以针对图11所示的第三加密代码556以及源数据sd的映射时间数据td和物理页面编号ppn执行逻辑运算。逻辑运算可以包括例如异或(xor)运算。
175.在图12中描述的第三数据编码方法中,当确定了待从存储器系统110传输到主机102的映射信息(即,hpb数据)时,可以在对该映射信息的一部分进行编码或加密之前,首先对该映射信息执行循环冗余校验。但是,在图9中描述的第一数据编码操作312a中,在执行循环冗余校验之前,数据被部分加密。即,在图9中描述的第一数据编码操作312a中,在对映
射数据执行部分加密操作之后执行循环冗余校验。由于这一差异,针对对加密数据组块进行解码而由存储器系统110检查到的错误可能不同。
176.图13示出根据本公开的另一示例性实施例的在存储器系统中执行的第二数据解码操作。第二数据解码操作314b可以是由图8中描述的解码器314执行的操作的另一示例。
177.参照图13,从主机102向存储器系统110输入加密数据组块(hpb数据)和逻辑块地址lba。存储器系统110可以通过使用从主机102传输的逻辑块地址lba来对加密数据组块(hpb数据)进行解码。
178.在该示例中,第二数据解码操作314b可以包括基于32位逻辑地址和种子来生成64位随机数的随机化进程。通过遮蔽进程,可以将64位随机数划分为36位第一过渡加密代码552和28位第二过渡加密代码554。此后,可以对36位第一过渡加密代码552和28位第二过渡加密代码554执行逻辑运算以生成加密代码。参照图13,对36位第一过渡加密代码552和28位第二过渡加密代码554执行诸如异或(xor)运算的逻辑运算,以生成36位第三加密代码556。遮蔽进程和逻辑运算可以生成36位第三加密代码556,因为作为待加密的部分的4位映射时间数据(td)和32位物理页面编号(ppn)的长度为36位。
179.与图10中描述的第一数据解码操作314a不同,图13中描述的第二数据解码操作314b不丢弃由随机化进程生成的64位随机数的一部分。可以使用两个过渡代码来改变所有位随机数,并且可以将这两个过渡代码用作异或(xor)运算的输入。与图10所示的第一加密代码552相比,第三加密代码556的随机特性可以得到增强。
180.第二数据解码操作314b可以对第三加密代码556和加密数据组块hpb_d中的36位加密数据en_d执行逻辑运算。在这种情况下,逻辑运算可以包括例如异或(xor)运算。通过该逻辑运算,存储器系统110可以对加密数据en_d进行解密并且从加密数据en_d获得4位映射时间数据td和32位物理页面编号ppn。
181.此后,解码器314可以执行循环冗余校验(crc)。通过循环冗余校验(crc),不仅可以检查在传输/接收进程期间是否已经正常地传输加密数据组块hpb_d,而且可以检查连同加密数据组块hpb_d一起输入的逻辑块地址与32位物理页面编号ppn之间的关联。在图10中描述的第一数据解码操作314a中执行的循环冗余校验(crc)可以确认在主机102和存储器系统110之间的加密数据组块hpb_d的传输和接收中是否存在错误。然而,当与待传输到存储器系统110的特定逻辑块地址相关联的加密数据组块hpb_d由于在主机102中执行的内部操作中的错误而未正确匹配时,存储器系统110难以检查逻辑块地址与加密数据组块hpb_d之间的关联。然而,在图13中描述的第二数据解码操作314b中,对4位映射时间数据td和32位物理页面编号ppn而不是36位加密数据en_d执行循环冗余校验。由于直接对32位物理页面编号ppn执行循环冗余校验(crc),所以存储器系统110可以通过单个循环冗余校验(crc)来检查32位物理页面编号ppn是否与逻辑块地址相关联。
182.当通过循环冗余校验(crc)确认32位物理页面编号ppn与逻辑块地址之间的关联时,存储器系统110被配置为基于对应于32位物理页面编号ppn的4位映射时间数据td,确定32位物理页面编号ppn的有效性,即,32位物理页面编号ppn是否为最新。
183.图14示出根据本公开的另一示例性实施例的在存储器系统中执行的第三数据解码操作。根据实施例,第三数据解码操作可以示出图7中描述的对加密hpb数据组块进行解码的特定进程(824)。
184.参照图14,第三数据解码操作可以包括:接收从主机输入的加密hpb数据组块(910),基于逻辑块地址生成加密代码(912),对加密hpb数据组块和加密代码进行逻辑计算(914),对hpb数据执行循环冗余校验(916),并且当循环冗余校验中没有错误时确定物理位置(918)。
185.第三数据解码操作可以以存储器系统110接收从主机102传递的加密hpb数据组块开始(910)。加密hpb数据组块可以连同逻辑块地址以及请求或命令(例如,读取请求)一起输入到存储器系统110。此后,存储器系统110中的解码器314可以对加密hpb数据组块进行解码。
186.存储器系统110可以基于与加密hpb数据组块相关联的逻辑块地址来生成加密代码(912),这与第三数据编码操作中的类似。基于逻辑块地址来生成加密代码。根据实施例,可以通过图13中描述的随机化进程、遮蔽进程和逻辑运算来生成加密代码。
187.在第三数据解码操作中,生成加密代码,然后可以基于该加密代码对加密hpb数据组块的加密部分进行解密或解码。可以使用加密代码,通过简单的逻辑运算来实现对加密hpb数据组块中的加密部分的解密(914)。
188.在对加密hpb数据组块中的加密部分进行解码以生成解密数据之后,解码器314可以对包括32位物理页面编号ppn的解密数据执行循环冗余校验(916)。由于在对加密hpb数据组块中的加密部分进行解密之后执行循环冗余校验,所以存储器系统110可以检查解密数据是否与逻辑块地址相关(即,所解密的物理页面编号ppn是否与逻辑地址相关联)。当通过循环冗余校验没有错误时,解码器314可以将从主机102输入的物理页面编号ppn确定为用于对应于输入请求或命令的数据的物理位置。
189.根据本公开的各个实施例的存储器系统和数据处理系统提高了数据处理进程之内的数据传输的安全性。
190.另外,根据本公开的实施例的存储器系统可以通过在数据解码进程期间识别错误来减少开销,并因此可以提高存储器系统的操作性能(例如,输入/输出性能)。
191.虽然已经关于具体实施例说明和描述了本教导,但是鉴于本公开,对于本领域技术人员将显而易见的是,在不脱离如所附权利要求书中所限定的本公开的精神和范围的情况下,可以进行各种替代、改变和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献