热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

3、ZYNQPS架构

 ZYNQ实际上是一个以处理器为核心的系统,PL只是它的一个外设。Zynq-7000系列的亮点在于它包含了完整的ARM处理器系统,且处理器系统中集成了内存控制器和大量的外设,使

   ZYNQ 实际上是一个以处理器为核心的系统, PL 只是它的一个外设。 Zynq-7000 系列的亮点在于它包含了完整的 ARM 处理器系统,且处理器系统中集成了内存控制器和大量的外设, 使 Cortex-A9 处理器可以完全独立于可编程逻辑单元。 而且实际上在 ZYNQ 中, PL 和 PS 两部分的供电电路是独立的,这样 PS 或 PL 部分不被使用的话就可以被断电。

  在前面我们介绍 SOPC 时提到过, FPGA 可以用来搭建嵌入式处理器,像 Xilinx 的 MicroBlaze 处理器或者 Altera 的 Nios II 处理器像这种使用 FPGA 的可编程逻辑资源搭建的处理器我们称之为“软核”处理器,它的优势在于处理器的数量以及实现方式的灵活性。

  而 ZYNQ 中集成的是一颗“硬核”处理器, 它是硅芯片上专用且经过优化的硬件电路, 硬核处理器的优势是它可以获得相对较高的性能。 另外, ZYNQ 中的硬件处理器和软核处理器并不冲突,我们完全可以使用 PL 的逻辑资源搭建一个 Microblaze 软核处理器,来和 ARM 硬核处理器协同工作。

  需要注意的是, Zynq 处理器系统里并非只有 ARM 处理器,还有一组相关的处理资源,形成了一个应用处理器单元(Application Processing Unit, APU),另外还有扩展外设接口、 cache 存储器、存储器接口、互联接口和时钟发生电路等。

  ZYNQ 处理器系统(PS) 示意图如下所示,其中红色高亮区域为 APU。

 

 

  (1)APU

  如上图所示是 APU 的简化框图。 APU 主要是由两个 ARM 处理器核组成的每个都关联了一些可计算的单元一个 NEONTM 媒体处理引擎(Media Processing Engine, MPE)和浮点单元(Floating PointUnit, FPU);一个内存管理单元(Memory Management Unit, MMU);和一个一级 cache 存储器(分为指令和数据两个部分)。 APU 里还有一个二级 cache 存储器,再往下还有片上存储器 (On ChipMemory, OCM), 这些是两个 ARM 处理器共用的。最后,由一个一致性控制单元(Snoop Control Unit,SCU)在 ARM 核和二级 cache 及 OCM 存储器之间形成了桥连接。 SCU 还部分负责与 PL 对接,图中没有标出这个接口。

  (2)外部接口

  如图 1.4.1 所示, Zynq PS 实现了众多接口,既有 PS 和 PL 之间的,也有 PS 和外部部件之间的

  PS 和外部接口之间的通信主要是通过复用的输入/输出(Multiplexed Input/Output, MIO)实现的,它提供了可以灵活配置的 54 个引脚,这表明外部设备和引脚之间的映射是可以按需定义的。

  当需要扩展超过 54 个引脚的时候可以通过扩展 MIO(Extended MIO, EMIO)来实现 EMIO 并不是 PS 和外部连接之间的直接通路,而是通过共用了 PL 的 I/O 资源来实现的。

  PS 中可用的 I/O 包括标准通信接口和通用输入/输出(General Purpose Input/Output,GPIO), GPIO 可以用做各种用途,包括简单的按钮、开关和 LED。 如下图所示:

 

  (3)存储器接口

  Zynq-7000 APSoC 上的存储器接口单元包括一个动态存储器控制器几个静态存储器接口模块

  动态存储器控制器可以用于 DDR3、 DDR3L、 DDR2 或 LPDDR2。

  静态存储器控制器支持一个 NAND 闪存接口、一个 Quad-SPI 闪存接口、一个并行数据总线和并行 NOR 闪存接口。

  (4)片上存储器

  片上存储器包括 256kB 的 RAM(OCM)128kB 的 ROM(BootROM)

  OCM 支持两个 64 位 AXI从机接口端口,一个端口专用于通过 APU SCU 的 CPU/ACP 访问,而另一个是由 PS 和 PL 内其他所有的总线主机所共享的。

  BootROM 是 ZYNQ 芯片上的一块非易失性存储器,它包含了 ZYNQ 所支持的配置器件的驱动。 BootROM 对于用户是不可见的,专门保留且只用于引导的过程。

  (5)AXI 接口

  ZYNQ 将高性能 ARM Cotex-A 系列处理器与高性能 FPGA 在单芯片内紧密结合,为设计带来了如减小体积和功耗、 降低设计风险,增加设计灵活性等诸多优点。在将不同工艺特征的处理器与 FPGA 融合在一个芯片上之后, 片内处理器与 FPGA 之间的互联通路就成了 ZYNQ 芯片设计的重中之重。如果 CotexA9 与 FPGA 之间的数据交互成为瓶颈, 那么处理器与 FPGA 结合的性能优势就不能发挥出来。

  Xilinx 从 Spartan-6 和 Virtex-6 系列开始使用 AXI 协议来连接 IP 核。在 7 系列和 ZYNQ-7000 AP SoC器件中, Xilinx 在 IP 核中继续使用 AXI 协议

  AXI 的英文全称是 Advanced eXtensible Interface, 即高级可扩展接口,它是 ARM 公司所提出的 AMBA(Advanced Microcontroller Bus Architecture)协议的一部分。

  AXI 协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:

    1) 总线的地址/控制和数据通道是分离的;
    2)支持不对齐的数据传输;
    3)支持突发传输, 突发传输过程中只需要首地址;
    4)具有分离的读/写数据通道;
    5)支持显著传输访问和乱序访问;
    6)更加容易进行时序收敛。

  在数字电路中只能传输二进制数 0 和 1,因此可能需要一组信号才能高效地传输信息, 这一组信号就组成了接口。 AXI4 协议支持以下三种类型的接口:

    1)AXI4: 高性能存储映射接口。
    2)AXI4-Lite:简化版的 AXI4 接口, 用于较少数据量的存储映射通信。
    3)AXI4-Stream: 用于高速数据流传输,非存储映射接口。

  在这里首先我们首先解释一下存储映射(Meamory Map)这一概念。如果一个协议是存储映射的,那么主机所发出的会话(无论读或写) 就会标明一个地址。 这个地址对应于系统存储空间中的一个地址, 表明是针对该存储空间的读写操作。

  AXI4 协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。 AXI-Lite为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。而 AXI-Stream 接口则像 FIFO 一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速 AD、 PCIe、 DMA 接口等需要高速数据传输的场合。

  在 PS 和 PL 之间的主要连接是通过一组 9 个 AXI 接口,每个接口有多个通道组成。这些形成了 PS 内部的互联以及与 PL 的连接, 如下图所示:

 

   我们将上图中的接口总结如下所示:

 

 

  上图给出了每个接口的简述,标出了主机和从机(按照惯例,主机是控制总线并发起会话的,而从机是做响应的)。需要注意的是, 接口命名的第一个字母表示的是 PS 的角色,也就是说,第一个字母“M” 表示 PS 是主机,而第一个字母“S”表示 PS 是从机。

  上图中 PS 和 PL 之间的 9 个 AXI 接口可以分成三种类型:

    1)通用 AXI(General Purpose AXI):一条 32 位数据总线,适合 PL 和 PS 之间的中低速通信。接口是透传的不带缓冲。总共有四个通用接口:两个 PS 做主机,另两个 PL 做主机。
    2) 加速器一致性端口(Accelerator Coherency Port):在 PL 和 APU 内的 SCU 之间的单个异步连接,总线宽度为 64 位。这个端口用来实现 APU cache 和 PL 的单元之间的一致性。 PL 是做主机的。
    3)高性能端口(High Performance Ports):四个高性能 AXI 接口,带有 FIFO 缓冲来提供“批量”读写操作,并支持 PL 和 PS 中的存储器单元的高速率通信。数据宽度是 32 或 64 位,在所有四个接口中PL 都是做主机的。

  上面的每条总线都是由一组信号组成的,这些总线上的会话是根据 AXI4 总线协议进行通信的。

 

 

 

 

