Zynq7000中的应用处理单元(APU)介绍

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 异步,这为设计者提供了更大的灵活性,可以根据具体的应用需求和硬件特性来选择合适的时钟频率。这种灵活性有助于优化系统的整体性能、功耗和成本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/619508.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024蓝桥A组A题

艺术与篮球(蓝桥) 问题描述格式输入格式输出评测用例规模与约定解析参考程序难度等级 问题描述 格式输入 无 格式输出 一个整数 评测用例规模与约定 无 解析 模拟就好从20000101-20240413每一天计算笔画数是否大于50然后天数; 记得判断平…

每日一VUE——组件的生命周期

文章目录 VUE组件的生命周期生命周期钩子函数实例创建Teleport VUE组件的生命周期 组件生命周期 组件从创建到挂载、更新、到销毁的一系列过程被称为组件的生命周期。 生命周期函数 在组件的各个生命周期节点执行的函数,为生命周期钩子函数。 生命周期钩子函数…

如何在Rust中操作JSON

❝ 越努力,越幸运 ❞ 大家好,我是「柒八九」。一个「专注于前端开发技术/Rust及AI应用知识分享」的Coder。 前言 我们之前在Rust 赋能前端-开发一款属于你的前端脚手架中有过在Rust项目中如何操作JSON。 由于文章篇幅的原因,我们就没详细介绍…

Web 题记

[极客大挑战 2019]LoveSQL 看到这种就肯定先想到万能密码,试试,得到了用户名和密码 总结了一些万能密码: or 11 oror admin admin-- admin or 44-- admin or 11-- admin888 "or "a""a admin or 22# a having 11# a havin…

基于ArcGIS、InVEST与RUSLE水土流失模拟及分析

我国是世界上水土流失最为严重的国家之一,水土流失面广量大。据第一次全国水利普查成果,我国现有水土流失面积294.91万平方公里。严重的水土流失,是我国生态恶化的集中反映,威胁国家生态安全、饮水安全、防洪安全和粮食安全&#…

Stable Diffusion之文生图模型训练

1、数据准备 提前准备好一组相关的照片。 在线的图片处理网站 BIRME - Bulk Image Resizing Made Easy 2.0 (Online & Free) 将图片转成统一大小,支持批量处理,效率高 2、生成提示词 进入stable diffusion webui页面 旧版直接使用 train/proproc…

(四)C++自制植物大战僵尸游戏启动流程

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/ErelL 一、启动方式 鼠标左键单机VS2022上方工具栏中绿色三角按钮(本地Windows调试器)进行项目启动。第一次启动项目需要编译项目中所有代码文件,编译生成需要一定的时间。不同性能的电…

AliyunCTF 2024 - BadApple

文章目录 前言环境搭建漏洞分析漏洞利用参考 前言 本文首发于看雪论坛 https://bbs.kanxue.com/thread-281291.htm 依稀记得那晚被阿里CTF支配的恐惧,今年的阿里CTF笔者就做了一道签到PWN题,当时也是下定决心要学习 jsc pwn 然后复现这道 BadApple 题目…

小米温度计接入HA后,手机米家app里温度计就看不到温度数值了

环境: 小米温度计 HA OS Core 2023.12.1 Supervisor 2024.04.0 Operating System 11.1 问题描述: 小米温度计接入HA后,手机米家app里和HA里面温度计就看不到温度数值了 解决方案: 1.前往米家APP,解绑温度计和本地…

粮油包装生产线效率与品质双提升攻略

随着生活节奏的加快和消费者对食品安全、便捷性要求的提高,粮油包装生产线的效率与产品质量成为了决定企业竞争力的重要因素。那么,如何在保证产品质量的同时,提升粮油包装生产线的生产效率呢?星派将为您揭示答案。 一、引入智能化设备&…

简单了解C++常见编程问题解决方案

这篇文章主要介绍了C常见编程问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 电脑配置:window10, 64位操作系统,基于x64的处理器,Microsoft Visual Studio Comm…

网络编程套接字(二)之UDP服务器简单实现

目录 一、服务端UdpServer 1、udp_server.hpp 1、服务器的初始化 2、服务器的运行 2、udp_server.cc 二、客户端UdpClient udp_client.cc 三、完整代码 一、服务端UdpServer 1、udp_server.hpp 首先,我们在该文件中,将服务器封装成一个类&#…