zynq7035的arm一秒钟最多可以支持触发多少次中断

一、概述

1.关于zynq7035的ARM处理器一秒能够支持多少次中断触发,需要综合来考虑。需要确定ARM处理器的参数,目前zynq7000系列,使用的双核Cortex-A9处理器。其中主频大概在500MHZ~1GHZ左右,不同的用户配置的主频可能稍微有差别。

2.ARM处理器能够接收触发次数受多个因素影响:

首先,中断处理本省需要的时间,就是中断这个事件触发后,需要保护现场,需要保存上下文,执行中断服务程序ISR,然后ISR中断服务程序完成后,恢复中断上下文等。如果ISR中断服务程序很短,可能每个中断只是需要几十到几百个clock周期即可。

3.举例:如果配置的时钟主频是667MHZ,一个周期大概就是1.5ns,如果中断处理函数执行

需要100个clock,那么处理一个中断需要150ns.那么1s/150ns=6.67百万次中断。这个值是理论上

的最大值,实际情况,由于中断之间的冲突,中断的优先级,cache hit or miss缓存击中击不中这些因素都会降低中断响应效率。

4.除了要考虑ARM中对中断的响应和中断处理函数的处理速度,还需要考虑的一个点就是中断控制器GIC本身的限制。Zynq的GIC通用中断控制器对中断频率也是有影响的,GIC在处理中断分发的时候,如果中断过于频繁,GIC会成为性能瓶颈,因为中断频繁触发,导致系统没有办法处理其他任务,造成系统不稳定。

5.在实际的工程应用中,切记不要频繁的使用中断,一般需要考虑使用DMA方式或者硬件加速方式将CPU的负载能力降下来,较少CPU的负担。

二、影响中断触发极限频率的因素

1.中断的类型

2.中断处理程序ISR的处理速度

3.中断控制器GIC的性能

4.上下文切换速度

5.保存现场,帧栈入栈和出栈的速度。

三、理论计算

1.CPU主频:ARM9-cortex的主频为667MHZ为例

2.中断处理时间:

2.1.最小中断延时,从触发中断到ISR中断服务程序入口的时间:大概为20~30clock(也是硬件自动保存上下文的时间)

2.2.ISR中断服务程序执行时间:这个取决于用户,如果只是简单的几个寄存器操作,例如,关闭中断或者清理中断,那么,这个中断服务程序可能只是需要50~100个clock;

2.3.中断需要的总时间大概为70~130clock,时钟频率以667MHZ为例,那么一次中断需要105~195ns.

3.综上,1秒/105ns,大概最大为9.5百万次中断每秒

四、实际情况计算

1.GIC中断控制器瓶颈

GIC的优先级仲裁和分发延迟增加高频下的拥堵风险;

两次中断的中断间隔需要大于GIC处理一次中断的时间,一般大概几百纳秒;

2.系统总线竞争

目前zynq系统使用AXI总线,频繁的中断,可能导致AXI总线的带宽使用竞争,这个

会对ISR中断服务函数访问外设或者内存的效率有很大的影响。

3.cache缓存或者流水线影响

高频中断可能导致cache访问的抖动,也就是不稳定,会影响hit or miss命中的效率

4.操作系统的开销

如果是linux系统,内核中断处理top-half或者bottom-half的拆分会引入额外的延迟。

五、实际测试值

1.standalone裸机环境:这种情况下编写的ISR中断服务程序(汇编优化+寄存器直接操作)可以达到1~2百万次/每秒

2.linux环境下:受到内核调度和中断屏蔽影响,通道低于50万次/秒。

六、高频中断使用建议

1.硬件辅助:使用PL端的FPGA逻辑实现多次中断合并或者事件的计数,降低CPU中断的频率;

2.使用DMA传输:使用DMA在后台搬动数据,替代CPU中断驱动频率,较少中断次数;

3.轮询模式:针对有些场景,需要权衡响应时间和CPU占用率;

4.不建议使用超高频率中断,对系统的稳定性有很大影响。

相关推荐
做一个优雅的美男子2 天前
如何写好Verilog状态机
fpga开发
霖002 天前
FPGA中级项目8———UART-RAM-TFT
网络·经验分享·嵌入式硬件·fpga开发·显示器·fpga
弄曲幽篁2 天前
ZYNQ 纯PL端逻辑资源程序固化流程
经验分享·笔记·fpga开发
&Cheems2 天前
ZYNQ笔记(十四):基于 BRAM 的 PS、PL 数据交互
笔记·嵌入式硬件·fpga开发
S&Z34633 天前
[FPGA VIDEO IP] VCU
fpga开发·vcu
一条九漏鱼3 天前
提高设计的综合性能
fpga开发
扣脑壳的FPGAer3 天前
Xilinx FPGA支持的FLASH型号汇总
fpga开发
S&Z34633 天前
[PRO_A7] SZ501 FPGA开发板简介
fpga开发·systemverilog
7yewh3 天前
FPGA前瞻篇-组合逻辑电路设计-多路复用器
fpga开发