免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3034 | 回复: 1
打印 上一主题 下一主题

基于FPGA的SATA控制器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-06 22:44 |只看该作者 |倒序浏览
本人在FPGA中开发了一个SATA控制器, SATA协议的应用层由嵌入式处理器PPC440来实现,主要完成硬盘的参数配置和读写操作命令。SATA协议的传输层和链路层是通过硬件描述语言设计在FPGA中生产相应的电路来实现,这两层主要是完成帧的封装,帧的发送、暂停、结束控制,帧的解析和校验。SATA协议的物理层由千兆位级收发器GTX、OOB控制模块和接口传输率选择模块共同实现。千兆位级收发器GTX的主要功能包括8B/10B编码/解码,串并/并串转换,逗点检测,时钟修正,预侧重和线性均衡等。OOB控制模块和接口传输率选择模块能够自动识别硬盘的接口传输率,完成硬盘的上电过程或硬件复位过程,并同SATA控制器建立通信链接。
  PLB接口实现嵌入式处理器PPC440和SATA控制器之间控制信息和状态信息的交换,NPI接口来实现片外存储芯片DDR2和SATA控制器之间数据的交换。该控制器既可以作为主设备控制器又可以作为从设备控制器,既支持SATA I (接口传输率是1.5Gbps)又支持第二代SATA II(接口传输率是3.0Gbps),而且可以自动识别连接的设备是符合第一代SATA接口标准还是第二代SATA接口标准,并选择相应的接口传输率与其建立通信链接。使用该控制器控制普通台式机SATA硬盘持续读写速度可以达到了85-110MB/S。要是使用SSD硬盘可以获得更高的存储速度。下图是该控制器在XC5VFX130T-2FF1738中实现的资源占用情况,从图4可以看出在XC5VFX130T-2FF1738中实现一个SATA控制器PLB2SATAIP只占用4%左右的可编程逻辑资源,所以在该片FPGA中就可以多个SATA控制器,同时控制多个SATA硬盘,形成RAID,增加存储带宽。

使用资源名称        使用量        总的资源量        所占比重       
BUFDSs        1        10        10%       
BUFGs        8        32        25%       
DCM_ADVs        2        12        16%       
GTX_DUALs        1        10        10%       
RAMB36_EXP        8         298        2%       
Slice Registers        2224         81920        2%       
Flip Flops        2223        ------        ------       
Latches        1        ------        ------       
Slice LUTS        2611        81920        3%       
Slice LUT-Flip Flop pairs        3530         81920        4%       

有感兴趣的朋友可以联系我,相互交流。
联系方式: wuwei811204@126.com

发帖_基于FPGA的SATA控制器.rar

59.09 KB, 下载次数: 221

SATA,网络存储,SSD硬盘,嵌入式存储

论坛徽章:
0
2 [报告]
发表于 2009-08-06 23:48 |只看该作者
貌似这里的人都不关心这个的。你要不顺势再把iSCSI ToE都做到FPGA里,然后弄成iSCSI Target方案出售?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP