0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Fidus Sidewinder-100集成PCIe NVMe 控制系统,有效应对FPGA硬件设计

YCqV_FPGA_EETre 来源:未知 作者:佚名 2017-10-23 11:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

背景

之前在一个ASCI开发项目中有小小接触过一些新思科技的一个NVMe控制器,代码量尚可,只是由于速度及其他原因的考虑,整个部分的设计其实有时候还是比较难以考量的,而且由于流片成本及IP购买成本的问题,当时就想像如果在一款FPGA中可以直接实现这样一款高性能的PCIe NVMe控制器或许会对整个性能的把握会更好一些,而下面的Fidus Sidewinder-100系统就是一个集成的PCIe NVMe 控制系统

Fidus Sidewinder-100 PCIe NVMe Storage Controller:

Fidus系统是基于Sidewinder-100 PCIe NVMe存储控制器设计实现的,而这个控制器在一个Xilinx Zynq UltraScale+ MPSoC ZU19EG 上实现,之所以选择这款芯片来实现有很多考量,不过最重要的是因为PCIe Gen3/4 能力:高速,且板卡的两个100Gbps QSFP 光纤网络槽可以实现防弹并行转换;另外还可以利用Xilinx可编程器件内部巨大的I/O灵活性来实现DDR SDRAM控制器,并驱动两个SFF-8643 Mini SAS连接器(用于片外SSDs等);并且,芯片上集成了六个ARM处理器核,可以提供强大的处理能力(四个64bitARM Cortex-A53 MPcore 处理器和两个32bit的ARM Cortex-R5 Mpcore处理器);Xilinx UltraScale架构还提供大量的片上可编程逻辑单元。正是由于Zynq UltraScale+ MPSoc系列用于这么多的features,才使得实现一个高性能NVMe 控制器成为可能并变得容易,正像Sidewinder-100系统一样,用户可以基于此板卡实现大量的各种类型的任何可以想到的硬件设计。

Sidewinder-100系统通过SCSI和SAS存储阵列获得了具有较强市场竞争力的性能优势,同时它还通过Fabrics技术实现了NVMe, 从而大大减少了存储传输时的延迟。从下图的板卡上可以看出,板卡上还集成了两个M.2连接器,可以用于连接NVMe SSD卡。此外,可以通过Zynq UltraScale+ MPSoC的PS(处理系统)和PL(可编程逻辑)部分分别连接到两个到DDR4 SO-DIMM端。这种分开连接实现了两种不同速率的DDR4 SO-DIMM,连接到PS上的DDR4 SO-DIMM操作速率为1866M每秒,而连接在PL部分的DDR4 SO-DIMM传输速率可以达到每秒2133M。

当然,正是利用了Sidewinder-100的这些优点才实现了一个强大的PCIe Gen4开发平台,如下图所示:

图1:Fidus Sidewinder-100 PCIe NVMe Storage Controller

不过,由于Fidus其实是一个设计house,在最开始,也考虑到Sidewinder-100 PCIe NVMe存储控制器的应用,它还是可以用于实现一些通用目标设计的。当然了,最重要的是此板卡为实现任何高性能PCIe Gen3或Gen4开发设计提供了强大的平台,此外,在利用此平台进行开发时遇到任何问题,都可以通过Fidus获得一些帮助。(特别提示:Siderwinder-100 PCIe NVMe存储控制器的PCIe电源和回路适配器是在板卡的背面):

图2:Fidus PCIe Power and Loopback Adapter

另外,考虑到Gen4母板还是比较缺乏的,所以当你没有一个母板的时候,刚好可以通过这个连接口插一个PCIe卡到板卡上。而且这个适配器看起来它应该是比一个能量紧缺的母板的功耗要小很多,而且只需要将这个适配器看作一个简单的DC电源连接器来操作就好。

总结

随着Xilinx FPGA技术的不断增强,之前一些设计难题或者功耗难题已经在慢慢的解决,而随着这些困难的消除,FPGA的设计领域也越来越广泛,相信在未来,Xilinx 的FPGA会给我们带来更多惊喜。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22503

    浏览量

    639242
  • fidus
    +关注

    关注

    0

    文章

    1

    浏览量

    1539

