ARM芯片架构之CoreSight Channel Interface 介绍

CoreSight Channel Interface(通道接口)详解


1. 概述

Channel Interface 是 ARM CoreSight 架构中用于在不同组件之间传递触发事件的专用接口。它是 Event Interface 的增强版本,支持多通道、双向通信,以及同步与异步两种时钟域连接方式。
常见用途:

  • 多核 CPU 同步调试停止(Halt)
  • 多个 Trace 单元同步开始/停止捕获
  • Profiling 事件同步广播
  • 跨组件硬件触发协调

Channel Interface 特别适合低频、单次触发或允许少量事件合并的应用,但不适合高速计数场景

在这里插入图片描述


2. 信号结构详解

2.1 通道数量

  • 通道数量可配置(由 SoC 设计定义)。
  • ARM 推荐至少 4 个通道,以支持多种事件类型并行传输。
  • 当两个组件的通道数不同时,连接规则:
    • 通道数少的一方连接到多的一方的前 N 个通道
    • 额外通道留空,不参与连接

2.2 信号列表与说明

异步 Channel Interface(Asynchronous)

适用于不同时钟域之间的通信,采用 4 阶段握手机制 进行安全事件传输。

信号名称方向(相对于本组件)复位后值说明
CHOUT[n-1:0]输出0事件请求信号。源组件将其置高表示有事件产生。
CHOUTACK[n-1:0]输入事件确认信号。目标组件处理完事件后拉高,通知源组件可以结束本次事件。
CHIN[n-1:0]输入接收到的事件请求信号,由另一组件的 CHOUT 驱动。
CHINACK[n-1:0]输出1事件确认反馈信号,通知对方事件已被接收并处理。
异步 Channel Interface 连接形式

在这里插入图片描述


同步 Channel Interface(Synchronous)

适用于同一时钟域内的通信,事件直接依赖公共时钟 CHCLK 同步,无需握手。

信号名称方向(相对于本组件)复位后值说明
CHCLK输入通道接口时钟输入,保证两端同步采样。
CHOUT[n-1:0]输出0事件输出信号,直接在时钟边沿采样传输。
CHIN[n-1:0]输入事件输入信号,来自另一组件的 CHOUT
异步 Channel Interface 连接形式

在这里插入图片描述


3. 异步握手机制(四阶段握手)

在异步模式下,信号跨时钟域传输,需要通过四阶段握手确保事件不丢失。

过程描述

  1. 发起事件
    源组件将 CHOUT 从 0 置为 1,表示有事件产生。
  2. 事件到达目标
    目标组件检测到 CHIN 上升沿或高电平,执行事件处理逻辑。
  3. 目标确认
    目标组件事件处理完成后,将 CHINACK 置为 1,表示事件已处理。
  4. 释放握手
    源组件检测到 CHOUTACK 为 1 后,将 CHOUT 清零。目标组件随后清零 CHINACK,完成一次握手。

在这里插入图片描述

4. 同步模式工作流程

  • 所有事件信号在 CHCLK 上沿采样
  • 无需握手,事件传递延迟仅为 1 个时钟周期
  • 要求两端组件完全在同一时钟域

5. 与 CTI/CTM 的应用结合

CTI(Cross Trigger Interface)

  • 提供多个触发输入(TRIGIN)和输出(TRIGOUT)
  • 可以将 Channel Interface 的事件直接连接到 CTI 输入
  • 用于触发:
    • CPU 调试事件(halt、step)
    • Trace 启动/停止
    • 向其他 CTI 广播事件

CTM(Cross Trigger Matrix)

  • 连接多个 CTI,形成事件传播网络
  • 支持一对多、多对多事件广播
  • Channel Interface 在其中承担物理传输通道的角色

6. 系统应用示例

多核调试停止

  1. CPU0 断点 → ETM 输出事件
  2. 事件通过 Channel Interface 进入 CTI0
  3. CTI0 通过 CTM 向 CTI1、CTI2 广播事件
  4. CTI1、CTI2 发出 halt 信号 → CPU1、CPU2 同步停止

Trace 停止同步

  1. ETB 缓冲区满 → CTI 输出事件
  2. CTM 将事件分发给 ETR、TPIU
  3. 所有 Trace Sink 同步停止捕获

7. 设计注意事项

  • 异步接口必须用握手防止丢事件
  • 跨时钟域必须加同步器,防止亚稳态
  • 高速频繁事件建议使用专用事件总线
  • 通道数设计需预留裕量,ARM 建议 ≥ 4

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

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

相关文章

Blender模拟结构光3D Scanner(二)投影仪内参数匹配

