闪存设备的数据读取方法、装置、终端设备及存储介质与流程

专利2024-03-29  89



1.本发明涉及存储器技术领域,尤其涉及一种闪存设备的数据读取方法、装置、终端设备以及计算机存储介质。


背景技术:

2.由于闪存设备的读写特性与磁盘有很多区别,因此计算机的文件系统无法直接操作闪存设备的存储空间。基于此,文件系统和闪存设备之间设置了闪存转换层(flashtranslationlayer,ftl)。闪存转换层包括用于在逻辑地址和物理地址之间实现转换的映射表,当闪存转换层接收到对闪存设备的读写操作请求时,根据映射表和访问请求中的逻辑地址确定闪存设备中的物理地址,进而针对待读取逻辑地址进行读写操作。
3.为保证响应速度,映射表通常会存放在闪存设备的内存中。通常,1t容量的固态盘的映射表至少占用0.1%的内存空间,例如,12张4t固态盘的情况下,一共需要12*4t*0.1%=48gb左右的内存空间。但是在dram-less(dyna mic random access memory-less,无动态随机存储器或少动态随机存储器)产品中,由于内存资源有限,映射表只会部分缓存在内存中,进而会导致闪存设备的读取速度较慢。基于此,如何提高在dram-less产品中的读写性能成为亟待解决的问题。


技术实现要素:

