集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1351|回复: 6

基于FPGA的SATA主机控制器

[复制链接]
FPGAWD 发表于 2016-4-19 15:09:33 | 显示全部楼层 |阅读模式

SATA主机控制器
SATA Host控制器
SATA Host Controller
基于FPGA的SATA主机控制器
基于FPGA的SATA Host控制器


本人在北京工作7年以上,非常熟悉Spartan-6, Virtex-5/Virtex-6/7 Series/UltraScale Series FPGA,从事FPGA外围接口设计,非常熟悉SATA协议,设计调试了多个基于SATA接口的固态大容量存储设备.


基于FPGA的SATA主机控制器特性如下:
1. 支持SATA 1(1.5Gbps)、SATA 2(3Gbps)以及SATA 3(6Gbps)
2. 符合SATA Rev 3.0规范
3. 实现Phy Layer(物理层)协议,包括OOB等
4. 实现Link Layer(链路层)协议,包括8B/10B编解码,扰码,CRC,流量控制,成帧/解帧,通信握手序列等
5. 实现Transport Layer(传输层)协议,包括FIS构造和解析,错误重传机制等
6. 实现Command Layer(命令层)协议,包括Software Reset协议,PIO Data-In协议,PIO Data-Out协议,DMA-In协议,DMA-Out协议等
7. 实现Application Layer(应用层)协议,包括设备自检,执行IDENTIFY DEVICE command(获取设备参数),DATA SET MANAGEMENT command(Trim),DMA控制器
8. 实现SATA设备带电热插拔
9. 利用多个SATA Host Controller,可以组成RAID阵列控制器

基于FPGA的SATA主机控制器接口特性如下:
1. 支持1.5Gbps, 3Gbps, 6Gbps线速率
2. 提供FIFO数据流接口,支持扁平式地址访问(只需提供首扇区地址和总扇区长度,控制器内置DMA控制器实现连续的扇区地址管理访问),实现大流量数据的读写
3. 提供双端口RAM接口,支持单个扇区地址访问,实现512-byte字节数据的读写
4. 提供双端口RAM接口,支持1~16个扇区地址访问,实现最多8192-byte字节数据的读写
5. 提供双端口RAM接口,支持1~16个512-byte block(LBA Range Entry列表),实现Trim功能
6. 提供SATA Host寄存器接口,包括状态和错误寄存器输出
7. 提供设备自检状态输出、设备参数输出(设备最大可用扇区数等)、Trim支持


本人已经在多个SSD(英特尔,三星,美光,OCZ,金士顿等)上测试验证,控制器性能如下:
1. SATA 2接口,连续写速度大于230MB/s,连续读速度大于250MB/s.
2. SATA 3接口,连续写速度大于520MB/s,连续读速度大于540MB/s.


通过集成多个SATA主机控制器以及Raid控制器,实现对多个SSD的并行读写,也就是RAID 0方式的读写。
zxopenljx 发表于 2020-6-3 13:59:46 | 显示全部楼层
基于FPGA的SATA主机控制器
hellokity 发表于 2020-6-3 14:24:47 | 显示全部楼层
基于FPGA的SATA主机控制器
zxopenljx 发表于 2020-7-11 15:18:48 | 显示全部楼层
基于FPGA的SATA主机控制器
zxopenljx 发表于 2023-10-29 17:45:01 | 显示全部楼层
基于FPGA的SATA主机控制器
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-18 05:17 , Processed in 0.069439 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表