原文标题:Sidewinder-100 PCIe NVMe Controller的秘密武器

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析MCF5271集成微处理器硬件特性与设计要点

    深入解析MCF5271集成微处理器硬件特性与设计要点 在电子工程领域,微处理器是众多系统的核心组件,其性能和特性直接影响着整个系统的表现。今天我们来深入探讨NXP Freescale
    的头像 发表于 04-09 16:30 202次阅读

    Xilinx高性能NVMe Host控制器IP+PCIe 3.0软核控制器IP,纯逻辑实现,AXI4和AXI4-Stream DMA接口,支持PCIe 3.0和4.0

    CPU,NVMe AXI4 Host Controller IP自动执行对PCIe SSD的PCIe设备枚举和配置、NVMe控制器识别和初始
    发表于 11-14 22:40

    NVMe高速传输之摆脱XDMA设计43:如何上板验证?

    Virtex-7 FPGA Gen3 PCIE 集成块和 UltraScale+ Gen4 PCIE集成块, 为证明 NoP 逻辑加速引擎
    发表于 10-30 18:10

    NVMe高速传输之摆脱XDMA设计33:初始化功能验证与分析

    PCIe 初始化状态, 3 对应 NVMe 初始化状态, 4 对应初始化错误状态, 5 对应初始化完成状态。 图1 系统初始化控制和状态转移仿真波形 复位释放后, 在延时 20ms
    发表于 10-08 08:02

    NVMe高速传输之摆脱XDMA设计23:UVM验证平台

    数据总线;NVMe系统模型(NVMe Subsystem Model)是自主设计的用于模拟 PCIe 链路设备和 NVMe 设备的功能
    发表于 08-26 09:49

    NVMe高速传输之摆脱XDMA设计17:PCIe加速模块设计

    内部信号做进一步处理,如果需要应答,将应答事务通过axis完成方完成接口(axis_cc)发送给PCIE硬核。图1 PCIe加速模块系统框图 PCIe加速模块在
    发表于 08-07 18:57

    NVMe高速传输之摆脱XDMA设计之12:PCIe请求模块设计(上)

    发送给下游设备,下游设备的反馈通过axis_rc接口以CPL或CPLD的形式传回。门铃写请求由NVMe控制模块发起,请求以PCIe存储器写请求TLP的格式从axis_rq接口交由PCIE
    发表于 08-03 22:00

    NVMe高速传输之摆脱XDMA设计18:UVM验证平台

    数据总线;NVMe系统模型(NVMe Subsystem Model)是自主设计的用于模拟 PCIe 链路设备和 NVMe 设备的功能
    发表于 07-31 16:39

    NVMe高速传输之摆脱XDMA设计之十:NVMe初始化状态机设计

    在完成PCIe配置初始化后,PCIe总线域的地址空间都分配完毕,可以执行传出存储读写TLP,系统初始化进入NVMe配置初始化。NVMe配置初
    发表于 07-05 22:03

    NVMe高速传输之摆脱XDMA设计之七:系统初始化

    路训练由 PCIE 集成块实现, 初始化模块根据链路训练完成信号和初始化启动信号来执行 PCIe 初始化和NVMe 初始化。 图1 系统初始
    发表于 07-04 09:14

    NVMe IP高速传输却不依赖XDMA设计之三:系统架构

    。 在该IP内部, 根据功能划分为系统控制模块、 初始化模块、 NVMe 控制模块、 PCIe 加速模块、 PCIE
    的头像 发表于 06-29 17:46 1156次阅读
    <b class='flag-5'>NVMe</b> IP高速传输却不依赖XDMA设计之三:<b class='flag-5'>系统</b>架构

    NVMe IP高速传输却不依赖便利的XDMA设计之三:系统架构

    更好地满足特定的应用需求。 初始化模块负责控制系统的初始化流程, 其中包括 PCIe 初始化和 NVMe 初始化两个主要步骤。 在系统上电复位后, 首先由
    发表于 06-29 17:42

    NVMe协议研究扫盲

    电子科技大学的王琳琳基于Zynq完成了NVMe SSD的读写控制,通过在的PS端运行Linux系统,在PL端通过PCIe硬核IP连接NVMe
    发表于 06-02 23:28

    NVMe协议简介2

    NVMe指令提交与完成机制 NVMe指令提交与完成机制是NVMe协议的核心,该机制制定了NVMe指令的交互流程和处理步骤。在基于PCIe
    发表于 05-15 23:15

    NVMe协议简要分析

    和生产者之间的速率有关。 2NVMe分层结构 NVMe协议栈结构分为应用层和传输层两个层次。在应用层中实现NVMe命令生成、队列管理和流程控制,而传输层则借助
    发表于 05-15 00:34