仅对英特尔可见 — GUID: hrt1557328320734
Ixiasoft
5.1.8.1.4. 接口带宽
为确定能用于在HPS和FPGA架构之间传输数据的接口,必须了解每个接口的带宽。下图说明HPS和FPGA之间可用的峰值吞吐量,以及HPS中的内部带宽。所示实例中假设FPGA架构以400 MHz运行,MPU以1500 MHz运行,而64-bit外部SDRAM以每秒3200 Mbits运行。
各个HPS接口的相对时延和吞吐量
接口 |
事务用例 |
延时 |
吞吐量 |
---|---|---|---|
SoC-to-FPGA |
MPU访问FPGA中的存储器 |
中 |
中 |
SoC-to-FPGA |
MPU访问FPGA中的外设 |
中 |
非常低 |
Lightweight(轻量级) SoC-to-FPGA |
MPU访问FPGA中的寄存器 |
低 |
低 |
Lightweight SoC-to-FPGA |
MPU访问FPGA中的存储器 |
低 |
非常低 |
FPGA-to-SoC |
FPGA著接口访问非高速缓存一致性SDRAM |
高 |
中 |
FPGA-to-SoC |
FPGA主接口访问SoC片上RAM |
低 |
高 |
FPGA-to-SoC |
FPGA主接口访问SoC外设 |
低 |
低 |
FPGA-to-SoC |
FPGA主接口访问coherent memory导致的cache miss(未命中) |
高 |
中 |
FPGA-to-SoC |
FPGA主接口访问coherent memory完成cache hit(命中) |
低 |
中—高 |
FPGA-to-SoC |
FPGA主接口直接访问SoC |
中 |
高—非常高 |
指南:避免使用SoC-to-FPGA桥接从MPU访问FPGA中的外设寄存器。
已针对突发流量优化了SoC-to-FPGA桥接,并且外设访问通常是仅一拍的短字大小的访问。这样,如果通过SoC-to-FPGA桥访问外设,则该事务可能会因已经在运行中的其他突发通信量而停止。
指南:避免使用轻量级SoC-to-FPGA桥接从MPU访问FPGA中的存储器。
针对非突发通信量优化轻量级SoC-to-FPGA桥接,并且通常一突发方式执行存储器访问(由于高速缓存操作,因而通常为32字节)。因此,如果通过轻量级SoC-to-FPGA桥接访问存储器,则吞吐量受到限制。
指南:使用FPGA中的软逻辑(例如,DMA控制器)在HPS和FPGA之间移动共享数据。请避免在该情况下使用MPU和HPS DMA控制器。
在HPS和FPGA之间移动数据时, Intel® 建议从FPGA进行操作,而非使用MPU或HPS DMA控制器。如果FPGA必须访问高速缓存一致数据,则其必须访问FPGA-to-SoC桥接并通过正确的ACE-Lite高速缓存扩展信令发布可高速缓存的事务。如果必须将非cache coherent数据移动到FPGA或HPS,则以FPGA逻辑实现的DMA引擎可通过FPGA-to-SoC桥接移动数据,从而达到最大吞吐量。即使HPS内部包含的DMA引擎可在HPS和FPGA之间移动数据,但是该引擎的目的是帮助不主控存储器的外设或代表MPU向存储器数据移动提供存储空间的外设。