技术领域
[0001] 本实用新型涉及一种自适应中断调控装置,尤其是一种移动应用处理器的自适应中断调控装置。
相关背景技术
[0002] 中断,是一种外设与CPU之间的通信机制,外设通过中断,通知CPU特定的事件发生(数据等待处理,等等),CPU停止当前的指令,转而去处理中断请求。现代高性能SoC(System on Chip)通常运行某种多任务操作系统,在中断发生时,通常要执行下列的程序:1)、保存当前线程环境(context);2)、根据中断向量表跳转到中断处理程序;3)、执行中断处理程序,处理数据;4)、中断处理程序结束,恢复当前线程环境;
[0003] 现代SoC,尤其移动应用处理器,集成多种通信外设,如WiFi,3G(第三代通信)/4G(第四代通信)modem,蓝牙,GPS,触摸屏控制器等等。不同的外设,其本身发生的速率不同,对中断响应延迟的要求也不同,比如触摸屏,其单位时间内不会有大量中断产生,但对每个中断,要求很快能够响应(既尽可能短的中断延迟)。对于WiFi,3G/4G modem取决于当前是否在传输大量数据;如果是,则单位时间内,会有大量中断发生,对于中断响应延迟要求减低,如果没有传输大量数据,则期望有很短的中断延迟。总体来说,如果某一个外设在一定时间内产生了巨量的中断,则会造成系统非常缓慢,因为每个中断处理有系统开销。这就造成不必要的CPU资源浪费。随着越来越高速的通信机制在移动设备中的应用,如何减低系统开销,同时保持很好的中断延迟响应,成为一个新挑战。
[0004] 用Wifi 802.11ac,最新的标准使物理层速度达到500Mbps到1Gbps,每个数据包大约2KB,那么如果每个数据包产生一个中断,500Mbps下每秒大概有31000个中断请求![0005] 目前,减低高速通信速率下中断数量的方法有2种:
[0006] 1、软件调控方法:软件设定一个阀值Tw,每次中断发生后,软件把此外设的中断禁止,然后去读取此外设中的数据,假设此外设是WiFi,那么软件循环读取数据包,直到读取的数量达到阀值Tw。若外设中还有未处理的数据,则通知操作系统,下次计划(schedule)继续读此外设数据包。否则,则重新允许此设备中断。
[0007] 2、硬件调控方法:硬件设定一个阀值Th,只有当此设备中等待处理的数据包达到Th个,设备才发生中断请求。为了避免在低数据率情况下,设备中待处理数据包不能很快达到阀值而造成严重的中断延迟,硬件通常维持一个可设定计时器,当设备中收到数据包,计时器开始计时,如果计时器超过了设定值,即使设备中的数据包数量没达到Th个,设备也产生中断,请求CPU处理数据。
[0008] 当前的硬件和软件解决方案都有一个最大的问题,即:如何确定中断阀值?对硬件方案,还有一个如何确定计时器时间的问题。
[0009] 通常这2个值由系统软件编写人员,根据最坏情况(worst case analysis)分析得出,但实际情况是数据传输情况每时每刻都不同,数据包传输率时刻变化,所以此方案有很大局限性,远非最佳,甚至有时会造成数据传输超时的严重问题。
具体实施方式
[0021] 下面结合具体附图和实施例对本实用新型作进一步说明。
[0022] 如图1、图2和图3所示:在目前的移动设备中,包括移动处理器及与所述移动处理器相连的通信外设;通信外设在接收数据包时会产生中断,产生中断后会增加系统开销,浪费CPU资源;为了能够提高移动设备的CPU利用效率,降低系统开销,本实用新型包括通信外设及与所述通信外设相连的移动处理器,所述通信外设还与流量监控单元相连;所述流量监控单元在中断调控周期Tm内统计外设的数据包数量,并预测通信外设的下一中断调控周期Tm内接收的数据包数量;流量监控单元将预测数据包数量与预设的最大中断速率Imax比较,以调整通信外设的动态中断阈值Th以及计时器初始值CT,以使得通信外设产生最低的中断延迟。
[0023] 所述通信外设包括WiFi、3G/4G调制解调器、蓝牙、GPS或触摸屏控制器。所述移动处理器包括单片机、ARM或DSP。流量监控单元与通信外设的具体配合过程,可以参照上面的自适应调控方法的步骤,此处不再详述。
[0024] 通过本实用新型进行中断调控时,本实用新型包括用于处理通信外设流量的流量监控单元,所述自适应中断调控方法包括如下步骤:
[0025] a、在流量监控单元内设定所需的中断调控周期Tm,最大中断阈值Tmax以及最大中断速率Imax;
[0026] 如图2所示:流量监控单元内具有中断调控周期Tm寄存器、最大中断阈值Tmax寄存器及最大中断速率Imax寄存器,通过相应寄存器能够实现相应数值的设定寄存;流量监控单元同时能够完成简单的计算,可以采用常规的逻辑电路实现,流量监控单元的具体结构不是本实用新型的重点,普通技术人员都能够理解与实现;
[0027] 流量监控单元可以集成到各高速通信设备中,也可以作为一个独立单元存在,前提是流量监控单元能够设置通信外设中的动态中断阈值寄存器与计时器寄存器;通信外设中一般具有数据包统计寄存器(stats register),如果通信外设中无数据包统计寄存器,流量监控单元也可以与移动处理器相连,移动处理器对通信外设接收的数据包数量统计后传输给流量监控单元,如图1中的虚线所示。
[0028] 一般地,根据移动处理器的处理速度及通信外设的中断处理时序要求,设置相应的中断调控周期Tm、最大中断阈值Tmax以及最大中断速率Imax,相应值设定后存储在流量监控单元内对应的寄存器内;中断调控周期Tm一般为毫秒级,最大中断阈值Tmax的统计单位为个;最大中断阈值Tmax表示在一次中断请求内最多可以处理的数据包数量,最大中断阈值Tmax根据移动处理器的处理能力,外设缓存的大小,物理层最大的通信速率,数据包的大小等因素有关;最大中断速率Imax表示单位时间呃逆对多可以处理中断的数量,用“个/秒”表示,最大中断速率Imax主要是根据移动处理器的处理能力,和分配多少处理能力给对应的通信外设等因素决定;
[0029] b、在中断调控周期Tm内,流量监控单元统计通信外设收到的数据包数量;
[0030] 在中断调控周期内,流量监控单元对通信外设接收到的平均数据包数量;
[0031] c、流量监控单元根据统计的数据包数据量预测通信外设下一中断调控周期Tm内的数据包数量,其中,流量监控单元采用P=(1-w)*PT+w*PT-1,0<w<1,进行下一中断调控周期Tm的数据包数量预测,P为预测数据包数量,PT为当前中断调控周期接收的数据包数量,PT-1为前一中断调控周期接收的数据包数量,w为加权系数,P的单位是“个/毫秒”[0032] 一般认为,通信外设的通信数据率在一定时间内,会达到一个稳定的状态,因此可以采用上述数据包数量预测公式进行预测;通过数据包数量预测后,能够避免不必要的中断调控;加权系数w是一个可设定值,当加权系数w取0.5时即为绝对平均;若加权系数w大于0.5,则表示上一个中断调控周期的数据包流量在平均中占有主要作用,若加权系数w小于0.5,则表示当前的数据包流量在平均中占据主要作用;
[0033] d、流量监控单元根据预测数据包数量与最大中断速率Imax间的关系,调整通信外设的动态中断阈值Th以及计时器初始值CT,以使得通信外设产生最低的中断延迟。
[0034] 流量监控单元对预测数据包数量与最大中断速率Imax之间的比较具体为:当当P*1000<Imax时,流量监控单元设定动态中断阈值Th为1个,计时器初始值CT为1000;当P*1000>Imax且(P*1000/Imax)>Imax时,流量监控单元设定动态阈值Th为Tmax个,计时器初始值CT为CT=0.5*Tmax/P;当P*1000>Imax且(P*1000/Imax)<Imax时,流量监控单元设定动态中断阈值Th为Th=P*1000/Imax个,计时器初始值CT为CT=Th/P;计时器初始值CT的单位,取决于通信外设的规定。
[0035] 如图4所示:根据移动处理器与通信外设的处理能力与中断处理要求,本实用新型实施例中,将流量监控单元设定最大中断速率Imax为3000个/秒,最大中断阈值Tmax为64个,中断调控周期Tm为1ms,通信外设的数据包字节数为2kB。
[0036] 如图中所示,在A时间段,通信外设接收25Mbps的数据包,达到稳定过程后,通过下述计算过程能够得到数据包数量P,具体为:25*1000000/8=3125000 Bytes/sec,数据包字节数是2KB;3125000/2000=1562.5个/秒=1.56个/毫秒。我们假设这是个稳态,所以PT=1.56,PT-1=1.56,既2次的调控周期内,读到的数据包流速相同。把这2个值代入到流量预测公式P=(1-w)*PT+w*PT-1,0<w<1,不管加权系数取什么值,最后预测的P=1.56,这是正确的预测。根据图3的比较流程能够得到动态中断阀值Th为1,计时器初始值CT为1秒(此时,计时器对通信外设的中断不起作用,因为阀值为1)。此模式为低速模式,通信外设对中断响应延迟要求高,所以Th设为1,即每收到一个数据包即发生中断请求。此时段,设备每秒会产生1560个中断请求。
[0037] 假设通信状况发生变化,在B时间段,系统接收250Mbps的数据,通过预测计算过程能够得到数据包数量P为15.6数据包/毫秒,由流量监控单元测得数据包流量,然后根据图3的比较与计算能够得到动态中断阀值Th为6,既每6个数据包产生一个中断,计时器初始值CT为3.84毫秒,此时,通信外设每秒产生2600个中断请求,只不过每个中断处理中要读取6个数据包。此模式为高速模式,系统对中断响应延迟要求降低,但需要一次性处理多个数据包(即包的组合)以节省冗余的中断处理时钟浪费。
[0038] 在C时间段,假设通信速率下降,那么同理,计算结果又回到和A时间段相同的数值。
[0039] 从实例中看,从A到B,通信速度提高了10倍,但每秒产生的中断数量,只增加了90%;而且,在低速情况下,通信外设自动回到传统的每个数据包发生一次中断的模式,保证最低的中断延迟。
[0040] 本实用新型通信外设与流量监控单元相连,流量监控单元内预设中断调控周期Tm、最大中断阈值Tmax以及最大中断速率Imax,流量监控单元根据当前中断调控周期Tm内接收的平均数据包数量,并预测通信外设下一个中断调控周期Tm内接收的数据包数量P,并将预测的数据包数量P与最大中断速率Imax进行比较判断,以调整动态中断阈值Th以及计时器初始值CT,;无须事先对通信模式进行最坏状况分析而决定参数,保证系统在高速通信模式下,对数据包进行组合有效的控制中断数量,保证系统在低速通信模式下,有最小的中断响应延迟;结构紧凑,提高移动应用处理器的处理性能。