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

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.dtcms.com/a/330060.html

相关文章:

  • 基于边缘深度学习的棒球击球训练评估研究
  • 模型训练不再“卡脖子”:国产AI训练平台对比与落地实践指南
  • 马力是多少W,常见车辆的马力范围
  • RK3568项目(十四)--linux驱动开发之常用外设
  • 中科米堆CASAIM蓝光三维扫描仪用于焊接件3D尺寸检测
  • 2025 开源语音合成模型全景解析:从工业级性能到创新架构的技术图谱
  • Python实现点云概率ICP(GICP)配准——精配准
  • static 和 extern 关键字
  • 公用表表达式和表变量的用法区别?
  • 【SpringBoot】12 核心功能-配置文件详解:Properties与YAML配置文件
  • WinForm中C#扫描枪功能实现(含USB串口)
  • 终端安全检测与防御
  • 20250813比赛总结
  • C++ list模拟实现
  • 未来AI:微算法科技(NASDAQ:MLGO)开发基于忆阻器网络储层计算MemristorPattern虚拟平台
  • 精准阻断内网渗透:联软科技终端接入方案如何“锁死”横向移动?
  • 科技赋能虚拟形象:3D人脸扫描设备的应用与未来
  • 钻井泥浆搅拌机的设计cad1张三维图+设计说明书
  • ULN2003与ULN2803的区别
  • MySQL优化常用的几个方法
  • 0813 网络编程基础
  • docker 容器内编译onnxruntime
  • cisco无线WLC flexconnect配置
  • 【Virtual Globe 渲染技术笔记】4 椭球面上的曲线
  • 大数据可视化设计 | 智能家居 UI 设计:从落地方法到案例拆解
  • 室外 3DVG 基准
  • mysql - 查询重复数据,不区分大小重复问题解决
  • Redis的基础命令
  • 玳瑁的嵌入式日记D17-08013(linux)
  • Java多线程进阶-从乐观锁到读写锁