一种基于混合存储设备的数据读写方法与装置制造方法

文档序号:6541024阅读:155来源:国知局
一种基于混合存储设备的数据读写方法与装置制造方法
【专利摘要】本发明公开了一种基于混合存储设备的数据读写方法,所述混合存储设备包括非易失的小粒度寻址介质与非易失的大粒度寻址介质;所述非易失的小粒度寻址介质中存储有地址映射表,所述地址映射表中包含至少一条地址映射记录,每条地址映射记录包括逻辑地址、与所述逻辑地址对应的物理地址以及对应所述逻辑地址的写操作次数;所述方法包括:接收操作请求;解析所述操作请求的逻辑地址,通过所述地址映射表确定所述操作请求对应的数据在所述混合存储设备中的物理地址;根据所述物理地址,在相应存储介质中的相应位置读写数据。本发明还提供了相应的数据读写装置。本发明可以减小额外写开销、提高读写效率,延长存储设备的使用寿命。
【专利说明】—种基于混合存储设备的数据读写方法与装置
【技术领域】
[0001]本发明属于计算机数据存储【技术领域】,更具体地,涉及一种基于混合存储设备的数据读写方法与系统。
【背景技术】
[0002]随着计算机技术的发展,计算机系统中处理器数目增多,存储系统面临的压力因此也越来越大。一些熟知、关键的应用程序逐渐偏向于以数据为中心,而非以计算为中心。故当今面临主要问题之一是在一个大规模高性能计算机系统设计下,存储系统不能维持与之匹配的性能增长率。处理器和存储系统的速度差异成为计算机性能的一大瓶颈。
[0003]现有的存储系统主要是分层存储结构,根据不同介质访问速度、容量大小的特性将存储介质放在存储系统的不同层次。不同的存储介质构成了计算计存储系统中的处理器缓存、主存、外存。在特定的一个系统中,存储结构的每一层都是由一种存储介质构成。
[0004]用固态盘SSD(Solid State Disk)作为外存是近年来的趋势。基于闪存的固态盘具有擦后写的特性,故系统对固态盘的读写请求需要地址映射表对请求的地址进行解析,实现逻辑地址到物理地址的转换。闪存的擦后写特性使得写操作后需要进行地址映射表的更新操作;此外固态盘属于粗粒度读写介质,读写单元为页,所以在更新地址映射表时还会带来大量的额外写开销。

【发明内容】

