请选择 进入手机版 | 继续访问电脑版

探索和利用SSD内部的多级并行性,提高性能和耐久性

2017-7-8 02:08 241 0
0
摘要: 声明:本文由武汉华中科技大学作者杨虎、丹峰等人提供考虑到不同层级的多层次内部SSD并行性:通道级,芯片级,模具级和平面级,如何利用这些级别的并行性将直接显著地影响SSD的性能和耐久性,我们必须清楚地知道SSD ...

声明:本文由武汉华中科技大学作者杨虎、丹峰等人提供


考虑到不同层级的多层次内部SSD并行性:通道级,芯片级,模具级和平面级,如何利用这些级别的并行性将直接显著地影响SSD的性能和耐久性,我们必须清楚地知道SSD主要由三个内在因素决定,即先进的指挥,分配方案,以及利用四个并行度的优先次序。


介绍

目前对 SSD 内部特性的研究大多都是针对 SSD 内部的一两个独立的特性来研究,而忽略了彼此之间的联系。所以这篇文章指出了 advanced command 和 allocation schemes 与 SSD 内部的多级并行性是密切相关的。在这篇文章中测试了在当前文献中被忽略的 advanced command,allocation schemes 和内部并行之间的关系和相互在用。在该篇文章的深入实验研究中得出了一些关于设计高性能 SSD 的一些观点:

(1)为了通过高效的读操作,写操作和擦除操作来提高 SSD 的性能,制造商已经提供了三种 advanced command:copyback, multiplane 和 interleave。后面的两种利用了 SSD 内部的两种级别的并行性。利用这三种 advanced command 必须要遵守一些严格约束。合理的使用这些 advanced command 是非常重要的。比如盲目的使用 copyback 命令会显著的增加擦除操作的次数和平均响应时间,在 MSN workload 下分别增加了17.8倍和7.7倍。

(2)静态的分配物理页很容易实现,在某些应用环境中也非常有效。动态的分配物理页在利用并行性方面有更好的灵活性和适应性,所以在大多数场合下会有更好的性能。静态的物理页分配在各种负载下都能表现出很好的读性能,动态分配策略在写性能和整体性能上会有更好的表现。

(3)并行性是实现高性能的 SSD 的重要因素,SSD 的内部有四个级别的并行性:channel-level, chip-level, die-level, plane-level。advanced command 主要用到了后面两种并行性。 分配策略可以有效的利用多种级别的并行性,并决定他们的优先级。该篇论文的调查分析发现,四个级别的并行性可能会存在一个优先级。不恰当的优先级顺序会导致性能高达60%的下降。


背景

为了提高存储密度,闪存制造商把几个 Flash chip 放到一个称为 package 的模块中。一个 package 中的所有 chip 共享相同的 8/16 位 I/O 总线,但是有分离的 chip 使能信号(CE, chip enable) 和 ready/busy(R/B) 控制信号。目前,大多数 Flash package 都是使用 8-bit 的 I/O 总线。每个 chip 都是由许多 die 组成的。每个 die 都会有一个对用户不可见的内部的 R/B 信号,只有在 advanced command 中才是有效的。每个 die 是由许多 plane 组成的。每个 plane 包含几千个 block 和一个 data register(一些产品的 plane 会包含一个额外的 cache register)。一个典型的 block 通常包含 64 或者 128 个 page。每个page 可以进一步划分成许多个 512B 的 subpage,subpage的大小正好等于传统的一个扇区的大小。每个 subpage 会有16B 的空闲空间用来存储元数据。在之前的很多文献中总是会混淆 chip 和 die,CE 和 R/B 信号可以很好地来区分它们。


下图是SSD整体的架构图。

基于不同的 Flash chip 控制引脚和数据引脚的共享模式,会有很多不同的方法去实现 Flash 闪存的通道接口。因为这篇文章文章主要是考虑到高性能的 SSD 设计,所以这里使用的是一种独立通道。如下图所示。

SSD 提供的chip上的资源有逻辑单元和用户 I/O 引脚,除了用来实现主机接口,DMA,缓存接口和其他的系统器件的逻辑单元外,实现闪存通道控制器也需要消耗余下的逻辑单元。实现闪存通道控制器不仅需要需要逻辑单元还需要用户 I/O 引脚。实现一个闪存通道需要的资源如下面的表格所示。

如果1个通道上配备4个chip,那么每个通道需要消耗21个I/O引脚,所以独立通道的数量是受限于用户I/O引脚的数量和逻辑单元的。


高级用法

SSD 每一个读写命令都是由两个操作组成:(1)数据传输;(2)从目标页读取数据到 plane 的的数据寄存器中或者把 plane 的数据寄存器中的数据写入到目标页中。所有的命令都是这样初始化的,把命令的代码写入到命令寄存器,把请求的地址写入到地址寄存器。一个 flash chip 的地址可以分为5个部分:die, plane, block, page, in-page。


copyback 命令是把数据从一个 page 移动到相同 plane 中的另一个 page 而不占用 I/O 总线。 这个命令节约了两倍的数据传输时间。一些厂商也将其称为 internal data move。这个命令也有一些限制,就是两个 page 的 die 地址和 plane 地址必须相同,而且他们的这两个 page 的地址要么同时为奇数,要么同时为偶数


multiplane 命令可以让一个 die 中的所有 plane 并行地读或者写或者擦除。这个命令利用了 plane 级别的并行性。这个命令所用的时间是多组数据的传输时间加上一次的数据操作时间。如下图所示。

当然这个命令也会有一些限制,如果 page 要进行 multiplane 命令,那么必须要有相同的 die 地址,相同的 block 地址和相同的 page 地址。如果 block 要进行 multiplane 命令,那么必须要有相同的 die 地址和 block 地址。例如在下图中,只有相同 die 中的 plane 0 上的 page 1 和 plane 1 上的 page 1 才能利用 multiplane 进行同步的读写。

Interleave 命令可以在相同的 chip 上的不同 die 中同时进行读、写、擦除或者 multiplane 的读、写、擦除操作。利用了die 级别的并行性。交叉命令和交叉操作是不一样的,前者是一个在相同的 chip 上不同的 die 之间运行的 Flash 的命令,而后者是运行在相同通道的不同的 chip 之间。Interleave 命令如下图所示。

动机

(1)advanced command 利用了 plane 级别的并行性和 die 级别的并行性。当我们利用 advanced command 来使用这两种并行性时应该考虑些什么。

(2)考虑到 advanced command 和级别的并行性,如何设计静态和动态的地址分配策略。这两种策略在性能上有何不同,如何选择。

(3)给定了 SSD 内部的四个级别的并行性,如何来设计他们的优先级。


实验评估

前面介绍了 copyback 的两个限制:必须要在同一个 plane 中;源page的地址和目的page的地址的奇偶性要相同。我们假设在如下图所示的场景中应用 copyback 功能。

假设垃圾回收触发了 PPN=26 的页需要迁移到空闲页上去。由于 block 上的页需要被连续的写,所以下一个空闲页是 PPN=1217。但是由于 copyback 相同奇偶性的限制,这个时候就只能写到 PPN=1218 的位置,就把 1217 给浪费了。所以如果盲目的使用 copyback 的话会使空闲页浪费。盲目使用 copyback 所造成的影响有多大可以看看原文的实验结果。


多平面读(Multiplane Write)

前面介绍了 multiplane 命令可以在相同的 die 的多个 plane 上同时进行一些基本命令(读,写和擦除)。但是必须要求page地址是相同的。假设如下图的所示的场景。


在相同的 die 的两个 plane 上进行 MPW 操作。当前 plane 0 上的下一个空闲页是26,plane 1 上的下一个空闲页是24。如果这两个 plane 上进行 MPW 那么 plane1 上的 24,25两个页将要变成无效的。

跟 copyback 一样,如果盲目使用 MPW 命令会浪费很多空闲页。大量空闲页的浪费会增加擦除操作的次数,虽然并行操作可以节省时间,但是它节省的时间已经超过了多余的擦除的操作浪费的时间了,所以盲目的使用会增加系统的平均响应时间


多平面写(Multiplane Read)

实验表明,在大多数负载的情况下 MPR 对系统的性能并没有太大的提升。但是在以读请求为主的请求的大小比较大的负载中,MPR可以提高系统的性能。



交错(Interleave)

一个 chip 上的不同的 die 上的 page 和 block 可以通过 interleave 命令同时进行读,写或者擦除操作。这个命令和其他命令不同,没有太多的限制,所以总是能提高系统的性能。


在本文中,我们通过深入的实验研究,分析了这些内部因素来表征其影响,相互作用和并行性,以此来实现SSD的性能和耐久性增强。我们得出以下关键结论:

1)Flash制造商提供的不同高级命令在SSD内部采用不同级别的并行性,在哪里可以根据使用方式改善或降低SSD的性能和耐久性; 

2)不同的物理页面分配方案采用不同的高级命令,并利用SSD内的不同级别的并行性,产生不同的性能和耐久性影响; 

3)使用四级并行度的优先顺序在三个内在因素中具有最显着的性能和耐力影响。


在SSD中使用四级并行度的最优优先级顺序是:

1)信道级并行性; 2)模具级并行; 3)平面平行度; 4)芯片级并行性。


结论

通过实验比较了在不同级别的内部并行性下,静态地址映射和动态地址映射对SSD性能的影响。SSD内部的地址有 channel, chip, die 和 plane 这些部分,所以这篇文章里提出了6中静态地址的分配策略,这6种策略是是根据6种不同的并行性优先级的组合来设计的。实验分别从读性能,写性能和负载均衡这几个方便对结果进行了比较,得出了并行性优先级的最佳顺序为:channel-level, die-level, plane-level, chip-level。


原文转载于:http://ieeexplore.ieee.org/document/6165265/?part=1


每天一个段子:把宾利、秘书、司机借给员工去参加前女友婚礼的老板已经很牛气了,但是还有更牛的。闺蜜去参加前男友婚礼,我们老板把三个月大的小孩借给她了。她抱着小孩儿到前男友婚礼上当着他媳妇的面说:孩子我自己养大,但他永远跟你姓。然后猛然转身,身后是一场血雨腥风。


注:本文由SSD PK社区提供,如有错误和不足之处欢迎在留言中批评指正,如果您喜欢本文,也可以分享给你的朋友。转载本文请务必保留原文出处,更多热门请关注SSD PK 社区网,www.pkssd.com是有关SSD最专业的社区网,提供全球有关SSD的最新热门资讯、各大厂商产品热门评测,最新前沿技术动态、有关企业级SSD选型以及最佳实践。


鲜花

握手

雷人

路过

鸡蛋
分享到

TylerDong

管理员
这个人很懒什么都没写!
  • 40

  • 文章
  • 0

  • 收听
  • 0

  • 听众

热门文章

SSD社区微信公众号

SSD社区微信公众号

扫我关注
返回顶部