跟着兵哥捡垃圾 (3)– CAT算法

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!


继续学习兵哥捡垃圾。

CAT的全称是Cost Age Times,在Benefit-Cost算法的基础上,增加了对数据寿命和擦除次数的考虑。

 

CAT算法提出了数据分类的概念:把Valid data分成了Read-only, Cold和Hot三类。


Read-only data:顾名思义,就是写入之后不会被修改的数据,例如一些系统文件;

Cold data和Hot data都是可以被修改的数据,不同在于Hot data会被频繁的修改。

 

准备回收的Block上的数据,有这么几种情况:

  1. Read-only和Writable data混合:

在回收过程中,把所有的Read-only数据集中迁移到到新的Block里,如果这个新的Block再被回收,再将所有的Read-only数据集中放置。这个过程不断的迭代最终的结果是有的Block上全部都是Read-only 数据,这样的Block后面将不会再被GC程序选中进行垃圾回收。整个过程如下图所示。

  1. Cold data和Hot data混合:

在回收过程中把Cold data和Hot data分别迁移到不同的新的Block里。Cold data的处理方式与Read only data类似,最后收敛成一个Block里都是cold data。而hot data所在的Block因为更新频繁,很快就会充斥大量的Invalid Page,而valid page很少,回收这种Block性价比最高(需要移动的Valid page少,释放出来的Invalid page多)。过程如下图。

  1. 对部分区域的频繁读写,可能导致Hot data刚刚完成迁移,就立即被改写,再度成为垃圾,这种情况是需要尽量避免的。

总结起来,CAT算法的原则如下:

  • Read-only和Writable的数据分开放到不同Block;
  • GC过程中,迁移Hot data和Cold data到不同的Block;
  • 通过Hot Degree属性判断数据属于Hot还是Cold data;
  • Hot Degree跟Block被改写次数正相关,跟Age(Block从被开始写入数据以到现在的时间)成反比;
  • 某个Block的Hot degree如果大于平均值,则为Hot Block;
  • 考虑Block的磨损情况,如果一个Block的PE cycle接近最大寿命时,将其内容与PE cycle最低的Block做交换;

CAT算法的公式:

  • μ代表一个Block里Valid Page的比例
  • μ/(1-μ)理解为为了释放出(1-μ)的free page必须付出迁移μ的valid page,也就是整体的Cost;
  • 1/age代表Hot degree跟Age成反比
  • NumberOfCleaning代表Hot degree跟Block的PE Cycle成正比

    对每个Block进行计算,选择那些结果最高的Block进行GC过程。

 

注:

实际计算age时,一般采用下面的转换公式

 

 

参考文献:《Cleaning policies in mobile computers using flash memory》by M.-L. Chiang a, R.-C. Chang

 


つづく


 

分类目录 未分类.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。