[0005]为了弥补现有技术中分层存储系统存在的局限,减小额外写开销、提高读写效率,本发明提出了基于外存的混合存储设备的数据读写处理的方法和装置,并针对其设计了新的地址映射表。
[0006]为实现上述目的,按照本发明的一个方面,提供了一种基于混合存储设备的数据读写方法,其特征在于,所述混合存储设备包括非易失的小粒度寻址介质与非易失的大粒度寻址介质,所述非易失的小粒度寻址介质与非易失的大粒度寻址介质统一编址;所述非易失的小粒度寻址介质中存储有地址映射表,所述地址映射表中包含至少一条地址映射记录,每条地址映射记录包括逻辑地址、与所述逻辑地址对应的物理地址以及对应所述逻辑地址的写操作次数;所述方法包括:接收操作请求;解析所述操作请求的逻辑地址,通过所述地址映射表确定所述操作请求对应的数据在所述混合存储设备中的物理地址;根据所述物理地址,在相应存储介质中的相应位置读写数据。
[0007]具体地,当所述操作请求为读请求时:
[0008]解析所述读请求的逻辑地址,通过所述混合存储设备中的地址映射表判定所述读请求对应的数据在所述混合存储设备中的物理存储位置;
[0009]当判定所述读请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,从所述非易失的大粒度寻址介质中相应位置读取数据;
[0010]当判定所述读请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,从所述非易失的小粒度寻址介质中相应位置读取数据。
[0011]具体地,当所述操作请求为写请求时:
[0012]解析所述写请求的逻辑地址,查找所述混合存储设备的地址映射表;
[0013]若所述地址映射表中未找到所述写请求逻辑地址的对应表项,则分配新的空间,在新分配的空间进行写操作;
[0014]若所述地址映射表中有对应写请求逻辑地址的对应表项,通过所述地址映射表判定所述写请求对应的数据在所述混合存储设备中的物理存储位置;
[0015]当判定所述写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则在所述非易失的大粒度寻址介质中进行相应写操作;
[0016]当判定所述写请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,则在所述非易失的小粒度寻址介质中进行相应写操作。
[0017]具体地,若所述地址映射表中未找到所述写请求逻辑地址的对应表项,则分配新的空间,在新分配的空间进行写操作,具体包括:
[0018]判断所述存储设备的非易失的小粒度寻址介质的空间是否分配完毕;
[0019]如果是,则从所述混合存储设备的非易失的大粒度寻址介质中分配相应的空间进行所述写操作;
[0020]如果否,则从所述混合存储设备的非易失的小粒度寻址介质设备中分配相应的空间进行所述写操作。
[0021]进一步地,则所述方法还包括:
[0022]若所述地址映射表中未找到所述写请求逻辑地址的对应表项,则在所述地址映射表中新增一项,记录所述写请求逻辑地址和物理地址的对应关系,并将所述新增表项中记录对应的写次数置为一;
[0023]若所述地址映射表中有所述写请求逻辑地址的对应表项,则判定所述写请求对应的数据在所述混合存储设备中的物理存储位置;
[0024]当判定所述写请求对应的数据的物理存储位置为所述固态盘时,则将所述对应地址映射表项中记录写次数的数据自增一,并修改对应的映射关系;
[0025]当判定所述写请求对应的数据的物理存储位置为所述相变存储器时,则将所述对应地址映射表项中记录写次数的数据自增一。
[0026]进一步地,所述方法还包括:
[0027]根据所述混合存储设备的地址映射表,确定写操作频繁的记录和写操作不频繁的记录,其中所述写操作频繁的记录对应的写操作次数大于写操作阈值,所述写操作不频繁的记录对应的写操作次数小于写操作阈值;
[0028]若所述写操作频繁的记录所对应的数据存储在所述非易失的大粒度寻址介质中,则将所述写操作频繁的记录所对应的数据迁移到所述非易失的小粒度寻址介质中,并修改所述记录中的地址映射关系;
[0029]若所述写操作不频繁的记录所对应的数据存储在所述非易失的小粒度寻址介质中,则将所述写操作不频繁的记录所对应的数据迁移到所述非易失的大粒度寻址介质中,并修改所述记录中的地址映射关系。
[0030]优选地,所述非易失的小粒度寻址介质为相变存储器,所述非易失的大粒度寻址介质为固态盘。
[0031]按照本发明的另一方面,还提供了一种基于混合存储设备的数据读写装置,所述数据读写装置包括请求接收模块、地址映射模块、操作模块、地址分配模块和数据迁移模块,其中:
[0032]所述请求接收模块,用于接收操作请求;
[0033]所述地址映射模块,用于解析所述操作请求的逻辑地址,通过地址映射表确定所述操作请求对应的数据在混合存储设备中的物理地址;
[0034]所述操作模块,用于根据所述物理地址,在相应存储介质中的相应位置读写数据;
[0035]所述地址分配模块,用于在所述地址映射模块在所述地址映射表中未找到写请求逻辑地址的对应表项时,分配新的空间,以使所述操作模块在新分配的空间进行写操作;
[0036]所述数据迁移模块,用于根据所述混合存储设备的地址映射表,确定写操作频繁的记录和写操作不频繁的记录,其中所述写操作频繁的记录对应的写操作次数大于写操作阈值,所述写操作不频繁的记录对应的写操作次数小于写操作阈值;若所述写操作频繁的记录所对应的数据存储在所述非易失的大粒度寻址介质中,则将所述写操作频繁的记录所对应的数据迁移到所述非易失的小粒度寻址介质中,并修改所述记录中的地址映射关系;若所述写操作不频繁的记录所对应的数据存储在所述非易失的小粒度寻址介质中,则将所述写操作不频繁的记录所对应的数据迁移到所述非易失的大粒度寻址介质中,并修改所述记录中的地址映射关系;
[0037]其中,所述混合存储设备包括非易失的小粒度寻址介质与非易失的大粒度寻址介质,所述非易失的小粒度寻址介质与非易失的大粒度寻址介质统一编址;所述非易失的小粒度寻址介质中存储有地址映射表,所述地址映射表中包含至少一条地址映射记录,每条地址映射记录包括逻辑地址、与所述逻辑地址对应的物理地址以及对应所述逻辑地址的写操作次数。
[0038]进一步地,所述地址映射模块具体用于:
[0039]对请求接收模块接收到的读写请求进行解析,判断所述读写请求对应的数据的物理存储位置;
[0040]当判定所述读写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则在所述非易失的大粒度寻址介质中进行相应读写操作;
[0041]当判定所述读写请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,则在所述非易失的小粒度寻址介质中进行相应读写操作。
[0042]进一步地,所述数据读写装置还包括地址更新模块,用于:
[0043]若所述地址映射模块在地址映射表中未找到所述写请求逻辑地址的对应表项,则在所述地址映射表中新增一项,记录所述写请求逻辑地址和物理地址的对应关系,并将所述新增表项中记录对应的写次数置为一;
[0044]若所述地址映射模块在所述地址映射表中有所述写请求逻辑地址的对应表项,且判定所述写请求对应的数据的物理存储位置为固态盘时,则将所述对应地址映射表项中记录写次数的数据自增一,并修改对应的映射关系;
[0045]若所述地址映射模块在所述地址映射表中有所述写请求逻辑地址的对应表项,且当判定所述写请求对应的数据的物理存储位置为相变存储器时,则将所述对应地址映射表项中记录写次数的数据自增一。
[0046]总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0047]1、本发明将非易失的小粒度寻址介质与非易失的大粒度寻址介质组成混合存储设备,并且二者统一编址,并且在非易失的小粒度寻址介质中存储有地址映射表,通过映射表判断读写操作发生的存储介质,从而在相应的存储介质中进行读写操作;并且通过将访问频度高的数据放入读写速度相对快的非易失的小粒度寻址介质中,通过加快经常发生事件的读写速度从而加快了读写操作的速度,缩短了读写操作的平均响应时间。另外非易失的小粒度寻址介质的写损耗小于非易失的大粒度寻址介质,将写频度高的数据放入非易失的小粒度寻址介质中还可以从整体上延长设备的使用寿命。
[0048]2、地址映射表需要进行频繁的读写操作。将地址映射表放入非易失的小粒度寻址介质中加快了地址映射表的读写操作。另外非易失的小粒度寻址介质的写损耗小于非易失的大粒度寻址介质,将地址映射表放入非易失的小粒度寻址介质中降低了整体设备的写损耗,从整体上延长设备的使用寿命。不仅如此,非易失的小粒度寻址介质可以进行小粒度的读写操作,而读取和更改地址映射表一般都是小粒度的操作,故提高了读取和更改地址映射表的效率。
[0049]3、本发明中的地址映射比传统的地址映射表多增加了一个写次数记录项,通过分析写次数的大小,可以分别找到访问频度高和访问频度低的数据区域,从而可以实现将写频繁的数据迁移到非易失的小粒度寻址介质中,将写不频繁的数据放入非易失的大粒度寻址介质中。
[0050]4、本发明中如果混合存储系统的非易失的小粒度寻址介质有空闲,则优先使用非易失的小粒度寻址介质的空间,使访问速度快的介质最大化地利用。
【专利附图】

