首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

闪存革命无处不在

闪存革命无处不在

作者:Altera 公司总编辑Ron Wilson

随着价格适中的大容量闪存芯片的面市,数据中心巨大的存储系统体系结构出现了很大的变化。通常的情况是,大容量低成本应用出现变化时,结果会很快扩展到其他计算领域,包括嵌入式领域。今年闪存峰会的论文和主题演讲讨论了这种颠覆式变化对数据中心的影响,从中揭示了其涉及范围和进展情况。

这种变化直接的原因是闪存供应商在规模上的成功:使用创新的单元设计和新工艺技术,推动了单位比特成本的不断下降,达到了降低单位比特磁盘成本的目标。减小体积,每个单元能够存储多个比特的数据,最近的工艺变化支持 NAND 闪存单元在管芯表面垂直堆叠,使它们能够一起协同工作 (图 1) 。
   
目前最新的进展是堆叠了 32 个单元,每单元 2 个比特的 128 千兆位 (Gb)芯片,还有,据传这一 3D 器件每个单元存储了 3 个比特,其密度接近了 256 Gb。三星公司在此次峰会上介绍了这些器件。三星还介绍了这类芯片有可能支持实现 16-32 太字节 (TB) 固态磁盘 (SSD)。

是 SSD 而不是闪存芯片本身改变了大规模存储系统的游戏规则。在这一点,SSD — 含有闪存芯片和控制器的模组,能够替代中等容量的磁盘阵列,同时实现较高的传送速率,更短的访问延时。SSD 能够降低能耗,在可靠性上还具有优势。而且,随着最近价格的变化,据 IBM 闪存系统副总裁 Michael Kuhn “可伸缩存储的成本优势结合具有 RAID 阵列的闪存模组,其成本要低于高性能磁盘。”

这一情形表明,在存储体系结构中,数据中心能够考虑使用 SSD 来替代 DRAM 下面的高性能磁盘。这种变化可以把磁盘降级为所谓的冷存储应用:保存使用不多或者不经常参考的文件。
   
2014-12-25 14:20:33 上传
下载附件 (34.04 KB)



图 1. 将比特单元在纵向比特行上一个个的堆叠,闪存供应商能够在一个比特单元布局中获得 32 个单元。

闪存芯片的发展还打开了另一扇门。设计人员现在可以更自由的混合使用 DRAM、闪存和磁盘进行试验。底层的概念是使用每一种存储技术作为较慢的下一层的管理高速缓存。所有层都能够由本地控制器进行管理,这一控制器与应用层和OS层软件相配合,在系统中延时最低的层中保存使用最多的数据。

有趣的问题是在互联体系结构中,以及控制器的实际功能中。为解决这些问题,我们还要问一些问题:数据中心运营商要做什么,编程人员需要什么?
适应数据中心

数据中心运营商会购买下一代存储系统,也可能会忽略。因此,重要的是理解他们的观点。然而,他们的观点并不简单:数据中心千差万别。

比较容易得出的结论是:运营商要挣钱。但这只是意味着,每家运营商都希望在性能、能效、初始成本、可靠性、安全和可预测性上有自己的特点。某家运营商到底需要什么,他们使用什么样的体系结构方法来实现目标,这些都是千差万别。

运行单一功能箱式数据中心的石油勘探公司的需求可能会比较极端。对于这一类客户,性能最重要。采购和运营成本并不是很重要,可靠性是额外的,而安全和可预测性需求并不明显。但是,数据中心规模越来越大,更加开放,各种任务相混合,优先级也变化了。能源成本会远远超出购买价格。总吞吐量 — 或者能够准确的预测运行时间,会比单一任务速度更重要。安全成为很大的问题,而大量的冗余会使得可靠性问题从芯片级或者机框级蔓延到系统级,在不需要的存储介质上实现零误码率。
满意的编程人员

相反,编程人员的需求听起来非常简单。总体上,编程人员只需要非常大的平面地址空间,因此,他们的程序能够按照名称来调用变量,不需要知道数值目前在哪里 — 在本地高速缓存中,在某些其他服务器的 DRAM 中,在某处的 SSD 中,还是在大容量磁盘中。当然,他们希望这种透明性不会增加额外的性能或者存储成本,也不用修改源代码。

综合考虑起来,所有这些要求看起来没法满足。而 CPU 管芯的高速缓存大大降低了延时,提高了 DRAM 带宽,新的融合存储体系结构能够提高存储系统的性能。它们能够让这一层次结构成为单一的平面虚拟 DRAM 阵列,性能类似 DRAM,只是偶尔出现额外的延时。

这对于大数据中心的影响非常大。例如,在宣传公司的可伸缩存储体系结构时,IBM 的 Kuhn 宣称帮助可口可乐将现有服务器的存储性能提高了 5 倍。很多人认为可伸缩存储是融合存储技术的雏形,代表了闪存芯片和互联体系结构的最新发展。

