基于FPGA 的可编程系统提供完整的 SATA解决方案

基于FPGA 的可编程系统提供完整的 SATA解决方案,第1张

工业、科学和医疗 (ISM) 应用领域的嵌入式系统必须支持多种接口。正因如此,许多设计团队都选择 将FPGA 子卡直接插入 PC 主板,从而获得一些特殊的排-行接口。考虑到新型 FPGA 的功能非常强大,整个片上系统都能在赛灵思器件
中实现。片上系统包括硬件、 *** 作系统和软件,几乎可提供全部 PC 功能,避免了对 PC 主板的需求,从而实现更小型化、更节能、可配置的单板计算机系统。

许多 ISM 应用都采用快速可靠的大容量存储器来保存数据采集结果,比方说固态驱动器 (SSD) 就已经成为事实上的应用标准了,因为其具有较高的可靠性,而且速度相当快。SSD 驱动器几乎全部采用串行 ATA (SATA) 接口连接。我们不妨来看看通过高速 SATA 连接接口添加 SSD RAID 功能来扩展基于赛灵思芯片的单板计算机系统所需步骤。

为此,赛灵思联盟计划生态系统结合使用了 ASICS World Service(AS ICS ws)的高质量 IP 核技术和 Missing Link Electronics(MLE)的可编程系统设计技术。不过在讨论项目细节之前, 我不妨进一步深入分析一下 SATA 本身。如图 1 所示,完整的 SATA 主机控制器包含多个功能层。因此,为向基于FPGA 的可编程系统提供完整的 SATA解决方案,设计人员远不止需要高质量 I P 核。设计方案中的某些方面往往被忽略了。

 

基于FPGA 的可编程系统提供完整的 SATA解决方案,串行 ATA 功能层,第2张

 

图 1 串行 ATA 功能层

首先,我们应在 FPGA 硬件中实现物理层(PHY)、链路层和传输层的某些部分,这就是为什么 IP 厂商在出售的 IP中会包含这些层。ASICS World Service 提供的 SATA Host IP 核采用所谓的千兆位级收发器(MGT) 来实现物理层,它在 FPGA 中包括类似于赛灵思应用指南 870 中所述的带外信号模块。高级传输层以及应用、器件和用户程序层最好用软件来实现,因此 IP 厂商一般不会为客户提供这些层,不过这就让系统设计团队肩负起创建上述层的任务,而且会对设计项目带来意料之外的成本。

厂商在 IP 中不包括高级传输层以及应用、器件和用户程序层的原因在于,每种架构各有不同,使用方式也不一样。在此情况下,如果提供完整的解决方案,将 IP 核与用户程序相结合,就必须实施、测试并集成分散/汇聚DMA(SGDMA) 引擎等组件,这些组件同时包括软/硬件在内。

此外,传输层的通信通过所谓的帧信息结构 (FIS) 进行。SATA 标准定义了 FIS类型,我们应分析一下主机和器件之间读/写 *** 作过程中详细的 FIS 流。如图 2 所示,主机通过寄存器FIS 通知器件新的 *** 作,寄存器 FIS 保存有标准ATA 命令。就读取 DMA *** 作而言,器件一准备好就发送一个(或更多)数据 FIS。器件通过寄存器 FIS 完成从器件到主机的
事务处理。该 FIS 可通知 *** 作是否成功。我们从图 2 中还能看到主机和器件之间用于写入 DMA *** 作的 FIS 流程。这里,主机还是通过寄存器 FIS 通知器件 *** 作。器件一旦准备好接收数据,器件就发送DMA 激活 FIS,主机则开始发送单个数据FIS。器件处理 FIS 后,将等待数据,并发送 DMA 激活 FIS。上述过程的完成方式与读取 DMA *** 作一样。

 

基于FPGA 的可编程系统提供完整的 SATA解决方案,主机和器件之间 DMA 读/写 *** 作的 FIS 流程,第3张

 

图 2 主机和器件之间 DMA 读/写 *** 作的 FIS 流程

 

基于FPGA 的可编程系统提供完整的 SATA解决方案,主机和器件之间第一方 DMA 读/写排序 *** 作的 FIS 流程,第4张

 

图 3 主机和器件之间第一方 DMA 读/写排序 *** 作的 FIS 流程

SATA 有一种并行 ATA 不具备的特性,就是所谓的第一方 DMA。该特性将部分 DMA 引擎控制转移到器件上。这样,器件可缓存命令表,对其重新排序,从而优化性能,这就是所谓的原生命令队列特性。新的 ATA 命令用于第一方 DMA 传输。由于器件不必即时完成命令,而是对其进行排序,因此该 *** 作模式下的 FIS 流程略有不同。读取第一方 DMA命令队列的流程请见图 3 左侧。

同时,应用层上的通信采用 ATA 命令。您固然能在 FPGA 硬件中实现有限数量的命令作为有限状态机,但用软件实现要高效和灵活得多。这里的开源Linux 内核提供已知良好的实现方案,几乎能完全符合 ATA 标准要求,同时,采用
该内核的器件出货量已经超过10亿颗。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2621370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-10
下一篇 2022-08-10

发表评论

登录后才能评论

评论列表(0条)

保存