中断实时性及处理技术简介

简介: 本文为RISC-V知识图谱系列中“处理器”主题的系列内容,主要介绍CPU处理外部事件的中断技术。

本文作者:Xingguang

本文来源:芯片开放社区(OCC)


1. 什么是中断

中断是CPU处理外部事件的一个重要技术。它能使CPU暂停正在执行的任务,转而处理中断请求,处理完成后返回断点,继续执行原来的任务。


2. 中断与轮询的区别

在一个SoC中,外部设备与CPU的交互一般有两种手段:轮询和中断。

轮询是指CPU不断查询外设的状态寄存器,从而了解设备的状态,进行必要的操作。为了节约CPU资源,查询工作往往不是连续的,而是定时进行。轮询方式具有简单,易实现,易控制的优势,同时也存在浪费CPU和系统资源,无法及时感知设备状态变化的不足。 中断,顾名思义,就是打断正在进行的工作。中断不需要处理器轮询设备的状态,设备在自己发生状态改变时将主动发送一个中断请求给处理器,后者在接收到这一请求时,会暂停当前正在执行的任务,转而去处理外设的中断请求。

目前大多数SoC的外设都采用中断的方式与处理器进行沟通,本文将重点介绍与中断实时性相关的技术。


3. 中断实时性的概念

中断实时性是指CPU响应中断的快慢程度,我们可以用中断响应时间来衡量它。CPU响应中断,可以分为以下几个步骤:

(1) 完成当前指令的执行

(2) 保护现场

(3) 寻找中断入口

(4) 执行中断处理程序

(5) 中断返回并恢复现场


中断响应时间,就是从上述第(1)步开始,到第(4)步的第一条指令为止,所花费的时间。在很多系统,特别是实时系统中,必须尽量缩短中断响应时间,以提高中断的实时性。


4. 提高中断实时性的技术

我们重点介绍两项技术,分别用来加速上述的第(1)步和第(4)步。


4.1 中断快速响应模式——加速完成当前指令

在通常情况下,CPU会在每条指令的“退休”阶段响应中断。所谓“退休”,是指一条指令已经完成了所有的操作,即将从流水线上退出。如果CPU执行了多周期指令或者执行延时不可预期指令,那么该条指令需要较长的时间才能到达“退休”阶段。此时的中断响应速度会受到极大影响,大幅降低系统的实时性。在中断快速响应模式下,CPU无需等待指令退休,即可直接响应中断。这一机制可以打断较长执行延时的指令,从而提高中断响应的速度。

【例】玄铁R807实现了中断快速响应模式,软件可以通过控制寄存器打开/关闭此功能。

假设当前指令是一条Load指令,在没有cache或cache miss的情况下,CPU需要读取memory。受总线带宽和memory延时的影响,该指令的执行时间不确定。

  • 在普通模式下,CPU必须等到Load指令退休以后才能响应中断,等待时间可能是几十~几百个时钟周期,严重影响实时性。
  • 在中断快速响应模式下,CPU放弃当前的Load指令,直接响应中断,等待时间几乎为零。


4.2 利用TCM——更快开始处理中断

TCM是Tightly Coupled Memory的缩写,意思是紧耦合Memory。所谓“紧耦合”,是指与CPU的流水线紧密结合。我们可以把TCM通俗地理解为“CPU身边的memory”。它可以像一般memory一样读写,同时不受总线带宽的影响,可以保证单周期访问。TCM用于存放对实时性有严格要求的指令和数据,当然也是加速中断处理的有力手段。

【例】玄铁I805和R807实现了TCM。下面对比一下使用TCM与否的差别。

  • 不使用TCM:处理中断时,CPU跳转到普通memory空间取指令,访问延时不确定。虽然Cache可以起到加速的作用,但是Cache存在Miss、Eviction等不确定因素,所以不能100%保证实时性。
  • 使用TCM:系统初始化时,通过专用接口将一些关键中断的处理函数搬运到TCM,并且把中断入口地址映射到TCM。处理中断时,CPU跳转到TCM区域取指令,TCM可以保证稳定的低延时指令流,从而100%满足实时性的要求。
