
持久化(性)内存/非易失性内存
持久化内存近年来发展十分火热,它是介于DRAM与存储设备(SSD)之间的新层级。持久化内存向内存一样可以字节寻子,它提供了比DRAM更大的容量同时拥有比SSD更低的时延。
SweeNeil
这个作者很懒,什么都没留下…
展开
-
持久化内存简介
本文来自持久化内存文档,该文档上一次更新来自两个月前,也就是2019年3月,但是感觉内容应该还是比较老了,可能初版有两三年的历史了~一、持久化内存概述在过去的几十年中,计算机系统已经实现了图1所示的存储器存储层次结构。存储器存储层次结构利用了局部性原理,它使频繁访问的数据保持在最接近CPU的位置。连续几代技术分别从缓存的数量,大小和速度进行了改进,以此来确保CPU在缓存中可以访问到最常...翻译 2019-05-16 10:33:52 · 8455 阅读 · 0 评论 -
Ubuntu使用内存DRAM模拟持久化内存Persistent Memory
现在真实的持久化内存对于我们普通人来说还不可用,在进行实验和测试的时候可能需要我们模拟持久化内存来进行使用。现在在一台主机(没有服务器o(╥﹏╥)o)上测试划分一块内存区域来进行持久化内存的模拟。环境:Ubuntu 18.04,一台普通的Dell台式机,运行内存 8 G。从Linux 4.0以来,Linux内核就具备了对持久性内存设备和仿真的支持,但是,为了便于配置,建议使用比4.2更...原创 2019-05-16 16:18:02 · 5202 阅读 · 7 评论 -
持久化内存编程——启程资料
前面介绍了持久化内存的基本概念,然后在内存中模拟出了持久化内存,接下来就是使用持久化内存了。持久化内存简介:https://blog.youkuaiyun.com/SweeNeil/article/details/90257029Ubuntu使用内存DRAM模拟持久化内存Persistent Memory:https://blog.youkuaiyun.com/SweeNeil/article/detai...原创 2019-05-17 15:43:56 · 1474 阅读 · 0 评论 -
持久化内存编程——使用pmemobj库访问持久化内存
前面提到了持久化内存编程的启程资料:https://blog.youkuaiyun.com/SweeNeil/article/details/90293313在持久化内存开发工具中,提供了各种各样的库,这些在pmem的github介绍以及pmem.io中都有提到,下面就直接把github上面的直接拿出来:上面描述了各个库的说明,在其中,看到libpmemobj提供的功能还算全面,所以就使用li...翻译 2019-05-17 19:32:07 · 3138 阅读 · 0 评论 -
持久性内存编程——事务
在之前一直用的持久化内存,现在感觉有一种说不出的怪怪的感觉,之后都改为持久性内存。前面介绍了访问持久性内存的方式,其中抛出了一些在持久性内存上编程的要点,接下来就翻译pmem.io上的第二个编程指导——事务。原文来自:http://pmem.io/2015/06/15/transactions.html目录生命周期事务操作条件事务块示例通过前一部分的介绍(https...翻译 2019-05-18 15:28:06 · 925 阅读 · 0 评论 -
持久性内存编程——类型
在之前的所有关于持久化内存编程的文章中,代码片段和示例都有持久指针(pmemoid),没有任何类型信息——它们是简单的C结构。在pmem库开发的早期,开发者发现使用类似的东西非常容易出错,而且通常很困难。他们在用类型安全容器封装pmemoids时付出了相当大的努力,最终结果可以与C++11中的SydDypTr等进行比较,之后的所有内容将只使用类型安全特性。目录布局声明类型化持久指针...翻译 2019-05-22 14:36:56 · 842 阅读 · 0 评论 -
持久性内存编程——事务性动态内存分配
pmemobj库包含一个从头开始实现的内存分配器,它在设计时考虑了持久性内存。它有两套独立的API:非事务和事务。本文讲解持久化内存的事务性的动态内存分配,原文来自:http://pmem.io/2015/06/17/tx-alloc.html目录事务分配事务分配看下面一段现在的易失性内存分配:struct rectangle { int a; int b;};...翻译 2019-05-25 15:30:34 · 855 阅读 · 0 评论 -
持久性内存编程——原子分配动态内存
pmemobj库提供了非事务原子API可以实现更优化的内存管理。防故障原子分配这个API与大多数程序员在处理内存时使用的API不同。首先,函数要么分配给指针,要么释放指针。目标指针的修改是以原子方式完成的,这样它总是有效的——它要么指向一个有效的初始化内存块,要么指向一个OID_NULL。函数/宏还强制开发者在已知状态下创建对象,方法是将它们归零(pobj_znew,pobj_zalloc...翻译 2019-05-22 16:25:34 · 637 阅读 · 0 评论 -
持久性内存编程——内存分配使用举例
前面有了两篇讲解内存分配的博文:持久性内存编程——事务性动态内存分配:https://blog.youkuaiyun.com/SweeNeil/article/details/90547136持久性内存编程——原子分配动态内存:https://blog.youkuaiyun.com/SweeNeil/article/details/90444432其实写得都有点简单,没有一个比较简单具体的案例,下面就把具体的...原创 2019-05-25 19:39:11 · 834 阅读 · 0 评论 -
Intel Optane DC Persistent Memory Module (PMM)详解
英特尔对外公开提出Optane DC Persistent Memory Module已经快一年的时间了,这个介于SSD和DRAM之间的新层级对于数据中心有很大的好处。持久内存的目标始终是将更多数据移近CPU,提供类似DRAM的延迟,同时也具有类似存储设备的持久性和容量。 经过一年的时间听取硬件和软件合作伙伴谈论持久内存的好处,现在,随着第二代英特尔至强可扩展处理器的发布,Optane DC ...翻译 2019-04-29 15:52:11 · 10333 阅读 · 2 评论 -
英特尔Optane DC Persistent Memory操作模式说明
前面介绍了Optane DC Persistent Memory有两种模式:Memory Mode App Direct Mode服务器将使用DRAM和英特尔Optan DC Persistent Memory的组合。 DRAM具有最低的内存延迟。 英特尔Optane DC Persistent Memory具有稍高的延迟,但提供了可承受的容量和数据持久性。一、Memory Mode:...翻译 2019-08-05 14:51:37 · 3505 阅读 · 1 评论 -
Linux上快速入门英特尔Optane DC Persistent Memory Module的配置与使用
翻译得不好还请见谅,原文见末尾链接~一、简介英特尔的Optane DC Persistent Memory(Optane DC PMM、DCPMM)是一种颠覆性的技术,它在内存和存储器之间创建了一个新的层级。 英特尔Optane DC PMM支持两种模式:①Memory Mode:内存模式,与DRAM类似,同时在该模式下,数据易失②App Direct Mode:应用直接访问模式,...翻译 2019-04-28 18:52:33 · 12430 阅读 · 2 评论 -
Ubuntu 18.04安装持久化内存配置工具ndctl
方法一sudo apt-get install libndctl-dev这玩意有点玄学,说实话不太明白到底怎么回事,如果不能用建议使用第二种方式进行安装~方法二如果不行的话,在github上下载源码进行安装:GitHub source在github页面有一个简单的介绍,如下托所示,里面有ndctl的文档介绍,同时也简略给出了安装方法: ...原创 2019-05-08 19:38:56 · 4404 阅读 · 0 评论 -
Ubuntu 18.04安装英特尔Optane DC Persistent Memory Module配置工具ipmctl
《Intel Optane DC Persistent Memory Module (PMM)详解》地址:https://blog.youkuaiyun.com/SweeNeil/article/details/89673992《Linux上快速入门英特尔Optane DC Persistent Memory Module的配置与使用》地址:https://blog.youkuaiyun.com/SweeNe...原创 2019-05-08 15:09:43 · 5890 阅读 · 2 评论