FLASH近些年被广泛使用在存储系统,主要是由于它具非易失,高密度,低成本的优势。但是它的缺陷也是很明显的,它的可管理性和可靠性是必须要解决的两个挑战性问题,可靠性上:即使FLASH是非易失的,在某种情况下,依然存在不一致性,cell的写穿也是其考虑的重点问题。跟NVRAM对比,NVRAM同样具有非易失,高密度,访问速度接近DRAM的优势,但是缺陷在于,cost比较高,一致性问题仍然存在,写寿命问题也是关注重点。具体对比如下图所示:
鉴于以上对比,我们进一步详细了解,到底为什么可以使用FLASH做cache?
- 使用NAND FLASH能够降低系统memory的power
如上图所示,FLASH在激活power,空闲power上远远小于DRAM,而在读延迟,写延迟上,比DRAM慢一个数量级,若把DRAM的大小减少,将FLASH加入memory系统,扩展内存容量,会达到节能1/4的效果。
- 使用NAND Flash做disk caches
- 垃圾回收的问题,当Flash的使用率在80%的时候,GC的开销占全部开销的20%,再往上走,开销能达到80%~100%
- memory需要存储Flash data structures的开销。
3 Architecture of the Flash based disk cache
FlashCache hash table (FCHT)- stores the mappingbetween addresses on disk and Flash. The FCHT wasfirst introduced in [16].•Flash page status table (FPST)- stores error correctioncode (ECC) strength,SLC/MLC mode and a saturatingaccess counter. It also stores a valid bit field.•Flash block status table (FBST)- records the numberof erase operations performed on each block as well asthe degree of wear out.•Flash global status table (FGST)- tracks average latency and miss rate of the Flash based disk cache.
写不是单纯地写,写完之后,可能变成读块。读也是不完全独立地读,要对读的块进行写,要从读块evict,在写块中新建?两个怎样进行交互?
-
- 将FLASH cache分为两个不同的领域,读或者写区域
- 实现FLASH控制器
read流程:(涉及miss的情况)
write流程:(写的过程更复杂一些)
将buffer cache和journaling结合在一起,怎么实现?
我的想法是,FLASH cache已经分为两个区域了,而读region不存在日志问题,所以只需要对write区域做缓存和日志的结合。
根据上述写的过程
补充:
- nor 和 NAND的区别:
读比NAND快,写比NAND慢能擦除的次数比NAND少nor的密度比较小现在都不用nor了NAND FLASH 1page(2kb+64b的校验码),1block=64pages,1plane=2048blocks,1die=4planes,1 package=2dies