6
固态磁盘领域的出色表现 借助赛灵思 7 系列器件, 这款基于 PCI Express 固态磁盘设计同时获得速度 和性能提升。 利用 Kintex-7 FPGA 设计 19nm 闪存 PCIe SSD 作者:Yilei Wang Memblaze(中国)公司高级硬件工程师 [email protected] Xiangfeng Lu Memblaze(中国)公司首席技术官 [email protected] 22 赛灵思中国通讯 45 2012 年秋季刊

利用Kintex-7 FPGA设计19nm闪存PCIe SSD

Embed Size (px)

DESCRIPTION

借助赛灵思7 系列器件,这款基于PCI Express 的固态磁盘设计同时获得速度和性能提升。

Citation preview

Page 1: 利用Kintex-7 FPGA设计19nm闪存PCIe SSD

22 赛灵思中国通讯  45 期 2012 年秋季刊

固态磁盘领域的出色表现

固态磁盘领域的出色表现

借助赛灵思 7 系列器件,这款基于 PCI Express 的固态磁盘设计同时获得速度和性能提升。

利用 Kintex-7 FPGA设计 19nm 闪存PCIe SSD作者:Yilei WangMemblaze(中国)公司高级硬件工程师

[email protected]

Xiangfeng LuMemblaze(中国)公司首席技术官

[email protected]

22 赛灵思中国通讯  45 期 2012 年秋季刊

Page 2: 利用Kintex-7 FPGA设计19nm闪存PCIe SSD

2012 年秋季刊 赛灵思中国通讯  45 期 23

固态磁盘领域的出色表现

以NAND 闪存存储器为基础

的固态磁盘(SSD)技术

与传统的机械驱动器存储

系统相比,吞吐量更高,功耗更低。

为此,SSD 使用量在过去十年迅速

增加,从手持设备到笔记本、台式机,

现在又进军企业级存储设备市场。

企业级存储产业对基于串行高级技

术附件(SATA)标准的 SSD 的采

用进一步加速了这一快速扩展势头。

但是,在 SSD 制造商期望通过

使用 19nm 闪存存储器将新一代系

统的性能和密度推上新的高度的时

候,SATA 并没有跟上。即便是最新

的版本(SATA 3.0),6Gbps 物理

接口也难以满足 SSD NAND 闪存阵

列的最高吞吐量,因此存在性能利

用不足的问题。

为突破接口瓶颈,基于 PCI

Express® 的 SSD 正在给市场带来

重大影响。PCIe® 是业界标准本地

总 线, 性 能 和 扩 展 能 力 均 优 于

SATA。它采用多信道高速串行链路,

可支持 1 至 16 个信道,每个信道的

运 行 速 率 高 达 8Gbps(Gen1 为

2.5Gbps,Gen2 为 5Gbps,Gen3

为 8Gbps)。SSD 的 PCIe 接口可支

持数 GB 的吞吐量,并随着 NAND

闪存技术的发展为可预见的将来预

留更多裕量。

但用 19nm 闪存开发基于 PCIe

的 SSD 系统一直面临一系列挑战。

与 SATA 相比,PCIe 接口要求更多

高速串行链路和更复杂的互联。对

吞吐量需求则要求 PCIe 直接存储器

存取(DMA)以千兆字节带宽运行。

另外,采用 19nm 工艺,闪存的可

靠性或者更具体地说“平均读写”

(NAND 在遇到错误之前能读取或

者写入的次数)也是一个日益严峻

的问题。采用 19nm 工艺,制造商

必须以比以往更快的速度完成平均

读写和纠错。

赛灵思 KintexTM-7 FPGA 以不

到 前 一 代 FPGA 一 半 的 成 本 为

FPGA 设立了新的高性能基准。

Kintex-7 系列是赛灵思采用台积电

(TSMC)高性能低功耗(HPL)

28nm 工艺技术生产的四大产品线之

一,旨在实现最大能效,与前代产

品相比,性价比提高了两倍,而功

耗降低了 50%。Kintex-7 FPGA 采

用高密度逻辑、高性能收发器、存

