System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据分配算法领域,特别涉及一种基于负载特征和闪存状态感知的数据分配算法。
技术介绍
1、磁盘曾经占据了存储市场的大部分份额,但随着处理器和内存的迅速发展,而hdd的更新速度放缓,显然已经成为了计算机性能的瓶颈。随着半导体技术的发展,基于闪存的固态硬盘ssd凭借其低延时、高随机访问性能,小尺寸和低功耗等优点,已广泛应用于个人计算机、高性能场景和企业级服务器中。
2、固态硬盘(solid state drive,ssd)是一种基于固态电子元件而非机械元件的存储设备。相比之前的硬盘驱动器,ssd具有更高的读写速度、更低的功耗、更小的尺寸和更轻的重量。ssd的基本结构主要是由主机逻辑接口(host interface logic,hil),后端闪存存储(back end),闪存转换层(flash translation layer,ftl)三个部分组成。hil主要用于连接ssd和主机。后端存储以nand flash为存储介质。提供高并行结构,包括channel、chip、plane、die四级并行。ftl主要负责缓存管理、地址转换和i/o调度。缓存主要是对io请求进行管理。缓存是一种动态随机存取存储器(dynamic random access memory,简称dram,能够缓解主机端与闪存的传输速度不匹配。
3、ftl执行对内存请求的地址翻译过程,将切分过后的事务逻辑地址转换成物理地址,这在ftl中有一个特有的模块执行该过程,名为地址映射,其中数据分配策略(dataallocation)决定了将
4、静态分配方式。静态分配方式通过数学公式逻辑地址转物理地址,连续的逻辑地址可以被分配到不同的并行资源下(通道、芯片、晶圆、平面)。目前一些方法提出了一种自组织条带化的数据分配策略,解决闪存在图像存储上导致大量垃圾回收的问题。一些其他方法研究了不同级别并行度的相互作用,并分析了ssd配置对静态和全动态策略性能的影响。
5、动态分配方式。动态分配可以轮询分配或者通过考虑一系列的因素,如通道、芯片的繁忙程度,芯片的累计擦除次数等信息动态的分配物理地址。动态分配可以将逻辑地址分配到任意一个空闲的资源当中。
6、但是这些动静态分配方式,存在着一些问题。在静态分配,主机端请求访问模式的差异,有的请求跨越多个芯片,而有的请求跨越的芯片较少。其次,垃圾回收会引发大量的有效页面迁移,当写闪存事务发送到正在进行垃圾回收的资源、上时,写闪存事务会被垃圾回收所引起的页面迁移阻塞。在动态分配中,采用通道芯片空闲/繁忙状态感知和轮询的方法来向空闲的物理芯片立即分配页面,缓解了这类由于写请求访问模式所引起的负载不均衡,但是随之带来的是对读性能的损耗,因为连续的请求流被流入了更少的芯片中,动态分配进一步损耗了ssd读取并行性。
技术实现思路
1、为了解决现有问题,本专利技术提供了一种基于负载特征和闪存状态感知的数据分配算法,具体方案如下:
2、一种基于负载特征和闪存状态感知的数据分配算法,包括以下步骤:
3、s1,当请求到达时,判断数据类型,得到请求的数据块分类——热、冷、温,之后按照现在的时间戳,在历史访问表中,更新此请求的信息;
4、s2,判断芯片的状态,并计算出芯片的负载,从而选择需要的芯片;
5、s3,确定好芯片后,根据晶圆的磨损程度,选择相应的晶圆单元;
6、s4,选择好晶圆后,根据晶圆中的平面是否被使用的位图信息,进行位图查询,选择一个没有写入的平面,将数据写入,之后更新位图,将此次写入的平面显示已写入;当所有平面都被写入时,重置位图,重新任意选择一个平面写入,并更新位图;
7、s5,选择对应的块进行写入。
8、优选地,步骤s1中判断数据类型的具体流程为:查询历史访问表,获得每个数据的访问次数和最近访问的时间戳以及访问周期,通过计算得到请求的访问频率与访问周期的倒数乘积,利用乘积将得到的请求进行热、冷、温的分类。
9、优选地,步骤s2中选择需要芯片的具体步骤包括:
10、s21,通过芯片上挂在的读写事务获得芯片负载;当芯片负载的值为0时,则芯片空闲;当芯片负载的值不为0时,则芯片忙碌;
11、s22,若存在空闲的芯片,则将数据写入到该空闲的芯片中;当存在多个空闲的芯片时,为了保证每个空闲芯片的磨损程度相近,选择最近未被选择的芯片进行数据写入操作;若不存在空闲的芯片,则按照静态分配的方式,用数学计算的方法,得出需要的芯片。
12、优选地,步骤s3中晶圆的磨损程度根据晶圆的写入数据量和正常块数目确定,选择晶圆的原则是选择磨损程度最小的晶圆,若磨损程度相同,根据晶圆的标记,轮询的选择未被标记的晶圆单元。
13、优选地,步骤s5中选择对应的块进行写入的原则为:根据块的已擦除次数对块进行分类,分为年轻块、正常块、老块;对于热请求,将其写入到年轻块当中,对于温请求,将其写入到正常块当中,对于冷请求,将其写入到老块中。
14、本专利技术还揭示了一种计算机可读存储介质,介质上存有计算机程序,计算机程序运行后,执行如上述任一项所述的算法。
15、本专利技术还揭示了一种计算机系统,包括处理器、存储介质,存储介质上存有计算机程序,处理器从存储介质上读取并运行计算机程序以执行如上述任一项所述的算法。
16、本专利技术的有益效果在于:
17、1)分析了负载中请求的访问模式,将请求进行了划分,分为冷、温、热,并根据这三种类型知道请求的数据分配。
18、2)分析了闪存芯片的运行状态,通过闪存芯片的状态,选择负载最小的芯片进行写入,避免与垃圾回收产生的事务发生冲突,减小了请求写入的时间。
19、3)将块进行分类,根据块的擦除次数,将每个块分类为年轻块、正常块、老块。根据请求的类型,将冷请求写入到老块中,将温请求写入到正常块中,将热请求,写入到年轻块中。避免了冷热数据写入同一个块造成寿命的降低。
20、4)根据芯片空闲状态选择合适的的芯片后,按照每次的写入die的顺序,依次选择die进行写入,保证每个die的寿命均衡。
本文档来自技高网...【技术保护点】
1.一种基于负载特征和闪存状态感知的数据分配算法,其特征在于,包括以下步骤:
2.根据权利要求1所述的算法,其特征在于,步骤S1中判断数据类型的具体流程为:查询历史访问表,获得每个数据的访问次数和最近访问的时间戳以及访问周期,通过计算得到请求的访问频率与访问周期的倒数乘积,利用乘积将得到的请求进行热、冷、温的分类。
3.根据权利要求1所述的算法,其特征在于,步骤S2中选择需要芯片的具体步骤包括:
4.根据权利要求1所述的算法,其特征在于,步骤S3中晶圆的磨损程度根据晶圆的写入数据量和正常块数目确定,选择晶圆的原则是选择磨损程度最小的晶圆,若磨损程度相同,根据晶圆的标记,轮询的选择未被标记的晶圆单元。
5.根据权利要求1所述的算法,其特征在于,步骤S5中选择对应的块进行写入的原则为:根据块的已擦除次数对块进行分类,分为年轻块、正常块、老块;对于热请求,将其写入到年轻块当中,对于温请求,将其写入到正常块当中,对于冷请求,将其写入到老块中。
6.一种计算机可读存储介质,其特征在于:介质上存有计算机程序,计算机程序运行后,执行如
7.一种计算机系统,其特征在于:包括处理器、存储介质,存储介质上存有计算机程序,处理器从存储介质上读取并运行计算机程序以执行如权利要求1至5中任一项所述的算法。
...【技术特征摘要】
1.一种基于负载特征和闪存状态感知的数据分配算法,其特征在于,包括以下步骤:
2.根据权利要求1所述的算法,其特征在于,步骤s1中判断数据类型的具体流程为:查询历史访问表,获得每个数据的访问次数和最近访问的时间戳以及访问周期,通过计算得到请求的访问频率与访问周期的倒数乘积,利用乘积将得到的请求进行热、冷、温的分类。
3.根据权利要求1所述的算法,其特征在于,步骤s2中选择需要芯片的具体步骤包括:
4.根据权利要求1所述的算法,其特征在于,步骤s3中晶圆的磨损程度根据晶圆的写入数据量和正常块数目确定,选择晶圆的原则是选择磨损程度最小的晶圆,若磨损程度相同,根据晶...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。