【Zynq UltraScale+ MPSoC解密学习10】Zynq UltraScale+的PS互连

目录

一、功能介绍

二、互连框图

2.1 FPD Main Switch

2.2 Cache一致性互连

2.2.1 Full Coherency

2.2.2 I/O Coherency

2.2.3 ACP Coherency

2.3 互连子模块

三、互连寄存器


一、功能介绍

PS互连由多个Switch组成,这些Switch通过高级可扩展接口(AXI接口)点对点连接系统资源,用于master口和slave口之间传输地址、数据以及响应事务。ARM的AMBA 4.0 interconnect实现了用于QoS、调试和测试监测的完整的互连通信功能。
PS互连基于AXI HP数据通道交换机,有以下功能:
    互连交换机是基于ARM NIC-400
    Cache一致性互连(CCI-400)
    系统内存管理单元(SMMU)允许使用虚拟地址
    两个电源域(FPD和LPD)的互连分离
    QoS服务支持更好的AXI事务处理
    AXI性能监测器(APM)能够收集事务指标
    AXI超时模块(ATB)挂载在互连上作为看门狗
    AXI隔离模块(AIB)负责将AXI/APB的主机和从机隔离,为它们的关闭行为做准备
    PS和PL之间有以下接口:
(1)S_AXI_HPC[0:1]_FPD和S_AXI_HP[0:3]_FPD:可以被PL端AXI主口访问的高性能AXI从口
(2)M_AXI_HPM0/1_FPD:低延迟的可以访问PL端AXI从口的AXI主口
(3)S_AXI_ACE_FPD:可以被PL端AXI主口访问的双向AXI一致性扩展口
(4)S_AXI_ACP_FPD:可以被PL端AXI主口访问的缓存一致性加速从口
(5)S_AXI_LDP:低功耗域内可以被PL端AXI主口访问的AXI从口
(6)M_AXI_HPM0_LPD:低功耗域内可以访问PL端AXI从口的AXI主口


二、互连框图

PS整体互连框图如下图,我们来详细介绍下。 

【Zynq UltraScale+ MPSoC解密学习10】Zynq UltraScale+的PS互连_第1张图片

2.1 FPD Main Switch

128位的FPD主开关是FPD主机和LPD从机(包括OCM和TCM)的top互连中的一个开关。该开关的主要作用为:(1)提供到OCM的直接路径(绕过LPD互连),可以使延迟最小并提高FPD到OCM的吞吐量(2)提供了一个单独的路径来访问FPD主机的LPD外设寄存器。

2.2 Cache一致性互连

Cache一致性互连(CCI)将部分的interconnect和coherence功能合并成一个块。它提供了以下接口:
(1)2个ACE从端口(用于完全一致性,上图的S3/S4)
(2)3个ACE-lite从端口(用于I/O一致性,上图的S0/S1/S2)
(3)2个ACE-lite主端口(用于DDR,上图的M1/M2)
(4)1个ACE-lite主端口(用于非DDR内存映射访问,上图的M0)。
(5)1个分布式虚拟内存消息接口(用于系统内存管理单元SMMU,上图的DVM)
互连框图里显示了CCI端口连接,CCI寄存器是全局映射的,可以从LPD访问。

2.2.1 Full Coherency

完全(双向)一致的主口可以监测彼此的缓存,为了在APU和PL之间共享更细粒度的数据,系统可以在PL中实现缓存,然后让APU监测PL缓存,同时PL也可以窥探APU的缓存。

2.2.2 I/O Coherency

I/O(单向)一致的主口可以通过CCI ACE-Lite从口监测APU缓存,当APU数据正在和I/O主口共享时,当APU缓存刷新时,可以避免实现额外的软件需求来实现一致性。
所有的PS主口,包括RPU(不包括全功率DMA控制器、DisplayPort和S_AXI_HP{0:3}_FPD PS主口),都可以选择配置为I/O一致性。
PS中有两个DMA,一个位于LPD中,另一个位于FPD中。FPD DMA没有到CCI的物理通路,不支持I/O一致性。LPD DMA有一个通过CCI到DDR控制器的替代路径,这允许它被标记为I/O一致性。

2.2.3 ACP Coherency

PL的主口一样可以通过APU的ACP端口去监测APU缓存,ACP访问还能被用于分配L2缓存。

2.3 互连子模块

PS互连有以下子模块:
(1)Xilinx内存保护模块,Xilinx memory protection unit,XMPU:FPD,OCM和DDR。
Xilinx内存保护模块(XMPU)为内存和FPD从口提供内存分片和TrustZone保护。
(2)Xilinx外设保护模块,Xilinx peripheral protection unit,XPPU。
Xilinx外设保护模块(XPPU)提供LDP外设隔离和IPI保护功能。可以通过配置XXPU来允许1个或多个主口访问LDP外设。
(3)系统内存管理模块,System memory management unit,SMMU。
系统内存管理单元(SMMU)为从口提供保护服务,并为I/O主口提供地址转换以识别超出其实际寻址能力的空间。在缺乏内存隔离的情况下,I/O器件会破坏系统内存,SMMU会提供设备隔离来防止DMA攻击。SMMU由译码控制单元(TCU)和多个译码缓冲单元(TBUs)组成。
(4)AXI超时模块,AXI timeout block,ATB,挂载在互连上作为看门狗。
AXI超时模块主要是为了确保互连不会因为没有响应而挂机卡死。该模块时刻监视跟踪着AXI上的事务,如果从口在设定的时间内不给主口响应,模块自身会产生一个响应给主口,防止互连因为等不到响应而挂死。超时模块的原理图如下,可以通过配置ATB_PRESCALE寄存器来设置超时值:
 【Zynq UltraScale+ MPSoC解密学习10】Zynq UltraScale+的PS互连_第2张图片
(5)AXI隔离模块,AXI and APB isolation block,AIB,负责将AXI/APB的主机和从机隔离,为它们的关闭行为做准备。
AXI隔离模块(AIB)负责将AXI/APB的主机和从机隔离,为它们的关闭行为做准备。AIB在隔离过程中管理AXI和APB接口,从而实现上电向断电状态的平稳过渡。AIB功能透明易懂,在正常事务期间零延迟。
(6)PS-PL之间的AXI接口
(7)AXI性能监视器,AXI performance monitor,APM。
AXI性能监控器(APM)在PS AXI互连的多个节点上收集实时事务度量指标来帮助系统软件分析实时活动。


三、互连寄存器

【Zynq UltraScale+ MPSoC解密学习10】Zynq UltraScale+的PS互连_第3张图片

【Zynq UltraScale+ MPSoC解密学习10】Zynq UltraScale+的PS互连_第4张图片
 

你可能感兴趣的:(Zynq,UltralScale+)