一种非对称读延迟感知的数据放置方法与流程

文档序号:20838503发布日期:2020-05-22 17:11阅读:167来源:国知局
一种非对称读延迟感知的数据放置方法与流程

本发明涉及数据放置及闪存堆叠技术领域,尤其是一种基于高密度闪存中非对称读延迟感知的数据放置方法。



背景技术:

在过去几十年中nand闪存得到了迅速的发展,特别是闪存堆叠技术的发展使得闪存的密度越来越高,例如,3bits/cell的tlc闪存已经成为闪存市场的主导,闪存的架构已经朝着3d堆叠的方式转变,可达96层甚至更高。更为重要的是,4bits/cell的qlc以及5bits/cell的plc也正在开发之中,并且可以进一步增加层数。由于闪存出色的读取性能,可将一些高密度的闪存,例如qlc,用作读取密集型存储。但是存在的问题是,闪存的读取延迟也在不断的增加,更为糟糕的是,随着闪存密度的增加,其读延迟将进一步提高,因此,降低高密度闪存的读延迟已经成为一项至关重要的任务。

读取延迟的增加至少来源于两个方面:第一个方面是存储单元中存放了多个bit,而读取不同位置的bit所代表的页延迟不一致,最高位的bit所代表的的页延迟最高,最低位的bit所代表的的页延迟最低。以使用qlc为例且四个页面分别记为1-page、2-page、3-page、4-page。但不限于qlc,可以扩展到其他多位单元的高密度闪存,如mlc、tlc和plc等。那么根据格雷编码方案,不同类型的页面在读取的时候所使用的参考电压的数量是不同的,这四种类型的页面之间具有4-5倍的差异。第二个是由于这些页面之间不对称的可靠性问题,字线中的多个页面具有不对称的原始误码率(rber),其中,1-page的误码率最低,4-page的误码率最高。在这种情况下,由于纠错码纠错所产生的等待时间,使得不同类型的页面之间的读取延迟进一步扩大。

目前,具有强纠错能力的低密度奇偶校验码ldpc已经被部署到高密度闪存中,而ldpc在纠错的时候需要更多次的参考电压比对。因此,使得高误码率的页面在被读取的时候所产生的解码延迟进一步增加,对于先前启用ldpc的qlc闪存,四个页面之间的最大访问等待时间差异可以达到30倍。

综上所述,高密度闪存的不同页面之间读取延迟差异之大,是由闪存硬件和软件解码共同导致的,这极大地影响了闪存的性能和可靠性。由于字线中的多个页面之间存在显著的不对称读取延迟特征,如果这些页面上的读取数据没有很好地放置,那么性能将受到很大的影响。显然,最好的情况是大多数读取操作发生在快页上,而最坏的情况是大多数读取操作发生在慢页上。实验发现,以qlc为例,高延迟的页面2-page,3-page和4-page上的热读请求并不多,如果将这些请求所访问的页面迁移到低延迟的1-page,将大大提升性能。

现有技术的数据放置由于未进行任何页面类型区分,性能损耗大,以至平均读取延迟时间长,大大影响了闪存的读性能和可靠性。



技术实现要素:

本发明的目的是针对现有技术的不足而设计的一种非对称读延迟感知的数据放置方法,采用识别慢页上的热读数据和快页上的冷读数据,并将其以字线为单位进行迁移,使得热读数据重新放置在快页上,而冷读数据重新放置在慢页上,通过动态的识别热数据和冷数据,并且进行适当地迁移以改善读性能,优化数据的放置,以降低非对称延迟导致的延迟差异所带来的性能损耗,以最大限度地利用高密度闪存页面的特征,提高快页访问的效益,减少对慢页访问的影响,提高闪存读性能。

本发明的目的是这样实现的:一种非对称读延迟感知的数据放置方法,其特点是闪存控制器中添加热读数据识别机制、冷读数据识别机制和数据放置标记,通过使用有限的最近最久未使用链表(lru)来记录最近访问慢页上的数据位置,通过位图来标记快页是否被访问,并将慢页上的热读数据和快页上的冷读数据进行迁移,实现数据的重新放置。

