Zynq 7000 系列中的Interconnect(互联)简介

PS(处理器子系统)内部的互联结构包含了多个交换机,用于通过AXI点对点通道连接系统资源。这些通道负责在主机和从机客户端之间进行地址、数据和响应事务通信。该互联结构负责管理多个待处理的事务,并且为Arm CPU设计了低延迟路径,同时为PL(可编程逻辑)主控制器提供了高吞吐量和缓存一致的数据路径。

简单来说,这种互联结构在处理器子系统中起到了桥梁作用,它确保了各种系统资源之间的高效通信,并且针对不同的使用场景(如CPU或PL主控制器)进行了优化,以提供最佳的性能和效率。

1 互联

互联作为数据通信的主要机制,具有一系列关键特性。

1.1 互联是基于AXI高性能数据通道交换机

①Snoop控制单元(SCU)
Zynq系列器件中的SCU的地址过滤功能允许它根据地址信息来选择性地转发数据。当数据从AXI从端口流入时,SCU会检查数据的地址,并根据预设的规则或配置来决定是否将数据转发到AXI主端口。这有助于维护缓存一致性,确保不同处理器或设备访问同一内存位置时数据的正确性。

②L2缓存控制器
Zynq系列器件中L2缓存控制器的一个重要特性是其地址过滤功能。这一功能使得L2缓存控制器在从它的AXI从端口到AXI主端口的流量传输上表现得像一个开关。具体来说,当CPU需要访问某个数据时,L2缓存控制器会首先检查这个数据的地址是否在L2缓存中。如果地址匹配,控制器就会直接从L2缓存中读取数据并送给CPU处理,从而避免了从主内存中读取数据的较慢过程。如果地址不匹配,即数据不在L2缓存中,控制器则会从主内存中读取数据,并同时将这个数据块调入L2缓存中,以便后续的快速访问。

因此,L2缓存控制器管理L2缓存的访问和操作,优化数据访问速度,减少处理器对主存的依赖。

1.2 基于Arm NIC-301的互联交换机

①中央互联
作为整个系统的中心,连接和管理所有其他互联。

②对从设备的主互联
为从设备(如存储器或外设)提供与主设备(如处理器)的通信通道。

负责将来自中央互联的低速到中速流量切换到M_AXI_GP端口、I/O外设(IOP)以及其他块。它起到一个桥梁的作用,将中央互联与这些目标端口和组件连接起来,实现数据的传输和共享。

③对主设备的从互联
允许主设备(如处理器)与从设备(如存储器或外设)进行通信。

从互联侧将来自S_AXI_GP端口、DevC和DAP的低速到中速流量切换到中央互联。与主互联类似,从互联也扮演着桥梁的角色,将数据从源端口和组件传输到中央互联,进而实现与其他部分的通信。

④存储器互联
优化对存储器的访问,提高数据传输效率。

负责将来自AXI_HP端口的高速流量切换到DDR DRAM和片上RAM(通过另一个互联)。作为系统内存访问的关键通道,内存互联确保了处理器和其他主设备能够高效、快速地访问DDR DRAM和片上RAM中的数据。

⑤OCM互联
针对片上存储器(OCM)的特定优化互联。

负责将来自中央互联和内存互联的高速流量进行切换。OCM(片上存储器)是一种集成在处理器或系统芯片上的高速存储器,用于存储关键数据和指令,以加快访问速度。

⑥AHB和APB桥
允许AXI接口与其他总线标准(如AHB和APB)进行互操作。

1.3 PS-PL接口
PS-PL接口在Zynq-7000 SoC中扮演着连接处理系统(PS)和可编程逻辑(PL)的关键角色。具体来说,PS-PL接口包括多个信号线,用于实现PS和PL之间的数据传输、共享内存、中断控制等功能。
PS和PL之间通过多个AXI接口实现连接。这些AXI接口包括:

①加速器一致性端口(AXI_ACP)
在PL中的一个缓存一致从端口,连接到PS APU的一致性从端口,确保处理器和加速器之间的缓存数据一致性。

AXI_ACP为可编程逻辑主机提供了低延迟访问,并与L1和L2高速缓存具有可选一致性。从系统角度来看,ACP接口与APU CPU的连接性相似。由于这种紧密的连通性,在APU块之外,ACP直接参与资源竞争。

②AXI_HP
在PL中的四个高性能、高带宽从端口,它们在PS AXI互联上成为主端口,用于处理大量或高优先级的数据传输。

AXI_HP接口提供了PL(可编程逻辑)总线主设备到DDR和OCM(片上存储器)的高带宽数据路径。每个AXI_HP接口都包括两个FIFO缓冲区,分别用于读写流量。PL到存储器的互连将高速AXI_HP端口路由到两个DDR存储器端口或OCM。AXI_HP接口也被称为AFI(AXI FIFO接口),以强调其缓冲功能。

这些接口的主要设计目的是在PL主设备和PS存储器(包括DDR和片上RAM)之间提供一个高吞吐量的数据路径。

③AXI_GP
四个通用端口(两个主端口和两个从端口),用于处理一般的数据传输任务,提供更大的灵活性和可扩展性。

AXI_GP接口主要用于连接外部存储器或其他外设。其特性丰富,包括支持标准AXI协议、具有固定的32位数据总线宽度,以及主端口ID宽度为12位等。主端口具有发送8次读取和8次写入的能力,而从端口ID宽度为6位,并具备接受8次读取和8次写入的能力。

在性能上,AXI_GP接口直接连接到中央互联区的端口,然后再由中央互联区连接到OCM interconnect和存储器接口。与精心设计的AXI_HP接口不同,AXI_GP接口没有使用任何额外的FIFO缓冲。这意味着其性能受限于主互联和从互联的端口,因此并不旨在实现高性能。这些接口主要用于一般用途。

此外,连接到AXI通用端口(S_AXI_GP[1:0])的PL总线主控制器可以访问PS I/O外设,但无法访问CPU私有总线寄存器。这一特性使得AXI_GP接口在Zynq SoC的系统架构中发挥着特定的作用,为外部设备和PS I/O外设提供了灵活且高效的通信机制。

2 AXI ID

AXI ID是AXI(Advanced Extensible Interface)协议中的一个关键组成部分,用于标识和管理总线上的事务。

AXI ID是一个13位的标识符,其结构从最高有效位(MSB)到最低有效位(LSB)如下:

①三位用于标识互联的类型(如central、主机、从机等)。

②八位由主机提供,其宽度由所有主机中AXI ID的最大宽度确定。这意味着不同的主机可能有不同的AXI ID宽度,但在一个系统中,AXI ID的总位数是固定的(这里是13位),因此,如果某个主机使用较少的位数,那么它的AXI ID可能会在高位填充零。

③两位用于标识已识别互联的从机接口。

表5-4列出了从机能观察到的所有可能的AXI ID值。
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UE4_动画基础_FootIK

角色由于胶囊体的阻挡,双脚与地面平行,不会与斜坡、台阶等贴合,有一条腿会处于悬空状态,通过双骨骼IK节点使一只脚太高,让后胶囊体下降,修正双脚的角度。这就是逆向运动IK的方法。 一、新建第三人称模板游戏…

OpenStack云计算(十四)——综合演练手动部署OpenStack,

本项目的项目实训可以完全参考教材配套讲解的详细步骤实施,总体来说实训工作量较大,可根据需要选做,重点观看配套的微课视频。 项目实训一 【实训题目】 搭建OpenStack云平台基础环境 【实训目的】 掌握OpenStack基础环境的安装和配置方…

CTFshow-PWN-栈溢出(pwn36)

存在后门函数,如何利用? 好好好,终于到了这种有后门函数的了 checksec 检查一下: 32 位程序,RELRO 保护部分开启 RWX: Has RWX segments 存在可读可写可执行的段 使用 ida32 看 main 函数 跟进 ctfshow 函数…

C++系列-命名空间

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 命名空间 在C/C中,变量,函数和后面要学到的类都是大量存在的,这些变量,函数和类的名称都存在于全局作用域中,可能会导…

电机入门1

文章目录 122.12.22.3 33.13.23.33.4 1 2 2.1 电机板 驱动板电机分类 驱动器分类 转速 转向扭矩定时器 ADC 2.2 PID 自动控制 的核心闭环控制算是 PID的应用 2.3 无刷电机用的 可大大提高其控制效率 和控制精度 3 开发板的IO 电流太小了 20~25ma 电机要A 驱动板 信号放大没舵…

Linux防火墙相关命令以及ip白名单配置

Linux防火墙相关命令以及ip白名单配置 firewall防火墙基础命令查看防火墙的服务状态查看防火墙的状态服务的开启、关闭和重启查看防火墙规则端口的查询、开放和关闭重启防火墙 防火墙白名单配置部分参数介绍 firewall防火墙基础命令 查看防火墙的服务状态 systemctl status f…

乘数而上,创邻科技入选2024数商典型应用场景“乘数榜”

4月18日,由浙江省科学技术协会指导的2024未来数商大会在杭州成功举办。本次大会以“场景突破 乘数而上”为主题,国际国内数商共聚未来科技城学术交流中心,聚焦数据要素市场的制度创新、数据治理、场景应用与生态构建等话题展开研讨。 大会现…

C++入门基础(一)

目录 C关键字命名空间命名冲突例子域的概念理解命名空间定义例子1例子2例子3例子4例子5例子6例子7 C输出与输入输出输入 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸&#x…

汽车底盘域的学习笔记

前言:底盘域分为传统车型底盘域和新能源车型底盘域(新能源系统又可以分为纯电和混动车型,有时间可以再研究一下) 1:传统车型底盘域 细分的话可以分为四个子系统 传动系统 行驶系统 转向系统 制动系统 1.1传动系…

计算机体系结构:向量体系结构介绍

向量体系结构介绍 什么是向量? 在计算机体系结构,"向量"(vector)是指一个由多个相同类型且逻辑上相关的数据元素组成的有序集合。这些元素可以是整数、浮点数、布尔值或其他数据类型,它们在内存中连续存储…

SpringSecurity + Oauth2 + jwt实现单点登录

文章目录 前言一、springsecurity oauth2 redis方式的缺点二、oauth2认证的4种模式的选择三、认证服务器的编写 第一步、创建WebSecurity配置类第二步、创建jwt仓库配置类第三步、创建UserDetailsService类第四步、创建认证服务器配置类 四、测试认证服务器的功能 1.创建Login…

墨水屏技术在工业智能化领域的创新应用

墨水屏技术在工业智能化领域的创新应用 随着科技的快速发展,各种显示技术层出不穷,其中墨水屏作为一种独特的显示技术,逐渐在工业领域展现出其独特的优势和价值。墨水屏以其低功耗、高对比度和阅读舒适度高等特点,正成为工业应用…

uniapp-css多颜色渐变:左右+上下

案例展示 案例代码&#xff1a; 代码灵感&#xff1a;使用伪类进行处理 <view class"headBox"></view>.headBox {height: 200rpx;background: linear-gradient(to right, #D3D5F0, #F0DCF3, #F7F6FB, #DAE8F2, #E1D3EE);position: relative; }.headBox…

【C++】哈希思想

目录 哈希介绍&#xff1a; 一&#xff0c;位图 1-1&#xff0c;位图的认识 1-2&#xff0c;位图的简单实现 1-3&#xff0c;位图的应用 二&#xff0c;布隆过滤器 2-1&#xff0c;布隆过滤器的认识 2-2&#xff0c;布隆过滤器的简单实现 2-3&#xff0c;布隆过滤器的…

3d设计网站有哪些(1)?渲染100邀请码1a12

做3d设计需要各类资源&#xff0c;比如模型、材质、贴图等&#xff0c;如果这些都要自己做会非常麻烦&#xff0c;所幸现在有网站可以下载&#xff0c;有的免费有的收费&#xff0c;这篇文章我就先分享几个给有需要的朋友看看吧。 1、Pikbest Pikbest成立于2018年7月12日&…

万辰集团如何破局“增收不增利”的困境?

在波澜不惊的食用菌加工行业&#xff0c;万辰集团&#xff08;300972.SZ&#xff09;曾是一名平凡的参与者。2021年战略转型的号角吹响&#xff0c;万辰集团挥别了传统业务&#xff0c;转而投身于快速增长的量贩零食市场&#xff0c;并迅速扩张到成为这一领域的重要玩家。万辰的…

TDSQL手动调整备份节点或冷备节点

一、背景描述 近期TDSQL数据库备份不稳定&#xff0c;有些set实例的备份任务未自动发起。经排查分析&#xff0c;存在多个set实例容量已经超过TB级别&#xff0c;且冷备节点都是同一台。因此&#xff0c;需要手动将当前备份节点改到其他备节点&#xff0c;开启增量备份&#x…

C语言笔试题之重排链表

重排链表 实例要求 1、给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln - 1 → Ln2、请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …3、不能只是单纯的改变节点内部的值&#xff0c;而是…

高级STM32应用开发:使用HAL库和RTOS

引言 STM32系列微控制器以其高性能、丰富的外设支持和低功耗特性&#xff0c;在工业、汽车及消费电子市场中占有显著地位。 下面我们旨在探讨STM32的高级开发技术&#xff0c;包括硬件抽象层&#xff08;HAL&#xff09;库的使用和实时操作系统&#xff08;RTOS&#xff09;的…

python批量删除文件

python批量删除文件 1、查询与删除2、添加模块到地址中3、批量删除多个路径中不需要导出的文件 1、查询与删除 mport osdef get_files_in_folder(folder_path):files []for file in os.listdir(folder_path):if os.path.isfile(os.path.join(folder_path, file)):files.appen…
最新文章