CN117908784A - L2p表格数据的缓存方法、设备及计算机可读存储介质 - Google Patents
L2p表格数据的缓存方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117908784A CN117908784A CN202311844787.5A CN202311844787A CN117908784A CN 117908784 A CN117908784 A CN 117908784A CN 202311844787 A CN202311844787 A CN 202311844787A CN 117908784 A CN117908784 A CN 117908784A
- Authority
- CN
- China
- Prior art keywords
- data
- sequence number
- storage unit
- hash
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000003068 static effect Effects 0.000 claims abstract description 52
- 230000003139 buffering effect Effects 0.000 claims description 24
- 238000013507 mapping Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 74
- 239000007787 solid Substances 0.000 description 15
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种L2P表格数据的缓存方法、设备及计算机可读存储介质,所述L2P表格数据的缓存方法包括以下步骤:在接收到L2P表格数据时,确定所述L2P表格数据的表序号和管理类型;当所述管理类型为静态L2P表格时,基于所述表序号和静态管理区域基地址,将所述L2P表格数据存入第一HMB子区域;当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元。通过以上步骤,能够同时兼顾L2P表格数据的动态管理和静态管理,同时方便查找L2P表格数据在HMB区域的所在位置。
Description
技术领域
本发明涉及固态硬盘领域,尤其涉及L2P表格数据的缓存方法、设备及计算机可读存储介质。
背景技术
对于不具备内置DRAM(Dynamic Random Access Memory,动态随机存取存储器)的PCIe(Peripheral Component Interconnect express,高速串行计算机扩展总线标准)固态硬盘,通常会使用主机***的一部分内存来替代DRAM存放控制算法需要的数据,以此来提高固态硬盘的读写性能和管理数据操作。这种技术被称为HMB(Host Memory Buffer,主机内存缓冲器)。
目前的HMB的访问策略通常是直接利用有限的内存随机读取,然而这样的方式难以兼顾低频访问的文件***区域的静态管理,以及***实时动态读写区域的动态管理,也因此会影响到固态硬盘的读写性能和管理数据操作。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种L2P表格数据的缓存方法、设备及计算机可读存储介质,旨在解决目前的HMB的访问方式难以兼顾低频访问的文件***区域的静态管理,以及***实时动态读写区域的动态管理,也因此影响到固态硬盘的读写性能和管理数据操作的技术问题。
为实现上述目的,本发明提供一种L2P表格数据的缓存方法,所述L2P表格数据的缓存方法包括以下步骤:
在接收到L2P表格数据时,确定所述L2P表格数据的表序号和管理类型;
当所述管理类型为静态L2P表格时,基于所述表序号和静态管理区域基地址,将所述L2P表格数据存入第一HMB子区域;
当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元。
可选地,所述当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元的步骤包括:
根据所述表序号,通过哈希函数运算确定对应的哈希值;
基于哈希表确认所述哈希值是否存在有效记录项;
若不存在所述有效记录项,基于所述缓存控制表选取所述动态管理区域中空闲的存储槽作为所述存储单元;
将所述L2P表格数据写入所述存储单元,并基于所述存储单元的槽编号、所述表序号和所述哈希值更新所述缓存控制表和所述哈希表。
可选地,所述基于哈希表确认所述哈希值是否存在有效记录项的步骤之后,还包括:
若存在所述有效记录项,确定所述有效记录项的缓存索引值;
根据所述缓存索引值,在所述缓存控制表中查找对应的槽编号;
将所述槽编号对应的存储槽作为所述存储单元,并将所述待管理数据写入所述存储单元。
可选地,所述将所述槽编号对应的存储槽作为所述存储单元,并将所述待管理数据写入所述存储单元的步骤之前,还包括:
基于所述缓存索引值,在所述缓存控制表查找初始表序号;
当所述初始表序号与所述表序号相同时,将所述缓存控制表中所述缓存索引值所在行的哈希链接字段填充为预设字段;
当所述初始表序号与所述表序号不相同时,基于所述缓存控制表查找属于所述哈希值对应的最后一个缓存条目,将所述缓存条目中的哈希链接字段填充为所述缓存索引值。
可选地,所述当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元的步骤之后,还包括:
在接收到LBA数据时,根据所述LBA数据确定对应的待查找表序号;
通过哈希运算,确定所述待查找表序号对应的哈希值,并基于哈希表查找所述哈希值是否存在有效记录项;
若不存在所述有效记录项,根据所述待查找表序号从NAND闪存中加载所述待查找表序号对应的L2P表;
根据所述L2P表的映射关系,确定所述LBA数据对应的物理地址;
基于所述物理地址生成读取命令并发送给所述NAND闪存,以响应读取所述物理地址存放数据的命令。
可选地,所述通过哈希运算,确定所述待查找表序号对应的哈希值,并基于哈希表查找所述哈希值是否存在有效记录项的步骤之后,还包括:
若存在所述有效记录项,在所述缓存控制表中的缓存条目中确认所述待查找表序号对应L2P表所在的目标存储单元;
确定所述目标存储单元的偏移量,并所述目标存储单元的偏移量以及所述L2P表的映射关系,确定所述LBA数据对应的物理地址;
基于所述物理地址生成读取命令并发送给所述NAND闪存,以响应读取所述物理地址存放数据的命令。
可选地,所述若存在所述有效记录项,在所述缓存控制表中的缓存条目中确认所述待查找表序号对应L2P表所在的目标存储单元的步骤包括:
基于所述有效记录项对应的缓存索引值,在所述缓存控制表中确认对应存储的表序号;
判断所述表序号与所述待查找表序号是否一致;
若不一致,基于所述表序号所在缓存条目的哈希链接字段的字段值,查找下一缓存条目,直至查找到与所述待查表序号相同的表序号;
若一致,确定所述表序号所在缓存条目的槽编号;
将所述槽编号对应的存储单元作为所述目标存储单元。
可选地,所述当所述管理类型为静态L2P表格时,基于所述表序号和静态管理区域基地址,将所述L2P表格数据存入第一HMB子区域的步骤之后,还包括:
在接收到LBA数据时,确定所述LBA数据确定对应的表序号;
根据所述静态管理区域基地址、所述表序号、静态区域起始表格序号和表格数据大小,确定所述表序号对应的L2P表地址;
根据所述L2P表地址的映射关系,确定所述LBA数据对应的物理地址。
此外,为实现上述目的,本发明还提供一种L2P表格数据的缓存设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的L2P表格数据的缓存程序,所述L2P表格数据的缓存程序配置为实现如上所述的L2P表格数据的缓存方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述存储介质上存储有L2P表格数据的缓存程序,所述L2P表格数据的缓存程序被处理器执行时实现如上所述的L2P表格数据的缓存方法的步骤。
本发明实施例通过提供一种L2P表格数据的缓存方法、设备及计算机可读存储介质,在接收到L2P表格数据时,确定当前L2P表格数据的表序号和管理类型,若为静态L2P表格时,则根据表序号和静态管理区域基地址将其存入第一HMB子区域,若为动态L2P表格时,根据表序号和缓存控制表确定L2P表格数据在第二HMB子区域的存储单元,并将其存入存储单元当中。通过以上步骤,能够同时兼顾L2P表格数据的动态管理和静态管理,同时方便查找L2P表格数据在HMB区域的所在位置。
附图说明
图1为本发明L2P表格数据的缓存方法第一实施例的流程示意图;
图2为本发明L2P表格数据的缓存方法第二实施例的流程示意图;
图3为本发明L2P表格数据的缓存方法第三实施例的流程示意图;
图4为本发明第一实施例中HMB区域与主机和固态硬盘之间的连接结构示意图;
图5为本发明L2P表格的缓存方法中的缓存控制表结构示意图;
图6为本发明L2P表格的缓存方法中的哈希表结构示意图;
图7是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供了一种L2P表格的缓存方法,参照图1,图1为本发明一种L2P表格的缓存方法第一实施例的流程示意图。
本实施例中,所述L2P表格的缓存方法包括:
步骤S10、在接收到L2P表格数据时,确定所述L2P表格数据的表序号和管理类型。
在本实施例中,参照图4,在计算机***中,主机(host)可以为PCIE固态硬盘(Solid State Drive,SSD)提供一片内存,SSD可以用这片内存存放控制算法需要的数据,以此提高固态硬盘的性能表现。这片内存被称为HMB。固态硬盘的固件将HMB划分为若干槽(slot),这里的槽相当于HMB区域的一个存储单元,每个单元可以存储一个L2P表,SSD可以通过PCIE总线直接存取HMB区域当中的L2P表数据。SSD的固件是嵌入在固态硬盘控制器中的软件,负责管理存储单元的读取、写入和擦除操作。L2P表格(Logical to PhysicalTable)是一种用于存储逻辑地址到物理地址的映射关系的表格,通常用于将逻辑地址映射到实际的物理存储介质上的地址。当应用程序需要读取或写入某个逻辑地址上的数据时,通过查询L2P表,根据逻辑地址在L2P表中找到对应的物理地址,然后再根据物理地址去实际的存储介质上进行数据的读取或写入操作。在处理器和固态硬盘之间的通信中,由主机负责执行L2P表格在HMB区域的存取工作。主机可以通过PCIe总线发送命令和数据至固态硬盘,其中包括读取或写入HMB区域中的L2P表格数据。而固态硬盘的控制器负责管理和维护L2P表格,它会收集并更新L2P表格中的映射关系,以确保正确的数据读写操作。
当主机在接收到一个L2P表格数据时,可以通过其属性或标记确定L2P表格数据对应的表序号和管理类型,静态L2P表格数据可能会被标记为只读,而动态L2P表格数据可能会被标记为可写。此外,还可以通过表格的大小和更新方式来进行判断,静态L2P表格通常会在启动时加载到缓存中,并保持固定大小,而动态L2P表格可以动态调整大小,以适应不断变化的数据访问模式。可选地,还可以通过观察表格的创建和销毁过程来判断L2P表格的管理类型,静态L2P表格通常会在***启动时创建,并一直存在直到***关闭,而动态L2P表格可能会根据需要动态创建和销毁。L2P表格对应的管理类型通常由固态硬盘控制器或操作***来确定,不同的控制器或操作***可能会采用不同的管理策略和算法来维护和管理L2P表格。静态L2P表格适用于读密集型工作负载,其中数据访问模式相对稳定,变化不大。动态L2P表格适用于写密集型工作负载,其中数据访问模式经常发生变化,动态L2P表格可以动态调整大小,以适应不断变化的数据访问模式。
在本实施例中,通过确定L2P表格数据的管理类型,便于后续对不同管理类型的L2P表格数据进行分类存储和管理,使得计算机***可以同时兼顾HMB区域的动态管理和静态管理。
步骤S20、当所述管理类型为静态L2P表格时,基于所述表序号和静态管理区域基地址,将所述L2P表格数据存入第一HMB子区域。
在本实施例中,本发明将HMB区域划分为2个区域,其中第一HMB子区域用作L2P表格的静态管理,按照L2P表格的顺序存入对应的表格数据,另一个区域使用动态管理算法,将最近使用的L2P表格按一定算法存放在区域内的特定位置。固态盘上电时将l2p表格数据预先按表格的顺序加载到这部分空间。动态加载L2P地址空间与静态加载的L2P地址空间不重复。当L2P表格数据有更新时,同步更新到HMB对应的子区域中。静态管理区域和动态管理区域的划分是由固件自动完成的。当固件初始化HMB时,它会自动将静态管理区域划分到主机内存的最后一页或几页,并在其中创建HMB元数据结构和L2P表等固件所需的数据结构。而动态管理区域的大小和数量可以由主机内存空闲容量和固件策略等因素共同决定。动态管理区域的大小和数量是动态变化的,固件会根据当前的主机内存空闲容量和固件策略来决定是否增加或减少DMA的槽数量,以满足不同应用场景的需求。
进一步地,还需要根据L2P表格的大小和静态管理区域的空间大小,制定映射策略,确保能够将L2P表格数据按顺序存入静态管理的区域中,这里可以采用直接映射的方式,即按照L2P表格的索引顺序依次存入静态管理区域的空间中。当接收到的L2P表格数据属于静态L2P表格时,可以根据表序号和静态管理区域基地址,将L2P表格数据按照映射策略存入静态管理的区域中,确保每个表格数据被正确存放并且能够被高效地读取。而对于静态管理区域表格数据的寻址方式按照以下表达式来进行:
HmbOffset=静态管理区基地址+(表序号-静态区起始表格序号)*表格大小,
其中,HmbOffset为相对于HMB起始地址的偏移值,用于确定表格数据在HMB中的具***置。静态管理区基地址为静态管理区的起始地址。表序号指的是要访问的表格在HMB中的序号,每个表格对应一个逻辑地址范围,用于缓存存储设备中的数据块。静态区起始表格序号是HMB静态管理区中第一个表格的序号,表格大小是因为每个表格的大小是固定的,以此来计算表格数据的偏移量。
此外,静态管理区域的L2P表格数据的更新时机也分为不同的情况,一种是在固态盘上电初始化就默认将属于静态管理区域的L2P表格数据加载到HMB静态区域。另一种情况下,当静态管理区域的L2P表格数据有更新时,又分为两种处理方式,第一种是根据接收到的LBN(逻辑块地址)数据计算得到L2P表序号,通过L2P表序号定位到对应L2P表格数据在HMB缓存的位置,随后根据LBN数据计算得到L2P表格内的偏移,并更新对应的数据。第二种是将其更新到临时L2P表,当临时L2P表需要回写到NAND Flash的同时再集中写到对应的HMB静态管理区域。
在本实施例中,通过将HMB的一部分空间划分为静态管理的区域,并按照L2P表格的顺序存入对应的表格数据,从而提高数据的读取速度和访问效率。这样的设计可以更好地利用HMB的特性,加速数据的读写操作,提升***性能。
步骤S30、当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元。
在本实施例中,当管理类型为动态L2P表格类型时,可以采用动态管理算法将其存放到动态管理区域的特定位置。首先根据所述表序号和缓存控制表计算当前L2P表格数据应该存放于第二HMB子区域的哪个存储单元(槽),随后将其存放到对应的存储单元当中。确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元。
进一步地,本发明中固件维护一个HMB缓存控制表,参照图5,HMB缓存控制表的表格结构包括缓存索引值(Cache index),每个缓存行都有一个唯一的索引,用于标识缓存行在缓存中的位置,索引值是一个整数值,范围从0到缓存行数减1。通过cache index,可以快速定位到指定的缓存行,并获取相应的数据。此外还包括L2P表序号(L2P table index)和HMB槽编号(Hmb slot index)和哈希链接字段(Hash link)。HMB槽编号用来唯一标识HMB中的存储单元,哈希链接字段用于描述基于哈希函数的链表数据结构,通过哈希函数的计算结果,可以快速定位到具有特定哈希值的节点。因此,当发生更新HMB时,如果发生碰撞,直接使用新表替换HMB中的旧表,同时在缓存控制表中找到旧表的哈希链接字段,将其链接到缓存控制表中新表所在的缓存索引值。而没有发生碰撞的情况下,就将哈希链接字段填充为预设字段“0xffff”。此外,固件还管理一个哈希表(hash table),参照图6,表格中包括哈希值(Hash value)和缓存控制表的缓存索引值(Cache index)。基于该表格存在一个表达式:Hash(l2p_table_index)=cache index。在这个式子中,L2P表的表序号(l2p_table_index)作为哈希函数的输入,经过哈希计算后得到的缓存索引值(cache index)就可以用于在缓存中查找相应的数据。
对于接收到的L2P表格数据,通过其表序号可以输出一个对应的哈希值,通过该哈希值可以在哈希表中查找是否存在有效记录项,倘若存在有效记录项,也就是存在对应的缓存索引值,通过该缓存索引值可以在缓存控制表中查找当前L2P表数据在HMB区域中存储单元的HMB槽编号。从而将其更新到对应的存储单元中(槽)。倘若不存在有效记录项,也就是当前L2P表格为首次存入HMB区域,那么通过查找缓存控制表可以查找出HBM区域中已经占用的存储槽,从而为其分配一个新的存储单元或者久未更新的存储单元俩存储L2P表格数据。
对于动态管理的HMB区域,其数据更新时机也分为两种,一种是在接收到LBN数据时,根据LBN数据计算得到L2P表序号,通过L2P表序号定位到对应L2P表格数据在HMB缓存的位置,随后根据LBN数据计算得到L2P表格内的偏移,并更新对应的数据。另一种是将其更新到临时L2P表,当临时L2P表需要回写到NAND Flash的同时再集中写到对应的HMB动态管理区域。
在本实施例中,通过增加一个缓存控制表以及哈希表,来记录、更新和查找L2P表格的存储情况,以此来实现HMB动态管理区域的动态管理,通过使用Hash算法,对L2P表序号求哈希值可以得到该表数据在HMB区域的存储位置。当读取数据时,同样可以通过Hash算法进行查找,无须再进行搜索动作,减少内存消耗,大幅提升随机读性能。在时间局部性和空间局部性原理的作用下,碰撞发生的概率较低。
进一步的,参照图2,本发明L2P表数据的缓存方法第二实施例,步骤S30还包括以下步骤:
步骤S31、根据所述表序号,通过哈希函数运算确定对应的哈希值。
步骤S32、基于哈希表确认所述哈希值是否存在有效记录项。
步骤S33、若不存在所述有效记录项,基于所述缓存控制表选取所述动态管理区域中空闲的存储槽作为所述存储单元。
步骤S34、将所述L2P表格数据写入所述存储单元,并基于所述存储单元的槽编号、所述表序号和所述哈希值更新所述缓存控制表和所述哈希表。
本发明将动态管理区域的L2P表格数据划分为三种情况,第一种情况是当前更新的L2P表格数据为首次存入,第二种情况为当前L2P表格数据为更新表格数据且缓存控制表中并未发生冲突,第三种情况为当前L2P表格数据为更新表格数据,但缓存控制表发生冲突的情况。在本实施例中,对于首次存入L2P表格数据的情况,首先表序号进行哈希运算得到的哈希值,进而通过该哈希值在哈希表中查找是否存在有效记录项(即是否存在缓存索引值),倘若不存在有效记录项,则说明当前L2P表格数据为首次存储,此时则可以通过查找缓存控制表可以查找出HBM区域中已经占用的存储槽,通过此前预先划分的存储槽可以确定目前还有哪些槽没有被占用,从尚未被占用的槽当中选择槽编号最小的空闲槽作为其存储单元。倘若所有的槽都已经被占用,通过缓存控制表可以查找出哪个槽的长时间没有更新,选择最长时间未更新的槽作为存储单元。可选地,在另一可行的实施方式中,如果哈希表中没有存储任何与给定的哈希值相关的记录项,那么无法直接定位到l2p表在HMB区域的存储槽,此时可以通过读取文件***元数据或其他信息先确定HMB动态管理区域的起始地址和大小,随后将哈希值除以HMB区域的大小,得到一个余数,将该余数作为当前L2P表格数据在HMB区域的存储槽编号,将L2P表格数据存储到该存储槽当中。倘若HMB区域的大小为2的幂次方,还可以使用位运算来计算余数,提高计算效率。在存储完成之后,缓存控制表中会相应记录当前L2P表格的存储情况,包括缓存索引值、填充表序号、槽编号和哈希链接字段的填充,其中,哈希链接字段填充为预设字段“0xffff”,而哈希表中当前哈希值对应的记录项也会进行修改为缓存索引值。在后续过程中,倘若当前L2P表格再次更新时,通过计算哈希值找到有效项中的缓存索引值,并以此在缓存控制表中查找到对应的存储槽,然后以新的L2P表替换老的L2P表。
需要说明的是,哈希表在初始定义之际,会先将各个哈希值记录项(也就是缓存索引值)都定义为无效,随着L2P表格数据的存储更新,哈希表格的记录项也会对应修改,写入缓存索引值。
进一步地,当通过哈希值在哈希表中查找到有效记录项,也就是查找到对应的缓存索引值时,可以通过缓存索引值在缓存控制表中查找到L2P表序号,当表格中存储的表序号与当前L2P表格的表序号相同时,进一步确定对应的存储槽编号,从而将存储槽编号对应的存储槽作为存储单元,直接将新的L2P表格覆盖更新到存储单元当中。在第三种情况中,当通过哈希值在哈希表中查找到有效记录项,进而又通过行缓存索引值查找到表格中存储的表序号,但该表序号与当前L2P表格的表序号并不相同,也就是发生了哈希冲突的情况,此时使用当前L2P表格数据复制到存储槽编号对应存储单元当中。与此同时,缓冲控制表中还需要记录当前L2P表格数据的存储情况,从表格中查找到该冲突哈希值的最后一个记录行,将其哈希链接字段修改为当前L2P表格在缓存控制表中的缓存索引值。可选地,在另一可行的实施方式中,还可以按照哈希表的碰撞解决策略(如线性探测、二次探测等)依次检查后续位置,直到找到与给定表序号匹配的存储单元或遇到空的存储单元为止,在将其保存到存储单元之后,从表格中查找到该冲突哈希值的最后一个记录行,并将其哈希链接字段修改为当前L2P表格在缓存控制表中的缓存索引值。
在本实施例中,通过提供一个缓存控制表,并利用哈希函数计算给定哈希值的缓存索引值,可以确定L2P表格数据在HMB动态管理区域的存储位置。通过维护HMB缓存控制表,固件可以实现SSD与主机内存之间数据传输和缓存的控制。
参照图3,本发明L2P表格数据的缓存方法第三实施例,所述S30之后还包括以下步骤:
步骤S40、在接收到LBA数据时,根据所述LBA数据确定对应的待查找表序号。
步骤S50、通过哈希运算,确定所述待查找表序号对应的哈希值,并基于哈希表查找所述哈希值是否存在有效记录项。
步骤S60、若不存在所述有效记录项,根据所述待查找表序号从NAND闪存中加载所述待查找表序号对应的L2P表。
步骤S70、根据所述L2P表的映射关系,确定所述LBA数据对应的物理地址。
步骤S80、基于所述物理地址生成读取命令并发送给所述NAND闪存,以响应读取所述物理地址存放数据的命令。
在本实施例中,当需要从HMB的动态管理区域进行读数据操作时,还可以通过HASH算法定位查找。进一步地,当在接收到LBA数据时,通过LBA数据的地址计算得到对应的L2P表序号,通过表序号可以在哈希表中查找是否存在有效记录项,通过确认是否存在有效记录项,可以判断出当前LBA数据此前是否已经缓存到HMB区域当中,倘若不存在有效项,则无需再从HMB区域当中进行查找,而是直接根据表序号从NAND Flash(一种非易失性存储器)当中加载对应的L2P表,并根据L2P表中的映射关系,确定LBA数据的物理地址,进而基于确定的物理地址发送命令到NAND来该物理地址中存储的数据。
而倘若哈希表中存在有效记录项,则可以通过哈希表记录项中的缓存索引值,在缓存控制表中进一步查找对应的存储单元。进一步地,我们将缓存控制表中的每一行记录的内容称为缓存条目,通过缓存控制表确认缓存索引值所在行的缓存条目存储的表序号与LBA数据的表序号是否一致,若一致就可以直接锁定该表序号对应的L2P表格实际所在的目标存储单元。若不一致,则通过哈希链接字段继续查找链接的下一个缓存条目,直至查找到与当前表序号相同的缓存条目,以确定该表序号对应的L2P表格实际所在的目标存储单元,这也就相当于确定了LBA数据实际所在的目标存储单元。通过计算目标存储单元的偏移量,也就可以确定存储单元在HMB区域的所在位置。接下来也就可以根据存储单元的所在位置,计算LBA数据在存储单元中的偏移量,而通过L2P表格的映射关系,就可以最终确定LBA数据的对应的物理地址,从而基于确定的物理地址发送命令到NAND来该物理地址中存储的数据。
在本实施例中,通过增加一个缓存控制表以及哈希表,来实现HMB动态管理区域的动态管理。通过使用Hash算法,对L2P表序号求哈希值可以得到该表数据在HMB区域的存储位置。当读取数据时,同样可以通过Hash算法进行查找,无须再进行搜索动作,减少内存消耗,大幅提升随机读性能。在时间局部性和空间局部性原理的作用下,碰撞发生的概率较低。
参照图7,图7为本发明实施例方案涉及的硬件运行环境的L2P表格数据的缓存设备结构示意图。
如图7所示,该L2P表格数据的缓存设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图7中示出的结构并不构成对L2P表格数据的缓存设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图7所示,作为一种存储介质的存储器1005中可以包括操作***、数据存储模块、网络通信模块、用户接口模块以及L2P表格数据的缓存程序。
在图7所示的L2P表格数据的缓存设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明L2P表格数据的缓存设备中的处理器1001、存储器1005可以设置在L2P表格数据的缓存设备中,所述L2P表格数据的缓存设备通过处理器1001调用存储器1005中存储的L2P表格数据的缓存程序,并执行以下步骤:
在接收到L2P表格数据时,确定所述L2P表格数据的表序号和管理类型;
当所述管理类型为静态L2P表格时,基于所述表序号和静态管理区域基地址,将所述L2P表格数据存入第一HMB子区域;
当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元。
进一步地,所述L2P表格数据的缓存设备通过处理器1001调用存储器1005中存储的L2P表格数据的缓存程序,还执行以下步骤:
根据所述表序号,通过哈希函数运算确定对应的哈希值;
基于哈希表确认所述哈希值是否存在有效记录项;
若不存在所述有效记录项,基于所述缓存控制表选取所述动态管理区域中空闲的存储槽作为所述存储单元;
将所述L2P表格数据写入所述存储单元,并基于所述存储单元的槽编号、所述表序号和所述哈希值更新所述缓存控制表和所述哈希表。
进一步地,所述L2P表格数据的缓存设备通过处理器1001调用存储器1005中存储的L2P表格数据的缓存程序,还执行以下步骤:
若存在所述有效记录项,确定所述有效记录项的缓存索引值;
根据所述缓存索引值,在所述缓存控制表中查找对应的槽编号;
将所述槽编号对应的存储槽作为所述存储单元,并将所述待管理数据写入所述存储单元。
进一步地,所述L2P表格数据的缓存设备通过处理器1001调用存储器1005中存储的L2P表格数据的缓存程序,还执行以下步骤:
基于所述缓存索引值,在所述缓存控制表查找初始表序号;
当所述初始表序号与所述表序号相同时,将所述缓存控制表中所述缓存索引值所在行的哈希链接字段填充为预设字段;
当所述初始表序号与所述表序号不相同时,基于所述缓存控制表查找属于所述哈希值对应的最后一个缓存条目,将所述缓存条目中的哈希链接字段填充为所述缓存索引值。
进一步地,所述L2P表格数据的缓存设备通过处理器1001调用存储器1005中存储的L2P表格数据的缓存程序,还执行以下步骤:
在接收到LBA数据时,根据所述LBA数据确定对应的待查找表序号;
通过哈希运算,确定所述待查找表序号对应的哈希值,并基于哈希表查找所述哈希值是否存在有效记录项;
若不存在所述有效记录项,根据所述待查找表序号从NAND闪存中加载所述待查找表序号对应的L2P表;
根据所述L2P表的映射关系,确定所述LBA数据对应的物理地址;
基于所述物理地址生成读取命令并发送给所述NAND闪存,以响应读取所述物理地址存放数据的命令。
进一步地,所述L2P表格数据的缓存设备通过处理器1001调用存储器1005中存储的L2P表格数据的缓存程序,还执行以下步骤:
若存在所述有效记录项,在所述缓存控制表中的缓存条目中确认所述待查找表序号对应L2P表所在的目标存储单元;
确定所述目标存储单元的偏移量,并所述目标存储单元的偏移量以及所述L2P表的映射关系,确定所述LBA数据对应的物理地址;
基于所述物理地址生成读取命令并发送给所述NAND闪存,以响应读取所述物理地址存放数据的命令。
进一步地,所述L2P表格数据的缓存设备通过处理器1001调用存储器1005中存储的L2P表格数据的缓存程序,还执行以下步骤:
基于所述有效记录项对应的缓存索引值,在所述缓存控制表中确认对应存储的表序号;
判断所述表序号与所述待查找表序号是否一致;
若不一致,基于所述表序号所在缓存条目的哈希链接字段的字段值,查找下一缓存条目,直至查找到与所述待查表序号相同的表序号;
若一致,确定所述表序号所在缓存条目的槽编号;
将所述槽编号对应的存储单元作为所述目标存储单元。
进一步地,所述L2P表格数据的缓存设备通过处理器1001调用存储器1005中存储的L2P表格数据的缓存程序,还执行以下步骤:
在接收到LBA数据时,确定所述LBA数据确定对应的表序号;
根据所述静态管理区域基地址、所述表序号、静态区域起始表格序号和表格数据大小,确定所述表序号对应的L2P表地址;
根据所述L2P表地址的映射关系,确定所述LBA数据对应的物理地址。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种L2P表格数据的缓存方法,其特征在于,所述L2P表格数据的缓存方法包括以下步骤:
在接收到L2P表格数据时,确定所述L2P表格数据的表序号和管理类型;
当所述管理类型为静态L2P表格时,基于所述表序号和静态管理区域基地址,将所述L2P表格数据存入第一HMB子区域;
当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元。
2.如权利要求1所述的L2P表格数据的缓存方法,其特征在于,所述当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元的步骤包括:
根据所述表序号,通过哈希函数运算确定对应的哈希值;
基于哈希表确认所述哈希值是否存在有效记录项;
若不存在所述有效记录项,基于所述缓存控制表选取所述动态管理区域中空闲的存储槽作为所述存储单元;
将所述L2P表格数据写入所述存储单元,并基于所述存储单元的槽编号、所述表序号和所述哈希值更新所述缓存控制表和所述哈希表。
3.如权利要求2所述的L2P表格数据的缓存方法,其特征在于,所述基于哈希表确认所述哈希值是否存在有效记录项的步骤之后,还包括:
若存在所述有效记录项,确定所述有效记录项的缓存索引值;
根据所述缓存索引值,在所述缓存控制表中查找对应的槽编号;
将所述槽编号对应的存储槽作为所述存储单元,并将所述待管理数据写入所述存储单元。
4.如权利要求3所述的L2P表格数据的缓存方法,其特征在于,所述将所述槽编号对应的存储槽作为所述存储单元,并将所述待管理数据写入所述存储单元的步骤之前,还包括:
基于所述缓存索引值,在所述缓存控制表查找初始表序号;
当所述初始表序号与所述表序号相同时,将所述缓存控制表中所述缓存索引值所在行的哈希链接字段填充为预设字段;
当所述初始表序号与所述表序号不相同时,基于所述缓存控制表查找属于所述哈希值对应的最后一个缓存条目,将所述缓存条目中的哈希链接字段填充为所述缓存索引值。
5.如权利要求1所述的L2P表格数据的缓存方法,其特征在于,所述当所述管理类型为动态L2P表格时,根据所述表序号和缓存控制表确定所述L2P表格数据在第二HMB子区域的存储单元,并将所述L2P表格数据存入所述存储单元的步骤之后,还包括:
在接收到LBA数据时,根据所述LBA数据确定对应的待查找表序号;
通过哈希运算,确定所述待查找表序号对应的哈希值,并基于哈希表查找所述哈希值是否存在有效记录项;
若不存在所述有效记录项,根据所述待查找表序号从NAND闪存中加载所述待查找表序号对应的L2P表;
根据所述L2P表的映射关系,确定所述LBA数据对应的物理地址;
基于所述物理地址生成读取命令并发送给所述NAND闪存,以响应读取所述物理地址存放数据的命令。
6.如权利要求5所述的L2P表格数据的缓存方法,其特征在于,所述通过哈希运算,确定所述待查找表序号对应的哈希值,并基于哈希表查找所述哈希值是否存在有效记录项的步骤之后,还包括:
若存在所述有效记录项,在所述缓存控制表中的缓存条目中确认所述待查找表序号对应L2P表所在的目标存储单元;
确定所述目标存储单元的偏移量,并所述目标存储单元的偏移量以及所述L2P表的映射关系,确定所述LBA数据对应的物理地址;
基于所述物理地址生成读取命令并发送给所述NAND闪存,以响应读取所述物理地址存放数据的命令。
7.如权利要求6所述的L2P表格数据的缓存方法,其特征在于,所述若存在所述有效记录项,在所述缓存控制表中的缓存条目中确认所述待查找表序号对应L2P表所在的目标存储单元的步骤包括:
基于所述有效记录项对应的缓存索引值,在所述缓存控制表中确认对应存储的表序号;
判断所述表序号与所述待查找表序号是否一致;
若不一致,基于所述表序号所在缓存条目的哈希链接字段的字段值,查找下一缓存条目,直至查找到与所述待查表序号相同的表序号;
若一致,确定所述表序号所在缓存条目的槽编号;
将所述槽编号对应的存储单元作为所述目标存储单元。
8.如权利要求1所述的L2P表格数据的缓存方法,其特征在于,所述当所述管理类型为静态L2P表格时,基于所述表序号和静态管理区域基地址,将所述L2P表格数据存入第一HMB子区域的步骤之后,还包括:
在接收到LBA数据时,确定所述LBA数据确定对应的表序号;
根据所述静态管理区域基地址、所述表序号、静态区域起始表格序号和表格数据大小,确定所述表序号对应的L2P表地址;
根据所述L2P表地址的映射关系,确定所述LBA数据对应的物理地址。
9.一种L2P表格数据的缓存设备,其特征在于,所述L2P表格数据的缓存设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的L2P表格数据的缓存程序,所述L2P表格数据的缓存程序配置为实现如权利要求1至8中任一项所述的L2P表格数据的缓存方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有L2P表格数据的缓存程序,所述L2P表格数据的缓存程序被处理器执行时实现如权利要求1至8任一项所述的L2P表格数据的缓存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311844787.5A CN117908784A (zh) | 2023-12-28 | 2023-12-28 | L2p表格数据的缓存方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311844787.5A CN117908784A (zh) | 2023-12-28 | 2023-12-28 | L2p表格数据的缓存方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117908784A true CN117908784A (zh) | 2024-04-19 |
Family
ID=90693817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311844787.5A Pending CN117908784A (zh) | 2023-12-28 | 2023-12-28 | L2p表格数据的缓存方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117908784A (zh) |
-
2023
- 2023-12-28 CN CN202311844787.5A patent/CN117908784A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110678836B (zh) | 用于键值存储的持久性存储器 | |
US20210349632A1 (en) | Memory system and method for controlling nonvolatile memory | |
US7191306B2 (en) | Flash memory, and flash memory access method and apparatus | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
KR101185617B1 (ko) | 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법 | |
US7127551B2 (en) | Flash memory management method | |
US7594067B2 (en) | Enhanced data access in a storage device | |
US9092323B2 (en) | Systems and methods for recovering addressing data | |
KR101612922B1 (ko) | 메모리 시스템 및 메모리 시스템 관리 방법 | |
US20170010812A1 (en) | Cache decice and memory system | |
US9990277B2 (en) | System and method for efficient address translation of flash memory device | |
US20070016719A1 (en) | Memory device including nonvolatile memory and memory controller | |
US7287117B2 (en) | Flash memory and mapping control apparatus and method for flash memory | |
JP2013137770A (ja) | Lbaビットマップの使用 | |
TW201301030A (zh) | 在一記憶體裝置中減少次要位址表檢查之快速轉譯指示器 | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
KR20160106240A (ko) | 반도체 장치 및 그 동작 방법 | |
US7058784B2 (en) | Method for managing access operation on nonvolatile memory and block structure thereof | |
JP2007220107A (ja) | 不揮発性メモリのマッピング情報管理装置及び方法 | |
US10776262B2 (en) | Memory system and operating method thereof | |
US10606517B2 (en) | Management device and information processing device | |
CN110147332B (zh) | 目录数据的管理方法与存储器装置 | |
US20170220253A1 (en) | Memory system | |
KR102321346B1 (ko) | 대용량 ssd 장치를 위한 데이터 저널링 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |