sosp09年的better io through byte-addressable and persistent memory一文中,把BPRAM放在内存总线上,与DRAM一起。文章中提到了会有三个不利点:1.BPRAM的访问可能会干扰DRAM的访问,从而影响整体性能 2.BRRAM的可用容量被BPRAM的密度和在机器中空闲DIMM槽数量限制。3.放置BRRAM在内存总线上,可能会受到write stray。作者在文中避重就轻,没有详细讨论~
在看这篇将PCM放在内存总线,扩展主存系统的高性能一文,可以重点关注一下这几点,看其是怎么解释的。
我发现问题的不一样性了:当PCM与DRAM放在一起作为主存系统的时候,才要考虑这方面的问题。。。。但是这篇文章关注的点是,PCM作为DRAM的替代品,在PCM上层放置小的DRAM buffer做性能优化,并不是把DRAM和PCM并排放置。所以文章要考虑的问题是:
1.PCM比DRAM速度更慢。
2.有写寿命限制,必须降低写次数。
3.写寿命的影响可能会降低PCM系统的实用性
4.我觉得还有一个重要问题就是散热性了?
PCM最主要的问题就在于散热和写寿命,所以在针对PCM设计文件系统的时候,一定要考虑到写寿命和散热方面的问题,单纯针对PCM,现有的研究有很多磨损均衡方面的算法。若是针对混合系统,可以考虑怎样从根本上减少对PCM的写次数来达到延长寿命的目的。
问题:
现在的存储子系统占据了计算机系统大部分的cost和能源预算,基于DRAM的现有存储系统开始hit power和cost的限制。
解决方案:
在未来的主存系统中,由于
PCM比DRAM的密度更小,
可以帮助扩展主存容量,其与DRAM混合使用,可以提高存储系统性能,同时限制cost和power在约束范围内。
(DRAM 需要动态刷新,需要更多的power,DRAM的成本比SSD贵很多,4GB内存条大概是250RMB左右,120GB SSD大概是500RMB左右,需要更多的cost。但是PCM的成本也很贵?怎么把cost控制在约束范围内?)
在本文中,我们分析基于PCM的混合主存系统,使用PCM的架构级模型。主存系统包括了耦合小的DRAM buffer的PCM存储。在这样的架构中,既有DRAM的延迟优势,又有PCM的容量优势。
实验评估:
我们的评估展示,对比于8GB DRAM,16核系统,PCM平均能降低5倍的页错误,(为什么加入了PCM就能降低页错误?因为容量大了,缓存的磁盘数据多?) 提供3倍的加速(PCM比DRAM更慢,这3倍的速度是怎么回事?)。
由于PCM有写寿命的限制,我们一样提出简单的混合存储的组织和管理方案,去降低对PCM的写traffic,将他的寿命从3年增加到9.7年。
本篇文章并没有提到PCM的两个重要优势:非易失,按字节寻址,读速度跟Dram差2-4倍,写速度差5-10倍。反而是利用PCM组成混合主存系统,增大容量,加速主存系统,同时满足power和cost的约束。
(新的主存系统要达到的要求总结为以下四个方面:capacity,performance,power,cost)
2.BACKGROUND
2.1 What is Phase-Change Memory?
2.2 Why PCM for Main Memory?
PCM的密度大于DRAM。
PCM读延迟只比DRAM 慢4倍。
PCM写延迟比DRAM慢5~10倍
PCM有更长的寿命,写次数在10^8左右。
所以PCM是高性能服务器主存系统出色的候选设备。
2.3 Abstract Memory Model
我们关注的焦点是研究整个系统的性能,通过加入PCM作为一个DRAM memory的补充。为了不限制我们对PCM的研究,我们采用通用内存模型的方式,利用PCM memory结合DRAM memory。因此,为了研究加入PCM到主存中的影响,我们首先开发了一个简单的抽象模型,使用DRAM作为参考。PCM技术被描述为{D,S,Wmax},分别代表PCM的密度是DRAM的D倍,读延迟时间比DRAM慢S倍,每个单元能够容忍的最大写次数是Wmax。对于我们的评估目的,我们使用目前PCM的预测值,将其描述为{D=4,S=4,Wmax=10Million}
使用S=4的PCM作为DRAM的替代品将严重增加memory的访问延迟,这对系统性能可能有一个相反的影响。因此,我们使用DRAM和PCM结合作为主存的一部分来平衡这一影响。而且,PCM的写寿命一样限制了主存的lifetime。
3. HYBRID MAIN MEMORY
在图4(d)的混合主存系统架构中,最快的DRAM memory将被作为主存的buffer,同时作为PCM和处理器系统之间的接口。DRAM buffer(PCM容量的3%)能够桥接DRAM和PCM之间的延迟gap。
3.1 Hybrid Main Memory Organization
在hybird 主存架构里,PCM存储被操作系统使用页表来管理,以类似于DRAM主存系统的管理方式。DRAM buffer被组织类似于Hardware cache,对于操作系统来说是不可见的,它是被DRAM控制器管理。虽然DRAM buffer能够以任何粒度被组织,我们假设DRAMbuffer和PCM 存储都以页的粒度被组织。
图5展示了我们提出的hybrid主存组织。除了使用DRAM buffer覆盖PCM更大的读延迟,这个结构通过使用write queue达到容忍PCM慢一个数量级的写延迟,使用技术限制写到PCM memory的次数来克服PCM寿命的限制。
3.2 Lazy-Write Organization
我们使用lazy-write组织
降低写到PCM的次数,克服PCM更慢的写速度,同时不会招致任何性能开销。
当页错误的时候,从hard disk预取的页只被写到DRAM cache中。虽然从HDD预取页的时候会在DRAM中分配一个页表条目,同时自动在PCM中分配这个页的空间。
被分配PCM不写HDD的数据,这消除了写PCM的开销。为了追踪只呈现在DRAM中,不在PCM中的页面,DRAM tag目录被”presence“(P)bit 扩展。当页从HDD被存储在DRAM cache中,DRAM tag directory中的P bit被设置为0、在”lazy write“组织中,一个页被写到PCM中只有当这个页被替换出DRAM storage,同时P bit为0,或者dirty bit被设置了。如果DRAM MISS,从PCM中预取页,然后DRAM 中的P bit被设置为1.当设置了P bit的页被从DRAM替换出去,除非它是脏的才被写回到PCM.而且,为了解决PCM更大的写延迟,一个写队列与PCM相关联。
lazy write organization的主要目的就是减少了写的次数,从而达到降低写PCM的延迟。
3.3 Line-Level Writes
Line-level writes不是一页一页地写,以cache line为单位写回PCM。技术实现点:每一cache line都有一个记录dirty信息的位。比如4096B的page,cache line 256B,那么一个page就有16个cache line,需要16bits记录脏页信息。
3.4 Fine-Grained Wear-Leveling for PCM
在FGWL中,每一页的所有行以旋转的方式被存储在PCM中。页被从write queue写到PCM中以行旋转的模式。当页错误的时候,从hard disk中预取,伪随机数生成器生成一个随机4-bit的旋转值,这个值被存储在wear level shift(W)区域。这个值保持为常数,直到PCM页被替换,PRNG重新随机生成一个值,为被分配在PCM同样物理区域的新页。
4.5.6章节关于实验部分的内容在此不做过多记录
7.RELATED WORK
A NAND Flash based file buffer cache is used in "Improving NAND FLASH based disk caches"。然而,flash比DRAM慢2^8倍,这意味着增加DRAM容量以减少基于flash的disk cache的访问次数是重要的。这篇论文的工作是对"Improving NAND FLASH based disk caches"的补充,实际上,在我们的评估中,我们假设HDD被flash cache支持。而且,"Improving NAND FLASH based disk caches"
对flash memory使用改进的纠错码,这不会增加单个独立单元的寿命。因此,我们关注于减少对PCM的write traffic,以至于每个cell在一段更长的时间之后才会写穿。两种方法能够被一起使用,收效会比单独使用任何一种都更好。