一种无DRAM的FTL读缓存管理方法及装置与流程

文档序号:12462632阅读:280来源:国知局
一种无DRAM的FTL读缓存管理方法及装置与流程

本发明涉及计算机技术领域,特别是基于NAND FLASH(即NAND型闪存)的固态硬盘领域,具体涉及一种无DRAM(Dynamic Random Access Memory,动态随机存取存储器)的FTL(Flash translation layer,闪存转换层)读缓存管理方法及装置。



背景技术:

目前SSD(Solid State Drives,固态硬盘)系统中有相当部分是存在DRAM(Dynamic Random Access Memory,动态随机存取存储器)的,所以SSD有较大的数据缓存空间用来缓存数据。但目前也有一部分SSD控制器不支持外带DRAM,仅仅有一个较小的内部SRAM(Static Random Access Memory,静态随机存取存储器),这就大大限制了SSD内部的缓存数量,导致采用现有的缓存管理方法只能缓存较少的数据,降低了缓存的效果。尤其是当没有DRAM时一般FTL(Flash trans lation layer,闪存转换层)中的映射表是存储在FLASH(闪存)中的,只有在使用的时候才分段调度到SRAM中,当映射表在SRAM中时会根据缓存策略,读取一部分数据到缓存中,如果下次再读取命中缓存,则直接从缓存中读取数据。在映射表使用完成后为了节省SRAM的空间,会从SRAM中放弃或回写过时的映射表。这种传统的方法是通过缓存数据的方式来使用缓存空间的。由于SRAM的空间有限,能缓存的数据量是非常有限的,同时由于映射表可能不在SRAM中又需要调度相应的映射表,因此,在一定程度上降低了无DRAM的SSD读性能。



技术实现要素:

本发明所要解决的技术问题在于提供一种无DRAM的FTL读缓存管理方法及装置。可增强预读效果,减少FTL映射表调度的频率及次数,提高无DRAM的SSD的读性能。

为解决上述技术问题,本发明提供采用如下所述的技术方案:

一种无DRAM的FTL读缓存管理方法,包括:建立包括一一对应的逻辑页地址与物理页地址的缓存数据列表;接收读请求,并判断是否命中缓存;若命中缓存,则根据缓存数据列表中的物理页地址直接读取目标数据。

一种无DRAM的FTL读缓存管理装置,其特征在于,所述读缓存管理装置建立模块、判断模块和读取模块。其中,建立模块,用于建立包括一一对应的逻辑页地址与物理页地址的缓存数据列表;判断模块,用于接收读请求,并判断是否命中缓存;第一读取模块,用于根据缓存数据列表中的物理页地址读取目标数据。

与现有技术相比,本发明的有益技术效果在于:本发明的读缓存管理方法,利用SSD控制器内部的SRAM建立缓存数据列表来缓存NAND FLASH物理页地址的方法,来实现类似于传统的读缓存,可增强预读效果,减少FTL映射表调度的频率及次数,提高无DRAM的SSD的读性能。

附图说明

图1为本发明一个实施例中的一种无DRAM的FTL读缓存管理方法的流程示意图;

图2为本发明另一个实施例中的一种无DRAM的FTL读缓存管理方法的流程示意图;

图3为本发明一个实施例中一种无DRAM的FTL读缓存管理装置结构示意图。

具体实施方式

为使本领域的普通技术人员更加清楚地理解本发明的目的、技术方案和优点,以下结合附图和实施例对本发明做进一步的阐述。

参见图1,为本发明一个实施例中提供的一种无DRAM的FTL读缓存管理方法的流程示意图。在本发明一些实施例中,所述读缓存管理方法包括:

S101、建立包括一一对应的逻辑页地址与物理页地址的缓存数据列表,所述缓存数据列表建于SRAM中。

SRAM(Static Random Access Memory,静态随机存取存储器)作为下级存储介质的缓存,下级存储介质可以是SSD(Solid State Drives,固态硬盘),SSD为基于NAND闪存且没有外带DRAM(Dynamic Random Access Memory,动态随机存取存储器)的固态硬盘。由于SSD使用的存储介质NAND闪存有需要先擦除才能再写入,和读写以页为单位,擦除以块(多个页组成)为单位的特性,导致LPA(Logical Page Address,逻辑页地址)和PPA(Physics Page Address,物理页地址)的关系不再是固定不变的。因此SSD需要FTL(Flash translation layer,闪存转换层)来作转换,以配合现有的文件系统。可以理解的是,FTL算法,其实就是一种LPA到PPA的映射,SSD的主控制器是使用LPA和PPA的映射表来管理闪存的。