搜索

复制



推荐阅读
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 本文提供南昌大学《嵌入式系统》课程期末考试的真题及详细解答,涵盖填空题、指令测试题等内容,帮助学生更好地理解和掌握相关知识点。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文汇总了在正式宴会上常用的寒暄语句,包括欢迎词、感谢词及日常问候,适用于各种正式场合。这些语句不仅有助于提升交际礼仪,还能增进彼此之间的友好关系。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本文探讨了现代信号处理系统的核心组件,包括数据转换、数据交互和数据处理。详细介绍了AD/DA转换、串/并转换、编解码转换等技术,并讨论了FPGA在信号处理中的应用及其实现方法。 ... [详细]
  • 在Windows 7 64位系统中,使用DNW进行mini2440开发板的USB连接时遇到驱动不兼容问题。本文介绍了一种替代工具——SuperVivi-USB-Transfer-Tool,并详细说明其安装步骤和使用方法。 ... [详细]
  • 2022年单片机课程(机器人工程)教学反思
    本文对2022年单片机类课程的教学进行了全面反思,分析了教学过程中遇到的问题,并探讨了未来改进的方向。 ... [详细]
  • 解析SQL查询结果的排序问题及其解决方案
    本文探讨了为什么某些SQL查询返回的数据集未能按预期顺序排列,并提供了详细的解决方案,帮助开发者理解并解决这一常见问题。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 在进行QT交叉编译时,可能会遇到与目标架构不匹配的宏定义问题。例如,当为ARM或MIPS架构编译时,需要确保使用正确的宏(如QT_ARCH_ARM或QT_ARCH_MIPS),而不是默认的QT_ARCH_I386。本文将详细介绍如何正确配置编译环境以避免此类错误。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
author-avatar
靠谱的留一手_267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有