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

GIC中断分组介绍(IMX6ull为例)

一、Cortex-A7内核中断

Cortex-A7内核具有多个中断类型,但其中最重要的是复位中断和IRQ(普通中断请求)中断。对于IMX6ULL而言,主要关注的是IRQ中断,因为外部设备和内部事件通常都会触发这类中断。

从左到右  中断控制器-->中断分发器(保安)-->cpu接口单元(秘书)-->cpu核(老板)

二、GIC中断控制器管理的中断

IMX6ULL使用了GIC(Generic Interrupt Controller,通用中断控制器)来管理中断。GIC负责接收来自各个设备和处理器内核的中断信号,并根据优先级和配置规则将这些中断分派给适当的处理器核心进行处理。根据中断的来源和特性,GIC管理的中断可以进一步细分为以下几类:

  1. SPI(Shared Peripheral Interrupt)中断
    • 共享中断,顾名思义,是由所有Core共享的中断。
    • 这些中断包括外部设备的中断,如按键中断、串口中断等。
    • 这些中断可以被任何一个Core处理,不限定特定Core。
    • 在IMX6ULL中,SPI中断的ID范围通常是32到1019,但实际上可能使用的中断ID数量较少(例如160个)。
  2. PPI(Private Peripheral Interrupt)中断
    • 私有中断,每个Core有自己独有的中断。
    • 这些中断通常用于处理Core内特定的事件或任务。
    • PPI中断的ID范围通常是16到31。
  3. SGI(Software-generated Interrupt)中断
    • 软件中断,由软件触发引起的中断。
    • 通过向寄存器GICD_SGIR写入数据来触发。
      -SGI中断通常用于多核之间的通信。
    • SGI中断的ID范围通常是0到15。

三、中断分发器的作用

  1. 接收中断信号:中断分发器与多个中断源相连,能够接收来自这些中断源的中断信号。
  2. 中断判优:中断分发器内部具有中断判优机制,能够根据中断信号的优先级、紧急程度等因素,判断哪个中断应该优先被处理。
  3. 分发中断信号:根据中断判优的结果,中断分发器将优先级最高的中断信号分发到适当的处理器核心进行处理。

四、中断分发器的结构

中断分发器通常由配置寄存器、中断集线器等组成。

  1. 配置寄存器:用于存储当前中断发送模式下中断源与处理器之间的映射关系信息。这些信息决定了中断信号应该被发送到哪个处理器核心。
  2. 中断集线器:从中断源接收待发送中断信号,并基于配置寄存器中存储的映射关系信息,向与中断源对应的目标处理器发送待发送中断信号。

五、CPU接口单元的主要功能

  1. 数据传输:CPU接口单元负责在CPU与外部设备(如内存、硬盘、输入输出设备等)之间传输数据。这包括读取数据到CPU内部进行处理,以及将处理后的数据写回到外部设备。

  2. 地址传输:CPU通过接口单元发送内存地址,以指定要访问的特定内存位置或外部设备。地址总线是接口单元的一部分,它负责传输这些地址信息。

  3. 控制信号传输:接口单元还负责传输控制信号,这些信号用于指示外部设备执行特定的操作,如读取、写入、中断响应等。控制总线是传输这些控制信号的通道。

  4. 同步与协调:CPU接口单元确保CPU与外部设备之间的通信是同步和协调的。这包括确保数据传输的正确时序、处理中断请求以及管理设备的状态转换。

http://www.lryc.cn/news/519024.html

相关文章:

  • 计算机网络期末复习(知识点)
  • Apache XMLBeans 一个强大的 XML 数据处理框架
  • 飞凌嵌入式i.MX8M Mini核心板已支持Linux6.1
  • 【数据链电台】洛克希德·马丁(Lockheed Martin)
  • python关键字(保留字)用法、保留的标识符类(1)
  • Ubuntu平台虚拟机软件学习笔记
  • 【数据库系统概论】数据库恢复技术
  • R 语言科研绘图 --- 折线图-汇总
  • 基于 Python 和 OpenCV 的人脸识别上课考勤管理系统
  • 工业 4G 路由器赋能远程医疗,守护生命线
  • Windows安装Ubuntu子系统图形化工具
  • MiniMind - 从0训练语言模型
  • sql正则表达
  • 基于华为Maas(大模型即服务)和开源的Agent三方框架构建AI聊天助手实践
  • 微信小程序——创建滑动颜色条
  • Qt官方下载地址
  • 网络-ping包分析
  • SEO内容优化:如何通过用户需求赢得搜索引擎青睐?
  • ubuntu22.04 的录屏软件有哪些?
  • Opencv查找、绘制轮廓、圆形矩形轮廓和近似轮廓
  • 深入解析 Python 2 与 Python 3 的差异与演进
  • 后端:Spring(IOC、AOP)
  • 排序:插入、选择、交换、归并排序
  • 认识+安装ElasticSearch
  • 一个模块实现期货分钟 K 线计算、主连行情合成
  • PyTorch:.max(1)和.max(0)的使用
  • ASP.NET Core 中使用 Cookie 身份验证
  • Ollama私有化部署大语言模型LLM
  • 安卓app抓包总结(精)
  • Three.js 性能优化:打造流畅高效的3D应用