Zynq 7000 系列基于 AMD 的 SoC 架构。这些产品将功能丰富的双核或单核处理系统(PS)和 AMD 可编程逻辑(PL)集成在单个设备中,这些处理器是 Arm Cortex-A9 处理器,配备 NEON 协处理器,以多处理器(MP)配置连接,共享 512 KB 的 L2 缓存。每个处理器都是一个高性能、低功耗的核心,实现了用于指令和数据的两个独立的 32 KB L1 缓存。
应用处理器单元(APU)位于 PS 内部,APU 是系统中最关键的组件,它包括 PS、在 PL 中实现的 IP core,以及板级设备(如外部存储器和外设)。APU 与系统其余部分通信的主要接口有两个:通过 L2 控制器的接口和与 L2 缓存并行的 OCM 接口。如图3-1所示。
APU具备丰富的接口和控制器,可以与系统中的其他组件进行高效的数据交换和通信。包括:
1、加速器一致性端口(ACP)
ACP促进了PL与 APU 之间的通信。这个 64 位的 AXI 接口允许 PL 实现一个 AXI 主设备,该主设备可以访问 L2 和 OCM,同时保持与 CPU L1 缓存的内存一致性。
2、L2 cache
统一的 512 KB L2 缓存是 8 路集关联式的,允许按行、路(way)或主设备锁定缓存内容。
所有来自 APU 的 DDR 访问都通过 L2 缓存控制器进行数据交换。为了改进 DDR 访问的延迟,L2 缓存控制器有一个到 DDR 内存控制器的专用主端口,允许所有 APU-DDR 事务绕过与其他主设备共享的主互联。来自 APU 的其他既不是 OCM 也不是 DDR 的访问通过 L2 控制器,并使用第二个端口通过主互联进行数据交换。通过 L2 缓存控制器的访问不必是可缓存的。
3、Snoop 控制单元(SCU)
在APU内部的Cortex-A9处理器采用多处理器(MP)配置时,配置中包括一个SCU,负责维护两个处理器之间的L1缓存一致性,以及从PL到ACP接口的缓存一致性。为了提升性能,还配置了一个共享的、统一的512KB二级(L2)缓存,用于存储指令和数据。
在双核或单核Cortex-A9多处理器(MP)系统中,所有的访问都会经过SCU。同时,任何需要与Cortex-A9 MP系统保持缓存一致性的其他主设备(master)也必须通过ACP端口将访问路由到SCU。
APU 的访问可以指向 OCM、DDR、PL、IOP 从设备,或 PS 子块内的寄存器。为了最小化对 OCM 的延迟,SCU 提供了一个专用的主端口,使处理器和 ACP 能够直接访问 OCM,提供的延迟甚至比 L2 缓存还要小。
那些没有经过SCU的访问,与CPU的缓存不是一致的。在这种情况下,软件需要显式地处理同步和缓存一致性的问题。这通常涉及到使用特定的内存屏障指令或同步原语,以确保对共享数据的访问在多处理器系统中是正确和一致的。
SCU在MP系统中起着至关重要的作用,它确保多个处理器核心在访问共享数据时能够保持缓存的一致性。当一个处理器核心修改了某个数据项时,SCU会确保其他处理器核心的缓存中对应的数据项也被更新,从而避免了数据不一致的问题。
4、片上内存(OCM)模块
OCM提供了一个高速、低延迟的内存区域,用于存储需要快速访问的数据。这种内存与L2缓存并行,通常比L2缓存还要快,但容量较小,因此通常用于存储关键数据或频繁访问的数据。
5、调试访问端口(DAP)
调试和追踪功能已内建在两个处理器核心和互联之中,作为 CoreSight 调试和追踪系统的一部分。可以通过DAP控制和查询处理器和内存。此外,来自处理器的 32 位 AMBA™ 追踪总线(ATB)主设备与其他 ATB 主设备(如 Instrumentation Trace Macrocell(ITM)和 Fabric Trace Monitor(FTM))相结合,通过片内嵌入的追踪缓冲区(ETB)或追踪端口接口单元(TPIU)生成统一的 PS 追踪信息。
6、看门狗定时器和全局定时器
APU 包含一个 32 位的看门狗定时器和一个具有自动递减功能的 64 位全局定时器,这些定时器可以用作通用定时器,也可以用作从待机模式启动处理器的机制。
如图 3-2 所示,APU 及其子块都在 CPU_6x4x 时钟域中运行。APU 到 OCM 和主互联的接口都是同步的。主互联的运行频率可以是 CPU 频率的 1/2 或 1/3。DDR 块位于 DDR_3x 时钟域,并且与 APU 异步运行。到 APU 块的 ACP 端口包含一个同步器,使用该端口的 PL 主设备可以有一个与 APU 异步的时钟。
这样的设计使得不同的组件可以在最适合它们的频率下运行,同时仍然能够相互通信。通过异步时钟域之间的同步器,可以确保数据的正确传输和接收,从而保持系统的稳定性和可靠性。在主互联方面,降低频率可以减少功耗和潜在的电磁干扰,同时仍然满足性能需求。对于 DDR 块,由于它的操作特性和访问模式可能与 CPU 不同,因此允许它异步运行可以优化其性能并减少潜在的时序问题。
此外,PL 主设备使用 ACP 端口与 APU 通信时,其时钟可以与 APU 异步,这为设计者提供了更大的灵活性,可以根据具体的应用需求和硬件特性来选择合适的时钟频率。这种灵活性有助于优化系统的整体性能、功耗和成本。