RISC-V生态全景解析(六):中断实时性及处理技术简介

简介: 编辑语:芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。

编辑语:

芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。

上期的【技术解码】中,我们对比介绍了提高RISC-V处理器数据并行性的技术,即Vector向量计算技术与SIMD技术。在处理器中,除了需要提高数据并行性,中断实时性也是考量处理器性能的重要指标。

因此,本期内容我们将为大家介绍CPU处理外部事件的中断技术,以丰富RISC-V系列内容中处理器技术主题的内容。

01 什么是中断

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

02 中断与轮询的区别

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

轮询是指CPU不断查询外设的状态寄存器,从而了解设备的状态,进行必要的操作。为了节约CPU资源,查询工作往往不是连续的,而是定时进行。轮询方式具有简单,易实现,易控制的优势,同时也存在浪费CPU和系统资源,无法及时感知设备状态变化的不足。

中断,顾名思义,就是打断正在进行的工作。中断不需要处理器轮询设备的状态,设备在自己发生状态改变时将主动发送一个中断请求给处理器,后者在接收到这一请求时,会暂停当前正在执行的任务,转而去处理外设的中断请求。

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

03 中断实时性的概念

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

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

(2)保护现场

(3)寻找中断入口

(4)执行中断处理程序

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

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

04 提高中断实时性的技术

我们重点介绍两项技术,分别用来加速上述的第(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%满足实时性的要求。

05 下期预告

有关中断实时性及处理技术,我们就介绍到这里。下期内容,我们将为大家介绍RISC-V的工具链,欢迎大家持续关注RISC-V系列内容。

相关文章
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
54 10
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
秒级响应 + 99.9%准确率:法律行业文本比对技术解析
本工具基于先进AI技术,采用自然语言处理和语义匹配算法,支持PDF、Word等格式,实现法律文本的智能化比对。具备高精度语义匹配、多格式兼容、高性能架构及智能化标注与可视化等特点,有效解决文本复杂性和法规更新难题,提升法律行业工作效率。
|
10天前
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
16天前
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
50 7
|
21天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
49 3
|
24天前
|
网络协议 网络性能优化 数据处理
深入解析:TCP与UDP的核心技术差异
在网络通信的世界里,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在确保数据传输的可靠性、效率和实时性方面扮演着不同的角色。本文将深入探讨这两种协议的技术差异,并探讨它们在不同应用场景下的适用性。
65 4
|
25天前
|
Kubernetes Java 微服务
微服务上下线动态感知实现的技术解析
随着微服务架构的广泛应用,服务的动态管理和监控变得尤为重要。在微服务架构中,服务的上下线是一个常见的操作,如何实时感知这些变化,确保系统的稳定性和可靠性,成为了一个关键技术挑战。本文将深入探讨微服务上下线动态感知的实现方式,从技术基础、场景案例、解决思路和底层原理等多个维度进行阐述,并分别使用Java和Python进行演示介绍。
54 4
|
24天前
|
安全 持续交付 Docker
深入理解并实践容器化技术——Docker 深度解析
深入理解并实践容器化技术——Docker 深度解析
43 2
|
24天前
|
供应链 算法 安全
深度解析区块链技术的分布式共识机制
深度解析区块链技术的分布式共识机制
47 0
|
24天前
|
存储 供应链 算法
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
48 0

推荐镜像

更多
下一篇
DataWorks