一种映射表的形成及加载方法、电子设备
技术领域
本发明涉及电子技术,尤其涉及一种映射表的形成及加载方法、电子设备。
背景技术
固态存储器(SSD,Solid-State Memory)的性能明显高于传统的磁盘存储器,近几年来,由于固态存储器成本的下降,越来越多的使用在个人计算机(PC)和笔记本中。
固态存储器本身的存储介质一般是NAND闪存(flash),而元数据主要包括硬盘记录的基本信息,例如逻辑-物理映射表、其他硬盘管理信息等;固态存储器上电后,首先从NAND闪存中加载元数据到RAM;在工作过程中,对硬盘的数据读写操作会同时涉及到元数据(特别是映射表)的改变,鉴于速度要求,这些改变直接在RAM上操作的,因此需要适时的将这些元数据更新到NAND flash,否则,一旦出现异常断电,元数据与数据不一致,可能导致SSD重新上电后无法正常工作。
现有技术中,固态硬盘上电时需要加载元数据(metadata)信息。如果采用页映射的方式,元数据中的映射表信息会非常庞大;如果全部加载的话,开机硬盘响应的时间会比较长。
发明内容
有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种映射表的形成及加载方法、电子设备,能够缩短加载元数据的时间,从而提升用户体验。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种映射表的形成方法,所述映射表包括一级映射表和二级映射表,所述方法包括:
采用页级映射将来自主机上的逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;
获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;
将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系,其中所述第一标识信息为第一区块的标识信息;
其中,所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息。
在本发明的一种实施例中,所述Q=1。
在本发明的一种实施例中,所述方法还包括:
当存储有元数据的第一区块被读写过,获取第一标识信息,所述第一标识信息为所述第一区块的标识信息;
根据所述第一标识信息查询所述一级映射表,得到第一映射单元;
更新所述第一映射单元上的标志位。
第二方面,本发明实施例提供一种映射表的加载方法,所述方法包括:
读取所述一级映射表中第一映射单元上的标志位,所述标志位用于表明第一区块是否上一次被访问过,所述第一区块为所述第一映射单元对应的区块;
根据所述标志位的信息判断该第一区块上一次是否被访问过;
当所述标志位信息表明所述第一区块上一次被访问过,根据所述第一映射单元的第一标识信息获取对应的二级映射表中第一区块上的元数据信息;
将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
在本发明的一种实施例中,所述方法还包括:
在所述固态存储器上电后,将所述一级映射表从所述固态存储器的NAND上读到所述固态存储器的随机存储器上。
在本发明的一种实施例中,所述方法还包括:
当所述标志位信息表明第一区块上一次未被访问过,不将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
第三方面,本发明实施例提供一种电子设备,所述映射表包括一级映射表和二级映射表,所述电子设备包括第一形成单元、第一获取单元和第二形成单元,其中:
所述第一形成单元,用于采用页级映射将来自主机上的逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;
所述第一获取单元,用于获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;
所述第二形成单元,用于将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系,其中所述第一标识信息为第一区块的标识信息;
其中,所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息。
在本发明的一种实施例中,所述电子设备还包括第二获取单元、查询单元和更新单元,其中:
所述第二获取单元,用于当存储有元数据的第一区块被读写过,获取第一标识信息,所述第一标识信息为所述第一区块的标识信息;
所述查询单元,用于根据所述第一标识信息查询所述一级映射表,得到第一映射单元;
所述更新单元,用于更新所述第一映射单元上的标志位。
第四方面,本发明实施例提供一种电子设备,所述电子设备包括第一读取单元、判断单元、第三获取单元和第二读取单元,其中:
所述第一读取单元,用于读取所述一级映射表中第一映射单元上的标志位,所述标志位用于表明第一区块是否上一次被访问过,所述第一区块为所述第一映射单元对应的区块;
所述判断单元,用于根据所述标志位的信息判断该第一区块上一次是否被访问过;
所述第三获取单元,用于当所述标志位信息表明所述第一区块上一次被访问过,根据所述第一映射单元的第一标识信息获取对应的二级映射表中第一区块上的元数据信息;
所述第二读取单元,用于将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
在本发明的一种实施例中,所述电子设备还包括第三读取单元,用于在所述固态存储器上电后,将所述一级映射表从所述固态存储器的NAND上读到所述固态存储器的随机存储器上。
在本发明的一种实施例中,所述电子设备还包括处理单元,用于当所述标志位信息表明第一区块上一次未被访问过,不将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
第五方面,本发明实施例提供一种电子设备,所述电子设备包括固态存储器SSD,所述固态存储器包括NAND和SSD控制器,其中
所述SSD控制器,用于采用页级映射将来自主机上的逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系,其中所述第一标识信息为第一区块的标识信息;
其中,所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息。
第六方面,本发明实施例提供一种电子设备,所述电子设备包括固态存储器SSD,所述固态存储器包括NAND和SSD控制器,其中
所述SSD控制器,用于读取所述一级映射表中第一映射单元上的标志位,所述标志位用于表明第一区块是否上一次被访问过,所述第一区块为所述第一映射单元对应的区块;根据所述标志位的信息判断该第一区块上一次是否被访问过;当所述标志位信息表明所述第一区块上一次被访问过,根据所述第一映射单元的第一标识信息获取对应的二级映射表中第一区块上的元数据信息;将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
本发明实施例提供的映射表的形成及加载方法、电子设备,其中:采用页级映射将来自主机上的逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系,其中所述第一标识信息为第一区块的标识信息;其中,所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息,如此,能够缩短加载元数据的时间,从而提升用户体验。
附图说明
图1-1为本发明实施例一映射表的形成方法的实现流程示意图;
图1-2为本发明实施例中标志位在一级映射表中的位置示意图;
图1-3为本发明实施例中一级映射表与二级映射表之间的对应关系示意图;
图2为本发明实施例二映射表的形成方法的实现流程示意图;
图3为本发明实施例三映射表的加载方法的实现流程示意图;
图4为本发明实施例四电子设备组成结构示意图;
图5为本发明实施例五电子设备组成结构示意图;
图6为本发明实施例中固态存储器的组成结构示意图。
具体实施方式
现有技术中SSD只有一个页级映射表,在介绍页级映射表之前,先介绍一下SSD中的基本概念:
1)物理块和物理页
因为NAND闪存单元的组织结构限制,单独读写一个闪存单元是不可能的。NAND闪存单元是以物理块来组织的。物理块中可以读写的最小单元称为物理页。物理页不能独立擦除,只能整块擦除。NAND闪存的物理页大小可能是不一样的,大多数硬盘的物理页大小是2KB、4KB、8KB或16KB。大多数SSD的块有128或256物理页,这即表示物理块的大小也可能是256KB和4MB之间不同的值。例如Samsung SSD 840 EVO的物理块大小是2048KB,而每个物理块有256个8KB的物理页。
读和写是以物理页大小对齐的;一次读取少于一物理页的内容是不可能的。操作系统当然可以只请求一字节,但是SSD会访问整个物理页,强制读取远超所需的数据。将数据写入SSD的时候,写入的增量也是物理页大小。因此即使一个写入操作只影响到一个字节,无论如何整个物理页都会写入。写入比所需更多的数据的行为被称为写入放大。
物理页不能被复写;NAND闪存中物理页只有在其“空闲”着的时候才能写入。当数据改变后,这物理页的内容被拷贝到一个内部寄存器,此时数据更新而新版本的数据存储在一个“空闲”的物理页中,这被称为“读-改-写”操作。数据并非就地更新,因为“空闲”的物理页与原来存储数据的物理页不是同一个物理页。一旦数据被硬盘保存,原先的物理页被标记为“stale(腐败的或不新鲜的)”,直到其被擦除。
擦除以物理块对齐;物理页不能被复写,而一旦其成为stale,让其重新空闲下来的唯一方法是擦除他们。但是对单个物理页进行擦除是不可能的,只能一次擦除整个物理块。在用户看来,访问数据的时候只有读和写命令。擦除命令则是当SSD控制器需要回收stale物理页来获取空闲空间的时候,由其垃圾回收进程触发。
缓存化小写入;为了最大化吞吐量,尽可能的将小数据写入RAM缓存中,当缓存满了之后执行一个大的写入来合并所有的小写入。
2)损耗均衡;
NAND闪存单元因其有P/E循环限制导致其有生命限制。有一个SSD,数据总是在同一个物理块上写入。这个物理块将很快达到其P/E循环限制、耗尽。而SSD控制器井标记其为不可用,这样硬盘的容量将减小。因此,SSD控制器的一个主要目标是实现损耗均衡,即是将P/E循环在物理块间尽可能的平均分配。理想上,所有的物理块会在同一时间达到P/E循环上限并耗尽。为了达到最好的全局损耗均衡,SSD控制器需要明智的选择要写入的物理块,且可能需要在数个物理块之间移动,其内部的进程会导致写入放大的增加。因此,物理块的管理是在最大化损耗均衡和最小话写入放大之间的权衡。
3)闪存转换层(FTL)
闪存转换层是SSD控制器的一个组件,它的一个作用是用于将来自主机的逻辑地址映射为硬盘上的物理地址,FTL还有一个作用是垃圾回收。
4)页级映射
页级映射将来自主机空间的逻辑页(LBA)转换为物理NAND闪存空间的物理页(PBA)。为了访问速度,这个页级映射表保存在SSD的RAM中,并保存在闪存中以防电源故障。当SSD启动后,这个页级映射表从闪存中读出并在SSD的RAM中重建。
页级映射方法提供了很大的灵活性,然而主要的缺点是映射表需要大量的内存,这会显著地增加生产成本。以防大量小更新的工作负载,无论物理页是否是满的,全部闪存的物理块都会写入。
5)数据改变率是一个很重要的影响因素。有些数据很少变化,称为冷数据或者静态数据,而其他一些数据更新的很频繁,称为热数据或者动态数据。如果一个物理页一部分储存冷数据,另一部分储存热数据,这样冷数据会随着热数据一起在垃圾回收以损耗均衡的过程中拷贝,冷数据的存在增加了写入放大。这可以通过将冷数据从热数据之中分离出来,存储到另外的物理页中来避免。缺点是这样会使保存冷数据的物理页更少擦除,因此必须将保存冷数据和热数据的块经常交换以确保损耗均衡。
因为数据的热度是在应用级确定的,现有技术中,FTL没法知道一个物理页是冷数据还是热数据。而在以下本发明提供的技术方案中,将能够实现冷热数据的开分,而且基于冷热数据,实现有目的的加载二级映射表。
如上所述,现有技术中的页级映射表非常庞大,在工作过程中,往往需要全部加载,这样不仅需要大量的内存,而且出错率比较高而且占用的时间会比较长。为了解决前述的技术问题,本发明实施例先提供一种二级映射表机制,该二级映射表机制除了将前述的页级映射表作为二级映射表之外,还根据二级映射表提取出来一个一级映射表,在该一级映射表中的每一映射单元中存储有二级映射表中每一区块的物理地址及该区块的标识信息之间的映射关系。简单来说,就是将二级映射表作为一种数据,然后将二级映射表作为数据按照区块进行划分,同时给划分好的区块标上标识信息,然后将区块的物理地址及对应区块的标识信息填入映射单元中,然后这些映射单元就组成了一级映射表。
在所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息。在一级映射表表中增加Q位的标志位用来表示二级映射表中每一区块所对应的数据区域是否发生的读写操作,Q位的标志位会随着一级映射表的写回操作写入NAND中;当下次上电时,可以先加载标志位信息表明上次被访问过的二级映射表,这样加速硬盘上电时候的响应,提高访问的命中率。从以上描述可以看出,本发明实施例中提高加载速率是通过有目的加载二级映射表中的一部分表来实现的,并不是在上电之后就加载所有的二级映射表。在本发明实施例中所要加载的那一部分被认为是热数据,而热数据的判断方式为:用户在上一次所使用过的数据,换句话说,将上一次使用过的数据作为热数据,然后再本次上电的时候,优先加载上一次被使用过的数据,从而缩短加载元数据的周期,从而提升用户体验。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
实施例一
本发明实施例提供一种映射表的形成方法,应用于电子设备,该映射表的形成方法所实现的功能可以通过电子设备中的SSD控制器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括SSD控制器和存储介质。
图1-1为本发明实施例一映射表的形成方法的实现流程示意图,如图1-1所示,该方法包括:
步骤S101,采用页级映射将来自主机上的所有逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;
这里,所述映射表包括一级映射表和二级映射表;所述主机是指相对于固态存储器而言的电子设备,现有技术中,一般采用页级映射方法形成页级映射表,在本发明实施例中,将此页级映射表作为本发明实施例中二级映射机制中的二级映射表。
步骤S102,获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;
这里,需要对步骤S101中的二级映射表进行划分,划分的单位为区块,即按照区块对二级映射表进行划分,得到划分后的二级映射表。在具体实施的过程中,所述区块可以为物理页或者物理块,或者小于物理页。只要能够找到代表该区块的物理地址即可。所述第一区块为划分后的二级映射表中的任意一个区块,换句话说,所述第一区块为所述二级映射表中的映射信息以区块为单位进行存储时任意一个区块。
步骤S103,将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系,其中所述第一标识信息为第一区块的标识信息;所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息,所述Q为大于等于1的整数。
这里,所述历史访问信息至少包括用于表明第一区块是否上一次被访问的信息。
这里,对于按照区块划分后的二级映射表,对所有的区块都分配标识信息,然后将步骤S102获取的二级映射表中第一区块的物理地址(即第一物理地址)与对应的区块的标识信息(第一标识信息)对应起来,以便在一级映射表的每映射单元中形成映射关系。
下面以物理页代表区块进行说明,本发明实施例提供的一级映射表和二级映射表之间对应关系,参见图1-3所示,另外,一级映射表和二级映射表还包括用于记录以区块为单位的映射信息flush进入所述固态存储器的NAND的时间戳信息和版本标记等信息。利用时间戳信息和版本标记等信息,当根据二级映射表形成一级映射表之后,当一级映射表损坏时可以根据二级映射表来恢复,当二级映射表不完整时可以根据一级映射表来恢复,具体过程如下:
步骤S121,将二级映射表划分为以1个物理页为单元的若干单元存放,形成一个对二级映射表存放的物理地址索引的新的映射表,即一级映射表;
步骤S122,给每个二级映射表中物理页分配一个标识信息,同时记录该页flush进入NAND的时间戳信息;
步骤S123,当更新策略出发一次更新时,采用先局部更新二级映射表,待完成后全局更新一级映射表,再更新miscdata关键元数据;
步骤S124,当断电发生时,可以根据已经flush到NAND中的一级映射表来恢复二级映射表,即便新的修改由于断电还未更新到NAND中,也可以用旧版本的二级映射表进行二级映射表的重构;
步骤S125,如果需要恢复最新版本的一级映射表,可以利用二级映射表的标识信息和时间戳信息,扫描整个二级映射表区域,将已经更新过的二级映射表重构出来和其他旧版本映射表结合,生成特殊版本的一级映射表,从而减少掉电损失;
从以上描述可以看出,当需要恢复最新版本的一级映射表,可以利用每个而级映射表中物理页的标识信息(编码index)、时间戳(timestamp)信息,再恢复出最新的一级映射表。在本发明实施例中用二级映射机制来管理SSD的映射表信息,这样在异常断电时候,可以根据已经flush到NAND中的二级映射表来恢复一级映射表,如果需要恢复最新版本的一级映射表,可以利用每个一级映射表page的编码index、时间戳(timestamp)信息,再恢复出最新的映射表。
本发明实施例中,所述方法还包括:步骤S111,将所述二级映射表中的用于表示单位区块的映射信息作为一个整体存储于NAND上;
作为优选的实施例,以物理页作为所述区块,这样对现有的SSD改进比较小,在现有技术中读写都是以物理页对齐的。
本发明实施例中,所述方法还包括:步骤S112,将所述一级映射表作为一个整体存储于NAND上。在本发明实施例中由于一级映射表是根据二级映射表提取的,所以,一级映射表所占用的空间非常小,因此在加载的过程中,可以将一级映射表作为一个整体进行读和写。
需要说明是,本发明实施例还需要对现有技术中的作为本发明实施例中二级映射表的页级映射表做出一定的改进,即以区块对二级映射表划分后,在每一区块的二级映射表的映射信息中,保留出一个存储单元用于存储该区块的标识信息,因此,本发明实施例中的二级映射表中第一区块的映射信息中还包括第一标识信息。
本发明实施例中,如果电子设备的系统正常关机,在下一次上电时,操作系统会先加载一级映射表,继而加载二级映射表的方式。
在本发明的另一种实施例中,所述Q=1。换句话说,在映射单元中采用1个bit(比特)作为标志位,在具体实施的过程中,当标志位为1时,表明该区块上一次被访问过,那么本次应该优先进行加载,当标志位为0时,表明该区块上一次位被访问过,那么可以不进行加载。或者,当标志位为0时,表明该区块上一次被访问过,那么本次应该优先进行加载,当标志位为1时,表明该区块上一次位被访问过,那么可以不进行加载。如图1-2所示,当一级映射表采用32bits表示一个区块的二级映射表信息,用32bits中的1bit表示标志位,该标志位用于表明是否在下次上电的时候加载;如果二级映射表索引到的数据区域本次发生了读写操作,则该标志位置1,没有置0;当一级映射表更新的时候,标志位也会随着flush到NAND中;下次上电时,可以根据这个标志位,判断该二级映射表是否需要加载,如果是1就加载。如果是0就不加载。每次上电,会加载上次使用过程中访问过的数据所对应的二级映射表这样会提高访问的命中率,加速硬盘响应。需要说明的是,在图1-2中虽然标志位位于32bits的最后一位,但是具体实施的过程中,标志位可以位于32bits中的任意一个位置。
在本发明的一种实施例中,所述每一个映射单元中还包括P位的区块的标识信息,所述P为大于等于1的整数。
本发明实施例中:采用页级映射将来自主机上的逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系,其中所述第一标识信息为第一区块的标识信息;其中,所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息,如此,能够缩短加载元数据的时间,从而提升用户体验。
实施例二
基于前述的实施例,本发明实施例提供一种映射表的形成方法,应用于电子设备,该映射表的形成方法所实现的功能可以通过电子设备中的SSD控制器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括SSD控制器和存储介质。
图2为本发明实施例二映射表的形成方法的实现流程示意图,如图2所示,该方法包括:
步骤S201,采用页级映射将来自主机上的所有逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;
这里,所述映射表包括一级映射表和二级映射表;所述主机是指相对于固态存储器而言的电子设备,现有技术中,一般采用页级映射方法形成页级映射表,在本发明实施例中,将此页级映射表作为本发明实施例中二级映射机制中的二级映射表。
步骤S202,获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;
这里,需要对步骤S201中的二级映射表进行划分,划分的单位为区块,即按照区块对二级映射表进行划分,得到划分后的二级映射表。在具体实施的过程中,所述区块可以为物理页或者物理块,或者小于物理页。只要能够找到代表该区块的物理地址即可。所述第一区块为划分后的二级映射表中的任意一个区块,换句话说,所述第一区块为所述二级映射表中的映射信息以区块为单位进行存储时任意一个区块。
步骤S203,将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系;所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息;
这里,所述第一标识信息为第一区块的标识信息;
步骤S204,当存储有元数据的第一区块被读写过,获取第一标识信息;
这里,所述第一标识信息为所述第一区块的标识信息;
步骤S205,根据所述第一标识信息查询所述一级映射表,得到第一映射单元;
步骤S206,更新所述第一映射单元上的标志位。
这里,更新所述第一映射单元上的Q位的标志位。
本发明实施例中的步骤S204至步骤S207实际上提供一种如何更新一级映射表中标志位的方法。
实施例三
基于前述的实施例,本发明实施例再提供一种映射表的加载方法,应用于电子设备,该映射表的形成方法所实现的功能可以通过电子设备中的SSD控制器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括SSD控制器和存储介质。
图3为本发明实施例三映射表的加载方法的实现流程示意图,如图3所示,该方法包括:
步骤S301,读取所述一级映射表中第一映射单元上的标志位,所述标志位用于表明第一区块是否上一次被访问过,所述第一区块为所述第一映射单元对应的区块;
步骤S302,根据所述标志位的信息判断该第一区块上一次是否被访问过;
步骤S303,当所述标志位信息表明所述第一区块上一次被访问过,根据所述第一映射单元的第一标识信息获取对应的二级映射表中第一区块上的元数据信息;
步骤S304,将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
本发明实施例中,所述方法还包括:
在所述固态存储器上电后,将所述一级映射表从所述固态存储器的NAND上读到所述固态存储器的随机存储器上。
本发明实施例中,所述方法还包括:
当所述标志位信息表明第一区块上一次未被访问过,不将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
这里,需要说明的是,在上电后首次加载的时候,先不加载这些二级映射表中的区块,但是当电子设备下次需要的时候或下次需要访问时,需要从固态存储器的NAND进行加载。
实施例四
基于前述的实施例,本发明实施例提供一种电子设备,该电子设备中所包括的第一形成单元、第一获取单元和第二形成单元等单元,都可以通过电子设备中的SSD控制器来实现,当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图4为本发明实施例四电子设备组成结构示意图,如图4所示,该电子设备400包括第一形成单元401、第一获取单元402和第二形成单元403,其中:
所述第一形成单元401,用于采用页级映射将来自主机上的逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;
所述第一获取单元402,用于获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;
所述第二形成单元403,用于将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系,其中所述第一标识信息为第一区块的标识信息;
其中,所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息。
本发明实施例中,所述Q=1。
本发明实施例中,所述每一个映射单元中还包括P位的区块的标识信息。
本发明实施例中,所述电子设备还包括第二获取单元、查询单元和更新单元,其中:
所述第二获取单元,用于当存储有元数据的第一区块被读写过,获取第一标识信息,所述第一标识信息为所述第一区块的标识信息;
所述查询单元,用于根据所述第一标识信息查询所述一级映射表,得到第一映射单元;
所述更新单元,用于更新所述第一映射单元上的标志位。
这里需要指出的是:以上电子设备实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果,因此不做赘述。对于本发明电子设备实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解,为节约篇幅,这里不再赘述。
实施例五
基于前述的实施例,本发明实施例提供一种电子设备,该电子设备中所包括的第一读取单元、判断单元、第三获取单元和第二读取单元等单元,都可以通过电子设备中的SSD控制器来实现,当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图5为本发明实施例五电子设备组成结构示意图,如图5所示,所述电子设备500包括第一读取单元501、判断单元502、第三获取单元503和第二读取单元504,其中:
所述第一读取单元501,用于读取所述一级映射表中第一映射单元上的标志位,所述标志位用于表明第一区块是否上一次被访问过,所述第一区块为所述第一映射单元对应的区块;
所述判断单元502,用于根据所述标志位的信息判断该第一区块上一次是否被访问过;
所述第三获取单元503,用于当所述标志位信息表明所述第一区块上一次被访问过,根据所述第一映射单元的第一标识信息获取对应的二级映射表中第一区块上的元数据信息;
所述第二读取单元504,用于将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
本发明实施例中,所述电子设备还包括第三读取单元,用于在所述固态存储器上电后,将所述一级映射表从所述固态存储器的NAND上读到所述固态存储器的随机存储器上。
本发明实施例中,所述电子设备还包括处理单元,用于当所述标志位信息表明第一区块上一次未被访问过,不将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
基于前述的实施例,本发明实施例提供一种电子设备,所述电子设备包括固态存储器SSD,图6为本发明实施例中固态存储器的组成结构示意图,如图6所示,所述固态存储器600包括NAND 601和SSD控制器602,其中
所述SSD控制器,用于采用页级映射将来自主机上的逻辑页映射为固态存储器上NAND的物理页,形成二级映射表;获取第一物理地址,所述第一物理地址为所述二级映射表中第一区块的物理存储地址;将所述第一物理地址和对应的第一标识信息在一级映射表中的映射单元中形成映射关系,其中所述第一标识信息为第一区块的标识信息;
其中,所述一级映射表中的每一个映射单元包含Q位的标志位,所述标志位用于表明区块的历史访问信息。
基于前述的实施例,本发明实施例提供一种电子设备,所述电子设备包括固态存储器SSD,所述固态存储器包括NAND和SSD控制器,其中
所述SSD控制器,用于读取所述一级映射表中第一映射单元上的标志位,所述标志位用于表明第一区块是否上一次被访问过,所述第一区块为所述第一映射单元对应的区块;根据所述标志位的信息判断该第一区块上一次是否被访问过;当所述标志位信息表明所述第一区块上一次被访问过,根据所述第一映射单元的第一标识信息获取对应的二级映射表中第一区块上的元数据信息;将所述第一区块上的元数据信息从固态存储器的NAND上读到所述固态存储器的随机存储器上。
这里需要指出的是:以上电子设备实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果,因此不做赘述。对于本发明电子设备实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解,为节约篇幅,这里不再赘述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。