而优势不仅仅体现在规模上。Marvell 半导体公司副总裁 Iri Trashanski 解释说,其公司认识到大量的 SSD,从客户侧存储系统 — 存储 2 gigabytes (GB) 或者更少,通过 SATA 通道直接连接服务器,直至企业和数据中心系统,这些系统将磁盘降级为冷存储应用。Trashanski 说:“今天,所有这些领域使用相同的闪存芯片,具有同样的商用控制器,只是在固件上有所差别。” 但是这种同一性很快出现了变化。要了解其原因,我们必须深入了解融合存储系统。
机箱里面

Riccardo Badalone 是 Diablo 技术公司的 CEO,介绍了其公司的产品,说明了技术应用在哪里。他说: “未来的存储系统是高密度,纳秒字节寻址,容量是可伸缩的。公司的建议是 — 融合存储器” ,Badalone 说:“DRAM 和闪存的工程融合。” 闪存提供了高密度、非易失、模块寻址存储。DRAM 叠加了闪存,具有高速、字节寻址可预测高速缓存。

在实际的大系统中,这一概念可以扩展到 DRAM 和闪存之外,包括大容量磁盘,甚至是磁带。在每一层面上,存储介质的角色略有不同,控制器所需要的功能完全不同。更有趣的是,每一级都有不同的互联选择。

互联结构可能是研究开始使用这些融合系统最好的地方。传统的服务器除了片内高速缓存会有三级存储:DRAM、本地磁盘以及与网络连接的存储设备。这些与 CPU 的连接都采用了不同的物理方式,具有不同的控制和数据传送协议。

服务器的 L2 或者 L3 高速缓存控制器通过专用端口连接 DRAM,连接专用 DRAM 控制器,进一步直接连接至 DRAM 模组。出现高速缓存错过或者泛洪时,控制器产生 DRAM 引脚信号,以读取或者写入控制器行中。

直接连接的磁盘工作方式完全不同。磁盘控制器通过专用 SATA 端口,或者 PCI Express® (PCIe®),连接至 CPU。运行在 CPU 内核中的驱动软件将操作系统的请求转译成文件名称和记录号,然后,在控制器的帮助下,访问磁盘的扇区。然后,驱动程序命令控制器在磁盘和 DRAM 之间传送扇区。同样的过程应用到与网络连接的存储设备上,但是,磁盘和控制器之间的通信必须通过另一层 — 以太网驱动,把数据包交付给 PCIe 驱动,传送到网络适配器,最终通过以太网到达控制器。
融合新思路

SSD 和存储融合将这种异构协议推向了更简单的新发展方向。首先,直接连接 SSD 会替代 CPU 电路板上的 SATA。Diablo 的闪存系统直接连接至服务器卡的 DIMM 插槽,模仿部分 DRAM 地址空间。在其他实现中,PCIe 电路部分通常连接至小型 M.2 卡,承载了 SSD,替代了与磁盘控制器的 SATA 连接。NVMe 等闪存新协议替代了老的磁盘协议。据 Altera 存储系统专家 Robert Pierce,这些技术使得 16-32 TB 的闪存直接连接 CPU 群成为可能。同时,网络连接存储开始过渡到带宽更大的连接,例如,Infiniband 固有的光传送或者 PCIe。

这些变化表明了方法的集成度更高了。目的是让所有级别的存储,从 DRAM 到冷存储,成为 CPU 高速缓存总线上的一个大容量虚拟存储器。

这一概念即将实现的是 IBM 的一致性加速器处理器接口 (CAPI) 连接的闪存。这一设计把一个闪存控制器放到 CAPI 总线上 — 实际上,是 Power8 CPU 高速缓存互联的片外扩展,支持处理器的存储器一致性协议。这种连接支持闪存子系统 — 会有自己的 SRAM 和 DRAM 高速缓存,看起来就是 CPU 共享存储器的一部分。

与 CAPI 物理连接的芯片是闪存控制器。而在未来的实现中,可能是多功能存储 SoC,控制闪存阵列、本地磁盘,以及冷存储的光链路 (图 2)。

2014-12-25 14:20:33 上传
下载附件 (16.97 KB)



图 2. 连接至 CPU 群一致性高速缓存总线的融合存储控制器能够使系统中的所有存储就像一个巨大的虚拟 DRAM。

在物理层,融合系统中的每一类存储都有自己的底层管理要求。DRAM 需要纠错功能,以及围绕失效比特单元、行和列的映射功能。闪存有这些要求,还需要算法来消除每一模块擦除写入周期数,以便在芯片上均匀的分配损耗,通过算法来优化写入。

