‹ Retornar à série de vídeos: 持久内存编程入门

持久内存编程(第 1 节)什么是持久内存?

  • Visão geral
  • Recursos
  • Transcrito

英特尔的 Andy Rudoff 为您介绍持久内存,并解释为什么最近它在业界如此热门。Andy 将描述持续内存是如何与计算机平台连接的,它是如何工作的,以及编程人员面临的一些挑战。Andy 是一位非易失性内存软件架构师,也是存储网络行业协会 ( SNIA) 非易失性内存编程技术工作组的成员。

大家好,我是英特尔公司的 Andy Rudoff。在这个视频中,我将为大家讲解什么是持久内存,以及它为什么如此激动人心。请务必观看播放列表中有关持久内存编程的其它视频。

首先我们来介绍一下持久内存是什么。它有时也被称为存储级内存,由于新内存技术的出现,例如英特尔的 3D XPoint 内存,永久内存近期才在现代硬件中得以应用。这些新技术支持兼具存储和内存属性的产品。这些产品是永久性的,类似于存储器,这意味着即便重启设备,它们仍然能保留内容。它们支持字节寻址,类似于内存,这意味着程序可以定点访问数据结构。但真正让持久内存脱颖而出的是它速度够快,可以从处理器直接访问,无需停下来处理传统存储所需的数据块 I/O。

高性能是业界人士对持久内存的出现感到欢欣鼓舞的重要原因。我们做一个对比。如果使用基于 NAND 的现代 SSD,将其接入 PCIe 总线,并采用 MDM Express 协议进行通信,您会看到读取一个块所需的时间超过 80 微秒。请注意用蓝色表示的区域,表明大部分时间用于访问媒介。软件堆栈只占整体访问时间的一小部分。我们可以加快设备驱动程序的速度,而结果几乎没什么区别。

英特尔 Optane SSD 也接入 PCIe 总线,但我们使用了 3D XPoint,因此大幅度减少了用于访问媒介的时间。现在我们注意到,软件堆栈在 PCIe 协议中所占用的资源是造成整体延迟的重要原因。为了充分发挥 3D XPoint 技术的优势,现在必须解决软件和互联机制的资源占用问题。

现在就是持久内存的用武之地了。通过将媒介连接到内存总线,CPU 可以直接访问数据,无需任何驱动程序或占用 PCIe 资源。由于采用 64 字节缓存行访问内存,CPU 只需根据需要读取数据,而无需轮询每个通道,亦或甚至达到存储器大小的数据块。现在您可以看到 64 字节读取的延迟非常低,尽管我同时展示了同类 SSD 之间 4K 读取速度的对比。

借助持久内存,应用程序将拥有一个用于放置数据的新层。除了内存和存储层,持久内存层还提供了大于 DRAM 的容量和显著高于存储器的性能。应用程序可以定点访问持久内存常驻数据结构,就像处理传统内存一样。这样就无需在内存和存储器之间来回访问数据块。

要想实现这种低延迟直接访问,我们需要一种软件架构来支持应用程序连接到持久内存的范围。这是本系列视频接下来要讲的主题。重组您的软件架构需要一些时间。请观看这一系列的持久内存编程课程,立即学习入门知识。同时请务必查看下方提供的链接。