【ARM Coresight 系列文章 2.1 - ARM Coresight 组件介绍】

news2024/11/23 16:57:33

文章目录

    • 1.1 Coresight 组件介绍
      • 1.1.1 Trace sources
      • 1.1.2 Trace Sinks
      • 1.1.2 Trace links

1.1 Coresight 组件介绍

在这里插入图片描述

图 1-1

1.1.1 Trace sources

什么是 Trace source?
在ARM Coresight技术中,Trace Source是指处理器中的一个组件,用于产生和发送跟踪数据。它可以捕获处理器执行的指令和数据流,并将跟踪数据发送给其他组件进行进一步的分析和调试操作。Trace Source通常与处理器的执行单元紧密集成,可以实时地记录处理器的指令执行轨迹,帮助开发人员分析和优化软件的执行性能。

Trace source 的 coresight 组件一般有下面几种:

  • ETM(embedded trace macrocells):ETM是一个用于处理器跟踪的组件,用于记录处理器执行的指令和数据流(str/ldr),也就是通常说所的data trace和instruction trace, 通常每个core 都会有一个ETM组件,EMT组件产生的数据流一般会通过ATB总线送出去。在最新的ARMv9 中,core内部使用的不再是ETM,而是在 ETM 基础上进行升级的 ETE 组件;
  • PTM(program flow trace macrocells)比较老的组件,现在很少用,主要功能是在分支跳转时进行trace数据抓取;
  • ITM 类似与串口,软件可以将要打印的log数据写入到ITM的stimulate 的 port口,然后ITM 会将数据通过ATB总线送出去,外部工具接收到 ITM的数据后再解析成对应的 log;
  • STM(system trace macrocells):功能类似与ITM,只是在Cortex-A系列上,由于CPU性能较高,trace数据量比较大,使用ITM的话,带宽不够,所以ARM就针对Cortex-A系列开发出了STM组件,STM组件可以将数据通过AXI总线送出去,此外STM还可以抓取一些硬件某块的信号。

1.1.2 Trace Sinks

有产生trace的组件,就会有存储trace data的组件与之对应,trace sinks(池子)就是对应组件的总体统称,常见的trace sink组要有以下:

  • TPIU(trace port interface units):将ATB数据通过trace port发送给外界,比如发送给DS-5(Dstream),一般DS-5内部会有一个几个G的存储,用来接收trace数据;
    在这里插入图片描述

  • ETB(embedded trace buffers): 存储 ATB 数据的 buffer,但是ETB一般比较小,能够存放的trace 数据不多,如果抓去少量trace数据可以存放到ETB,但是如果数据量较大那么可能就会发生overwrite的情况;当然,也可以把ETB做大,但是做大了的话芯片面积将会增大,这样芯片成本就会增加。

    在这里插入图片描述

  • ETF(Embedded Trace FIFO)是用于存储和传输ETM(Embedded Trace Macrocell)生成的跟踪数据的组件。ETF可以作为ETM的输出缓冲区,用于存储ETM生成的跟踪数据,然后将数据传输给其他组件进行进一步的分析和调试操作;

    在这里插入图片描述

  • ETR(Embedded Trace Router)是用于连接和路由跟踪数据的组件。ETR负责接收来自ETM(Embedded Trace Macrocell)和其他跟踪组件生成的跟踪数据,并将数据路由到相应的目的地,如TMC(Trace Memory Controller)或ETF(Embedded Trace FIFO)。ETR可以根据配置和控制信息,将跟踪数据分发到不同的目的地,以便进行进一步的分析和调试操作。它提供高速的接口和协议,以支持大量的跟踪数据传输。
    在这里插入图片描述
    如上图,ETR 会将数据通过AXI总线送出去,最后通过CI700送给DDR。

  • TMC(trace memory controller):TMC不属于Trace Sink, TMC负责管理跟踪数据的存储和缓冲,以及将数据传输给其他组件进行进一步的分析和调试操作。它可以控制跟踪数据的存储位置、大小和格式,并提供高速的接口和协议用于数据传输。

1.1.2 Trace links

Trace 信息传递过程中所需要的中间 coresight 组件,从trace source 到 trace sink中间还有一系列的处理,这些处理一般都是经过Trace links来出来的,常用的 trace links 有如下几种:

  • Trace Funnel : 将接收的多个ATB总线数据合并成一个ATB总线数据,因为有些总线宽度不一样,比如将两个64bit的总线通过Funnel 合并成一个128bits的位宽送出去,也可通过Funnel 选通对应的 trace source 送过来的数据;
    在这里插入图片描述

  • Trace Replicator: 将一个ATB总线数据,分发成多个ATB总线数据发送; 因为 trace 数据可以存放在 ETB 中也可以送给 TPIU 送出去, 如图1-1 所示。

  • Async Bridge: 用于连接异步处理器和其他系统组件的接口。异步处理器是一种特殊的处理器,其时钟与系统的主时钟不同步。Async Bridge提供了一个接口,使得异步处理器可以与其他系统组件进行通信和协调。比如ETM 一般是和CPU是同一个时钟域,但是其他coresight组件一般使用的是coresight的时钟域,如果ETM要将数据送给 下一级组件,也即夸时钟域进行数据传输,这时就需要一个异步桥进行转换。
    在这里插入图片描述
    上一篇:ARM Coresight 及 DS-5 介绍 2 - ARM Coresight 介绍

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全球十大看黄金走势免费app软件最新名单推荐(综合版)

选择黄金走势免费app软件时,有几个关键因素需要考虑。首先,要选择可靠的软件平台,确保其在金融市场上拥有良好的声誉和高度的信任度。此外,软件应提供及时准确的市场数据,包括实时行情、交易量和技术指标等&#xff0c…

高速PCB布局布线规范

目录 一、容抗/感抗 1.容抗 2.感抗 二、寄生电容/分布电容/杂散电容 1.寄生电容 2.分布电容 3.杂散电容 4.寄生电容/分布电容/杂散电容对信号的影响 5.怎么减小分布电容? 三.寄生电感 1.什么是寄生电感? 2.怎么减小寄生电感? 四.…

ROS:节点名称重名

目录 一、前言二、rosrun设置命名空间与重映射2.1设置命名空间2.2rosrun名称重映射2.3rosrun命名空间与名称重映射叠加 三、launch文件设置命名空间与重映射四、编码设置命名空间与重映射4.1C 实现:重映射4.2C 实现:命名空间4.3Python 实现:重映射 一、前言 ROS 中创建的节点是…

Python3在Windows上设置环境变量方法

Python3在Windows上设置环境变量方法,在环境变量中添加Python目录: 在命令提示框中(cmd) : 输入 path%path%;C:\Python 按下"Enter"。 注意: C:\Python 是Python的安装目录。 也可以通过以下方式设置: 右键点击"计算机&q…

《深入理解计算机系统》(9)内存管理

1、物理和虚拟寻址 物理寻址 主存被组织成一个由 M 个连续的字节大小的单元组成的数组。每字节都有一个唯一的物理地址。CPU 访问内存最自然的方式就是使用物理地址,称为物理寻址。下图是一个物理寻址的示例,该示例的上下文是一个加载指令,它…

群载波应急广播主机的应用

一、 概述 群载波主机是专为山洪灾害预警、气象预警、地质灾害预警设计的一款智能IP群载波主机。该群载波主机可通过网络实现与控制中心通讯,用户可实时远程控制功放的开关机状态以及检测设备的主要信息。群载波主机主要用于接收网络信号,与控制中心通讯…

如何在Ubuntu系统中添加硬盘

这里写自定义目录标题 一. 安装磁盘二. 查看和新建硬盘分区2.1 查看硬盘分区2.2 创建硬盘分区 三. 分区格式化四. 分区挂载到目录五. 配置启动挂载 众所周知,在Linux系统中有一个著名的说法,即”一切皆文件“。包括磁盘在内的各种连接到系统的设备都用文…

视频怎么实现倒放?分享这3个方法给大家!

如果你曾经想过将自己喜欢的视频倒放播放,你可能会发现这是一项相当具有挑战性的任务。尽管许多视频播放器提供了倒放功能,但有时候这些功能可能不够灵活,甚至根本不支持倒放。在本文中,我们将介绍几种可帮助你倒放视频的方法。 …

减噪 低振纹|拓尔微TMI8421打印机马达驱动解决方案

打印机作为现代办公不可或缺的设备为我们的工作带来了便利,但也会遇到一些”鸡肋“问题,如产生噪音或机器发热等问题,不仅无法高效的打印文件资料还会给安静的办公室环境带来噪音干扰,打乱工作思绪...... 一台高效稳定且减噪的打…

