基于负载感知的固态硬盘缓存管理优化
发布时间:2020-07-13 00:29
【摘要】:近年来,随着半导体技术的飞速发展,基于闪存的固态硬盘在工业界和学术界受到广泛地关注与研究。与传统的机械硬盘相比,固态硬盘具有访问速度快、能耗低、噪音小、抗震性好等优势,已被广泛应用在军事、医疗、电子产品等各个领域。由于闪存的物理特性,固态硬盘面临着写前擦除、读写不对称、擦除次数有限等诸多约束。为了降低这些约束对固态硬盘性能的影响,人们在固态硬盘中引入缓存技术,使得部分用户I/O请求在缓存中完成,减少对固态硬盘的读写操作,从而提升固态硬盘的I/O性能。目前,缓存管理算法已成为固态硬盘研究的热点问题。传统的固态硬盘缓存管理算法,旨在提高缓存命中率或者减小缓存替换代价,往往忽略了底层闪存芯片的状态对缓存算法性能的影响。本文主要优化缓存管理算法中的替换策略,结合底层闪存芯片的负载特点,设计了一种基于负载感知的缓存替换算法,主要研究内容如下:(1)基于负载感知的固态硬盘缓存策略优化为了降低固态硬盘底层闪存芯片负载不均衡对I/O访问延迟的影响,本文提出一种基于负载感知的缓存替换算法(Load-aware Cache Replacement,LCR),LCR算法是基于缓存替换代价设计的,主要约束条件是底层闪存芯片的负载情况。基本思想是优先缓存负载严重的芯片上的数据块,替换负载轻的芯片上的数据块。LCR算法将缓存区分为工作区(Working Region)和回写区(Destaging Region),其中访问频度比较高的数据块缓存在工作区中,回写区缓存的数据块是替换操作的候选对象。最后,我们在固态硬盘模拟器上实现了LCR算法,同时运行一系列真实的trace数据进行性能验证。实验结果表明,与两个比较经典的缓存替换算法LRU以及GCaR-CFLRU相比,LCR算法可降低系统平均响应时间分别为39.2%和12.3%。(2)基于负载感知的固态硬盘阵列系统缓存策略优化基于固态硬盘的RAID5阵列系统面对频繁更新的小写请求,造成校验块频繁更新,引起系统额外的I/O读、写操作,不仅增大系统访问延迟,还会降低系统的寿命。为了解决这个问题,本文提出一种基于负载感知的条带级别缓存管理算法(Stripe-level Cache Management Algorithm based on Load Awareness),简称为SLCache,该算法的缓存粒度以条带为单位,将属于同一条带的数据存放在相同的条带节点中,同时缓存用户I/O读写请求。针对缓存替换策略的设计,SLCache主要考虑两点,其一,条带里包含脏数据页的个数;其二,条带里脏页数据块和相应校验块对应存储盘的负载情况,基于替换代价最小的原则选择替换对象。同时在数据回写操作中,根据脏数据页的个数,选择不同的检验块更新策略。最后我们在trace驱动的固态硬盘模拟器Disksim+SSD Extension上实现了SLCache算法,与LRU-RAID5相比,我们的做法可减少15.9%的擦除次数,同时降低系统平均响应时间20.3%以及减少检验块更新的读开销16.1%。
【学位授予单位】:中国科学技术大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP333
【图文】:
2.1.2固态硬盘的内部结构逡逑基于闪存的固态硬盘其内部模块主要由主机接口逻辑、控制器、缓冲区管理逡逑模块、闪存转换层FTL以及闪存芯片等组成,整体逻辑架构如图2.1所示[34]。逡逑(SSD邋Controller逦I邋Flash邋Chip邋11邋Flash邋Chip邋-逡逑逦(逦Chanel邋0邋t邋1邋t邋n逡逑TT^ct邋叫邋Processor邋一邋,逦逦邋逦逡逑Host邋T邋.逦^ ̄Flash逦…Flash邋Chip邋Flash邋Chip邋…逡逑Demux邋总—li-..tt逡逑'邋L0g邋C邋H邋Buffer邋^邋/Mux逦|邋Flash邋Chip|邋^lash邋Chip邋-逡逑Manager邋逦邋<Chanel邋n逦t逦t逡逑图2.1固态硬盘的逻辑架构逡逑主机接口逻辑:主机接口逻辑向上屏蔽固态硬盘的内部实现细节,主要负责逡逑接收上层应用或文件系统的I/O请求,并向上层用户返回请求的结果,实现固态逡逑硬盘和主机之间无障碍通信。逡逑固态硬盘控制器:控制器主要由处理器、闪存存储控制器以及缓冲区管理器逡逑三个部件组成。其中,处理器主要是运行闪存转换层的的各个功能模块,完成用逡逑户的I/O请求;闪存存储控制器主要是连接闪存芯片和控制器,实现地址和数据逡逑的传输;而缓冲区管理器主要实现对内置缓存的管理。逡逑缓冲区管理模块:它的作用主要是将有价值的I/O读写请求存储在缓冲区逡逑中,在缓冲区中完成部分用户I/O请求,以减少对底层闪存芯片的读、写操作,逡逑这样不仅能提升系统的访问性能,还能够延长固态硬盘的使用寿命。逡逑闪存转换层:FTL是固态硬盘内部最核心的功能模块
2.1.2固态硬盘的内部结构逡逑基于闪存的固态硬盘其内部模块主要由主机接口逻辑、控制器、缓冲区管理逡逑模块、闪存转换层FTL以及闪存芯片等组成,整体逻辑架构如图2.1所示[34]。逡逑(SSD邋Controller逦I邋Flash邋Chip邋11邋Flash邋Chip邋-逡逑逦(逦Chanel邋0邋t邋1邋t邋n逡逑TT^ct邋叫邋Processor邋一邋,逦逦邋逦逡逑Host邋T邋.逦^ ̄Flash逦…Flash邋Chip邋Flash邋Chip邋…逡逑Demux邋总—li-..tt逡逑'邋L0g邋C邋H邋Buffer邋^邋/Mux逦|邋Flash邋Chip|邋^lash邋Chip邋-逡逑Manager邋逦邋<Chanel邋n逦t逦t逡逑图2.1固态硬盘的逻辑架构逡逑主机接口逻辑:主机接口逻辑向上屏蔽固态硬盘的内部实现细节,主要负责逡逑接收上层应用或文件系统的I/O请求,并向上层用户返回请求的结果,实现固态逡逑硬盘和主机之间无障碍通信。逡逑固态硬盘控制器:控制器主要由处理器、闪存存储控制器以及缓冲区管理器逡逑三个部件组成。其中,处理器主要是运行闪存转换层的的各个功能模块,完成用逡逑户的I/O请求;闪存存储控制器主要是连接闪存芯片和控制器,实现地址和数据逡逑的传输;而缓冲区管理器主要实现对内置缓存的管理。逡逑缓冲区管理模块:它的作用主要是将有价值的I/O读写请求存储在缓冲区逡逑中,在缓冲区中完成部分用户I/O请求,以减少对底层闪存芯片的读、写操作,逡逑这样不仅能提升系统的访问性能,还能够延长固态硬盘的使用寿命。逡逑闪存转换层:FTL是固态硬盘内部最核心的功能模块
来越多的原始数据页被标记为无效数据页,若不对这些大量无效的数据页进行逡逑处理,势必会造成存储资源的浪费。为了保证固态硬盘存储空间能够重复有效地逡逑利用,必须引入垃圾回收机制。固态硬盘垃圾回收的具体操作如图2.3所示:当逡逑固态硬盘中的可用存储空间相对较少,即达到垃圾回收触发的条件,系统就会启逡逑动垃圾回收操作。首先选择一个包含无效数据页最多的块作为回收对象,然后将逡逑回收块中的有效数据页拷贝到新的空闲块中,最后对回收块进行擦除操作,重新逡逑变为空闲块,同时更新闪存转换层中的地址映射表。逡逑空闲页逦有效页逦无效页逡逑□逦□V箦义蠈椋慑五义襄危保袣W邋_拷逦逦逡逑逦贝到空闲块中逦邋逦逡逑垃圾回收的目标块逡逑图2.3固态硬盘的垃圾回收操作逡逑由于闪存芯片上的电荷稳定性不是太强,对某个物理存储单元的读写操作逡逑会对相邻的存储单元造成一定的干扰,使得介质的存储状态从1变为0或从0变逡逑为1
本文编号:2752699
【学位授予单位】:中国科学技术大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP333
【图文】:
2.1.2固态硬盘的内部结构逡逑基于闪存的固态硬盘其内部模块主要由主机接口逻辑、控制器、缓冲区管理逡逑模块、闪存转换层FTL以及闪存芯片等组成,整体逻辑架构如图2.1所示[34]。逡逑(SSD邋Controller逦I邋Flash邋Chip邋11邋Flash邋Chip邋-逡逑逦(逦Chanel邋0邋t邋1邋t邋n逡逑TT^ct邋叫邋Processor邋一邋,逦逦邋逦逡逑Host邋T邋.逦^ ̄Flash逦…Flash邋Chip邋Flash邋Chip邋…逡逑Demux邋总—li-..tt逡逑'邋L0g邋C邋H邋Buffer邋^邋/Mux逦|邋Flash邋Chip|邋^lash邋Chip邋-逡逑Manager邋逦邋<Chanel邋n逦t逦t逡逑图2.1固态硬盘的逻辑架构逡逑主机接口逻辑:主机接口逻辑向上屏蔽固态硬盘的内部实现细节,主要负责逡逑接收上层应用或文件系统的I/O请求,并向上层用户返回请求的结果,实现固态逡逑硬盘和主机之间无障碍通信。逡逑固态硬盘控制器:控制器主要由处理器、闪存存储控制器以及缓冲区管理器逡逑三个部件组成。其中,处理器主要是运行闪存转换层的的各个功能模块,完成用逡逑户的I/O请求;闪存存储控制器主要是连接闪存芯片和控制器,实现地址和数据逡逑的传输;而缓冲区管理器主要实现对内置缓存的管理。逡逑缓冲区管理模块:它的作用主要是将有价值的I/O读写请求存储在缓冲区逡逑中,在缓冲区中完成部分用户I/O请求,以减少对底层闪存芯片的读、写操作,逡逑这样不仅能提升系统的访问性能,还能够延长固态硬盘的使用寿命。逡逑闪存转换层:FTL是固态硬盘内部最核心的功能模块
2.1.2固态硬盘的内部结构逡逑基于闪存的固态硬盘其内部模块主要由主机接口逻辑、控制器、缓冲区管理逡逑模块、闪存转换层FTL以及闪存芯片等组成,整体逻辑架构如图2.1所示[34]。逡逑(SSD邋Controller逦I邋Flash邋Chip邋11邋Flash邋Chip邋-逡逑逦(逦Chanel邋0邋t邋1邋t邋n逡逑TT^ct邋叫邋Processor邋一邋,逦逦邋逦逡逑Host邋T邋.逦^ ̄Flash逦…Flash邋Chip邋Flash邋Chip邋…逡逑Demux邋总—li-..tt逡逑'邋L0g邋C邋H邋Buffer邋^邋/Mux逦|邋Flash邋Chip|邋^lash邋Chip邋-逡逑Manager邋逦邋<Chanel邋n逦t逦t逡逑图2.1固态硬盘的逻辑架构逡逑主机接口逻辑:主机接口逻辑向上屏蔽固态硬盘的内部实现细节,主要负责逡逑接收上层应用或文件系统的I/O请求,并向上层用户返回请求的结果,实现固态逡逑硬盘和主机之间无障碍通信。逡逑固态硬盘控制器:控制器主要由处理器、闪存存储控制器以及缓冲区管理器逡逑三个部件组成。其中,处理器主要是运行闪存转换层的的各个功能模块,完成用逡逑户的I/O请求;闪存存储控制器主要是连接闪存芯片和控制器,实现地址和数据逡逑的传输;而缓冲区管理器主要实现对内置缓存的管理。逡逑缓冲区管理模块:它的作用主要是将有价值的I/O读写请求存储在缓冲区逡逑中,在缓冲区中完成部分用户I/O请求,以减少对底层闪存芯片的读、写操作,逡逑这样不仅能提升系统的访问性能,还能够延长固态硬盘的使用寿命。逡逑闪存转换层:FTL是固态硬盘内部最核心的功能模块
来越多的原始数据页被标记为无效数据页,若不对这些大量无效的数据页进行逡逑处理,势必会造成存储资源的浪费。为了保证固态硬盘存储空间能够重复有效地逡逑利用,必须引入垃圾回收机制。固态硬盘垃圾回收的具体操作如图2.3所示:当逡逑固态硬盘中的可用存储空间相对较少,即达到垃圾回收触发的条件,系统就会启逡逑动垃圾回收操作。首先选择一个包含无效数据页最多的块作为回收对象,然后将逡逑回收块中的有效数据页拷贝到新的空闲块中,最后对回收块进行擦除操作,重新逡逑变为空闲块,同时更新闪存转换层中的地址映射表。逡逑空闲页逦有效页逦无效页逡逑□逦□V箦义蠈椋慑五义襄危保袣W邋_拷逦逦逡逑逦贝到空闲块中逦邋逦逡逑垃圾回收的目标块逡逑图2.3固态硬盘的垃圾回收操作逡逑由于闪存芯片上的电荷稳定性不是太强,对某个物理存储单元的读写操作逡逑会对相邻的存储单元造成一定的干扰,使得介质的存储状态从1变为0或从0变逡逑为1
【参考文献】
相关期刊论文 前1条
1 刘冬;王丽芳;蒋泽军;刘志强;;RAID小数据随机访问性能分析与优化[J];计算机应用;2009年02期
本文编号:2752699
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2752699.html