4.本发明的主要目的在于提供一种闪存设备的数据读取方法、装置、终端设备以及计算机存储介质,旨在实现针对在dram-less闪存设备中,由于内存资源有限,而造成的闪存设备读取性能较低的问题。
5.为实现上述目的,本发明提供一种闪存设备的数据读取方法,所述闪存设备的数据读取方法包括以下步骤:
6.接收主机发送的读命令,所述读命令中包括待读取数据的待读取逻辑地址;
7.根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;
8.若命中所述第一一级映射表,则根据预设地址序列表查找所述第一一级映射表的第一逻辑地址,以及根据所述第一一级映射表查找与所述待读取逻辑地址相对应的待读取数据;
9.根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机;
10.若未命中所述第一一级映射表,则根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据;
11.根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机。
12.可选地,所述根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机的步骤包括:
13.获取位于所述预设地址序列表中最前端的第三逻辑地址;
14.将所述第一逻辑地址与所述第三逻辑地址进行位置交换,得到更新后的第一目标地址序列表;
15.根据所述第一目标地址序列表,更新所述第一一级映射表,并将所述待读取数据发送至所述主机。
16.可选地,所述根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机的步骤包括:
17.获取位于所述预设地址序列表中最末端的第四逻辑地址;
18.将所述第四逻辑地址替换为所述第二逻辑地址,得到更新后的第二目标地址序列表;
19.根据所述第二目标地址序列表,更新所述第二一级映射表和预设区块地址位图,并将所述待读取数据发送至所述主机。
20.可选地,所述根据所述第二目标地址序列表,更新所述第二一级映射表和预设区块地址位图的步骤包括:
21.根据更新后的预设地址序列表,更新所述第二一级映射表以及对所述预设区块地址位图中的bit位进行更新,其中,所述预设区块地址位图中为表示所述第一一级映射表是否存在于所述只读存储器中的bit位的集合。
22.可选地,所述根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表的步骤包括:
23.根据所述待读取逻辑地址和预设区块大小,得到所述待读取逻辑地址在所述预设区块地址位图中的索引值;
24.将所述索引值与所述预设区块地址位图进行相与运算,得到运算结果;
25.根据所述运算结果,判断所述读命令是否命中只读存储器中的第一一级映射表。
26.可选地,所述运算结果包括1和0;
27.所述根据所述运算结果,判断所述读命令是否命中只读存储器中的第一一级映射表的步骤包括:
28.若所述运算结果为1,则判定所述读命令命中只读存储器中的第一一级映射表;
29.若所述运算结果为0,则判定所述读命令未命中只读存储器中的第一一级映射表。
30.可选地,所述根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址的步骤包括:
31.根据预设二级映射表中所述待读取逻辑地址与所述第二一级映射表的对应关系,查找位于flash存储器中的与所述待读取逻辑地址相对应的第二一级映射表;
32.获取所述第二一级映射表的第二逻辑地址。
33.此外,为实现上述目的,本发明还提供一种数据读取装置,所述数据读取装置包括接收模块,用于接收主机发送的读命令,所述读命令中包括待读取数据的待读取逻辑地址;
34.判断模块,用于根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;
35.查找模块,用于根据预设地址序列表查找所述第一一级映射表的第一逻辑地址,以及根据所述第一一级映射表查找与所述待读取逻辑地址相对应的待读取数据;以及
36.用于根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据;
37.执行模块,用于根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机;以及
38.用于根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机。
39.此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的闪存设备的数据读取程序,所述闪存设备的数据读取程序被所述处理器执行时实现如上述中的闪存设备的数据读取方法的步骤。
40.此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有闪存设备的数据读取程序,所述闪存设备的数据读取程序被处理器执行时实现如上述的闪存设备的数据读取方法的步骤。
41.本发明提出的闪存设备的数据读取方法、装置、终端设备以及计算机存储介质,所述闪存设备的数据读取方法包括步骤:接收主机发送的读命令,所述读命令中包括待读取数据的待读取逻辑地址;根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;若命中所述第一一级映射表,则根据预设地址序列表查找所述第一一级映射表的第一逻辑地址,以及根据所述第一一级映射表查找与所述待读取逻辑地址相对应的待读取数据;根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机;若未命中所述第一一级映射表,则根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据;根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机。
42.通过上述方法,在本发明中通过预设区块地址位图,避免了需要将待读取逻辑地址遍历预设地址序列表,进而来查找到第一一级映射表的问题,提高了判断第一一级映射表是否存在闪存设备的只读存储器中的判断效率。通过设置第一一级映射表、第二一级映射表和虚拟地址序列表,以及在判断到读命令未命中第一一级映射表,进而通过第二映射表来查找与所述读命令相对应的待读取数据时,提高了主机在读取dram-less闪存设备中的数据的命中率,进而提高了闪存设备的读取效率,优化了闪存设备的性能;最后,在读取到待读取的数据后,通过更新预设地址序列表、第二一级映射表和预设区块地址位图,提高了闪存设备的下一次读取速度一级闪存设备的读取性能。
附图说明
43.图1是本发明实施例方案涉及终端设备的硬件运行的结构示意图;
44.图2是本发明一种闪存设备的数据读取方法一实施例的流程示意图;
45.图3是本发明一种数据读取装置的结构关系示意图。
46.本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
47.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
48.如图1所示,图1是本发明实施例方案涉及终端设备的硬件运行环境的结构示意图。
49.需要说明的是,图1即可为终端设备的硬件运行环境的结构示意图。本发明实施例终端设备可以是针对基于nand flash为存储介质的存储器,执行本发明提供的闪存设备的数据读取方法的设备,该终端设备具体可以是移动终端、数据存储控制终端、pc或者便携计算机等终端。
50.如图1所示,该终端设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是非易失性存储器(如,flash存储器)、高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
51.本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
52.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及闪存设备的数据读取程序。其中,操作系统是管理和控制样本终端设备硬件和软件资源的程序,支持闪存设备的数据读取程序以及其它软件或程序的运行。
53.在图1所示的终端设备中,用户接口1003主要用于与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的闪存设备的数据读取程序,并执行以下操作:
54.接收主机发送的读命令,所述读命令中包括待读取数据的待读取逻辑地址;
55.根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;
56.若命中所述第一一级映射表,则根据预设地址序列表查找所述第一一级映射表的第一逻辑地址,以及根据所述第一一级映射表查找与所述待读取逻辑地址相对应的待读取数据;
57.根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机;
58.若未命中所述第一一级映射表,则根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据;
59.根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机。
60.进一步地,处理器1001可以调用存储器1005中存储的闪存设备的数据读取程序,还执行以下操作:
61.获取位于所述预设地址序列表中最前端的第三逻辑地址;
62.将所述第一逻辑地址与所述第三逻辑地址进行位置交换,得到更新后的第一目标地址序列表;
63.根据所述第一目标地址序列表,更新所述第一一级映射表,并将所述待读取数据发送至所述主机。
64.进一步地,处理器1001可以调用存储器1005中存储的闪存设备的数据读取程序,还执行以下操作:
65.获取位于所述预设地址序列表中最末端的第四逻辑地址;
66.将所述第四逻辑地址替换为所述第二逻辑地址,得到更新后的第二目标地址序列表;
67.根据所述第二目标地址序列表,更新所述第二一级映射表和预设区块地址位图,并将所述待读取数据发送至所述主机。
68.进一步地,处理器1001可以调用存储器1005中存储的闪存设备的数据读取程序,还执行以下操作:
69.根据更新后的预设地址序列表,更新所述第二一级映射表以及对所述预设区块地址位图中的bit位进行更新,其中,所述预设区块地址位图中为表示所述第一一级映射表是否存在于所述只读存储器中的bit位的集合。
70.进一步地,处理器1001可以调用存储器1005中存储的闪存设备的数据读取程序,还执行以下操作:
71.根据所述待读取逻辑地址和预设区块大小,得到所述待读取逻辑地址在所述预设区块地址位图中的索引值;
72.将所述索引值与所述预设区块地址位图进行相与运算,得到运算结果;
73.根据所述运算结果,判断所述读命令是否命中只读存储器中的第一一级映射表。
74.进一步地,处理器1001可以调用存储器1005中存储的闪存设备的数据读取程序,还执行以下操作:
75.若所述运算结果为1,则判定所述读命令命中只读存储器中的第一一级映射表;
76.若所述运算结果为0,则判定所述读命令未命中只读存储器中的第一一级映射表。
77.进一步地,处理器1001可以调用存储器1005中存储的闪存设备的数据读取程序,还执行以下操作:
78.根据预设二级映射表中所述待读取逻辑地址与所述第二一级映射表的对应关系,查找位于flash存储器中的与所述待读取逻辑地址相对应的第二一级映射表;
79.获取所述第二一级映射表的第二逻辑地址。
80.基于上述的结构,提出本发明闪存设备的数据读取方法的各个实施例。
81.需要说明的是,在本实施例中,由于近年来随着闪存技术的飞速发展,闪速存储器如nand flash(一种flash闪存存储器),凭借其高性能、非易失性、能耗低等优点,迅速在嵌入式系统中得到大量应用,成为主流的高性能存储技术。然而,由于闪存设备的读写特性与磁盘有很多区别,因此计算机的文件系统无法直接操作闪存设备的存储空间。基于此,文件
memory rom)和flash存储器,且flash存储器为nand flash(nand闪存)。其中,只读存储器用于读取位于flash存储器中的数据;flash存储器用于存储数据,即flash存储器中存储闪存设备所有的数据。
91.步骤s20,根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;
92.预设区块地址位图为一种bitmap表,其中存储有若干个bit位的集合,每一个bit位可以用0或者1表示,在本实施例中,则是用于判断读命令是否命中位于只读存储器中的第一一级映射表,即判断第一一级映射表是否位于只读存储器中。一级映射表是一张用于描述flash存储器中的数据在flash存储器中的具体位置的表,由于本技术是应用于dram-less的闪存设备中的,因此,本技术中的只读存储器中的存储空间是有限的,只能存储小部分的一级映射表,而其余的一级映射表则需要存储在flash存储器中。且只有当一级映射表存储于只读存储器中时,才可以通过一级映射表读取到待读取逻辑地址所对应的数据。在本实施例中,位于只读存储器中的一级映射表即为第一一级映射表;位于flash存储器中的一级映射表即为第二一级映射表。
93.具体的,在一实施例中,所述步骤s20包括:
94.步骤a21,根据所述待读取逻辑地址和预设区块大小,得到所述待读取逻辑地址在所述预设区块地址位图中的索引值;
95.步骤a22,将所述索引值与所述预设区块地址位图进行相与运算,得到运算结果;
96.在本实施例中,所述预设区块大小是一个常量,具体根据闪存设备的容量来确定的,或者固定为4m。所述索引值为待读取逻辑地址与预设区块大小之间的商值,用于判断待读取逻辑地址对应的一级映射表在预设区块地址位图上的状态,且该状态包括1或者0;所述预设区块地址位图用于判断待读取逻辑地址对应的一级映射表是否在只读存储器中,若在,则预设区块地址位图对应的bit位为1,若不在,则对应的bit位为0。需要说明的是,预设区块地址位图中的bit位的数量,也是根据闪存设备的容量来确定的,记录中闪存设备中每一个一级映射表是否存在于只读存储器中,且每一个bit位对应一个一级映射表。
97.步骤a23,根据所述运算结果,判断所述读命令是否命中只读存储器中的第一一级映射表。
98.在一实施例中,所述步骤a23还包括:
99.步骤a231,若所述运算结果为1,则判定所述读命令命中只读存储器中的第一一级映射表;
100.步骤a232,若所述运算结果为0,则判定所述读命令未命中只读存储器中的第一一级映射表。
101.在本实施例中,运算结果包括1和0,若将索引与预设区间地址位图相与后的结果为1,则说明该索引对应的待读取逻辑地址存在于只读存储器中,若为0,则说明不存在只读存储器中,而在flash存储器中。
102.步骤s30,若命中所述第一一级映射表,则根据预设地址序列表查找所述第一一级映射表的第一逻辑地址,以及根据所述第一一级映射表查找与所述待读取逻辑地址相对应的待读取数据;
103.命中所述第一一级映射表,即为待读取逻辑地址存在于只读存储器中的第一一级
映射表中。而预设地址序列表中则记录了每一个第一一级映射表的起始逻辑地址,所述第一逻辑地址即为待读取逻辑地址所对应的第一一级映射表在预设地址序列表中的起始逻辑地址。
104.需要说明的是,预设地址序列表存在于只读存储器中。若待读取逻辑地址存在于第一一级映射表中,则需要在预设地址序列表中查找到与待读取逻辑地址所对应的第一一级映射表,进而根据第一一级映射表找到待读取逻辑地址在flash存储器中对应的待读取数据。
105.步骤s40,根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机;
106.由于预设地址序列表是记录每一个第一一级映射表的起始逻辑地址,因此,在查找到第一逻辑地址之后,需要将第一逻辑地址作为热数据更新到预设地址序列表的最前端。在此,需要说明的是,预设地址序列表是一种链式存储结构,位于较前端的数据即为热数据,即为读取频率较高的数据,而处于较后端的数据即为冷数据,即为读取频率较少的数据。而在本实施例中,更新所述预设地址序列表的本质即为将第一一级映射表的第一逻辑地址更新到预设地址序列表的最前端。而更新第一一级映射表即为第一一级映射表在预设地址序列表中的移动过程。
107.具体的,在一实施例中,所述步骤s40还包括:
108.步骤a41,获取位于所述预设地址序列表中最前端的第三逻辑地址;
109.所述第三逻辑地址为预设地址序列表中最前端的一级映射表所对应的逻辑地址。
110.步骤a42,将所述第一逻辑地址与所述第三逻辑地址进行位置交换,得到更新后的第一目标地址序列表;
111.由于预设地址序列表为链式存储结构,所以直接将位于最前端的第三逻辑地址与待读取逻辑地址对应的第一一级映射表的地址进行位置交换,使得待读取逻辑地址命中的第一一级映射表处于预设地址序列表的最前端,得到更新后的第一目标地址序列表,便于后续再次读取。
112.步骤a43,根据所述第一目标地址序列表,更新所述第一一级映射表,并将所述待读取数据发送至所述主机。
113.第一一级映射表的更新过程即为第一一级映射表在预设地址序列表中的移动过程。
114.步骤s50,若未命中所述第一一级映射表,则根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据;
115.在一实施例中,所述步骤s50,还包括:
116.步骤a51,根据预设二级映射表中所述待读取逻辑地址与所述第二一级映射表的对应关系,查找位于flash存储器中的与所述待读取逻辑地址相对应的第二一级映射表;
117.步骤a52,获取所述第二一级映射表的第二逻辑地址。
118.在本实施例中,所述二级映射表用于表示待读取逻辑地址所对应的一级映射表在flash存储器中的位置。由于未命中所述第一一级映射表,则说明待读取逻辑地址所对应的一级映射表不在只读存储器中,即在flash存储器中,此时,则需要获取得到待读取逻辑地
址在flash存储器中的第二一级映射表,以及第二一级映射表在在flash存储器中的第二逻辑地址。
119.步骤s60,根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机。
120.在得到第二一级映射表的第二逻辑地址之后,如上述实施例中所述,由于无法直接在flash存储器中调用第二一级映射表来查找待读取逻辑地址对应的数据,则需要将待读取逻辑地址所对应的第二一级映射表更新到只读存储器中的预设地址序列表中,以使能够根据待读取逻辑地址找到对应的待读取数据。并且由于预设区块地址位图是描述一级映射表是否在只读存储器中的表,因此,在将第二一级映射表更新到只读存储器中后,只读存储器中便存在有了待读取逻辑地址所对应的一级映射表,则还需要对预设区块地址位图进行更新。
121.具体的,在一实施例中,所述步骤s60还包括:
122.步骤a61,获取位于所述预设地址序列表中最末端的第四逻辑地址;
123.步骤a62,将所述第四逻辑地址替换为所述第二逻辑地址,得到更新后的第二目标地址序列表;
124.在本实施例中,第二逻辑地址是位于flash存储器中的第二一级映射表的地址,将第四逻辑地址替换为第二逻辑地址,则表明将位于flash存储器中的第二一级映射表更新到只读存储器中,使得可以读取待读取逻辑地址所对应的数据,进而提高了读命令在闪存设备中的读取命中率和读取速度。
125.步骤a63,根据所述第二目标地址序列表,更新所述第二一级映射表和预设区块地址位图,并将所述待读取数据发送至所述主机。
126.在一实施例中,所述步骤a63还包括:
127.步骤a631,根据更新后的预设地址序列表,更新所述第二一级映射表以及对所述预设区块地址位图中的bit位进行更新,其中,所述预设区块地址位图中为表示所述第一一级映射表是否存在于所述只读存储器中的bit位的集合。
128.在本实施例中,更新所述第二一级映射表即为第二一级映射表从flash存储器移动到只读存储器的过程;对于预设区块地址位图的更新,由于区块地址位图为多个bit位的集合,是用于描述一级映射表是否在只读存储器中的地址序列表中的,且每一个bit位只能为1或者0,当bit位为1时,则说明该bit位中存在第一一级映射表,反之,则不存在。在将第二一级映射表更新到预设地址序列表中后,由于需要替换掉预设地址序列表中的最末端的第一一级映射表,因此,说明原来的最末端的第一一级映射表已经不在地址序列表中了,则需要将该第一一级映射表表的所对应的bit位的状态更新为0,将更新后的地址序列表的第二一级映射表所对应的bit位的状态更新为1。
129.本发明提出一种闪存设备的数据读取方法,通过上述方法,在本发明中通过预设区块地址位图,避免了需要将待读取逻辑地址遍历预设地址序列表,进而来查找到第一一级映射表的问题,提高了判断第一一级映射表是否存在闪存设备的只读存储器中的判断效率。通过设置第一一级映射表、第二一级映射表和虚拟地址序列表,以及在判断到读命令未命中第一一级映射表,进而通过第二映射表来查找与所述读命令相对应的待读取数据时,提高了主机在读取dram-less闪存设备中的数据的命中率,进而提高了闪存设备的读取效
率,优化了闪存设备的性能;最后,在读取到待读取的数据后,通过更新预设地址序列表、第二一级映射表和预设区块地址位图,提高了闪存设备的下一次读取速度一级闪存设备的读取性能。
130.此外,请参照图3,本发明实施例还提出一种数据读取装置,本发明数据读取装置包括:
131.接收模块10,用于接收主机发送的读命令,所述读命令中包括待读取数据的待读取逻辑地址;
132.判断模块20,用于根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;
133.查找模块30,用于根据预设地址序列表查找所述第一一级映射表的第一逻辑地址,以及根据所述第一一级映射表查找与所述待读取逻辑地址相对应的待读取数据;以及
134.用于根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据;
135.执行模块40,用于根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机;以及
136.用于根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机。
137.本发明数据读取装置的各个功能模块在控制器运行时所实现的步骤,可参照上述本发明闪存设备的数据读取方法的实施例,此处不再赘述。
138.此外,本发明实施例还提出一种终端设备,该终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的闪存设备的数据读取程序,该闪存设备的数据读取程序被所述处理器执行时实现如上述中的闪存设备的数据读取方法的步骤。
139.其中,在所述处理器上运行的闪存设备的数据读取程序被执行时所实现的步骤可参照本发明闪存设备的数据读取方法的各个实施例,此处不再赘述。
140.此外,本发明实施例还提出一种计算机存储介质,应用于计算机,该计算机存储介质可以为非易失性计算机可读计算机存储介质,该计算机存储介质上存储有闪存设备的数据读取程序,所述闪存设备的数据读取程序被处理器执行时实现如上所述的闪存设备的数据读取方法的步骤。
141.其中,在所述处理器上运行的闪存设备的数据读取程序被执行时所实现的步骤可参照本发明闪存设备的数据读取方法的各个实施例,此处不再赘述。
142.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
143.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
144.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做
出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机存储介质(如flash存储器、rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)中,用于控制该存储介质进行数据读写操作的控制器执行本发明各个实施例所述的方法。
145.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:
1.一种闪存设备的数据读取方法,其特征在于,所述闪存设备包括只读存储器和flash存储器,所述闪存设备的读取方法包括以下步骤:接收主机发送的读命令,所述读命令中包括待读取数据的待读取逻辑地址;根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;若命中所述第一一级映射表,则根据预设地址序列表查找所述第一一级映射表的第一逻辑地址,以及根据所述第一一级映射表查找与所述待读取逻辑地址相对应的待读取数据;根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机;若未命中所述第一一级映射表,则根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据;根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机。2.如权利要求1所述的闪存设备的数据读取方法,其特征在于,所述根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机的步骤,包括:获取位于所述预设地址序列表中最前端的第三逻辑地址;将所述第一逻辑地址与所述第三逻辑地址进行位置交换,得到更新后的第一目标地址序列表;根据所述第一目标地址序列表,更新所述第一一级映射表,并将所述待读取数据发送至所述主机。3.如权利要求1所述的闪存设备的数据读取方法,其特征在于,所述根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机的步骤,包括:获取位于所述预设地址序列表中最末端的第四逻辑地址;将所述第四逻辑地址替换为所述第二逻辑地址,得到更新后的第二目标地址序列表;根据所述第二目标地址序列表,更新所述第二一级映射表和预设区块地址位图,并将所述待读取数据发送至所述主机。4.如权利要求3所述的闪存设备的数据读取方法,其特征在于,所述根据所述第二目标地址序列表,更新所述第二一级映射表和预设区块地址位图的步骤,包括:根据更新后的预设地址序列表,更新所述第二一级映射表以及对所述预设区块地址位图中的bit位进行更新,其中,所述预设区块地址位图为表示所述第一一级映射表是否存在于所述只读存储器中的bit位的集合。5.如权利要求1所述的闪存设备的数据读取方法,其特征在于,所述根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表的步骤,包括:根据所述待读取逻辑地址和预设区块大小,得到所述待读取逻辑地址在所述预设区块
地址位图中的索引值;将所述索引值与所述预设区块地址位图进行相与运算得到运算结果;根据所述运算结果,判断所述读命令是否命中只读存储器中的第一一级映射表。6.如权利要求5所述的闪存设备的数据读取方法,其特征在于,所述运算结果包括1和0;所述根据所述运算结果,判断所述读命令是否命中只读存储器中的第一一级映射表的步骤,包括:若所述运算结果为1,则判定所述读命令命中只读存储器中的第一一级映射表;若所述运算结果为0,则判定所述读命令未命中只读存储器中的第一一级映射表。7.如权利要求6所述的闪存设备的数据读取方法,其特征在于,所述根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址的步骤,包括:根据预设二级映射表中所述待读取逻辑地址与所述第二一级映射表的对应关系,查找位于flash存储器中与所述待读取逻辑地址相对应的第二一级映射表;获取所述第二一级映射表的第二逻辑地址。8.一种数据读取装置,其特征在于,所述数据读取装置应用于闪存设备的数据读取方法,所述数据读取装置包括:接收模块,用于接收主机发送的读命令,所述读命令中包括待读取数据的待读取逻辑地址;判断模块,用于根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;查找模块,用于根据预设地址序列表查找所述第一一级映射表的第一逻辑地址,以及根据所述第一一级映射表查找与所述待读取逻辑地址相对应的待读取数据;以及用于根据预设二级映射表查找位于flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据;执行模块,用于根据所述第一逻辑地址,更新所述预设地址序列表和所述第一一级映射表,并将所述待读取数据发送至所述主机;以及用于根据所述第二逻辑地址,更新所述预设地址序列表、所述第二一级映射表以及预设区块地址位图,并将所述待读取数据发送至所述主机。9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的闪存设备的数据读取程序,所述闪存设备的数据读取程序被所述处理器执行时实现如权利要求1至7中任一项所述的闪存设备的数据读取方法的步骤。10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有闪存设备的数据读取程序,所述闪存设备的数据读取程序被处理器执行时实现如权利要求1至7中任一项所述的闪存设备的数据读取方法的步骤。

技术总结
本发明公开了一种闪存设备的数据读取方法、装置、终端设备以及计算机存储介质,包括:接收主机发送的读命令,所述读命令中包括待读取数据的待读取逻辑地址;根据所述待读取逻辑地址和预设区块地址位图,判断所述读命令是否命中只读存储器中的第一一级映射表;若未命中所述第一一级映射表,则根据预设二级映射表查找位于Flash存储器中的第二一级映射表的第二逻辑地址,并根据所述第二一级映射表查找与所述待读取逻辑地址相对应的待读取数据。本发明能够提高读命令在闪存设备中的命中率,提高闪存设备的读取性能。存设备的读取性能。存设备的读取性能。


技术研发人员:付楷 吴大畏 李晓强
受保护的技术使用者:合肥致存微电子有限责任公司
技术研发日:2022.07.01
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7417.html

最新回复(0)