langchain源码阅读系列(三)之Chain模块

原文首发于博客文章langchain源码阅读 本节是langchian源码阅读系列第三篇,下面进入Chain模块👇: LLM 应用构建实践笔记 Chain链定义 链定义为对组件的一系列调用,也可以包括其他链,这种在链中将组件组合在一起的想…

Python中读取与写入文件时的编码方式

在《Python中文件的读取》与《Python中文件的写入》中提到通过文件对象调用read()函数和write()函数实现文件的读写。以上方法能够正确地取或写入英文时,当要读写的内容是中文时,则需要考虑编码方式。 1 读取已经存在的数据 1.1 创建文件 创建一个txt…

【码银送书第二期】《高并发架构实战:从需求分析到系统设计》

很多软件工程师的职业规划是成为架构师,但是要成为架构师很多时候要求先有架构设计经验,而不做架构师又怎么会有架构设计经验呢?那么要如何获得架构设计经验呢? 一方面可以通过工作来学习,观察所在团队的架构师是如何…

nginx脚本,Nginx变量截取字符串,拼接字符串,nginx打印日志,添加修改HTTP请求头,添加修改HTTP响应头

nginx变量 nginx变量命名,以$开头。 举例:nginx.conf 文件中有下面这一行配置:set $var "hello world";特点:我们看到,Nginx 变量名前面有一个 $ 符号,这是语法上的要求强调:所有的 Nginx 变量在 Nginx 配…

热门实践丨如何结合实际业务进行 ECS 规格选型与容量验证

作者:赵佳佳 随着云原生技术的蓬勃发展以及云产品价格愈发低廉,越来越多 Geek 开发者、技术爱好者选择 OSS 对象存储、ECS 云服务器等基础产品构建自己的网站、网盘等应用。但对于企业而言,面对种类与规格的丰富的 ECS 云服务器,…

【网络原理之三】应用层协议HTTP和HTTPS

HTTP什么是HTTP工作过程协议格式协议内容HTTP请求MethodURLURL的encode和decode Version请求报头请求正文 HTTP响应状态码响应报头 HTTPSHTTPS执行过程加密对称加密非对称加密 证书 HTTP 什么是HTTP HTTP:超文本传输协议。是一种应用非常广泛的应该层协议。 所谓 “…

Mybatis应用(3)——mybatis框架使用 mybatis项目应用初步 mybatis使用报错集锦

目录 引出mybatis框架使用1.导包:mybatis包分页的包pom.xml文件【war包】1.导包:mybatis包分页的包pom.xml文件【jar包】2.resources下配置mybatis-config.xml文件,以及log4j.properties文件3.在resources下建文件4.在UserMapper中写SQL myba…

若依v3.2问题解决:菜单路由不匹配 / 跳转路由页面空白

问题1解决方法 问题2解决方法 问题1 菜单路由不匹配 ,在菜单管理中匹配代码中的相应组件,可是在页面上总是报匹配错误,下面是报错情况和相关数据库 解决方法 因为店铺管理是一个目录,而店铺详情和店铺列表是菜单,路…

UC伯克利LLM排行榜(Chatbot Arena Leaderboard)再更新!GPT-4稳居第一,Vicuna-33B登顶开源模型第一

UC伯克利LLM排行榜(Chatbot Arena Leaderboard)再更新!GPT-4稳居第一,Vicuna-33B登顶开源模型第一 文章目录 1. LMSYS ORG更新「LLM排位赛」2. 全新评价机制:MT-Bench2.1 为什么选择 MT-Bench?2.2 用LLM评…

Vue 常用指令 v-bind 绑定动态值

v-bind 用于动态绑定一个或多个属性值,或者向另一个组件传递props值(这个后面再介绍),应用场景:图片地址src、超链接href、动态绑定一些类、样式等等 绑定超链接 v-bind作用在属性上面绑定动态值。 v-bind 指令后接收一个参数,以冒号分割。v…

MySQL 第二天作业 操作表和用户权限

一、1.创建数据库 Market,在 Market 中创建数据表customers,customers表结构如表4.6所示,按要求进行操作。 (1)创建数据库Market。 create database Market;(2)创建数据表customers,在c_num字段上添加主键…