昆明网站制作维护,wordpress添加自动关键词内链,上海做网站比较有名的公司,淘宝网站建设违规吗文章目录 1、背景2、基础理论3、设计方案3.1、FPGA设计方案3.1.1、NVMe控制器实现3.1.2、NVMe控制器实现 3.2 驱动软件设计方案3.2.1 读写NVMe磁盘软件驱动3.2.2 NVMe磁盘驱动设计3.2.3 标准EXT4文件系统设计 3.3 上位机控制软件设计方案 4、测试结果4.1 硬件测试平台说明4.2 测… 文章目录 1、背景2、基础理论3、设计方案3.1、FPGA设计方案3.1.1、NVMe控制器实现3.1.2、NVMe控制器实现 3.2 驱动软件设计方案3.2.1 读写NVMe磁盘软件驱动3.2.2 NVMe磁盘驱动设计3.2.3 标准EXT4文件系统设计 3.3 上位机控制软件设计方案 4、测试结果4.1 硬件测试平台说明4.2 测试结果说明4.2 .1、基于PCIe Gen2 软核裸机测试4.2.2基于PCIe Gen3 软核裸机测试4.2.3基于PCIe Gen2软核带ext4文件系统测试 5、总结 1、背景 针对机载或其他对体积空间、成本有高要求的存储场景使用单片ZYNQ7045/7100复旦微FMQL45T900/FMQL100TAI FPGA实现数据接口、存储、文件系统管理、导入导出等功能。
实现规格 12盘可组成RAID阵列双盘最大能实现8TB容量 2实现EXT4标准文件系统 3EXT4文件系统下2GB/s的写、读速度自定义文件系统4GB/s的写、读速度。 4能支持万兆网网盘导出、千兆网盘导出、FTP导出
2、基础理论 ZYNQ的相关使用请参见Xilinx的官方手册/复旦微的官方手册。NVMe的实现原理需要参见NVMe的具体协议。
NVMe协议下载链接 NVMe协议下载
3、设计方案
3.1、FPGA设计方案
3.1.1、NVMe控制器实现 NVME控制器主要由PCIE接口适配器、AXI交换桥、PRP计算模块以及命令/文件系统通道模块构成。 PCIE接口适配器通过逻辑实现AXI的Master接口以及Slave接口到PCIE的接口转换。由AXI的Master接口实现盘主动读写内存的功能由AXI的Slave接口实现PS对盘的SQ/CQ队列的读写。 PRP计算模块实现解析盘请求的PRP2地址计算、传送内存页地址给盘从而实现大于4KB的读写请求的内存地址传送功能。 命令通过通过解析PS传送过来的SQ指令填充RPR1、PRP2地址使数据通道始终指向PL DDR以及文件系统数据始终指向PS DDR文件系统通道由盘主动读写PS DDR实现。数据通道通过盘解析SQ指令通过AXI桥主动访问PL DDR实现。
3.1.2、NVMe控制器实现 PCIE控制器主要完成PCIE协议传输层以及数据链路层协议。组TLP包发送给PHY控制器对PHY层数据解析成TLP、LCRC、Sequence number等字段实现ACK/NCK协议保证报文的可靠性流控制管理根据链路层报文更新credit值。 PHY控制器主要实现PMA/PCS层协议实现高速串行总线的串并转换以及8B/10B编码等功能。 接口适配功能将TL层自定义接口转换成标准的AXI Stream总线接口。
3.2 驱动软件设计方案
3.2.1 读写NVMe磁盘软件驱动 SOC处理器PL和PS协同工作共同完成数据高速实时记录、传输、存储、加卸载和文件管理等功能。 SOC内部采用异构的架构PL完成带宽要求高、实时性要求高的底层协议转换处理如以太网UDP协议处理、NVMe协议处理等PS完成数据量比较小的处理如文件系统管理、以太网L3以上的相关处理等。同时PS还负责单板管理、版本在线升级、温度、电源电压等健康检测。 FPGA内部实现接口处理包解析处理对于要记录和加载的数据经过包解析后会送到核心交换模块进行存储接口的调配以及和PS的文件系统管理的交互。 软件驱动方案如下
3.2.2 NVMe磁盘驱动设计 Linux应用层接受相关读写NVMe磁盘指令通过PCIe硬核驱动将控制命令队列发送给自定义NVMe磁盘驱动自定义驱动程序根据数据类型不同然后将队列存放于PS端的DDR中并通过门铃告知NVMe磁盘。磁盘接收到门铃通知后去相应地址读取指令并解码然后执行相关读写流程。
3.2.3 标准EXT4文件系统设计 Linux系统应用层接受读写磁盘命令。触发系统调用函数进程由用户态转换到内核态文件系统通过目录项检索缓存如果没有则创建文件。通过虚拟文件系统接口调用具体文件系统读写函数此处为ext4文件系统。经过文件系统的管理创建磁盘管理的IO请求此处IO请求分为文件系统管理IO请求与原始数据读写请求。此时根据数据类型的不同如果为原始数据读写请求则将数据地址路由至系统指定缓存地址即可否则原地址不变。将修改后的IO请求发送给磁盘驱动磁盘解码命令并执行相关IO请求。 Linux ext4文件系统读写控制流程如下
3.3 上位机控制软件设计方案
软件界面参考如图所示
4、测试结果
4.1 硬件测试平台说明
使用XILINX的ZYNQ7100作为测试核心板如下图所示
整体硬件测试平台如下图
4.2 测试结果说明
4.2 .1、基于PCIe Gen2 软核裸机测试
不带文件系统使用裸跑PCIe使用两路Gen2 x4 的情况下写可以达到 2.4GB/s 读可以达到 2.8GB/s
4.2.2基于PCIe Gen3 软核裸机测试
不带文件系统使用裸跑PCIe使用两路Gen3 x4 的情况下写可以达到 4.2GB/s 读可以达到 3.5GB/s
4.2.3基于PCIe Gen2软核带ext4文件系统测试
标准的EXT4文件系统PCIe使用两路Gen2 x4 的情况下写可以达到 2GB/s 读可以达到 2.2GB/s
5、总结
按照本文方式处理使用ZYNQ标准的文件系统下可以达到2GB/s的存储带宽。该方案的文件系统采用标准的Linux内核系统移植性好成本低运行也稳定。通过PCIE核的更换PCIe核的增加也能够适应不同的存储带宽核存储容量的需求。
文章引用: https://blog.csdn.net/weixin_42549375/article/details/128168729
更多解决方案,请查看官网 http://www.levelchip.com/
欢迎各位加入FPGA技术群聊,加群方式添加管理员weixin请大家遵守群公告一起交流 FPGA相关技术方案 管理人员联系二维码: