新闻  |   论坛  |   博客  |   在线研讨会
嵌入式SATA存储系统的研究——AET/2008 34(4)
canso | 2009-02-23 13:35:48    阅读:1013   发布文章

  摘 要: 新兴的SATA技术为高速、便携、高性价比的嵌入式硬盘存储系统的研制提供了保障。将SATA2.5协议写到Virtex-5 FPGA内部,通过GTP收发器实现高速串行数据传输与存储,可以突破PCI接口的瓶颈,使系统具备高速、实时、便携和海量存储等特点。

  关键词: SATA;Virtex-5;FPGA;硬盘存储;嵌入式系统

  SATA硬盘作为新型的存储介质,具有高速、海量、价格低廉、使用方便等优点。SATA2.5协议支持3.0Gb/s的接口速度,SATA2.5硬盘的持续存储速度可达80MB/s,最大存储容量已经达到750GB(如希捷ST3750640AS硬盘)。SATA硬盘已经占据了大部分的PC机硬盘市场,并且正向工作站、服务器的领域迈进。而在嵌入式的应用领域,目前的硬盘存储设备依然广泛采用传统的IDE(ATA)和SCSI硬盘。由于两者存在低速或昂贵的缺点,因此如何将SATA硬盘存储应用到嵌入式系统中就成为今后相关领域的研究重点。

  1 SATA2.5协议的性能与结构

  1.1 各种硬盘存储接口的比较

  通常硬盘根据接口类型进行分类。硬盘接口主要分为:IDE(ATA)、Serial ATA(SATA)、SCSI、Serial Attached SCSI(SAS)和Fiber Channel(FC),此外还存在IEEE1394、USB等。

  IDE、SCSI采用的是并行总线接口,随着技术要求的不断提高,并行技术的种种问题如信号扭曲和串扰、电缆和连接器的反射、设备的寻址能力有限等都已成为提高其数据吞吐能力的障碍。FC、SAS和SATA采用串行技术,克服了并行技术存在的缺点,大大提高了速度、可靠性和可扩展性。而SATA硬盘相对于FC和SAS硬盘具有很大的价格优势,并且与SAS接口兼容。

  1.2 SATA2.5协议的基本性能[1]

  SATA2.5是国际串行ATA组织SATA-IO(Serial ATA International Organization)制订的最新SATA标准。其主要性能特点如下:

  (1)传输速率快,由SATA1.0的1.5Gb/s发展到SATA2.5的3.0Gb/s,并且SATA-IO计划今后几年推出6.0Gb/s的接口协议,这比最新的并行IDE接口ATAPI-7的133MB/s的传输速率提高许多。

  (2)电缆线宽度降低而长度增加,宽度由IDE的40针/80针减少到7针,长度由18英寸增加到1米。

  (3)支持热插拔,这使SATA硬盘可以作为移动硬盘使用。

  (4)提高了数据传输的精确度,ATA-3标准引入了基于CRC(循环冗余码校验)的数据包出错检测,但是,没有任何一种并行ATA标准提供命令和状态包的出错检测。SATA提高了CRC对数据、命令和状态包错误的检测能力,从而提高了数据传输的精确度。

  (5)支持全速命令队列(NQC),大大提高了硬盘的内部数据传输速度。

  此外,SATA2.5协议采用点对点结构,降低了磁盘阵列的出错风险;降低了工作电压,减少了功耗;向下软件兼容并行ATA,横向兼容SAS协议。

  1.3 SATA2.5协议的体系结构

  SATA2.5采用四层结构:应用层、传输层、链接层和物理层。其中,应用层负责所有ATA命令的执行,包括对控制命令模块寄存器的访问;传输层负责在主机和硬盘设备之间以帧信息结构(FIS)的形式传输控制命令和数据;链接层负责对数据进行8/10编解码,根据需要从结构帧中提取有效数据,或者将控制字插入到结构帧当中;物理层负责在串行数据线上传输已编码的数据。

  2 Virtex-5 FPGA芯片简介[2]

  Virtex-5系列FPGA芯片[2]是Xilinx公司最新推出的高端产品,它采用65纳米工艺,1.0V核电压,具有灵活的时钟管理模块,100Mb/s~3.2Gb/s的串行连接功能,550MHz的DSP硬核,内置36KB的块RAM, I/O引脚多达1 200个。目前,Virtex5系列FPGA有LX、LXT和SXT三款平台,分别面向高性能逻辑功能、高性能逻辑功能和高速串行连接,以及高速串行连接和DSP功能。

  RocketIO GTP收发器是专门为Virtex-5 FPGA实现高速低功耗串行连接而设计的,具有高速、稳定的特点,可以实现PCI Express、FC、SATA等高速接口的物理层协议,而不用外置子板,从而节省了空间和成本。

  3 SATA2.5协议在FPGA上的实现[3][4]

  3.1 链接层在FPGA内的实现

  链接层发送或者接收混合了控制原语的数据流,在数据传输过程中,CRC被加入或者提取出数据流,同时8b/10b编解码被执行。图1给出了链接层在FPGA内部的逻辑结构,左边与传输层相连,右边与物理层相连。

  

 

  在核时钟域里,数据宽度是32位;而在PHY时钟域里,数据宽度是10位。在发送过程中,异步接口每四个PHY时钟发送一次双字,每个PHY时钟内一个8位数据块通过8b/10b编码器生成10位数据块,并被连续串行发送到物理层。接收过程刚好与此相反。原语是由双字组成的实体,用于控制和提供串行连接的状态。在FPGA内部,原语专门由原语发生器提供,主控制器根据上层命令控制原语的产生。CRC发生器多项式为:

  

 

  FPGA内需设置一个线性循环移位寄存器(LFSR),在检验过程中与传输数据进行异或,LFSR内部多项式为:

  

 

  3.2 传输层在FPGA内的实现

  传输层在发送过程中将数据和控制信号打包为FIS,在接收过程中分解接收到的FIS。如图2所示,FPGA内部设置了一个FIFO,数据的接收和发送过程都通过同一个FIFO通道。Wishbone总线是一种片上系统互联规范,该规范给片内的各部分以及IP核之间的互联定义了一种通用的接口,由此提高了设计的可靠性和可移植性。图中的Wishbone从接口与应用层的Wishbone主接口通信,过程方便可靠。Shadow寄存器用于转送命令到设备端,或者记录设备端的状态。状态和控制寄存器包含了一系列的寄存器,用于控制接口并且检索接口状态信息。

  

 

  3.3 SATA与XC5VLX30T的接口及仿真

  3.3.1 GTP收发器简介[5]

  GTP收发器是Virtex-5 LXT和SXT系列FPGA内高度可配置和高度集成的可编程逻辑资源。它支持包括SATA在内的许多高速串行接口,内部的电流模式逻辑(CML)驱动器和缓存器提供用户可配置的终端、电压摆幅和耦合,可编程的发送预加重和接收均衡使得信号完整性得到优化。此外它还集成了可选的8b/10b编码、逗号校准、信道绑定以及时钟校正模块。

  以Virtex-5 LXT系列的XC5VLX30T为例,它具有四个独立的GTP模块,每个模块又分别包含了若干GTP驱动电压与参考电压引脚,一对低压差分串行时钟引脚,以及两对RocketIOTM低压差分串行引脚。

  3.3.2 SATA接口信号定义

  SATA接口数据线由7根信号线组成。在主机端,1至7号线依次为GND、Tx+、Tx-、GND、Rx+、Rx-和GND。其中,Tx+和Tx-组成低压差分发送信号对,分别与XC5VLX30T的MGTTXP和MGTTXN引脚相连;Rx+和Rx-组成低压差分接收信号对,分别与XC5VLX30T的MGTRXP和MGTRXN引脚相连。

  3.3.3 SATA时钟电路及PCB仿真[6-8]

  由于SATA的时钟频率和串行数据传输速率都很高,因此对信号的抗干扰能力的要求很高。为提高系统可靠性,需要对布线后的PCB板上SATA时钟信号和数据信号进行反复的仿真实验。下面以SATA时钟信号为例,进行PCB布线后仿真实验。

  SATA2.5最高支持3.0Gb/s的传输速度,因此要求所选的晶振具有300MHz以上的低压差分时钟输出能力。IDT公司的ICS844071和ICS844031满足要求,前者的输出频率范围是62.5MHz~170MHz,后者的输出频率范围是245MHz~340MHz。两者在封装上完全兼容,用户可以根据设计的速度要求来选取。图3是SATA时钟接口电路图,其中SATA_CLK和

