当前位置: 首页 > java >正文

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.xdnf.cn/news/17821.html

相关文章:

  • 20250813测试开发岗(凉)面
  • Spring Security 前后端分离场景下的会话并发管理
  • 商品分类拖拽排序设计
  • 数据结构:队列(Queue)与循环队列(Circular Queue)
  • 【SpringBoot系列-01】Spring Boot 启动原理深度解析
  • 【OpenGL】LearnOpenGL学习笔记07 - 摄像机
  • 《设计模式之禅》笔记摘录 - 15.观察者模式
  • 分布式与微服务宝典
  • Redis基础命令
  • 电商项目微服务架构拆分实战
  • LangGraph 指南篇-基础控制
  • 2025盛夏AI热浪:八大技术浪潮重构数字未来
  • HTML第三次作业
  • C语言相关简单数据结构:顺序表
  • 【深入浅出STM32(1)】 GPIO 深度解析:引脚特性、工作模式、速度选型及上下拉电阻详解
  • IPC Inter-Process Communication(进程间通信)
  • 桌面运维如何深造
  • 算法篇----分治(归并排序)
  • Unity新手制作跑酷小游戏详细教程攻略
  • Python实现点云概率ICP(GICP)配准——精配准
  • 【金仓数据库产品体验官】_从实践看金仓数据库与 MySQL 的兼容性
  • 决策树回归:用“分而治之”的智慧,搞定非线性回归难题(附3D可视化)
  • zookeeper安装部署
  • FemalePower项目学习笔记
  • Prompt工程师基础技术学习指南:从入门到实战
  • Linux LNMP配置全流程
  • 学习:JS进阶[10]内置构造函数
  • Java开发主流框架搭配详解及学习路线指南
  • C++ stack and queue
  • 【motion】身体动作与面部表情捕捉5:Motion-X++ 数据集下载和选择