所述快页是指在单个字线上多个页中在相同条件下访问时速度较快的闪存页;所述慢页是指在单个字线上多个页中在相同条件下访问时速度较慢的闪存页;所述快页和慢页的确定根据相同条件下访问的延迟确定,从延迟高到低的顺序由快变慢。

所述慢页上的数据采用热读识别机制,根据当前访问为慢页上的数据是否在lru中命中来判别数据是否迁移与剔除。若命中,那么判别当前访问的数据是否为热读数据,如果是则立即在快页中寻找几个冷页组合成一个字线形式进行迁移;若不为热读数据,则根据lru方法命中放链表首位。若没有命中,将当前访问的数据位置放入lru,并将lru末尾一个数据剔除。

所述快页上的数据采用冷读识别机制,若快页上的数据被访问了就认为是热读数据,若从来没有被访问过则认为是冷读数据。初始时,所对应的快页均重置为0,表示未被读取。一旦被读取之后,则标记为1,那么所有在快页上标记为0的数据均可能作为冷页被迁移。

所述慢页上的热读数据和快页上的冷读数据进行适当的迁移,进行数据的重新放置,其基本思想是将热(冷)读数据放置到快速(慢)页,以最大限度地提高快页访问的效益,最大限度地减少对慢页访问的影响。

所述数据放置对闪存实现慢页上的热读数据和快页上的冷读数据的重新放置。在迁移时,慢页上只选择热读数据进行迁移;快页上只会选择冷读数据进行迁移,并且在以字线为单位的一次迁移中,热读数据被重新放置在快页上,冷读数据被重新放置在慢页上。闪存编程时按字线为单位,因此每次迁移的时候对于qlc闪存来说需要迁移四个页面,分别记为1-page、2-page、3-page、4-page,通过热读数据触发的迁移机制来进行迁移。但本发明不限于qlc,可以扩展到如mlc、tlc和plc等其他多位单元的高密度闪存。

所述热读识别机制识别出lru中命中且访问次数超过阈值的页面,并做好标记。在放置之前,几个冷读数据也被另一个识别过程所识别,结合热读和冷读数据,通过一次程序操作将它们编程到一个新的字线上。

所述慢页不对称延迟,对不同类型的慢页中的数据使用不同的阈值,页面越慢,阈值就越小。例如,2-page上访问次数超过t1为热读数据,3-page上访问次数超过t2为热读数据,由于3-page上的数据延迟相对较高,因此t2小于t1,以确保更低的延迟恶化。将慢页上的热数据放在lru进行管理,以确保慢页上一旦发现热读数据了立即进行迁移,在造成极小延迟损失的前提下最大限度的减少对慢页访问的影响。

本发明与现有技术相比具有优化数据的放置,热数据被放置在快页中,冷数据被放置在慢页中,大大改善了读取性能,有效降低了这种非对称延迟导致的延迟差异所带来的性能损耗,以最大限度地提高快页访问的效益,最大限度地减少对慢页访问的影响,大大提高了闪存的读性能。

附图说明

图1为本发明数据放置架构示意图;

图2为热(冷)读数据放置流程图;

图3为1-page的冷读数据和其他页的热读数据图;

图4为1-page没有冷读数据和2-page是热读数据图;

图5为2-page的冷读数据和3-page或4-page的热读数据。

具体实施方式

通过以下具体实施例对本发明作进一步的详细说明。

实施例1

参阅附图1,本发明在闪存控制器中添加了热读数据识别机制、冷读数据识别机制和数据放置标记三个新组件,通过使用有限的最近最久未使用链表(lru)来记录最近访问慢页上的数据位置,通过位图来标记快页是否被访问,并将慢页上的热读数据和快页上的冷读数据进行迁移,其数据的重新放置主要分为以下几个步骤实现:

1)当读取的页为慢页时,热读标识组件将检查所访问数据的热度;当读取为快页时,冷读识别组件将记录所访问数据的热度。

2)一旦确定了当前读取的慢页存放为热读数据,就会对其进行标记并为迁移做好准备。

3)然后,启动冷读数据识别过程,找出几个冷数据页和当前识别的热数据页组合成一个字线大小。

4)一旦所有页面都准备就绪,将利用现有的刷新方法来实现数据迁移,并将当前已经读取出来的已标记的热读数据和寻找到的几个冷数据组合写入一个字线单元。