在SRAM中建立一个缓存数据列表作为缓存数据,该缓存数据列表至少一个数据,数据为闪存中的映射表中LPA与PPA的映射的副本,即一一对应的逻辑页地址与物理页地址。SRAM会根据读请求携带逻辑页地址把闪存中的映射表调度到SRAM中,根据映射表查询到对应的物理页地址,根据物理页地址读取下级存储介质中的目标数据。读取目标数据后,SRAM复制映射表中与读请求对应的逻辑页地址与物理页地址,并将其添加到缓存数据列表中。需要说明的是,SRAM运行一段时间后,其包括的缓存数据列表为满状态。

需要说明的是,为了节省SRAM的空间,在映射表使用完成(即完成目标数据的读取)后,会选择将映射表从SRAM中放弃。比如,设定当SRAM的空闲空间少于总空间的30%时,则在映射表使用完成后,将映射表从SRAM中放弃。

S102、接收读请求,并判断是否命中缓存。

读缓存管理装置接收读请求,读请求中携带逻辑页地址,读缓存管理装置根据逻辑页地址判断缓存数据列表中是否存在与该逻辑页地址对应的物理页地址,如果存在,表明读请求命中,如果不存在,表明读请求不命中。

S103、若命中缓存,则根据缓存数据中的物理页地址直接读取目标数据。

若命中缓存,则读缓存管理装置根据读请求中携带逻辑页地址直接从缓存数据列表中得到物理页地址,再根据物理页地址直接读取下级存储介质中的目标数据。

实施本发明的实施例,针对无DRAM的SSD读性能差的缺点,利用控制器内部的SRAM建立缓存数据列表来缓存NAND FLASH物理页地址的方法,来实现类似于传统的读缓存,可增强预读效果,减少FTL映射表调度的频率及次数,提高无DRAM的SSD的读性能。

进一步的,在本发明的一些实施例中,若命中缓存,所述读缓存管理方法还包括:

若对读取的目标数据进行了写操作,先将与读请求对应的逻辑页地址以及物理页地址从缓存数据列表中删除;再从更新后的映射表复制与读请求对应的逻辑页地址以及物理页地址,并将其添加到缓存列表中。

读取目标数据后,当有需更新的数据要写入时,FTL会把新数据写入到空白的闪存空间内,然后更新映射表数据,把LPA指向新的PPA,并把更新后的映射表回写到Flash中。读缓存管理装置会把与读请求对应的逻辑页地址以及物理页地址从缓存数据列表中删除,然后从更新后的映射表中复制与读请求对应的逻辑页地址以及物理页地址,将其添加到缓存数据列表中。

可选的,在本发明的一些实施例中,若读请求没有命中缓存,所述读缓存管理方法包括:

根据逻辑页地址查询映射表得到对应的物理页地址。

若读请求没有命中缓存,则读缓存管理装置根据读请求中携带逻辑页地址在SRAM中查询映射表得到对应的物理页地址。若包括与读请求对应的逻辑页地址的映射表已存在SRAM中,则直接查询SRAM中映射表,得到对应的物理页地址;若SRAM中不存在包括与读请求对应的逻辑页地址的映射表,则先根据读请求中携带逻辑页地址将与之相应的映射表调度到SRAM中,再查询映射表得到对应的物理页地址。

根据查询映射表得到的物理页地址读取目标数据。

闪存的读写单位为页,数据存储实际上是把数据写入到存储介质一个物理页,物理页地址即为数据在存储介质中的位置。因此,可根据物理页地址直接读取下级存储介质中的目标数据。

从映射表中复制与读请求对应的逻辑页地址以及物理页地址,将其添加到缓存数据列表中。

读取目标数据后,读缓存管理装置会从映射表中复制与读请求对应的逻辑页地址以及物理页地址,将其添加到缓存数据列表中。

可以理解的是,缓存数据列表的长度是有限制的,如果缓存数据列表此时未满,则读缓存管理装置直接把逻辑页地址以及物理页地址添加到缓存数据列表中。如果缓存数据列表此时已满,则读缓存管理装置先根据缓存替换算法选择并删除缓存数据中的一个逻辑页地址以及与该逻辑页地址对应的物理页地址,再将从映射表中复制与读请求对应的逻辑页地址以及物理页地址添加到缓存数据列表中。具体选择缓存数据列表中的哪个数据块进行删除,可以依据现有技术的缓存替换算法,例如LRU(Least recently used,最近最少使用)、FIFO(First Input First Output,先入先出)等缓存替换算法,本发明不作限制。

进一步的,在本发明的一些实施例中,所述读缓存管理方法还包括:

若对读取的目标数据进行了写操作,先将与读请求对应的逻辑页地址以及物理页地址从缓存数据列表中删除;再从更新后的映射表复制与读请求对应的逻辑页地址以及物理页地址,并将其添加到缓存数据列表中。

