基于FPGA的存储控制器及其相关系统设计技术研究--笔记

本文完成了基于FPGA的大容量存储模块硬件电路的设计,同时探讨了如何利用FPGA丰富的逻揖资源来实现NVMe协议,并且将数据RAID 0方式实时写入SSD阵列,使CPU能通过PCIe接口访问固态存储系统。

本文充分利用FPGA可编程和硬件加速的特性,设计并实现了多块SSD的并行存储控制器。控制模块可以通过FPGA并行访问多块SSD,实现增大存储容量和提高存取速度的目的。

固态存储器简称为SSD,分为基于闪存的SSD和基于DRAM的SSD两种,分别使用Flash和DRAM作为存储介质。SSD在读写数据时,不需要读写头、不需要存储介质转动,通过控制存储芯片内部晶体管的开关状态来存储数据。新一代的固态硬盎普遍采用SATA2接口、SATA3接口、SAS接口、U.2接口、PCIe接口、M.2接口和CFast接口等。

作为主机控制接口,NVMe能够提供优化的命令提交和完成路径。它支持并行操作数据,最多支持64K个I/O队列,毎个I/O队列最多有64K个命令。管理命令队列最多可以有4K个命令。主机软件创建队列的个数应基于系统配置和预期工作负载。NVMe是基于成对的SQ和CQ机制,多个SQ可以利用同一个CQ。主机将一个或多个命令项写入SQ队列后之后,驱动程序将SQ队列的尾指针写入控制器相应的门铃寄存器,控制器发起DMA操作从SQ队列中顺序取出命令项,解析并执行相应的命令,但是控制器执行命令的顺序不一定与命令在SQ队列中的顺序相同。每一个提交队列命令项都严格遵守NVMe协议命令格式,大小为64B,其中包含两个PRP项,表示存放主机存储空间中的数据页的地址。NVMe协议支持MSI/MSI-X和中断聚集以便一次处理多个I/O完成命令。NVMe SSD已经在工业中得到应用。相比传统接口(SAS SATA)的SSD,NVMe SSD更具性能优势,需要更高的I/O化能的云平台已经开始在存储解决方案中运用NVMe。

存储系统结构方案图

基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第1张图片

FPGA和SSD之间利用PCIe Gen3协议通信,PCIe端节点采用串行传输速率为8Gbps。采用串行128B/130B编码时,其理论吞吐可达到约3.94GB/S。根据测速软件的结果,SSD的读速率可达到约2.8GB/S,写速率可达到约2.0GB/S。理想情况下,四块硬盘并行全速运行时,读速率可以达到11.2GB/S,写速率可以达到8GB/S。考虑到PCIe协议开销和物理链路传输效率,四块SSD并行传输的带宽可以容纳两个PCIe Gen2接口的数据。

本文的RAID 0控制器是基于PCIe协议的,用来实现硬盘阵列的启动、命令分配、数据缓存等功能,这些功能决定了对FPGA器件的基本要求。为实现PCIe接口功能,FPGA器件的IO引脚必须支持PCIe电气标准;同时需要生成MicroBlaze嵌入式CPU、外部存储控制器和自定义IP核等逻辑,所以FPGA器件的逻辑资源必须充足。存储模块Xilinx公司的Kintex UltraScale系列芯片作为存储模块FPGA。本文的存储模块FPGA上连接的数据缓存芯片是DDR3SDRAM。本文的存储模块设计中提出一种基于AXI的FPGA逻辑模块互联设计方案。AXI协议是ARM公司推出AMBA系列总线标准,面向高性能、高频系统设计,是一种多通道型总线,广泛应用于嵌入式系统。

存储模块FPGA主逻辑设计框图基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第2张图片
 

 存储模块FPGA单块SSD相关逻辑设计框图基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第3张图片

 命令整合IP核逻辑设计框图基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第4张图片

 命令整合IP核状态转换图

基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第5张图片

控制模块发起写硬盘命令后,由硬盘主动发起读数据操作,CDMA IP核需要实现的功能是将主控端DDR3中的数据读取到存储模块DDR中缓存,硬盘可以直接从存储模块DDR3中取数据,而不需要到控制模块取数据。

CDMA IP核接口示意图基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第6张图片

 读地址通道状态转换图基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第7张图片
写响应通道状态转换图基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第8张图片
RAID 0读/写命令解析IP核结构基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第9张图片
 

RAID 0写命令解析IP状态转换图

基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第10张图片

 基于PCIe总线的通用处理器系统

基于FPGA的存储控制器及其相关系统设计技术研究--笔记_第11张图片

 

 

你可能感兴趣的:(fpga开发,学习)