储器、DSP,以及灵活混合信号技术,

所有这一切能让系统级性能和集成

度迈上新高。这些功能能让设计以

批量价格不断实现创新和差异化。

由此,赛灵思 Kintex-7 系列 FPGA

是 19nm 闪存 PCIe SSD 控制器的

理想选择。

图 1 所示的是 Memblaze SSD

控制器架构,由三个以高速 AXI4 总

线 相 连 的 子 系 统 组 成。PCIe

SG-DMA 子系统包含 Kintex FPGA

硬核,负责在主机和 SSD 数据缓存

之间分散和采集数据(SG 代表分散

(Scatter) 和 采 集(Gather))。

PCIe Gen 2 x 8

7 PCIe

TLP

DMA

TLP

DMA

TAG

DMA

PCIe SG-DMA

Kintex-7 325 T

AXI 4

AXI 4 Lite

9 x 2 GbitDDR3

32-MB XOR

MIG DDR3

MicroBlaze 0

MicroBlaze 1

BRAMs

QSPI IIcUART RS-232

CPU

ECC

ECC

19 nm 19 nm

图 1- 针对 19nm NAND 闪存 PCIe SSD 的 Kintex-7 SoC 解决方案由三个子系统组成:CPU、存储和 PCIe SG-DMA

Page 3: 利用Kintex-7 FPGA设计19nm闪存PCIe SSD

24 赛灵思中国通讯  45 期 2012 年秋季刊

固态磁盘领域的出色表现

CPU 子系统负责管理外设和执行

SSD 存取命令,而存储子系统则负

责运用多通道 NAND 控制器、纠错

码(ECC)模块和平均读写模块处理

SSD 扇区数据。这三个子系统共享

带 ECC 功能 2GB DDR3 SDRAM。

采用赛灵思存储器接口生成器

(MIG) 工 具 很 容 易 生 成 ECC

DDR3 SDRAM 控制器。

在我们的设计中,使用 7 系列

PCIe 硬核实现物理转 TLP 层,让设

计能够以最低的时延发挥高性能

PCIe 端点的功能。支持 ARM® AXI4

互联的新型嵌入式 MicroBlaze® 核

可彻底消除片上总线的瓶颈。DDR

硬核为磁盘高速缓存提供 51.2Gbps

ECC 解决方案。同时,使用低功耗

逻辑资源能够方便地运行高性能平

均读写和智能 ECC 算法。另外,丰

富的高性能 I/O 资源为 19nm NAND

闪存阵列的互联提供了方便。

PCI EXPRESS SG-DMA

我们设计的 PCIe 接口要求用一个快

速 DMA 控制器实现主机和本地

AXI4 总线间的高速通信。SSD 闪存

阵列的吞吐量可高达 2.5Gbps。为

简化 PCIe 接口的设计,为闪存芯片

的发展提供更大的裕量,我们选择

使用8信道PCIe Gen2/Gen3架构。

PCIe 端点在物理层、数据链路

层和事务处理层中有大量复杂的协

议需要处理。幸运的是在赛灵思 7

系列 FPGA 中设计 PCIe SG-DMA

控制器速度既快又方便。赛灵思已

经把 PCIe 硬核实现在器件的架构

中,用于处理全部的 PCIe 操作。这

样设计小组就可以集中精力设计

SG-DMA 操作本身的功能。PCIe 解

决方案的集成模块可支持单通道、

双通道、四通道和八通道端点配置,

最高速度达 5Gbps(Gen2),符合

PCIe 基本规范 2.1 修订版。表 1 是

7 系列 FPGA 的 PCI 集成模块的配

置。该核可配置为 Gen1/Gen2,最

多可支持 8 个信道,从而可提供高

达 40Gbps 的带宽。

我们使用 CORE GeneratorTM

工具来配置和生成 PCIe 端点 IP。该

工具包括用户指南、源代码、仿真

代码和设计范例,可帮助我们迅速

发挥该核的作用,实现要求的速度。

图 2 显示了 PCIe 硬核的顶层功能模

块和接口。

