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

news/2024/11/23 3:43:56/

文章目录

    • 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.ppmy.cn/news/759343.html

相关文章

夜神模拟器网络桥接基本设置方法

5.2.0.0版本新增网络桥接和断网功能,轻松畅玩soul night等局域网游戏(Win10也支持网络桥接哦) 网络桥接就是让不同网段的计算机能互相的访问(比如CS这款游戏,使用网络桥接后就可以在同一个局域网内一起玩啦&#xff0…

夜神模拟器如何设置自动代理

夜神模拟器设置代理的方法: 1.打开设置-wlan 2.长按WiredSSID 3.点击修改网络 4.弹出界面-勾选高级选项,代理-修改为手动,填写电脑的ip地址(打开cmd,输入ipconfig可查看),服务器端口&am…

solopi入门(2)连接手机/模拟器(模拟器最好使用夜神)

上一篇咱们讲了如何搭建adb环境,那么这一篇咱们来看看solopi如何连接手机或模拟器吧 一、adb连接手机 1、连接手机之前要下载solopi.apk,地址:https://github.com/alipay/SoloPi/releases 2、连接手机,首先得打开手机中的开发者…

保姆式学习,解决夜神模拟器ADB版本不一致问题

解决模拟器连不上电脑的问题 前言解决办法总结 前言 使用adbl连接模拟器时,经常会提示adb版本不一致问题,那么如何解决呢?如图所示报错,因为模拟器的adb版本是36,而Android SDK的adb是40版,不兼容 解决办法 从D:\an…

关于夜神模拟器,你该了解这些

关于夜神模拟器,你该了解这些 下载安装配置更改为手机模式性能设置机型设置 本人学习android开发第一个用的就是夜神模拟器,相信有很多人和我一样用的也是夜神模拟器,关于夜神模拟器你应该知道这些: 下载 夜神模拟器官网 安装…

夜神模拟器的安装与使用

转载:http://www.mamicode.com/info-detail-1537597.html 安卓开发环境搭建中,我们创建并启动了eclipse自带的安卓模拟器,该模拟器不仅启动慢,而且在使用过程中的反应速度也是出奇的差,经常出现卡机现象。为了解决这种…

夜神模拟器apk超过2g安装失败,mumu模拟器可以安装

换了雷电的模拟器安装,提示比较友好。说是安装包太大了,换成64位。 转而,将夜神模拟器换成64位试试。 但是换成64位的夜神模拟器,还是安装失败。 后来经过同事推荐,mumu模拟器可以安装,经测试mumu模拟器可…

夜神模拟器 版本下载

一:各个版本 https://bbs.yeshen.com/forum.php?modviewthread&tid821&highlight%E5%8E%86%E5%8F%B2 charles:破解https://blog.csdn.net/ljy3066750788/article/details/120089581? 二:连不上网 1:测试浏览器 2:关闭…