分别与XC5VLX30T 的GTP专用差分时钟输入引脚MGTREFCLKP和MGTREFCLKN相连。

 

  

 

  利用844071_3v3.ibs及virtex5.ibs两个IBIS模型,在Hyperlynx7.5环境下对SATA差分时钟进行BoardSim差分眼图仿真。图4是在线长1.2in、线宽10mil、差分线距12mil、串行连接0.01μF电容以及端接100Ω电阻等条件下,考虑各种过孔、PCB板的整体分析等因素后的PRBS位模式仿真眼图。从图中可以看出,在100MHz频率条件下,眼图的睁开程度较大,符合GTP收发器的时钟眼图要求。

  

 

  随着FPGA逻辑单元的不断增多、内存容量的不断增大、主频的不断提高,许多以前只能在专用芯片上才能实现的功能,现在都可以集成到一片FPGA内部来完成。例如围绕着一片Virtex-5 FXT可以搭建涵盖图像采集、显示、处理、存储、通信等功能的系统。SATA作为一项正蓬勃发展的存储技术,与FPGA技术结合之后可以极大地提高其本身的应用范围,特别是为一些脱离PC机的嵌入式系统实现高速、稳定、价格较低的存储功能提供一种新的有效途径。

  参考文献

  [1] SATA-IO.Serial ATA International Organization:Serial ATA Revision 2.5[Z].USA:SATA-IO,2005.

  [2] Xilinx Inc.Virtex-5 User Guide[Z].USA:Xilinx Inc,2006.

  [3] 徐光辉,程东旭,黄如.基于FPGA的嵌入式开发与应用[M].北京:电子工业出版社,2006.

  [4] Wayne Wolf.FPGA-Based System Design[M].USA:Prentice Hall PTR,2005.

  [5] Xilinx Inc.Virtex-5 RocketIO GTP Transceiver User Guide[Z].USA:Xilinx Inc,2006.

  [6] IDT Inc.FemtoclockTM Crystal-to-LVDS Clock Generator ICS844071[Z].USA:IDT Inc,2006.

  [7] Xilinx Inc.Virtex-5 PCB Designer′s Guide[Z].USA:Xilinx Inc,2006.

  [8] 张海风.Hyperlynx仿真与PCB设计[M].北京:机械工业出版社,2005.

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客