【附图说明】
[0051]图1为本发明中混合存储设备的结构示意图;
[0052]图2为本发明中一种基于混合存储设备的数据读写装置的结构示意图;
[0053]图3为本发明实施例中由相变存储器和固态盘构成的混合存储设备的结构示意图;
[0054]图4为本发明实施例中的地址映射表的结构示意图;
[0055]图5为本发明实施例中基于混合存储设备的数据读请求的流程图;
[0056]图6为本发明实施例中基于混合存储设备的数据写请求的流程图;
[0057]图7为本发明实施例中基于混合存储设备的第一次数据读请求的流程图。
【具体实施方式】
[0058]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。[0059]如图1所示,本发明中混合存储的外存是由两种介质组成,分别是非易失的小粒度寻址介质与非易失的大粒度寻址介质。非易失的小粒度寻址介质具有读写速度快、可原地覆盖写的特点,例如相变存储器(Phase Change Memory, PCM),磁性随机存储器(Magnetic Random Access Memory, MRAM),动态随机存储器(Dynamic Random AccessMemory, DRAM),静态随机存储器(Static Random Access Memory, SRAM);非易失的大粒度寻址介质具有读写速度相对慢、擦后写的特点,例如固态盘(Solid State Disk,SSD),闪存(Flash)。PCM和SSD的混合就属于本专利讨论的一种混合存储实例。下文以PCM和SSD所构成的混合存储设备为实例进行本发明的说明。
[0060](I)本发明提出了一种基于混合存储设备的新型地址映射表,具体设计如下:
[0061]传统的地址映射表保存的是请求的逻辑地址到对应的物理地址的映射关系。本发明提出了针对该混合存储设备新的地址映射表,该映射表在传统的地址映射表中,新增一个表项,新增的表项用于记录该行对应逻辑地址的写次数,每进行一次写操作,逻辑地址对应的写次数加一;
[0062]基于混合存储装置的新型地址映射表放在非易失、可原地覆盖写的小粒度存储介质之中,如上述PCM之中。
[0063](2)本发明提出一种基于混合存储设备的数据读写处理方法,包括以下步骤:接收操作请求;解析所述操作请求的逻辑地址,通过所述地址映射表确定所述操作请求对应的数据在所述混合存储设备中的物理地址;根据所述物理地址,在相应存储介质中的相应位置读写数据。
[0064]具体地,根据操作请求为读请求或是写请求,分为以下情况:
[0065]2.1接收读请求:
[0066]解析所述读请求的逻辑地址,通过所述混合存储设备的地址映射表中判定所述读请求对应的数据在所述混合存储设备中的物理存储位置。
[0067]当判定所述读请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,从所述非易失的大粒度寻址介质中相应位置读取数据。
[0068]当判定所述读请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,从所述非易失的小粒度寻址介质中相应位置读取数据。
[0069]2.2接收写请求:
[0070]解析所述写请求的逻辑地址,查找所述混合存储设备的地址映射表。
[0071]若所述地址映射表中未找到所述写请求逻辑地址的对应表项,则分配新的空间,在新分配的空间进行写操作。
[0072]若所述地址映射表中有对应写请求逻辑地址的对应表项,通过所述地址映射表中判定所述写请求对应的数据在所述设备中的物理存储位置。
[0073]当判定所述写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则在所述非易失的大粒度寻址介质中进行相应写操作。
[0074]当判定所述写请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,则在所述非易失的小粒度寻址介质中进行相应写操作。
[0075]2.3若接收的写请求逻辑地址在所述地址映射表中没有对应表项,则其步骤还包括:[0076]判断所述存储设备的非易失的小粒度寻址介质的空间是否分配完毕。
[0077]如果是,则从所述混合存储设备的非易失的大粒度寻址介质中分配一定的空间进行所述写操作。
[0078]如果否,则从所述混合存储设备的非易失的小粒度寻址介质中分配一定的空间进行所述写操作。
[0079]2.4完成所述写请求的步骤后还包括:
[0080]更新所述混合存储设备地址映射表的对应项。所述混合存储设备的地址映射放在所述混合存储设备的非易失的大粒度寻址介质中;且地址映射表为上面介绍的新设计的地址映射表,即基于传统地址映射表将每个表项新增一栏,记录该行对应逻辑地址的写次数。
[0081]若所述写请求对应位置为首次写,则在所述地址映射表中新增一项,记录所述写请求逻辑地址和物理地址的对应关系,并将所述新增表项中记录对应写次数的置为一。
[0082]若所述写请求对应位置不是首次写,则判定所述写请求对应的数据在所述设备中的物理存储位置。
[0083]当判定所述写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则将所述对应地址映射表项中记录写次数的数据自增一,并修改对应的映射关系。
[0084]当判定所述写请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,则将所述对应地址映射表项中记录写次数的数据自增一。
[0085]2.5除上述读写流程,所述混合存储设备每隔一段时间还会有如下操作:
[0086]根据所述混合存储设备的地址映射表,确定写操作频繁的记录和写操作不频繁的记录,其中所述写操作频繁的记录对应的写操作次数大于写操作阈值,所述写操作不频繁的记录对应的写操作次数小于写操作阈值;
[0087]若所述写操作频繁的记录所对应的数据存储在所述非易失的大粒度寻址介质中,则将所述写操作频繁的记录所对应的数据迁移到所述非易失的小粒度寻址介质中,并修改所述记录中的地址映射关系;
[0088]若所述写操作不频繁的记录所对应的数据存储在所述非易失的小粒度寻址介质中,则将所述写操作不频繁的记录所对应的数据迁移到所述非易失的大粒度寻址介质中,并修改所述记录中的地址映射关系。
[0089]如图2所示,本发明还提出了一种基于混合存储设备的数据读写装置,所述数据读写装置包括请求接收模块、地址映射模块、操作模块、地址分配模块和数据迁移模块,其中:
[0090]所述请求接收模块,用于接收操作请求;
[0091]所述地址映射模块,用于解析所述操作请求的逻辑地址,通过地址映射表确定所述操作请求对应的数据在混合存储设备中的物理地址;
[0092]所述操作模块,用于根据所述物理地址,在相应存储介质中的相应位置读写数据;
[0093]所述地址分配模块,用于在所述地址映射模块在所述地址映射表中未找到写请求逻辑地址的对应表项时,分配新的空间,以使所述操作模块在新分配的空间进行写操作;
[0094]所述数据迁移模块,用于根据所述混合存储设备的地址映射表,确定写操作频繁的记录和写操作不频繁的记录,其中所述写操作频繁的记录对应的写操作次数大于写操作阈值,所述写操作不频繁的记录对应的写操作次数小于写操作阈值;若所述写操作频繁的记录所对应的数据存储在所述非易失的大粒度寻址介质中,则将所述写操作频繁的记录所对应的数据迁移到所述非易失的小粒度寻址介质中,并修改所述记录中的地址映射关系;若所述写操作不频繁的记录所对应的数据存储在所述非易失的小粒度寻址介质中,则将所述写操作不频繁的记录所对应的数据迁移到所述非易失的大粒度寻址介质中,并修改所述记录中的地址映射关系;
[0095]其中,所述混合存储设备包括非易失的小粒度寻址介质与非易失的大粒度寻址介质,所述非易失的小粒度寻址介质与非易失的大粒度寻址介质统一编址;所述非易失的小粒度寻址介质中存储有地址映射表,所述地址映射表中包含至少一条地址映射记录,每条地址映射记录包括逻辑地址、与所述逻辑地址对应的物理地址以及对应所述逻辑地址的写操作次数。
[0096]进一步地,所述地址映射模块具体用于:
[0097]对请求接收模块接收到的读写请求进行解析,判断所述读写请求对应的数据的物理存储位置;
[0098]当判定所述读写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则在所述非易失的大粒度寻址介质中进行相应读写操作;
[0099]当判定所述读写请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,则在所述非易失的小粒度寻址介质中进行相应读写操作。
[0100]进一步地,所述数据读写装置还包括地址更新模块,用于:
[0101]若所述地址映射模块在地址映射表中未找到所述写请求逻辑地址的对应表项,则在所述地址映射表中新增一项,记录所述写请求逻辑地址和物理地址的对应关系,并将所述新增表项中记录对应的写次数置为一;
[0102]若所述地址映射模块在所述地址映射表中有所述写请求逻辑地址的对应表项,且判定所述写请求对应的数据的物理存储位置为固态盘时,则将所述对应地址映射表项中记录写次数的数据自增一,并修改对应的映射关系;
[0103]若所述地址映射模块在所述地址映射表中有所述写请求逻辑地址的对应表项,且当判定所述写请求对应的数据的物理存储位置为相变存储器时,则将所述对应地址映射表项中记录写次数的数据自增一。
[0104]以下结合附图,对本发明方案进一步说明。本发明实施例中的混合存储设备包括非易失的大粒度寻址介质,如SSD (Solid State Disk,固态硬盘)和非易失的小粒度覆盖写寻址介质,如PCM (Phase Change Memory,相变存储器)。该混合存储设备之中的PCM和SSD都作为外存使用,且两者位于同一存储层级上。由于SSD具有擦后写、读损耗明显,而PCM可以原地覆盖写、写损耗优于SSD,所以将PCM存储频繁写的数据,而将写相对不频繁的数据存储到SSD。此外,由于PCM可原地覆盖写、写速度优于SSD、写损耗小于SSD、可进行小粒度写,故将所述混合存储设备的地址映射表放在PCM上进行管理。本发明结合了混合存储各个存储芯片的优点,进行了相应的设计,具体实施实例如下。
[0105]如图3所示为本发明实施例基于的混合存储设备的基本组成架构。其中所述SSD和所述PCM都充当外存,且所述SSD和所述PCM位于存储的同一层级。此外,将所述SSD和PCM进行顺序编址。顺序编址具体含义如下:若SSD和PCM构成的存储空间的地址为O至1048575,低地址所指向的介质为PCM,高地址所指向介质为SSD,如果PCM和SSD在混合存储设备中容量的比例是1:4,则PCM的地址是O至262143,SSD的地址为262144至1048575。
[0106]如图4所示为本发明新设计的地址映射表的结构。该地址映射表在传统的地址映射表上增加了一个表项,该表项用于记录对应逻辑地址的写次数。例如第一行表示逻辑地址2对应的物理地址为256,且逻辑地址2的位置进行了 51次写操作。
[0107]该地址映射表放在PCM之中,主要原因如下:PCM相对SSD具有较快的读写速度,所以在更新以及查找表项时,时间开销小;SSD的读写单元为页,而PCM可以实现小粒度的读写,故在对地址映射表实行查找、更新操作时,可以减少读写操作的冗余,提高读写效率;基于闪存的SSD需要擦后写,而PCM可以原地覆盖写,故可以减少写操作带来的额外开销;PCM的写寿命也优于SSD,地址映射表的更新操作相对频繁,故放在写寿命相对长的PCM之中。
[0108]如图5所示为本发明基于混合存储设备的数据读请求的实施例。
[0109]步骤S311,接收读请求;
[0110]步骤S312,解析读请求,得到该读请求的逻辑地址,根据解析得到的逻辑地址查找该混合存储设备的地址映射表,找到该读请求对应的物理地址,根据物理地址判断该读请求位于所述SSD还是位于PCM。
[0111]由于混合存储设备中所述PCM和所述SSD进行统一编址,因此根据查找所述地址映射表得到的物理地址就能判断读请求位于SSD还是位于PCM。
[0112]步骤S313,如果判断该读请求位于所述PCM,则在PCM对应位置进行读操作。
[0113]步骤S314,如果判断该读请求位于所述SSD,则在SSD对应位置进行读操作。
[0114]本实施例根据解析读请求,得到请求的逻辑地址,在所述地址映射表中找到逻辑地址对应的物理地址,从而确定读请求的具体位置。
[0115]如图6所示为本发明基于混合存储设备的数据写请求的实施例。
[0116]步骤S411,接收写请求;
[0117]步骤S412,解析写请求,得到该写请求的逻辑地址,根据解析得到的逻辑地址查找该混合存储设备的地址映射表,判断该地址映射表中是否有解析得到逻辑地址对应信息。若所述地址映射表中没有该逻辑地址对应信息,则执行步骤S413 ;若所述地址映射表中有该逻辑地址对应信息,则执行步骤S423。
[0118]对于写请求,若在地址映射表上无对应逻辑地址的表项,则表明该逻辑地址为第一次写操作,即需要分配新的存储区域;若地址映射表上有对应逻辑地址的表项,则为替换与。
[0119]步骤S413,分配新的存储区域,并在新分配的存储区域上进行写操作。
[0120]步骤S414,在所述地址映射表中新增一项,记录该请求解析得到的逻辑地址及分配的物理地址。并将写次数置为一。
[0121]步骤S423,在查找地址映射表得到的物理位置进行相应的写操作。解析写请求,得到该写请求的逻辑地址,根据解析得到的逻辑地址查找该混合存储设备的地址映射表,找到该读请求对应的物理地址,根据物理地址判断该写请求位于所述SSD还是位于所述PCM,如果判断该写请求位于所述PCM,则转步骤S424,如果判断该写请求位于所述SSD,则转步骤 S426。[0122]步骤S424,对所述PCM相应位置进行相应的写操作。
[0123]步骤S425,更改所述地址映射表对应的表项,将写次数加一。
[0124]步骤S426,对所述SSD空白位置进行相应的写操作。由闪存构成的SSD具有擦后写的特性,故SSD不能原地覆盖写,需要找一个空白位置进行写操作。
[0125]步骤S427,更改所述地址映射表对应的表项,将写次数加一且更新逻辑地址和物理地址的映射关系。
[0126]在本实施例中,由于PCM可以覆盖写,故若替换写操作解析得到的物理地址为PCM对应地址段,则可以进行原地覆盖写,不需要改变所述地址映射表的逻辑地址与物理地址的映射关系,只需要把写次数自增一;而330具有擦后写的特性,所以如果为替换写,则需要重新分配一个存储空间进行写操作,故在更新地址映射表时,不仅要进行写次数自增一的操作,而且还要改变逻辑地址与物理地址的映射关系。
[0127]如图7所示为本发明基于混合存储设备的数据接收第一次写请求的实施例。
[0128]由于是第一次写,而非替换写,故要申请新的存储区域。
[0129]步骤S511,判断所述PCM空间是否使用完毕。若使用完毕,则执行步骤S512 ;若未使用完毕,则执行步骤S513.[0130]步骤S512,在所述PCM上分配相应的存储空间进行写操作。
[0131]步骤S513,在所述SSD上分配相应的存储空间进行写操作。
[0132]步骤S514,在所述地址映射表中新增一项,记录该请求解析得到的逻辑地址及分配的物理地址。并将写次数置为一。
[0133]在本实施例中,遵循优先使用混合存储设备中的PCM。因为较之于SSD,PCM具有读写速度快、写原地覆盖写、可进行小粒度写、写损耗小的特点,故在进行写操作地址分配时,优先分配PCM的存储空间。
[0134]凡是利用本发明说明书及附图内容所做的等效结构变化或者等效流程变换,或者直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内;本发明专利外存所包含的两种介质不一定由PCM和SSD组合,PCM所代表的介质特性如下:非易失,小粒度寻址介质、读写速度快、可原地覆盖写。SSD所代表介质特性如下:非易失,大粒度寻址、相对于前一种介质读写速度较慢、需要擦后写。凡采用符合上述条件介质组合并使用本发明相同思想也包括在本发明的专利保护范围内。
【权利要求】
1.一种基于混合存储设备的数据读写方法,其特征在于,所述混合存储设备包括非易失的小粒度寻址介质与非易失的大粒度寻址介质,所述非易失的小粒度寻址介质与非易失的大粒度寻址介质统一编址;所述非易失的小粒度寻址介质中存储有地址映射表,所述地址映射表中包含至少一条地址映射记录,每条地址映射记录包括逻辑地址、与所述逻辑地址对应的物理地址以及对应所述逻辑地址的写操作次数;所述方法包括:接收操作请求;解析所述操作请求的逻辑地址,通过所述地址映射表确定所述操作请求对应的数据在所述混合存储设备中的物理地址;根据所述物理地址,在相应存储介质中的相应位置读写数据。
2.如权利要求1所述的方法,其特征在于,当所述操作请求为读请求时,所述解析所述操作请求的逻辑地址,通过所述地址映射表确定所述操作请求对应的数据在所述混合存储设备中的物理地址;根据所述物理地址,在相应存储介质中的相应位置读写数据,具体为: 解析所述读请求的逻辑地址,通过所述混合存储设备中的地址映射表判定所述读请求对应的数据在所述混合存储设备中的物理存储位置; 当判定所述读请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,从所述非易失的大粒度寻址介质中相应位置读取数据; 当判定所述读请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,从所述非易失的小 粒度寻址介质中相应位置读取数据。
3.如权利要求1所述的方法,其特征在于,当所述操作请求为写请求时,所述解析所述操作请求的逻辑地址,通过所述地址映射表确定所述操作请求对应的数据在所述混合存储设备中的物理地址;根据所述物理地址,在相应存储介质中的相应位置读写数据,具体为: 解析所述写请求的逻辑地址,查找所述混合存储设备的地址映射表; 若所述地址映射表中未找到所述写请求逻辑地址的对应表项,则分配新的空间,在新分配的空间进行写操作; 若所述地址映射表中有对应写请求逻辑地址的对应表项,通过所述地址映射表判定所述写请求对应的数据在所述混合存储设备中的物理存储位置; 当判定所述写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则在所述非易失的大粒度寻址介质中进行相应写操作; 当判定所述写请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,则在所述非易失的小粒度寻址介质中进行相应写操作。
4.如权利要求3所述的方法,其特征在于,若所述地址映射表中未找到所述写请求逻辑地址的对应表项,则分配新的空间,在新分配的空间进行写操作,具体包括: 判断所述存储设备的非易失的小粒度寻址介质的空间是否分配完毕; 如果是,则从所述混合存储设备的非易失的大粒度寻址介质中分配相应的空间进行所述写操作; 如果否,则从所述混合存储设备的非易失的小粒度寻址介质设备中分配相应的空间进行所述写操作。
5.如权利要求3或4所述的方法,其特征在于,则所述方法还包括: 若所述地址映射表中未找到所述写请求逻辑地址的对应表项,则在所述地址映射表中新增一项,记录所述写请求逻辑地址和物理地址的对应关系,并将所述新增表项中记录对应的写次数置为一;若所述地址映射表中有所述写请求逻辑地址的对应表项,则判定所述写请求对应的数据在所述混合存储设备中的物理存储位置; 当判定所述写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则将所述对应地址映射表项中记录写次数的数据自增一,并修改对应的映射关系; 当判定所述写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则将所述对应地址映射表项中记录写次数的数据自增一。
6.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括: 根据所述混合存储设备的地址映射表,确定写操作频繁的记录和写操作不频繁的记录,其中所述写操作频繁的记录对应的写操作次数大于写操作阈值,所述写操作不频繁的记录对应的写操作次数小于写操作阈值; 若所述写操作频繁的记录所对应的数据存储在所述非易失的大粒度寻址介质中,则将所述写操作频繁的记录所对应的数据迁移到所述非易失的小粒度寻址介质中,并修改所述记录中的地址映射关系; 若所述写操作不频繁的记录所对应的数据存储在所述非易失的小粒度寻址介质中,则将所述写操作不频繁的记录所对应的数据迁移到所述非易失的大粒度寻址介质中,并修改所述记录中的地址映射关系。
7.如权利要求1至6任一项所述的方法,其特征在于,所述非易失的小粒度寻址介质为相变存储器,或者磁性随机存储器,或者动态随机存储器,或者静态随机存储器,所述非易失的大粒度寻址介质为固态盘或者闪存。
8.一种基于混合存储设备的数据读写装置,其特征在于,所述数据读写装置包括请求接收模块、地址映射模块、操作模块、地址分配模块和数据迁移模块,其中: 所述请求接收模块,用于接收操作请求; 所述地址映射模块,用于解析所述操作请求的逻辑地址,通过地址映射表确定所述操作请求对应的数据在混合存储设备中的物理地址; 所述操作模块,用于根据所述物理地址,在相应存储介质中的相应位置读写数据; 所述地址分配模块,用于在所述地址映射模块在所述地址映射表中未找到写请求逻辑地址的对应表项时,分配新的空间,以使所述操作模块在新分配的空间进行写操作; 所述数据迁移模块,用于根据所述混合存储设备的地址映射表,确定写操作频繁的记录和写操作不频繁的记录,其中所述写操作频繁的记录对应的写操作次数大于写操作阈值,所述写操作不频繁的记录对应的写操作次数小于写操作阈值;若所述写操作频繁的记录所对应的数据存储在所述非易失的大粒度寻址介质中,则将所述写操作频繁的记录所对应的数据迁移到所述非易失的小粒度寻址介质中,并修改所述记录中的地址映射关系;若所述写操作不频繁的记录所对应的数据存储在所述非易失的小粒度寻址介质中,则将所述写操作不频繁的记录所对应的数据迁移到所述非易失的大粒度寻址介质中,并修改所述记录中的地址映射关系; 其中,所述混合存储设备包括非易失的小粒度寻址介质与非易失的大粒度寻址介质,所述非易失的小粒度寻址介质与非易失的大粒度寻址介质统一编址;所述非易失的小粒度寻址介质中存储有地址映射表,所述地址映射表中包含至少一条地址映射记录,每条地址映射记录包括逻辑地址、与所述逻辑地址对应的物理地址以及对应所述逻辑地址的写操作次数。
9.如权利要求8所述的数据读写装置,其特征在于,所述地址映射模块具体用于: 对请求接收模块接收到的读写请求进行解析,判断所述读写请求对应的数据的物理存储位置; 当判定所述读写请求对应的数据的物理存储位置为所述非易失的大粒度寻址介质时,则指示所述操作模块在所述非易失的大粒度寻址介质中进行相应读写操作; 当判定所述读写请求对应的数据的物理存储位置为所述非易失的小粒度寻址介质时,则指示所述操作模块在所述非易失的小粒度寻址介质中进行相应读写操作。
10.如权利要求8或9所述的装置,其特征在于,还包括地址更新模块,用于: 若所述地址映射模块在地址映射表中未找到所述写请求逻辑地址的对应表项,则在所述地址映射表中新增一项,记录所述写请求逻辑地址和物理地址的对应关系,并将所述新增表项中记录对应的写次数置为一; 若所述地址映射模块在所述地址映射表中有所述写请求逻辑地址的对应表项,且判定所述写请求对应的数据的物理存储位置为固态盘时,则将所述对应地址映射表项中记录写次数的数据自增一,并修改对应的映射关系; 若所述地址映射 模块在所述地址映射表中有所述写请求逻辑地址的对应表项,且当判定所述写请求对应的数据的物理存储位置为相变存储器时,则将所述对应地址映射表项中记录写次数的数据自增一。
【文档编号】G06F3/06GK103942159SQ201410101680
【公开日】2014年7月23日 申请日期:2014年3月19日 优先权日:2014年3月19日
【发明者】曹强, 谭诗诗, 吴思, 钱璐, 万胜刚 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1