0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux中断子系统硬件架构

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:Jasonangel 2023-09-28 14:09 次阅读

中断子系统硬件架构

一个完整的设备中,与中断相关的硬件可以划分为3类,它们分别是:设备、中断控制器CPU本身。

图片

设备:设备是发起中断的源,当设备需要请求某种服务的时候,它会发起一个硬件中断信号,通常,该信号会连接至中断控制器,由中断控制器做进一步的处理。在现代的移动设备中,发起中断的设备可以位于soc(system-on-chip)芯片的外部,也可以位于芯片的内部,因为目前大多数soc 都集成了大量的硬件 IP,例如 I2C、SPI、Display Controller 等等,就是内部中断源。

中断控制器:中断控制器负责收集所有中断源发起的中断,现有的中断控制器几乎都是可编程的,通过对中断控制器的编程,我们可以控制每个中断源的优先级、中断的电气类型,还可以打开和关闭某一个中断源,在smp系统中,甚至可以控制某个中断源发往哪一个CPU 进行处理。对于 ARM 架构的 soc,使用较多的中断控制器是VIC(Vector Interrupt Controller),进入多核时代以后,GIC(General Interrupt Controller)的应用也开始逐渐变多。STM32单片机的中断控制器叫 NVIC,ARM架构的中断控制器一般为GIC,不同架构有不同的中断控制器。

CPU:最终响应中断的部件,它通过对可编程中断控制器的编程操作,控制和管理者系统中的每个中断,当中断控制器最终判定一个中断可以被处理时,他会根据事先的设定,通知其中一个或者是某几个
cpu 对该中断进行处理,虽然中断控制器可以同时通知数个 cpu 对某一个中断进行处理,实际上,最后只会有一个 cpu 相应这个中断请求,但具体是哪个 cpu进行响应是可能是随机的,中断控制器在硬件上对这一特性进行了保证,不过这也依赖于操作系统对中断系统的软件实现。

为什么需要中断控制器?

CPU 要做的事情主要是运算。一个 CPU 有很多个中断可以使用,他们之间也有优先级。由于中断过多,我们需要中断进入 CPU处理之前,先进入中断控制器,让中断控制器来控制中断的优先级、触发方式、enable 和 disable等,为CPU减轻负担,让CPU专注于运算。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11294

    浏览量

    209344
  • 硬件
    +关注

    关注

    11

    文章

    3315

    浏览量

    66203
  • 子系统
    +关注

    关注

    0

    文章

    109

    浏览量

    12392
  • 系统
    +关注

    关注

    1

    文章

    1015

    浏览量

    21332
收藏 人收藏

    评论

    相关推荐

    Linux LED子系统详解

    Linux LED子系统详解
    的头像 发表于 06-10 10:37 1543次阅读
    <b class='flag-5'>Linux</b> LED<b class='flag-5'>子系统</b>详解

    Linux内核内存管理架构解析

    内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等,而且对性能也有很高
    的头像 发表于 01-04 09:24 653次阅读
    <b class='flag-5'>Linux</b>内核内存管理<b class='flag-5'>架构</b>解析

    linux--LED子系统一文读懂

    Linux内核中,LED子系统扮演着控制LED灯的核心角色,它通过一套规范化的驱动架构,简化了LED驱动程序的开发流程,让开发者能够更专注于功能实现而非硬件层面的复杂性。
    的头像 发表于 08-02 16:09 2471次阅读
    <b class='flag-5'>linux</b>--LED<b class='flag-5'>子系统</b>一文读懂

    Arm Linux中断子系统先相关资料分享

    1. Arm Linux 中断子系统1.1. 中断硬件系统3个组成部分:外设(
    发表于 05-23 15:21

    Linux内核输入子系统的驱动研究

    Linux内核输入子系统的驱动研究
    发表于 10-31 14:41 14次下载
    <b class='flag-5'>Linux</b>内核输入<b class='flag-5'>子系统</b>的驱动研究

    需要了解的Linux的IRQ中断子系统

    Linux中断子系统(generic irq)出现之前,内核使用__do_IRQ处理所有的中断,这意味着__do_IRQ中要处理各种类型的中断
    发表于 05-10 10:56 1474次阅读

    详细了解Linux设备模型中的input子系统

    linux输入子系统linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler)、输入
    发表于 05-12 09:04 1045次阅读
    详细了解<b class='flag-5'>Linux</b>设备模型中的input<b class='flag-5'>子系统</b>

    Linux中断(interrupt)子系统之一:arch相关的硬件封装层

    Linux的通用中断子系统的一个设计原则就是把底层的硬件实现尽可能地隐藏起来,使得驱动程序的开发人员不用关注底层的实现,要实现这个目标,内核的开发者们必须把
    发表于 05-13 10:48 839次阅读

    openEuler Kernel威廉希尔官方网站 内核中断子系统介绍

    现在把之前的流程具有的部分对比内核中断子系统,可以发现还多出了一个通用中断处理层。因为内核需要支持各种不同的架构与外设,需要解耦架构
    的头像 发表于 04-20 09:06 1508次阅读

    Windows 子系统助力 Linux 2.0

    Windows 子系统助力 Linux 2.0
    的头像 发表于 01-04 11:17 648次阅读

    Linux系统中NFC子系统架构分析

    目前在Linux系统中,每个厂家都使用不同的方式实现NFC驱动,然后自己在应用层上面做适配。但是Linux也已经推出NFC子系统,很多厂家也逐步在统一。
    发表于 01-04 14:01 2045次阅读

    Linux中断情景分析

    在一个系统中,中断时常发生,而且线程调度也是由一个硬件定时器时时刻刻发出中断来支撑的。可以说中断就是li
    发表于 06-23 14:22 579次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>中断</b>情景分析

    Linux驱动移植 Linux系统架构优点

    在操作系统上面有应用软件,应用软件程序的执行是依赖于操作系统的,应用程序需要调用 linux 操作系统的库函数来实现,也就是说,应用软件的程序会调用
    的头像 发表于 07-27 17:06 861次阅读
    <b class='flag-5'>Linux</b>驱动移植 <b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>架构</b>优点

    Linux clock子系统是什么

    clock子系统 Linux的时钟子系统由CCF(common clock framework)框架管理, CCF向上给用户提供了通用的时钟接口,向下给驱动开发者提供硬件操作的接口 。
    的头像 发表于 09-27 14:25 831次阅读
    <b class='flag-5'>Linux</b> clock<b class='flag-5'>子系统</b>是什么

    什么是LInux 操作系统中断

    LInux 操作系统中断 什么是系统中断 这个没啥可说的,大家都知道; CPU 在执行任务途中接收到中断
    的头像 发表于 11-10 11:29 622次阅读
    什么是<b class='flag-5'>LInux</b> 操作<b class='flag-5'>系统</b><b class='flag-5'>中断</b>