SATA高速存储的FPGA实现

2012-09-03 06:00李燕斌
电讯技术 2012年11期
关键词:链路层收发器传输层

王 烨,张 峰,李燕斌

(1.海军装备部重庆局,重庆400043;2.中国西南电子技术研究所,成都610036)

1 引 言

机载高速数据存储是宽带数传的重要组成部分。随着高速图像CCD传感器的发展,高帧频、高分辨率CCD大量出现,对目标进行捕获、跟踪、测量产生的数据成几何级数增长,如何高速实时记录这些实验数据成为一个重要的工作。传统的解决方案是采用硬盘控制器芯片,通过控制器芯片实现对PATA或SATA接口的高速存储[1-3]。但由于国外技术封锁,不能买到高性能的硬盘控制器芯片,因此可考虑自行对存储协议进行开发。

本文通过对SATA协议研究,基于FPGA中的高速串行收发器GTX,利用VHDL语言实现了SATA的IP核存储方式,采用固态硬盘(SSD)实现了单盘150 Mbyte/s的存储速度,而SSD硬盘不依靠空气动力,是以电信号作为访问方式,提高了机载高速存储的抗振能力,增加了存储数据的灵活性,解决了机载及星载的海量数据存储问题。

2 SATA协议简介

Seagate在 IDF Fall 2001大会上宣布了 Serial ATA 1.0标准,Serial ATA(SATA)规范正式确立。通过将数据改为串行传输,避免了由并行传输引入的串扰和同步问题。

SATA传输速度如表1所示。

表1 SATA各版本传输速度Table 1 Speed of SATA protocol

除解决了串扰和同步问题,如图1所示,SATA还具有更少的引脚数目、更强的纠错能力,以及支持热插拔等优势。因此,SATA已经成功取代了PATA,成为存储领域中主流标准之一。

图1 PATA及SATA接口比较Fig.1 Interface of PATA vs.SATA

3 基于FPGA GTX的SATA IP核设计

GTX又称千兆级高速串行收发器,是集成在FPGA芯片的可配置硬核资源。不同系列FPGA中GTX接口资源的名称和性能不一样,Xilinx公司的Virtex-5中FX 系列XC5VFX70T,含有16个GTX,并且还含有一个PowerPC440处理器。

基于FPGA实现SATA IP核的方案具有以下优点:第一,具有自主知识产权;第二,通用性好,若采用IP核的方式,不用重新绘制电路板;第三,设备升级简单,目前是SATA第二代,即支持3.0 Gbit/s,当需要提升到SATA第三代时,只需要提高IP核的工作频率或数据宽度即可,而选用的FPGA所含的GTX最高可支持到6.5 GHz,完全满足SATA第三代6.0 Gbit/s的要求。

根据SATA协议的分层结构,需要在GTX上分层实现SATA的协议。第一步,实现上电自启动对OOB信号的检测;第二步,实现SATA协议链路层;第三步,实现SATA协议传输层协议;第四步,将上述代码封装为一个IP核,通过PLB总线挂载到FPGA中内嵌PowerPC440上。关键技术在于OOB信号的检测以及链路层协议。

OOB共包括 3个信号,即COMRESET、COMINIT和COMWAKE。GTX提供对这3个信号的支持。当GTX的属性RX-STATUS-FMT设为SATA时,GTX中接收端提供的RXSTATUS[2∶0]信号,就可以反应OOB状态,如表2所示。

表2 RXSTATUS信号与OOB状态Table 1 RXSTATUS and the OOB state

OOB通信还需要用到 TXELECIDLE信号,当TXELECIDLE为高时,表示OOB通信通路空闲,可以进行OOB的信号的发送。属性COM-BURST-VAL表示突发的 OOB信号(COMRESET、COMINIT、COMWAKE)的个数,根据SATA的协议进行设置,设置为6;属性PLL-SATA为布尔型数值,设置为0,表示SATA可以以1.5 Gbit/s或3.0Gbit/s工作。

图2 SATA OOB初始化状态机Fig.2 State machine of SATA OOB

工程中使用Xilinx公司提供的软件ISE作为开发环境,利用Core generator工具生成基于GTX的SATA IP核,而生成的SATA IP核只对GTX提供最简单的封装,如输入时钟为150 MHz、线速度为3.0 Gbit/s、GTX中的数据收/发并行位宽为16 bit等,而SATA协议包括物理层、链路层、传输层、应用层并没有实现。图2所示为SATA OOB上电启动过程,GTX端口属性见表2,工程中利用如图2所示的状态机实现了OOB通信。工程中可另加一个GPIO(General Purpose IO)信号,如可接一个LED指示灯,用以表示OOB通信完成。因此可认为,GTX作为SATA协议中规定的物理层,上电启动功能已完成。

图3 SATA IP核实现平台Fig.3 The platform of SATA IP core

当链路层接收到此GPIO或LED信号时,链路层开始工作。链路层中主要工作就是把传输层的数据打包成帧结构,并把物理层返回的状态报告给传输层。SATA中3个重要的编码过程在链路层实现,即8B/10B编码、CRC校验、Scrambling加扰码。

SATA协议通信参考模型分4层结构,最重要的是物理层、链路层、传输层,而应用层负责发送命令,因此,把应用层写成应用程序,通过函数调用,处理与底层相关的事务。工程实现时,把用硬件语言VHDL/Verilog实现的SATA IP核做为FPGA内嵌入式处理器PowerPC440的一个外设,通过Xilinx公司提供的开发环境EDK把SATA IP核挂到PLB总线上,利用EDK对PowerPC440的外设进行定制,如图4所示,只选择最基本的配置,其中内存为MT4HTF3264HY-667D3的 256 MB、64位内存条。前面提到的GPIO或LED调试信号此时可用串口代替,串口为xps-16550控制器类型,由于所选用的FPGA有多达16个GTX,因此理论上可支持多达16个SATA硬盘。

图4 SATA IP核做为PowerPC440外设Fig.4 SATA IP as a peripheral of PowerPC440

4 测试结果

对基于GTX实现的SAT A控制器存储方式速度进行测试,测试条件如下:PC机操作系统为Windows XP SP2,CPU为Pentium(R)Dual-Core ES520@2.5GHz,内存2GB,ISE版本10.1.03,EDK版本10.1.03,硬盘为ST3160811AS,7200.10;ST3320418AS,7200.10;ST3320613AS,7200.12,测试类型为写硬盘。

图5为机械盘测试结果,ST3160811AS为7 200转的普通硬盘,其写速度在70 Mbyte/s左右,而ST3320418AS为Seagate推出的新一代的硬盘,其写速度在100 Mbyte/s,与硬盘标称的速度相当,即证明了基于FPGA实现SATA IP核的可行性。

图5 SATA IP核写速度Fig.5 The writing speed of SATA IP core

实验中,采用Intel的SSD固态盘Intel256G180SLC,其理论标称速度为写180Mbyte/s,实际测到了150 Mbyte/s。其传输速度与抗振性能已在宽带某项目中得到验证,满足机载高速存储需求。

5 结 论

在执行机载任务中实现高速数据存储时,通常需要考虑任务载荷的重量及体积,选择基于FPGA的高速串行收发器GTX实现SATA的IP核方式,减少了对硬盘ASIC芯片的依赖,具有完全的自主知识产权;选择固态SSD硬盘,不依靠空气动力,是以电信号作为访问方式,提高了机载高速存储的抗振能力,增加了存储数据的灵活性,解决了机载及星载的海量数据存储问题。因此,利用FPGA中的高速串行收发器GTX实现SATA的IP核存储方式是机载高速存储的一种有效尝试。如何利用GTX实现SATA的IP核,组成Raid0存储方式,是课题下一步的工作。

[1] 李志鹏.连续数据记录系统中IDE数据接口的实现[J].无线电工程,2010,40(2):48-50.LI Zhi-peng.Implementation of IDE Interface in Sustained Data Recording System[J].Radio Engineering,2010,40(2):48-50.(in Chinese)

[2] 赵涛.基于SCSI总线的高速数据存储系统软件设计[J].现代电子技术,2008(14):59-62.ZHAO Tao.Software Design of High Speed Data Storage System Based on SCSI Bus[J].Modern Electronic Technology,2008(14):59-62.(in Chinese)

[3] ZHANG Feng,WU Qin-zhang,REN Guo-qiang.A Highspeed Method of CCD Image Data Storage System[C]//Proceedings of 2010 Second International Conference on Advanced Computer Control.Shenyang:IEEE,2010:45-48.

猜你喜欢
链路层收发器传输层
基于多空间内存共享的数据链路层网络包捕获方法
基于Python语言的网络传输层UDP协议攻击性行为研究
ZnO电子传输层在有机无机杂化钙钛矿太阳能电池中的应用
物联网无线通信传输层动态通道保障机制
基于物联网GIS的消防智能巡检系统设计与实现
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
基于FPGA全功能MVB网络从设备链路层IP核设计
数据链路层的选择重传协议的优化改进
IEEE 1394事务层接口的设计与实现
基于RocketIO 高速串行回环通信的实现