关于投影仪外参的设置可参见前一篇文章 Blender模拟结构光3D Scanner(一)外参数匹配-CSDN博客 使用Projectors插件模拟投影仪 Step 1 在Github下载插件(https://github.com/Ocupe/Projectors)。下载zip压缩包即可,无…

synchronized的作用

目录 一、核心作用 二、实现原理:基于"对象锁" 三、使用方式 四、锁的优化 五、优缺点 六、总结 synchronized 是 Java 中用于解决多线程并发安全问题的核心关键字,它的主要作用是实现线程间的同步,确保多个线程在访问共享资…

机试备考笔记 14/31

2025年8月14日 小结:(17号整理14号的笔记,这辈子真是有了w(゚Д゚)w)昨天摔了跤大的,今天好妈妈在家,松弛。省流:6道中等,明天只学了10分钟嘻嘻 目录LeetCode22…

dolphinscheduler中任务输出变量的问题出现ArrayIndexOutOfBoundsException

一段脚本任务如下:ret/data/dolphinscheduler/loadOraTable.sh "yonbip/yonbip10.16.10.69:1521/orcl" "select t.bondcontractno,t.olcunissuemny from yonbip.bond_contract t " "/dmp/biz" "bip" "2025-08-13"…

OpenCv(二)——边界填充、阈值处理

目录 一、边界填充(Border Padding) 1. 常见填充类型及效果 2.代码示例 (1)constant边界填充,填充指定宽度的像素 (2)REFLECT镜像边界填充 (3)REFLECT_101镜像边界…

Leetcode 15 java

今天复习一下翻转二叉树 226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2…

嵌入式学习的第四十九天-时钟+EPIT+GPT定时器

一、时钟1.时钟系统基本概念(1)PLL (锁相环, Phase-Locked Loop)作用:PLL是一种反馈控制电路,用于生成稳定的高频时钟信号。它通过将输出时钟与参考时钟进行比较和调整,可以产生比输入参考时钟频率高得多的输出时钟。倍…

Python Sqlalchemy数据库连接

Python Sqlalchemy数据库连接一、连接数据二、模型三、ORM操作一、连接数据 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker# 1. 连接数据库 dbHost postgres://用户名:密码主机:端口/数据库名 engine create_engine(dbHost) # create_engi…

【Node.js】ECMAScript标准 以及 npm安装

目录 一、 ECMAScript标准 - 默认导出和导入 二、ECMAScript标准 - 命名导出和导入 三、包的概念 五、 npm - 安装所有依赖 六、 npm - 全局软件包 Node.js总结 总结不易~ 本章节对我有很大的收获, 希望对你也是!!! 本节素材…

NPM 、 NPX

NPM vs. NPX 简单来说,npm 是一个 node 包管理器,npx 是一个 Node 包执行器。 NPX 是一个 Node 包执行器,该 Node 包可以是本地也可以是远程的。允许开发者在无需安装的情况下执行任意 Node 包。npm 在安装nodejs 就自动带了 npm install -g …

守护品质安全,防伪溯源系统打造全链路信任体系

一、引言在当下这个信息透明、品质至上的时代,防伪溯源已经成为众多品牌保护自身利益、提升消费者信任度的重要手段。为了满足市场上对高效、可靠的防伪溯源查询系统的迫切需求,榕壹云精心打造了一款防伪溯源查询系统。二、项目背景随着商品市场的不断扩…

【完整源码+数据集+部署教程】无人机航拍视角洪水检测与受灾房屋识别图像分割救援指导系统源码和数据集:改进yolo11-DCNV2

背景意义 研究背景与意义 随着全球气候变化的加剧,极端天气事件的频率和强度不断上升,洪水作为一种常见的自然灾害,给人类社会带来了严重的威胁。洪水不仅导致人员伤亡和财产损失,还对基础设施和生态环境造成了深远的影响。因此&a…

C# 结构体与类的区别是什么?

结构体是值类型是储存在栈中独立储存的,数据与数据之间不会相互影响,即使将一个结构体赋值给另外一个结构体也不会相互影响。 类是一个模板,实例出来的对象是独立的不会相互影响,但是将一个对象赋值给另一个对象时 会把指向堆内存中数据的指针赋值给另一个对象.从而发生两个变量…

Redis GEO

Redis GEO 引言 Redis 是一款高性能的键值存储系统,广泛应用于缓存、消息队列等领域。Redis GEO 是 Redis 2.4 版本后新增的一个功能,用于存储地理位置信息。本文将详细介绍 Redis GEO 的概念、使用方法以及应用场景。 什么是 Redis GEO? Redis GEO 是 Redis 的一个模块…

Go从入门到精通系列学习路线规划

Go从入门到精通系列学习路线规划 目录导航 Go从入门到精通系列学习路线规划首页说明 第1篇_Go语言初探_环境搭建与HelloWorld 第2篇_Go语言基础语法_变量常量与数据类型 第3篇_Go语言控制结构_条件判断与循环 第4篇_Go语言函数详解 第5篇_Go语言数据结构详解 第6篇_Go语言结构体…

Grid系统概述

目录 概念及功能 网格对象(Grid Object) 和世界对象(World Object) 工作流程 概念及功能 TrinityCore 的 Grid 系统是一套复杂的地图分区管理机制,其核心目标是通过动态管控游戏世界的区域状态和对象生命周期&#…

一文搞懂LLM大模型!LLM从入门到精通万字长文(2024.12月最新)

LLM从入门到精通精品文章 目录 一、LLM基本概念 二、LLM发展历程 三、LLM大模型的分类 四、LLM主流大模型类别 五、LLM大模型建立的流程 六、Fine-Tuning 七、Prompt-Tuning 八、超大规模参数模型Prompt-Tuning方法 8.1上下文学习 In-Context Learning 8.2.指令学习 …

Next.js跟React关系(Next.js是基于React库的全栈框架)(文件系统路由、服务端渲染SSR、静态生成SSG、增量静态再生ISR、API路由)

文章目录**1. React 是基础,Next.js 是扩展****2. Next.js 解决了 React 的哪些痛点?****3. 核心区别****4. Next.js 的核心特性**1. **文件系统路由**2. **服务端渲染(SSR)**3. **静态生成(SSG)**4. **增量…

Nightingale源码Linux进行跨平台编译

最近使用Nightingale 需要实现对服务的监测,想要在Windows 系统中使用,看官方文档中并不直接提供执行程序,原文如下: 准备工作 本地环境 本地已经安装git 本地安装git 便于后续下载源码并进行自动编译。 Linux操作系统环境&…

抽丝剥茧丨PostgreSQL 系国产数据库%SYS CPU newfstatat() high 调优一例(二)

续接上回《PostgreSQL 系国产数据库%SYS CPU newfstatat() high 调优一例(一)》,这个问题还在持续,并且原因并不只是一个,从调了文件系统级atime,到调整wal size减少日志被动清理,还有在验证tem…