您现在的位置: 主页 > 嵌入式处理器 > FPGA > 基于FPGA 的可编程系统提供完整的 SATA解决方案 - FPGA/ASIC技术
本文所属标签:
为本文创立个标签吧:

基于FPGA 的可编程系统提供完整的 SATA解决方案 - FPGA/ASIC技术

来源: 网络用户发布,如有版权联系网管删除 2018-08-18 

工业、科学和医疗 (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 核。设计方案中的某些方面往往被忽略了。

 

串行 ATA 功能层

 

图 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 操作一样。

 

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

 

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

 

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

 

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

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

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



              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 基于FPGA 的可编程系统提供完整的 SATA解决方案 - FPGA/ASIC技术
 

"基于FPGA 的可编程系统提供完整的 SATA解决方案 - FPGA/ASIC技术"的相关文章

网站地图

围观()