找回密码
 注册
关于网站域名变更的通知
查看: 360|回复: 3
打印 上一主题 下一主题

RISC-V生态全景解析6——CPU处理外部事件的中断技术简介

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-5-26 09:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

4 K% w+ M7 s- D- i! P: F( `本期内容我们将为大家介绍CPU处理外部事件的中断技术,以丰富RISC-V系列内容中处理器技术主题的内容。5 U" z0 A1 W$ G" S, `# q

# f! {) C' P5 z* E. ^1 r1、什么是中断
" ]& ?4 K9 V2 w: O中断是CPU处理外部事件的一个重要技术。它能使CPU暂停正在执行的任务,转而处理中断请求,处理完成后返回断点,继续执行原来的任务。) E% o1 A! P5 C  h
' q9 a- `2 U( c
2、中断与轮询的区别. g3 g% l- }3 k6 x0 c8 Q4 h9 r
在一个SOC中,外部设备与CPU的交互一般有两种手段:轮询和中断。
  _6 V0 P+ K5 Z轮询是指CPU不断查询外设的状态寄存器,从而了解设备的状态,进行必要的操作。为了节约CPU资源,查询工作往往不是连续的,而是定时进行。轮询方式具有简单,易实现,易控制的优势,同时也存在浪费CPU和系统资源,无法及时感知设备状态变化的不足。8 X+ D5 P- n4 s/ K# @6 L
中断,顾名思义,就是打断正在进行的工作。中断不需要处理器轮询设备的状态,设备在自己发生状态改变时将主动发送一个中断请求给处理器,后者在接收到这一请求时,会暂停当前正在执行的任务,转而去处理外设的中断请求。! S5 Y" G$ \/ i
目前大多数SoC的外设都采用中断的方式与处理器进行沟通,本文将重点介绍与中断实时性相关的技术。
1 D$ _6 s4 C- e! g* O; Y4 f5 w: I' j& i
3、中断实时性的概念7 j( n$ `0 F6 r$ _: ^
中断实时性是指CPU响应中断的快慢程度,我们可以用中断响应时间来衡量它。CPU响应中断,可以分为以下几个步骤:; |3 `( W, b% R& Z$ Q
(1)完成当前指令的执行. R6 f7 D/ i3 x
(2)保护现场
/ |$ T. i' s0 w! y5 L(3)寻找中断入口
9 S' l" V3 n9 e$ v# h: K(4)执行中断处理程序; t8 h2 a; J; R& I5 j( s
(5)中断返回并恢复现场3 M$ h% }" `6 z3 D
中断响应时间,就是从上述第(1)步开始,到第(4)步的第一条指令为止,所花费的时间。在很多系统,特别是实时系统中,必须尽量缩短中断响应时间,以提高中断的实时性。8 R3 l% T  h. L. v; ?" G
2 c# L$ x: I. o& T% T
4、提高中断实时性的技术
3 W, V" L& U$ F( m; O$ ^) x我们重点介绍两项技术,分别用来加速上述的第(1)步和第(4)步。
* B7 H% w( V! c1 v( b7 C9 \4.1 中断快速响应模式——加速完成当前指令
% p  U6 ~" N) l- o7 F在通常情况下,CPU会在每条指令的“退休”阶段响应中断。所谓“退休”,是指一条指令已经完成了所有的操作,即将从流水线上退出。如果CPU执行了多周期指令或者执行延时不可预期指令,那么该条指令需要较长的时间才能到达“退休”阶段。此时的中断响应速度会受到极大影响,大幅降低系统的实时性。7 X* G1 U3 P6 E2 v! ~3 `2 a' G1 o
在中断快速响应模式下,CPU无需等待指令退休,即可直接响应中断。这一机制可以打断较长执行延时的指令,从而提高中断响应的速度。
' X! q1 ]2 Z3 R- l$ ], d【例】玄铁R807实现了中断快速响应模式,软件可以通过控制寄存器打开/关闭此功能。
5 r: D3 T) A% h% F, |7 ^+ \, Q假设当前指令是一条Load指令,在没有cache或cache miss的情况下,CPU需要读取memory。受总线带宽和memory延时的影响,该指令的执行时间不确定。
; V, e9 M% r5 U4 l* U在普通模式下,CPU必须等到Load指令退休以后才能响应中断,等待时间可能是几十~几百个时钟周期,严重影响实时性。" n! K( A' `6 }( x  a. k
在中断快速响应模式下,CPU放弃当前的Load指令,直接响应中断,等待时间几乎为零
6 z1 J. q  A& Q3 `% b0 g+ W4 V
8 U8 X* B6 V. d4 b0 K' E9 F7 @4.2 利用TCM——更快开始处理中断
# l, `& g* ]! g! q. E) H* MTCM是Tightly Coupled Memory的缩写,意思是紧耦合Memory。所谓“紧耦合”,是指与CPU的流水线紧密结合。我们可以把TCM通俗地理解为“CPU身边的memory”。它可以像一般memory一样读写,同时不受总线带宽的影响,可以保证单周期访问。TCM用于存放对实时性有严格要求的指令和数据,当然也是加速中断处理的有力手段。
# r% t: }2 F! V5 Z/ O& E【例】玄铁I805和R807实现了TCM。下面对比一下使用TCM与否的差别。
4 l9 L" z3 o- q9 W2 B不使用TCM:处理中断时,CPU跳转到普通memory空间取指令,访问延时不确定。虽然Cache可以起到加速的作用,但是Cache存在Miss、Eviction等不确定因素,所以不能100%保证实时性。8 C' x1 R2 H; M: i: L1 {0 ~4 A% w
使用TCM:系统初始化时,通过专用接口将一些关键中断的处理函数搬运到TCM,并且把中断入口地址映射到TCM。处理中断时,CPU跳转到TCM区域取指令,TCM可以保证稳定的低延时指令流,从而100%满足实时性的要求。

该用户从未签到

2#
发表于 2022-5-26 10:33 | 只看该作者
长篇大作啊,ε=ε=ε=(#>д<)ノ

该用户从未签到

3#
发表于 2022-5-26 14:40 | 只看该作者
长篇大作,可以可以。

该用户从未签到

4#
发表于 2022-5-26 15:19 | 只看该作者
中断,很不错啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 02:04 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表