FPGA 690T NVME高速存储设计

        高速存储设计会有各种需求的考虑,那么对应的方案也不完全相同,这篇文章出一期纯FPGA实现的高速存储方案。用纯fpga实现高速存储板卡有易国产化,功耗低和体积小等特点,缺点就是灵活性不是很强,实现标准ext4和nfs文件系统会非常难。

        690T高速存储硬件设计框图如下,switch下面挂载6张ssd,一路x8 到fpga host,1路x8到fpga ep,pcie端采用nvme ip实现ssd盘的读写,40Gbps以太网数据,以及多通道的srio和GTX数据,整个架构中最核心的就是nvme ip,nvme ip扮演了大脑的角色,负责枚举ssd,分配地址,以及nvme协议处理等。

        该方案可移植性很强,如果需要更高的速度,仅仅需要将pcie switch下面挂接更多的ssd,如果port不够可以挂更多的pcie  switch,因为switch 与fpga之间有两路pcie3.0 x8,那么就最大的下盘速率大约有16GB/s,具体跑多少速度挂载多少ssd,需要结合成功案例经验在做决定。

        在选型Pcie 核690t有很大的优势,支持多个pcie硬核,所以不用担心没得软核啦,比如下图就是xdma作为ep的配置。

 

        关于nvme ip资源消耗情况,目前高速存储使用的资源如下(外部接口没有全部使用),其实代码中有个细节可以优化很多bram接口,因为前期设计考虑冗余了,导致资源消耗过多。

在690t中实现tcp协议并且与上位机通讯。

nvme  ip支持如下IO命令

管理命令:

identify

set feature

abort cmd

creat sq cmd

creat cq cmd

fortmat nvm cmd

IO命令

read/write cmd

flush cache cmd   ###异常掉电可以下发该命令告知SSD将缓存中的数据program到nand flash

trim cmd    #该命令在格式化使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机的错误计算(十六)

摘要 计算机的错误计算(十五)中历史事件给我们的启示或警示。 计算机的错误计算(十五)介绍了历史上发生的一些事件。从这些事件我们可以得到一些启示或警示。 若不是油气平台的沉没,设计者会得出精度低了吗&#x…

信息盲盒系统设计

信息盲盒系统是一种结合了随机性和趣味性的信息传递和接收方式,类似于实体盲盒的概念,但在数字领域应用。这种系统通常用于增加用户参与度、提升用户体验或作为营销策略的一部分。设计一个信息盲盒系统需要考虑以下几个关键要素: 1. 定义目标…

数据仓库建模基础理论-01-为什么需要数据建模?

