基于 FPGA 的固态硬盘存储控制器设计--笔记

本文介绍了一个基于FPGA的PCIe SSD存储控制器设计,利用Xilinx PCIe IP核实现PCIe配置和TLP报文处理,结合NVMe控制模块进行数据读写。在PCIe 2.0 x4链路上,读速达到842MByte/s,写速达1.17GByte/s。设计涵盖了NVMe初始化、指令提交和处理机制,支持Identify、Set Feature等NVMe指令,无需CPU参与。
摘要由CSDN通过智能技术生成

本文完成了以 FPGA 为主控、无 CPU 的固态硬盘存储控制器设计,可实现FPGA 对 PCIe SSD 的直接数据读写控制。该存储控制器由 PCIe Root Complex、PCIe 控制逻辑和 NVMe 控制模块组成,其中 PCIe Root Complex 模块为 Xilinx公司的 IP 核,本文在其基础上完成了用于配置 PCIe 配置空间和发送 TLP 报文的相关控制逻辑,以实现 RC 和 EP 两端的数据通信;NVMe 控制模块为本文依据 NVMe 协议设计的核心控制模块,其主要实现了 NVMe 初始化、指令提交和处理机制以及 Admin 和 I/O 指令的发送控制等功能。

经过实验验证,各主要功能模块逻辑正确,存储控制器功能无误。在 PCIe链路状态为 2.0 x4 的条件下,读数据速度可达约 842MByte/s,写数据速度可达约 1.17GByte/s。

随着 PCIe(Peripheral Component Interconnect express)接口被成功应用于固态硬盘,其上层应用层协议——NVMe(Non-Volatile Memory express)协议也应运而生。基于 NVMe 协议的 PCIe SSD(Solid State Drives)兼具体积小、重量轻、有读写速度超高等优势,其商业化产品的出现也为实现高速大容量嵌入式存储系统提供了新的方向。本项目研究设计基于 FPGA 的 PCIe SSD 存储控制器,为实现基于 PCIe SSD 的高速大容量存储系统奠定基础。PCIe 总线就是一种采用端到端连接方式的高速差分总线,它由 PCI 总线发展而来。

PCIe 总线采用端到端的连接方式,在一条 PCIe 链路的两端只能各自连接一个设备。这两个设备互为数据的发送端和接收端,发送端和接收端均包含发送(TX)和接收(RX)逻辑。

 PCIe 总线的物理链路

 PCIe 总线作为处理器系统的内部总线,其主要作用是为了连接处理器系统中的外部设备。在大多数 PCIe 体系结构实现方案中,都使用 RC、Switch 和 PCIe-to-PCI 桥这些基本模块连接 PCIe 或 PCI 设备。在 PCIe 总线系统中,基于 PCIe总线的设备也被称为 Endpoint(EP)。

基于 PCIe 总线的系统结构

PCIe 设备,如 PCIe SSD、PCIe 网卡等可通过 RC 上的 PCIe 端口直接与 RC相连,且每一个 
PCIe 端口只能连接一个 EP。PCIe 端口可通过 Switch 进行链路扩展,它为 EP 提供了更多可连接的端口。Switch 中靠近 RC 

  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值