SG-DMA 核的主要功能是处理

来自主机的TLP数据包并做出响应。

SG-DMA 用作对主机存储器的 PCIe

主控访问,在主机和本地存储器之

间传输数据。主机向 DMA 控制器发

送命令,控制 DMA 访问。该命令代

码嵌入在特定的主机 TLP 寄存器写

操作的数据中。SG-DMA 控制器初

始化 SG-DMA 写入请求,响应主机

的读取命令,将数据从本地存储器

LogiCORE IP 7 FPGA PCIe

PCI Express 7

FPGA (PCIE_2_1)

PCIExpressPCI Express

(PCI_EXP)

(SYS)

Block RAM Block RAM

AX14-Stream

(PL)

(CFG)

(DRP)

图 2 - PCI Express 硬核顶层的功能模块与接口

Page 4: 利用Kintex-7 FPGA设计19nm闪存PCIe SSD

2012 年秋季刊 赛灵思中国通讯  45 期 25

固态磁盘领域的出色表现

设计人员可从赛灵思 AXI4

IP 支持的两种操作模式中选择。

性 能 优 化 的 纵 横 交 换 机

(crossbar)模式采用共享地址

多数据流(SAMD)纵横交换机

架构,为读 / 写数据通道提供并

行路径。而面积优化的共享访问

模式则提供共享写数据地址路

径、共享读数据地址路径和单条

个或多个存储器映射的从设备。AXI

接口符合 ARM 制定的 AMBA® AXI

第 4 版规范,包括 AXI4-Lite 控制寄

存器接口子集。互联 IP 仅用于存储

器映射传输,不适用 AXI4-Stream

传输。AXI 互联 IP 可用作赛灵思嵌

入式开发工具套件(EDK)中提供

的 pCORE,或者用作赛灵思 CORE

Generator IP 目录的独立内核。

迁移到主机存储器。同样,对于主

机的写入命令,SG-DMA 控制器初

始化 DMA 读取请求,将数据从主机

存储器迁移到本地存储器中。图 3

即是流程的图解。

AXI4 互联

AXI4 互联 IP 将一个或多个 AXI 存

储器映射的速度更快的设备连接一

TLP TLP

DMA

DMA

TLP TLPDMA

TLP

TLP

TLP

PCIe

*

Artix-7 Kintex-7 Virtex-7 T Virtex-7 XT Virtex-7 HT

Gen2 Gen2 Gen2 Gen3 Gen3

x4 x8 x8 x8 x8

1 1 3-4 2-4 1-3

5 5 8 8 8 (Gbps)

*

表 1 - 7 系列 FPGA 的 PCI Express 集成模块

图 3 - SG-DMA控制器工作流程

Page 5: 利用Kintex-7 FPGA设计19nm闪存PCIe SSD

26 赛灵思中国通讯  45 期 2012 年秋季刊

固态磁盘领域的出色表现

每种都对使用寿命有不同程度的强

化。

不采用平均读写机制的闪存存

储器存储系统如果向闪存写入数据,

寿命会比较短。如不采用平均读写

技术,闪存控制器必须永久性地将

操作系统(OS)的逻辑地址分配给

闪存存储器的物理地址。也就是说

每次向之前已经写入的模块的写入

数据都必须先读取、擦除、修改此

前的数据,然后在相同一位置重新

写入。这非常耗时,而且经常写入

的位置会迅速磨损,而闪存上有的

位置则完全没有使用。一旦部分模

块寿终正寝,驱动器就不能再用。

第一种平均读写方法称之为“动

态平均读写”。它使用一个映射将

操作系统的逻辑模块地址(LBA)链

接到物理闪存存储器地址。每次操

作系统写入替换数据时,映射就会

更新,标记原始的物理模块为无效

数据,然后将一个新模块链接到这

一映射条目。每次有数据模块重新

写入到闪存存储器,就会写入到新

地址。闪存存储器上没有数据更新

的模块就一直不会产生更多的磨损。

驱动器的使用寿命就可能会比不采

用平均读写机制的驱动器长,但某