上述热数据识别过程针对慢页,冷数据识别过程针对快页。在慢页上进行识别时,结合lru链表,若访问的页面在lru上,那么判断是否为热读数据,若为热读数据,则迁移;否则,访问次数增加。若不在lru上,则此次访问后将此数据位置记录在lru中。若为快页,采用的是位图方式,访问过的页面和未访问过的页面区别开即可。

在闪存中,数据可以分为快页上的冷数据、快页上的热数据、慢页上的冷数据和慢页上的热数据。而快页上的热数据和慢页上的冷数据无需迁移,所要迁移的是快页上的冷数据和慢页上的热数据。判断冷热时通过阈值的方式,并且从快页到慢页,判断热数据的阈值逐渐减小。

上述实施过程,由于迁移与刷新操作有相同的影响,因此使用刷新操作给设计带来了可以忽略不计的成本。此外,这种实现需要两种类型的开销:存储和固件开销。存储开销包括所有快页的位图,以及每个缓存数据的访问计数和页面类型记录。假设ssd的容量为256gb,则16kb页面的位图大小为1mb。由于只采用了一个很小的lru列表,所以缓存成本很小。固件开销包括涉及热和冷数据标识的进程。这些简单过程的开销可以忽略不计。对于迁移成本,由于利用当前ssd中的现有刷新组件,因此成本可以忽略不计。

参阅附图2,本发明所采用的技术方法是通过识别慢页上的热读数据和快页上的冷读数据,并将其以字线为单位进行迁移,使得热读数据重新放置在快页上而冷读数据重新放置在慢页上以降低这种非对称延迟导致的延迟差异所带来的性能损耗,其数据放置的基本过程主要分为如下两个方面:

1)设计了一种热读数据识别机制,包括:采用基于访问阈值的热读数据识别方法,并在以往的工作中得到了广泛的应用。该方法的基本思想是记录对慢页的读取操作的次数,一旦访问数高于阈值,页面中的数据就被标记为热读数据。由于慢页的不对称延迟,所述对不同类型的慢页中的数据使用不同的阈值,页面越慢,阈值就越小。为了避免所有慢页使用访问计数器,因此只记录最近的访问页面,使用了最近最少使用(lru)列表。在链表上,最近访问的慢页的页码被记录下来,一旦页面访问数高于预定义的阈值,页面中的数据就会被标记,并为进一步迁移做好准备,显然,慢页的阈值和lru列表的大小是重要的参数。

上述热读数据识别由于使用有限大小的lru列表来记录访问的慢页,在这种情况下,只记录最近的读取操作热度识别,不同类型慢页的不同阈值有效地减少了数据迁移,所以该机制具有良好的工作性能。

2)设计了一种冷读数据识别机制,该机制与在慢页中识别热读数据不同,因为冷读数据是很长一段时间没有被访问的数据。本发明采用了基于位图的冷读数据识别方法,该方法的基本思想是每个快页使用1位来记录它是否在上一个周期内被访问。初始时,位映射被重置为0。一旦一个快页被访问,它的对应位就会被设置,定期重置位图以避免长期影响。在冷读数据识别过程中,位图被索引了,位图中为0的位将用于确定相应页中的数据。利用上述方法,可以识别冷读数据,每个快速页面只有一位,所以运行成本低。

上述两种识别机制,其数据放置在下述三种情况下起作用:

参阅附图3,第一种情况:如果在2-page、3-page或4-page的慢页中识别出一页热读数据,则将从快页中识别出三页冷读数据,例如1-page结合这四页,发出一次程序操作,将这四页放在一个字线中。

参阅附图4,第二种情况:如果没有从快页中读取足够的冷读数据,则将检查存储在其中的热读数据的页类型,如果是2-page,迁移则被取消。这是因为当1-page中没有冷读数据了,也就是说全部都是热读数据,那么2-page也应该准备好存放热读数据。

参阅附图5,第三种情况:如果热读数据来自3-page或4-page,而没有1-page的冷读数据,则将识别2-page的冷读数据并为迁移做好准备。

以上只是对本发明作进一步的说明,并非用以限制本专利,凡为本发明等效实施,均应包含于本专利的权利要求范围之内。

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