|
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方式的读写。
如有SATA相关方面的技术合作,可联系我。
|
|