之前写的PCIE-SATA设计论文,摘抄到博客上,供大家参考。摘抄、转载请注明出处。
1. 参考设计
1.1 开源核设计
使用FPGA实现SATA接口主机控制器,国内外在此方面已有研究成果可以借鉴和参考。美国北卡罗莱纳州大学可编程计算机系统实验室,Ashwin A. Mendon、Bin Huang和Ron Sass基于Open Cores的开源IP核,已经在Xilinx公司Virtex 6系列FPGA上,搭建了基于内置CPU,支持SATA2接口的环境。
其中,图中内置的CPU为Xilinx嵌入式软核MicroBlaze,MGA为Multi Gigabit Transciever,MPMC为Multi-port Memory Controller,NPI为Native Port Interface,SSD为Solid State Drive。
1.2 DGWAY设计架构
DGway公司作为一个专业的IP核提供商,实现了基于FPGA的支持4个SATA并行读写的FPGA核,且为SATA核读写性能指标的测试提供了参考设计[1]。它采用Kintex-7评估板作为测试平台,作为SATA通信层的主机,每个SATA-IP使用一对GTX与目标设备进行通信,且相互独立运行,4个盘组成Raid模式。应用程序层在该参考设计控制4 SATA设备操作存储系统,传输速度是单个SATA盘的4倍。
设计主要由三部分组成,分别是MicroBlaze、AXI_DDR3、4个AXI_SATA控制器。AXI是MicroBlaze和4个SATA之间传输数据的交互总线,传输的数据是由MicroBlaze组包和解包的SATA FIS包,不同的FIS包类型,存储在DDR3的不同区域,AXI_SATA包含了FIS解码器,每个AXI_SATA和DDR3之间都有自己独立的互联总线。
2. 综合设计
2.1 开源核改进
原有的SATA核采用的是PLB总线,使嵌入式软核可以访问SATA核寄存器,通过NPI总线,可以使SATA核的DMA读写数据和挂载的DDR高速缓存交互。由于7系列FPGA新设计开始支持AXI总线,能够简化多种IP核的总线挂载,明显优于之前Xilinx公司之前的PLB总线。
使用Xilinx Platform Studio(XPS)平台可以非常方便的创建自己的IP,打开XPS后,在HardWare菜单,选择Create Peripheral,就可以定制自己的IP核。首先寄存器访问可以使用AXI4-Lite总线,我们需要将SATA核挂载在AXI4-Lite总线上。
AXI-Lite总线由于速度低,适用于简单的寄存器访问接口,可以使主机访问SATA核的寄存器,SATA核和设备交互的高速DMA读写数据,需要使用AXI4总线。可以从Xilinx官网下载参考核设计,XilinxAnswer #37425提供了各种AXI核的参考设计,我们只使用axi_master_v1_00_a参考设计,在其基础上修改设计,建立的AXI4总线和原有的NPI总线有很大不同,需要做一部分移植工作。
参考NPI状态机可知,读写均为由寄存器控制,寄存器包括读写的起始地址和读写的数据长度。首先分析AXI总线结构,分析读写发起的方法和顺序,然后将SATA核数据接口和AXI4总线连接。
2.2 系统搭建
当设计完成各主要模块后,需要使用Xilinx嵌入式版本 Design Suite 的关键组件将Xilinx Platform Studio(XPS)各个模块搭建成系统。
本设计包括两条AXI总线,一条为标准AXI4总线,另外一条为AXI-Lite总线,两条总线通过axi2axi_connector(AXI到AXI连接器)关联,以便两条总线的主从设备能够相互访问。
1个axi_pcie桥、4个axi_sata_ip的AXI主端接口,DDR3控制器从端和axi到axi桥接器,连接在标准AXI4总线,用于高速数据读写,其它设备可以通过pcie端口访问总线挂接的所有从设备,包括DDR3内存以及axi桥接器映射到的AXI-LIte总线从设备。
axi桥接器作为AXI-LIte总线主设备,可把AXI4总线访问请求转换为AXI-Lite总线协议访问挂载的axi-bram(AXI片上内存块),4个axi_sata_ip的寄存器接口,以及axi-pcie桥的从设备接口。
clock_generator、PCIe_Diff_Clk、utili_vector_logic、reset模块为时钟和复位模块单元,为各工作模块提供所需的时钟和复位信号。
2.3 板卡设计
板卡采用标准VPX 6U导冷结构设计,选用4片250G mSATA存储盘作为存储体,外部高速接口采用PCIE接口,用于和主控进行大速率数据传输。经上电测试,整个存储系统运行正常,4盘并行写速率约800MB/S,读速率约1GB/S。
3. 备注说明
开源SATA核链接: https://github.com/CospanDesign/nysa-sata
开源SATA核文章: https://download.csdn.net/download/web_star/10514755
我写的论文链接: https://download.csdn.net/download/web_star/11376337