持久内存编程
持久内存编程 2013年6月我写了关于非易失性内存(NVM)的未来接口。其中描述了SNIA NVM Programming technical work group(TWG)正在开发的NVM编程模型。在过去的四年里,规范已经发布,正如预测的那样,编程模型已成为大量后续工作的重点。该编程模型,在规范中描述为NVM.PM.FILE,可以将PM当做文件被操作系统映射到内存。本文,介绍持久内存编程模型如何在操作系统中实现,已经做了哪些工作,以及我们还面临着哪些挑战。 持久内存背景 PM和storage class memory是同一的术语,具有字节寻址、加载/存储内存访问特性,但具备持久性。本文,关注将PM挂在系统内存总线上,例如DRAM DIMM,创建一类称为NVDIMMs的非易失DIMMs。 为进一步阐述所说的持久内存是什么,仅讨论NVDIMMs,允许软件像访问内存一样访问。提供了内存语义的所有优点,例如CPU CACHE一致性、其他设备直接内存访问DMA、缓冲线粒度访问,即可字节寻址。为提供这些语义,设备必须足够块以便指令访问CPU时拖延CPU合情合理。NAND flash当做持久内存时比较慢,因为需要以块为单位进行访问,并需要足够长的时间进行上下文切换。硬件访问的时间通常以毫秒为单位,NAND Flash SSD以微妙为单位,PM以纳秒为单位。依赖于硬件媒体类型