在xilinx公司FPGA上实现SATA HOST控制器持续写速度达到215MB/s,读达到273MB/s

willing   2012-3-7 20:42 楼主

本人邮箱:wu_sata@163.com,欢迎同行来信交流和洽谈合作事宜。

本人在XILINX公司的FPGA上开发了一个SATA host控制器, SATA协议的应用层由嵌入式处理器PPC440来实现,主要完成硬盘的参数配置和读写操作命令。SATA协议的传输层和链路层是通过硬件描述语言设计在FPGA中生产相应的电路来实现,这两层主要是完成帧的封装,帧的发送、暂停、结束控制,帧的解析和校验。SATA协议的物理层由千兆位级收发器GTXOOB控制模块和接口传输率选择模块共同实现。千兆位级收发器GTX的主要功能包括8B/10B编码/解码,串并/并串转换,逗点检测,时钟修正,预侧重和线性均衡等。OOB控制模块和接口传输率选择模块能够自动识别硬盘的接口传输率,完成硬盘的上电过程或硬件复位过程,并同SATA控制器建立通信链接。

 

该控制器采用PLB接口实现嵌入式处理器power pc(或者是microblaze)和SATA控制器之间控制信息和状态信息的交换;NPI(Native Port Interface)接口用于实现储存器控制器和SATA控制器之间数据的交换。

该控制器支持第二代SATA II(接口传输率是3.0Gbps)。使用intel 公司SSD 320系列的硬盘进行测试持续写速度达到215M Byte/s, 持续读速度达到273M Byte/s1M=1024*1024)。由于SATA host控制器占用的逻辑资源比较少大约600slice,因此,可以在一片FPGA中实现NSATA HOST控制器,每个控制器单独控制一个SSD硬盘,存储带宽成N倍的增加。

以下是SATA HOST控制器在xilinx公司V5 FX系列芯片xc5vfx70t上实现的资源占用情况

Slice Logic Utilization:

  Number of Slice Registers:                 2,902 out of  44,800    6%

    Number used as Flip Flops:               2,902

  Number of Slice LUTs:                    3,097 out of  44,800    6%

    Number used as logic:                   2,815 out of  44,800    6%

      Number using O6 output only:           2,475

      Number using O5 output only:           184

      Number using O5 and O6:               156

    Number used as Memory:                 251 out of  13,120    1%

      Number used as Shift Register:            251

        Number using O6 output only:           250

        Number using O5 and O6:               1

    Number used as exclusive route-thru:          31

  Number of route-thrus:                       219 out of  89,600    1%

    Number using O6 output only:               215

Number using O5 output only:               4

 

热烈欢迎来信交流和洽谈合作事宜。

回复评论 (1)

顶顶顶!好强!

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2012-3-23 08:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复