据微软云网络服务器工程总经理 Kushagra Vaid,这些损耗均衡和写操作策略 — 以及闪存芯片本身,都是与应用相关的。他指出,微软对于耐用性和数据保持等关键闪存芯片参数的需求是与工作负载相关的。Vaid 说,任何一种云应用都有可能频繁的使用 SSD,而必应搜索引擎每天只写入闪存一次。相似的,在某些应用中,闪存芯片不需要将数据保持 24 小时以上 — 极大的简化了芯片供应商设计对数据永久保留的需求。知道芯片是怎样使用的意味着能够获得更多的性能或者密度,通过降低测试极限来降低成本。但也意味着,物理存储器的面积,写控制算法也是与应用相关的。因此,在一定程度上,存储器组织必须应对应用级软件:存储逐渐成为软件定义的。

磁盘控制器还有相似的物理层面的要求,但是环境非常不同。必须纠正错误,映射出坏扇区,完成传送。磁盘读/写算法与应用的相关性不明显,但是,磁盘数据组织确是如此。

这一级之上是数据管理任务层。如果 DRAM 和闪存层是可预测高速缓存,控制器会进行预测:在合适的时间把数据装入合适的层中。这种需求同样适用于小系统和大系统。但是数据中心能够增加另一维度 — 不同服务器卡上存储控制器的直接连接。Pierce 说,有足够的连接后,控制器能够形成 2D 或者 3D 曲面,实际上合并了机架中所有 CPU 的全部存储资源。软件也会管理哪些数据应放在延时和可靠性最佳的地方。

与数据管理密切相关的是压缩和安全。很明显,无损数据压缩提高了每一存储级别的容量效率,同样提高了链路的有效带宽 — 如果算法足够快。对于容易受到入侵的系统,安全问题会要求数据以加密格式存储,只能在授权线程使用时解密。这些任务也是由控制器完成。但是与前面的任务不同,这些任务要求控制器的计算速度与应用级性能相匹配。

这里列出的任务表明,融合存储控制器从相对简单的基于 MCU 的 ASIC 发展到服务器类 SoC,针对特殊功能提供了硬件加速。我们需要指出的最后一点是这保证了发展。

一旦您决定了将服务器类处理功能放到融合存储系统中,增加硬件保证例程数据管理任务不会让 CPU 过载,下一个比较明显的问题是这些 CPU 还能干什么? 这一问题直接导致了存储系统内部关于计算的争论。
存储中的计算

支持者认为,在很多算法中,其线程应放到闪存子系统中完成,甚至是在硬盘系统中。总体上,这类任务有两个特点。第一,它们的参考有很强的本地性,因此,它们不需要存储模组之间的大量数据流。更好的是,任务对数据的要求与提供数据的介质的要求相似,不需要把大量的数据保存或者放到本地存储器中。第二,这些任务应极大的减少传送给计算服务器用于后续处理的数据量。

例如,在网络搜索操作中,第一步是过滤所有访问页面数据,找到包括所需搜索术语的页面。这一任务对于每一页面完全是本地化的,可以作为磁盘外或者闪存文件之外的数据流来处理。任务会丢掉绝大部分页面,只有一小部分会发送给服务器,进一步进行分析。对于存储中处理,这看起来是理想的任务。

怀疑者认为有很难解决的问题。谁应该把算法分成服务器线程以及存储中线程? 运算怎样才能维持较高的 CPU 利用率,这一般不容易获得,而是深藏在存储系统中? 除了最底层存储系统之外的所有层都直接连接服务器,存储中计算又有什么不同呢?

虽然不断有争论,但融合存储系统仍然是很强大的本地处理器。Tensilica 可配置处理器 IP 部的 Cadence CTO Chris Rowen 争论到,“闪存管理有很多独特而且难度很大的运算,需要一类新处理器。” 有了这类处理器之后,应用级编程人员会尝试使用它们。

这又把我们从云端数据中心带回了实际的嵌入式计算。从数据中心过渡到融合存储系统会带来直接连接模组大市场 — 控制器、DRAM、闪存、磁盘以及高速接口,这些系统需要这些接口。价格竞争会使得这些模组在嵌入式系统设计人员的承受范围内。

对此,嵌入式系统设计人员和编程人员必须要考虑一系列可能发生的步骤。首先,准备好从 SATA 改变到 CPU 电路板上基于 PCIe 的存储连接。其次,开始思考存储不是一类由操作系统通过驱动调用所管理的不同的器件,而是一种虚拟 DRAM 平面,由应用程序直接管理。第三,找到应用程序中能够利用存储中处理资源的线程 — 可能具有用户定义的加速器。当转到数据中心软件定义存储时,这些步骤可能会给嵌入式设计人员带来意外惊喜。
返回列表