些块虽然也处于活动状态,却没有

得到利用。

另一种平均读写方法称为“静

态平均读写”,也使用映射将 LBA

链接到物理存储器地址。除了未发

生变化的静态模块会定期移动,让

其他数据访问这些利用率低的单元

外,静态平均读写与动态平均读写

工作原理相同。这种循环效应让

SSD 能够一直用到大多数模块接近

寿命终点。

图 4 是在长期写入 / 擦除操作后

采用和未采用平均读写技术的闪存

页的情况。未采用平均读写技术的

闪存页(黑色页面)已经被破坏,

不能再记录任何数据,而有采用平

均读写技术的闪存页所有页都还能

够继续用于记录数据。

智能 ECC 算法

SSD 系统设计的另一项关键组成部

分就是纠错。有多种异常情况可能

导致误码,进而影响数据完整性乃

至系统本身的正确运行。为解决这

些错误,我们的设计小组采用复杂

的 ECC 算法,而且这些算法针对我

们在这些系统中使用的新型更小型

的闪存进一步精细化。

共享地址路径。这两种模式均为增

量(INCR)突发提供长达 256 位的

突发长度以及 32 位至 1024 位的不

同数据宽度。如有的话,每个通道

还可支持 USER 信号传播,可选择

每个通道独立的 USER 信号宽度。

AXI4 互联在 PCIe SG-DMA 和

DDR3存储器之间提供高性能互联。

我们发现 AXI4-Lite 共享总线是低速

片上互联的理想解决方案,需要的

逻辑资源极少。

平均读写技术

平均读写是存储介质厂商用于延长

各类可擦除计算机存储设备使用寿

命的设计技术,比如固态硬盘中使

用的闪存存储器。在闪存存储器系

统内使用的平均读写机制有几种,

图 4 - 采用和未采用平均读写的闪存页

Page 6: 利用Kintex-7 FPGA设计19nm闪存PCIe SSD

2012 年秋季刊 赛灵思中国通讯  45 期 27

固态磁盘领域的出色表现

的单元,最终缩短 SSD 的使用寿命。

误码率阈值过高,则会造成数据丢

失的风险,因为系统会试图向不可

靠的单元写入数据。因此 ECC 算法

必须实现可靠性和寿命的最佳平衡。

19nm NAND 闪存存储密度较

高,但可靠性较差。这就是为什么

我们的设计采用高速高级纠错的原

因。ECC 部分占 35% 以上的设计资

源,实现的并行计算能力能够以

4GB 读取速度在一个 1,024 位的扇

区内纠正多达 49 位误码。与上一代

FPGA 相比,新型 28nm Kintex-7

技术可将系统级性能提升达 50%,

容量提高两倍,总功耗减半。与

我们在 19nm NAND 闪存存储

器上采用了一种称为“反随机数据

错误记录”的 ECC 算法。该算法用

于解决温度变化、噪声和存储单元

可靠性造成的误码。另外,NAND

闪存的存储单元的擦除 / 编程寿命一

般有限。误码率(BER)随擦除 / 编

程操作的累积而增大,直到有限的

寿命终止。SSD 的 ECC 功能还需要

这种算法检测每个单元的误码率,

了解它们的使用寿命情况。设计人

员可以设定特定的误码率阈值,提

示寿命已到和确认替换模块。不过

该阈值的优化也很关键。误码率阈

值过低,会导致系统过早放弃可靠

Virtex-5 器件中相同的 ECC 模块相

比,Kintex-7 实现方案在保持成本不

变的同时,将面积缩小 5%,性能提

升 40% 以上。

赛灵思 Kintex-7 系列 FPGA 是

19nm 闪存 PCIe SSD 设计的理想选

择。其 PCIe 硬核、性能、容量、低

功耗特性使其成为市场上最优秀的

芯片产品。采用该器件,我们 SSD

的读 / 写吞吐量可轻松达到 2GBps

的水平。借助该器件,我们不仅能

够为客户创造巨大的价值,而且我

们的 19nmNAND 闪存系统将得到巨

大的发展潜力。