读取目标数据后,当有需更新的数据要写入时,FTL会把新数据写入到空白的闪存空间内,然后更新映射表数据,把LPA指向新的PPA,并把更新后的映射表会写到Flash中。读缓存管理装置会把与读请求对应的逻辑页地址以及物理页地址从缓存数据列表中删除,然后从更新后的映射表中复制与读请求对应的逻辑页地址以及物理页地址,将其添加到缓存数据列表中。

参见图2,为本发明另一个实施例中提供的一种无DRAM的FTL读缓存管理方法的流程示意图。在本发明一些实施例中,所述读缓存管理方法包括:

S200、接收读请求。

S205、判断是否命中缓存,其中,若为是,执行S210,若为否,执行S220。

S210、从缓存中得到物理页地址。

S211、根据物理页地址直接读取目标数据。

S212、判断是否进行写操作,其中,若为是,执行S213,若为否,执行S230。

S213、将与读请求对应的逻辑页地址以及物理页地址从缓存数据列表中删除。

S214、从更新后的映射表中复制与读请求对应的逻辑页地址以及物理页地址,将其添加到缓存数据列表中。

S220、判断映射表是否在SRAM中,其中,若为是,执行S222,若为否,执行S221。

S221、根据读请求中携带逻辑页地址将与之相应的映射表调度到SRAM中。

S222、查询SRAM中的映射表得到物理页地址。

S223、根据物理页地址读取目标数据。

S224、判断缓存数据列表此时是否已满,其中,若为是,执行S225,若为否,执行S226。

S225、根据缓存替换算法选择并删除缓存数据中的一个逻辑页地址以及与该逻辑页地址对应的物理页地址。

S226、从映射表中复制与读请求对应的逻辑页地址以及物理页地址,将其添加到缓存中。

S227判断是否进行写操作,其中,若为是,执行S226,若为否,执行S230。

S228、将与读请求对应的逻辑页地址以及物理页地址从缓存数据列表中删除。

S229、从更新后的映射表中复制与读请求对应的逻辑页地址以及物理页地址,将其添加到缓存中。

S230、完成。

参见图3,为本发明一个实施例中提供的一种无DRAM的FTL读缓存管理装置结构示意图。在本发明一些实施例中,所述读缓存管理装置包括:建立模块310、判断模块320和读取模块330。

建立模块310,用于在SRAM中建立一个缓存数据列表作为缓存数据,该缓存数据列表包括至少一个数据,数据为映射表中LPA与PPA的映射的副本,即一一对应的逻辑页地址与物理页地址。

判断模块320,用于接收读请求,并判断是否命中缓存。根据读请求中携带逻辑页地址判断缓存数据列表中是否存在与逻辑页地址对应的物理页地址,如果存在,表明读请求命中,如果不存在,表明读请求不命中。

第一读取模块330,用于根据物理页地址读取存储介质中的目标数据。

实施本发明的实施例,针对无DRAM的SSD读性能差的缺点,利用控制器内部的SRAM来缓存NAND FLASH物理页地址的方法,来实现类似于传统的读缓存,可增强预读效果,减少FTL映射表调度的频率及次数,提高无DRAM的SSD的读性能。

可选的,在本发明的一些实施例中,所述读缓存管理装置还包括第一删除模块340和第一添加模块350。

第一删除模块340,用于若对读取的目标数据进行了写操作,将与读请求对应的逻辑页地址以及物理页地址从缓存数据列表中删除。

第一添加模块350,用于若对读取的目标数据进行了写操作,从更新后的映射表复制与读请求对应的逻辑页地址以及物理页地址,并将其添加到缓存中。

可选的,在本发明的一些实施例中,所述读缓存管理装置还包括查询模块360、第二读取模块370和第二添加模块380。

查询模块360,用于若读请求没有命中缓存,根据读请求中携带逻辑页地址在SRAM中查询映射表得到对应的物理页地址。

第二读取模块370,用于若读请求没有命中缓存,根据查询映射表得到的物理页地址读取目标数据。

第二添加模块380,用于若读请求没有命中缓存,从映射表中复制与读请求对应的逻辑页地址以及物理页地址,将其添加到缓存数据列表中。

进一步的,在本发明的一些实施例中,所述读缓存管理装置还包括调度模块390。

调度模块390,用于若读请求没有命中缓存,且SRAM中不存在包括与读请求对应的逻辑页地址的映射表,根据读请求中携带逻辑页地址将与之相应的映射表调度到SRAM中。

进一步的,在本发明的一些实施例中,所述读缓存管理装置还包括第二删除模块400。

第二删除模块400,用于若读请求没有命中缓存,且缓存数据列表此时已满,根据缓存替换算法选择并删除缓存数据中的一个逻辑页地址以及与该逻辑页地址对应的物理页地址。

以上所述仅为本发明的优选实施例,而非对本发明做任何形式上的限制。本领域的技术人员可在上述实施例的基础上施以各种等同的更改和改进,凡在权利要求范围内所做的等同变化或修饰,均应落入本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1