注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

白丁的个人空间 http://home.eeworld.com.cn/space-uid-346593.html [收藏] [复制] [分享] [RSS]

日志

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

已有 725 次阅读2017-9-27 21:30 |个人分类:存储管理

原文地址

借助赛灵思7 系列器件,这款基于PCI Express 的固态磁盘设计同时获得速度和性能提升。
以NAND 闪存存储器为基础的固态磁盘(SSD)技术与传统的机械驱动器存储系统相比, 吞吐量更高, 功耗更低。为此,SSD 使用量在过去十年迅速增加,从手持设备到笔记本、台式机,现在又进军企业级存储设备市场。企业级存储产业对基于串行高级技术附件(SATA)标准的SSD 的采用进一步加速了这一快速扩展势头。
但是,在SSD 制造商期望通过使用19nm 闪存存储器将新一代系统的性能和密度推上新的高度的时候,SATA并没有跟上。即便是最新的版本(SATA3.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))。CPU 子系统负责管理外设和执行SSD存取命令,而存储子系统则负责运用多通道NAND 控制器、纠错码(ECC)模块和平均读写模块处理SSD 扇区数据。这三个子系统共享带ECC 功能2GBDDR3 SDRAM。采用赛灵思存储器接口生成器(MIG) 工具很容易生成ECCDDR3 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 写入请求,响应主机的读取命令,将数据从本地存储器迁移到主机存储器。同样,对于主机的写入命令,SG-DMA 控制器初始化DMA 读取请求,将数据从主机存储器迁移到本地存储器中。图3 即是流程的图解。

AXI4 互联
AXI4 互联IP 将一个或多个AXI 存储器映射的速度更快的设备连接一个或多个存储器映射的从设备。AXI 接口符合ARM 制定的AMBA® AXI 第4 版规范,包括AXI4-Lite 控制寄存器接口子集。互联IP 仅用于存储器映射传输,不适用AXI4-Stream 传输。AXI 互联IP 可用作赛灵思嵌入式开发工具套件(EDK)中提供的pCORE, 或者用作赛灵思CORE Generator IP 目录的独立内核。
设计人员可从赛灵思AXI4 IP 支持的两种操作模式中选择。性能优化的纵横交换机(crossbar)模式采用共享地址多数据流(SAMD)纵横交换机架构,为读/ 写数据通道提供并行路径。而面积优化的共享访问模式则提供共享写数据地址路径、共享读数据地址路径和单条共享地址路径。这两种模式均为增量(INCR)突发提供长达256 位的突发长度以及32 位至1024 位的不同数据宽度。如有的话,每个通道还可支持USER 信号传播,可选择每个通道独立的USER信号宽度。
AXI4 互联在PCIe SG-DMA 和DDR3 存储器之间提供高性能互联。我们发现AXI4-Lite 共享总线是低速片上互联的理想解决方案,需要的逻辑资源极少。
平均读写技术
平均读写是存储介质厂商用于延长各类可擦除计算机存储设备使用寿命的设计技术,比如固态硬盘中使用的闪存存储器。在闪存存储器系统内使用的平均读写机制有几种,每种都对使用寿命有不同程度的强化。
不采用平均读写机制的闪存存储器存储系统如果向闪存写入数据,寿命会比较短。如不采用平均读写技术,闪存控制器必须永久性地将操作系统(OS)的逻辑地址分配给闪存存储器的物理地址。也就是说每次向之前已经写入的模块的写入数据都必须先读取、擦除、修改此前的数据,然后在相同一位置重新写入。这非常耗时,而且经常写入的位置会迅速磨损,而闪存上有的位置则完全没有使用。一旦部分模块寿终正寝,驱动器就不能再用。
第一种平均读写方法称之为“动态平均读写”。它使用一个映射将操作系统的逻辑模块地址(LBA)链接到物理闪存存储器地址。每次操作系统写入替换数据时,映射就会更新,标记原始的物理模块为无效数据,然后将一个新模块链接到这一映射条目。每次有数据模块重新写入到闪存存储器,就会写入到新地址。闪存存储器上没有数据更新的模块就一直不会产生更多的磨损。驱动器的使用寿命就可能会比不采用平均读写机制的驱动器长,但某些块虽然也处于活动状态,却没有得到利用。
另一种平均读写方法称为“静态平均读写”,也使用映射将LBA 链接到物理存储器地址。除了未发生变化的静态模块会定期移动,让其他数据访问这些利用率低的单元外,静态平均读写与动态平均读写工作原理相同。这种循环效应让SSD 能够一直用到大多数模块接近寿命终点。
图4 是在长期写入/ 擦除操作后采用和未采用平均读写技术的闪存页的情况。未采用平均读写技术的闪存页(黑色页面)已经被破坏,不能再记录任何数据,而有采用平均读写技术的闪存页所有页都还能够继续用于记录数据。

智能ECC 算法
SSD 系统设计的另一项关键组成部分就是纠错。有多种异常情况可能导致误码,进而影响数据完整性乃至系统本身的正确运行。为解决这些错误,我们的设计小组采用复杂的ECC 算法,而且这些算法针对我们在这些系统中使用的新型更小型的闪存进一步精细化。
我们在19nm NAND 闪存存储器上采用了一种称为“反随机数据错误记录”的ECC算法。该算法用于解决温度变化、噪声和存储单元可靠性造成的误码。另外,NAND 闪存的存储单元的擦除/ 编程寿命一般有限。误码率(BER)随擦除/ 编程操作的累积而增大,直到有限的寿命终止。SSD 的ECC 功能还需要这种算法检测每个单元的误码率,了解它们的使用寿命情况。设计人员可以设定特定的误码率阈值,提示寿命已到和确认替换模块。不过该阈值的优化也很关键。误码率阈值过低,会导致系统过早放弃可靠的单元,最终缩短SSD 的使用寿命。误码率阈值过高,则会造成数据丢失的风险,因为系统会试图向不可靠的单元写入数据。因此ECC 算法必须实现可靠性和寿命的最佳平衡。
19nm NAND 闪存存储密度较高,但可靠性较差。这就是为什么我们的设计采用高速高级纠错的原因。ECC 部分占35% 以上的设计资源,实现的并行计算能力能够以4GB 读取速度在一个1,024 位的扇区内纠正多达49 位误码。与上一代FPGA 相比, 新型28nmKintex-7 技术可将系统级性能提升达50%,容量提高两倍,总功耗减半。与Virtex-5 器件中相同的ECC 模块相比,Kintex-7 实现方案在保持成本不变的同时,将面积缩小5%,性能提升40%以上。
赛灵思Kintex-7 系列FPGA 是19nm闪存PCIe SSD 设计的理想选择。其PCIe 硬核、性能、容量、低功耗特性使其成为市场上最优秀的芯片产品。采用该器件,我们SSD 的读/ 写吞吐量可轻松达到2GBps 的水平。借助该器件,我们不仅能够为客户创造巨大的价值,而且我们的19nmNAND 闪存系统将得到巨大的发展潜力。

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-6-26 10:41 , Processed in 0.031164 second(s), 11 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2019 http://bbs.eeworld.com.cn/

返回顶部