本技术公开了一种中断控制器和核间通信系统。该中断控制器包括计数单元和与计数单元连接的中断信号产生单元;计数单元用于在中断控制器接收到中断请求信号时计数;中断信号产生单元用于获取计数单元的计算,并在计数单元的计数值由0变为1时产生中断信号。计数单元对中断请求信号的数量进行计数,中断信号产生单元在计数单元的计数值由0变为1时产生中断信号,使得中断信号产生单元在计数单元接收多个中断请求信号时只产生一次中断信号,降低了中断信号产生的数量和频率,从而可以减少发送端的多个中断请求信号的等待,同时可以减少中断信号中断接收端的次数和频率,加大接收端处理中断请求信号的吞吐量,提高接收端处理中断请求信号的效率。
背景技术
核间中断请求一般包括两个主要步骤:数据传输和消息通知。图1为现有技术提供的一种通信系统的核间通信的结构示意图。如图1所示,当内核A向内核B发送中断请求时,在数据传输过程中,发送数据的内核A可以把要发送的数据存储到共享内存(sharememory,SM)中。当数据存储完成后,发送数据的内核A发送核间中断(Inter-ProcessorInterrupt,IPI)请求至接收数据的内核B,通知接收数据的内核B接收数据。接收数据的内核B保存中断相关信息,同时从共享内存SM中获取数据,通知内核B的后处理模块进行数据处理。一般情况下,通信系统中的中断资源比较少,尤其是核间中断资源更少,通常只会保留一组中断用于核间通信。当内核A中包括多个用户,且多个用户需要并行通信请求时,大量通信请求在发送时,不同用户间要相互等待,抢占有限资源,从而导致通信请求发送时带来一定延迟和通信系统开销。而且,大量的通信请求会导致接收数据的内核B产生大量的中断,中断会打断内核B的正常运行,从而导致内核B进行数据处理的效率比较低。示例性地,当通信系统可以支持最大16路视频流并行处理,单路视频流为30fps时,也就是单路每33ms会有一次中断请求的发送需求,则16路视频数据传输每秒就有480次中断请求。按照软件工具开发包(Software Development Kit,SDK)的设计需求,每路视频流还有额外三个并行通道分别用来传送控制命令、神经网络数据、系信息查询等任务,也就是有48个通道,此时通信系统同一时刻可能会有64个中断请求。现有技术中,可以将多帧数据组合成一个大数据进行传输,由此可以减少数据传输的次数,即减少内核A的中断请求次数。例如,在16路视频数据传输每秒就有480次中断请求时,通过将两帧数据组合后一次性发送,则中断请求可以减半至240次。当多帧数据组合成一个大数据进行传输时,数据处理延迟会增加,且增加了数据处理的复杂性,会导致内核B在数据处理时性能降低。
实现思路