一、什么是数据模型? 数据模型是数据库的基础结构,用于描述和组织数据的方式。 它不仅是数据库的底层结构,还是一个概念性工具,帮助理解数据的含义和关系。 数据模型包括数据本身、数据之间的关系、数据的语义(含义和…

C++ | Leetcode C++题解之第206题反转链表

题目: 题解: class Solution { public:ListNode* reverseList(ListNode* head) {if (!head || !head->next) {return head;}ListNode* newHead reverseList(head->next);head->next->next head;head->next nullptr;return newHead;} …

在Ubuntu 16.04上安装和配置GitLab的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 GitLab CE(Community Edition)是一个开源应用程序,主要用于托管 Git 仓库,并提供额…

AI在创造还是毁掉音乐之论文

AI在创造还是毁掉音乐? 简介:最近一个月,轮番上线的音乐大模型,一举将素人生产音乐的门槛降到了最低,并掀起了音乐圈会不会被AI彻底颠覆的讨论。短暂的兴奋后,AI产品的版权归属于谁,创意产业要…

一秒记单词:音通义通,一秒牢记

一秒记单词,从小学到高中,一秒牢记 一、小学生记单词,快速突破 1.1 好的开始,是成功的一半 sun n.太阳 【通】尚 moon n.月亮 【通】母恩 mother n.母亲,妈 【通】妈汁 sea n.海,大海 【通】细 sand …

【MySQL基础篇】SQL指令:DQL及DCL

1、DQL DQL - 介绍 DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据表中的记录。(在MySQL中应用是最为广泛的) 查询关键字:SELECT DQL - 语法 SELECT 字段列表 FROM 表名列表 WHER…

【人工智能学习之图像操作(六)】

【人工智能学习之图像操作(六)】 Hough变换直线检测圆检测 图像分割 Hough变换 在图像处理中,霍夫变换用来检测任意能够用数学公式表达的形状,即使这个形状被破坏或者有点扭曲 直线检测 import cv2 import numpy as np image …

利用微信开放标签<wx-open-launch-weapp>在H5中跳转微信小程序报错完美的解决方案

一、报错&#xff1a; [WXTAG] [JSCORE] The slot <template> or <script type"text/wxtag-template"> of <wx-open-launch-weapp> is missing 二、源码 官方源代码如下&#xff0c;<script type"text/wxtag-template"></sc…

美团外卖搜索基于Elasticsearch的优化实践--图文解析

美团外卖搜索基于Elasticsearch的优化实践–图文解析 前言 美团在外卖搜索业务场景中大规模地使用了 Elasticsearch 作为底层检索引擎&#xff0c;随着业务量越来越大&#xff0c;检索速度变慢了&#xff0c;CPU快累趴了&#xff0c;所以要进行优化。经过检测&#xff0c;发现…

gcop:简化 Git 提交流程的高效助手 | 一键生成 commit message

&#x1f496; 大家好&#xff0c;我是Zeeland。Tags: 大模型创业、LangChain Top Contributor、算法工程师、Promptulate founder、Python开发者。&#x1f4e3; 个人说明书&#xff1a;Zeeland&#x1f4e3; 个人网站&#xff1a;https://me.zeeland.cn/&#x1f4da; Github…

[SAP ABAP] 数据字典

ABAP数据字典是定义和管理数据库对象的工具 系统的所有全局数据类型以及数据库表结构等都需要在数据字典中创建和维护(数据字典中的对象对所有ABAP程序都是全局的) 通过数据字典&#xff0c;我们可以把数据库对象管理好&#xff0c;后续才能顺利的进行功能开发&#xff0c;SA…

华为面试题及答案——大数据

(1)namenode内存满了,如何进行扩容,调什么参数。 1. 增加 NameNode 的内存 在 hadoop-env.sh 文件中,可以增加 JVM 分配给 NameNode 的内存。通常是在 HADOOP_NAMENODE_OPTS 中增加 -Xmx 参数来增加最大堆内存。 export HADOOP_NAMENODE_OPTS="-Xmx8g -Xms4g ${HA…

集合,Collection接口

可动态保存任意多个对象&#xff0c;使用比较方便 提供了一系列方便操作对象的方法&#xff1a;add&#xff0c;remove&#xff0c;set&#xff0c;get等 使用集合添加删除新元素&#xff0c;代码简洁明了 单列集合 多列集合 Collection接口 常用方法 List list new Arra…

设计模式详解(一)——策略模式

策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型的设计模式&#xff0c;它允许你定义一系列算法&#xff0c;然后将它们封装起来&#xff0c;使它们可以相互替换。这样做的好处是&#xff0c;你可以动态地选择要使用的算法&#xff0c;而不必在运行时进行检查或…

多媒体基础

笔者按&#xff1a; 昨日复习的信息网络安全约莫是挂了&#xff0c;常言道&#xff1a;知耻而后勇。诚如斯言 于是决心多媒体是不能再挂了&#xff0c;不然直接变成xxx之流&#xff0c;自增笑耳 语雀链接&#xff1a;多媒体基础 一.多媒体计算机概述 媒体&#xff1a;承载信息…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-21多输入多输出通道

21多输入多输出通道 import torch from d2l import torch as d2ldef corr2d(X, K):"""计算二维互相关运算"""h, w K.shapeY torch.zeros((X.shape[0] - h 1, X.shape[1] - w 1))for i in range(Y.shape[0]):for j in range(Y.shape[1]):Y[i,…

go语言DAY7 字典Map 指针 结构体 函数

Go中Map底层原理剖析_go map底层实现-CSDN博客 目录 Map 键值对key,value 注意&#xff1a; map唯一确定的key值通过哈希运算得出哈希值 一、 map的声明及初始化&#xff1a; 二、 map的增删改查操作&#xff1a; 三、 map的赋值操作与切片对比&#xff1a; 四、 通用所有…

[leetcode hot 150]第一百二十二题,买卖股票的最佳时机Ⅱ

题目&#xff1a; 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能获得的 最大…