相关文章
|
8月前
|
数据采集 API 开发者
Roxlabs:解锁高效数据采集与网络应用新境界
Roxlabs以其先进的技术和优质服务,在全球IP代理服务领域中确立了领航者的地位。无论客户需求如何多变,Roxlabs都能提供符合高标准的解决方案,助力企业和个人用户在数字化时代里畅游无界。
101 0
Roxlabs:解锁高效数据采集与网络应用新境界
|
10天前
|
消息中间件 存储 弹性计算
云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
《云端问道13期方案教学》由阿里云技术团队周博宇主讲,聚焦如何使用函数计算突破资源瓶颈,高效处理多媒体文件。方案涵盖六大要点:寻找云需求解决方案、选择函数计算的原因、对比不同文件处理方式、实现多媒体文件处理、应用场景广泛性及优惠购买推荐。通过将文件处理从主应用拆分,利用函数计算的按需扩展和自动弹性特性,确保核心业务稳定,并大幅降低成本。适用于图片、视频处理等多种场景。
云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
|
传感器 5G UED
5G 标准化进程|带你读《5G空口特性与关键技术》之二
从 2016 年起,3GPP 启动了 R14 研究项,目标是在 2020 年实现 5G 的商业化部署。为此,3GPP 采取了按阶段定义规范的方式。第一阶段目标是R15,旨在完成规范 5G 的有限功能。第二阶段是 R16,旨在完成规范 IMT-2020 所定义的所有功能,将于 2019 年年底到 2020 年完成。
5G 标准化进程|带你读《5G空口特性与关键技术》之二
|
5月前
|
数据采集 监控 测试技术
大型IM稳定性监测实践:手Q客户端性能防劣化系统的建设之路
本文以iOS端为例,详细分享了手 Q 客户端性能防劣化系统从0到1的构建之路,相信对业界和IM开发者们都有较高的借鉴意义。
191 3
|
4月前
|
弹性计算 关系型数据库 Serverless
告别资源瓶颈,函数计算驱动多媒体文件处理方案:https://www.aliyun.com/solution/tech-solution/fc-drive-file
本文介绍了一种基于阿里云的一键部署解决方案,利用云服务器ECS、RDS MySQL、OSS、函数计算FC及MNS等服务,实现高效的多媒体文件处理。方案通过事件驱动机制,将文件处理任务解耦,并自动弹性扩展,按需付费,简化部署流程,提高处理效率。本文还提供了详细的部署步骤与体验反馈,展示了从配置到文件处理的全过程。
|
5月前
|
编解码 运维 Serverless
函数计算驱动多媒体文件处理:告别资源瓶颈,释放处理能力
随着多媒体内容的爆炸性增长,如何高效地处理和管理多媒体文件成为了各大企业面临的重大挑战。阿里云提供的函数计算(Function Compute)驱动多媒体文件处理解决方案,为这一问题提供了高效、灵活的解决途径。本文将对该解决方案进行详细评测,分析其优势和应用场景。
70 1
|
8月前
|
存储 网络协议 Linux
RTnet – 灵活的硬实时网络框架
本文介绍了开源项目 RTnet。RTnet 为以太网和其他传输媒体上的硬实时通信提供了一个可定制和可扩展的框架。 本文描述了 RTnet 的架构、核心组件和协议。
207 0
RTnet – 灵活的硬实时网络框架
|
8月前
|
消息中间件 算法 Java
C++实时通信优化技术探究
C++实时通信优化技术探究
90 3
|
8月前
|
安全 调度
影响RTOS实时性的因素
影响RTOS实时性的因素
|
前端开发 芯片
【芯片前端】保持代码手感——握手型同步fifo的进一步拓展
【芯片前端】保持代码手感——握手型同步fifo的进一步拓展
111 1