CN108345564B - 中断矩阵模块、芯片及电子设备 - Google Patents
中断矩阵模块、芯片及电子设备 Download PDFInfo
- Publication number
- CN108345564B CN108345564B CN201810051158.XA CN201810051158A CN108345564B CN 108345564 B CN108345564 B CN 108345564B CN 201810051158 A CN201810051158 A CN 201810051158A CN 108345564 B CN108345564 B CN 108345564B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- interface
- module
- master
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请实施例提供一种中断矩阵模块、芯片及电子设备,所述方法包括:包括M个Master接口、N个Slave接口以及core模块,所述Master接口用于连接Master模块,所述Master接口用于发出中断或者接收中断,所述Slave接口用于连接Slave模块,所述Slave接口用于接收中断且不能发出中断,所述core模块用于实现中断转发传输控制,所述M、所述N均为正整数。采用本申请实施例可以通过中断矩阵模块简化SOC构架的中断走线复杂度,提升了产品研发效率。
Description
技术领域
本申请涉及电子设备技术领域,具体涉及一种中断矩阵模块、芯片及电子设备。
背景技术
在多核片上系统(system on chip,SOC)架构中,不管是异构还是同构的架构,中断都是一种最常用的通讯方式,相比查询方式来说,中断方式不但能做到及时,也不会一直占用处理器资源,更为高效,应用也更广泛。
多核SOC架构,对于处理器之间的核间通讯。如果系统中有n个处理器,则每个处理器接收到的用于核间通讯的中断至少有n-1个,中断总数有为n*(n-1)个,倘若再加上系统内其他的直接内存存取(direct memory access,DMA)或外设的中断,因此,由于连线太多占用较多资源,降低了产品研发效率。
申请内容
本申请实施例提供了一种中断矩阵模块、芯片及电子设备,可以用于简化SOC构架的中断走线复杂度,提升了产品研发效率。
第一方面,本申请实施例提供一种中断矩阵模块,所述中断矩阵模块包括M个Master接口、N个Slave接口以及core模块,所述Master接口用于连接Master模块,所述Master接口用于发出中断或者接收中断,所述Slave接口用于连接Slave模块,所述Slave接口用于接收中断且不能发出中断,所述core模块用于实现中断转发传输控制,所述M、所述N均为正整数。
第二方面,本申请实施例提供一种中断矩阵芯片,所述中断矩阵芯片包括如上述第一方面所描述的中断矩阵模块。
第三方面,本申请实施例提供一种电子设备,包括第一方面所述的中断矩阵模块,或者,如上述第二方面所述的中断矩阵芯片。
实施本申请实施例,具有如下有益效果:
可以看出,本申请实施例中的中断矩阵模块包括M个Master接口、N个Slave接口以及core模块,Master接口用于连接Master模块,Master接口用于发出中断或者接收中断,Slave接口用于连接Slave模块,Slave接口用于接收中断且不能发出中断,core模块用于实现中断转发传输控制,M、N均为正整数,任一中断均可以由core模块完成接收以及转发,该接收与转发的过程相当于两个不同接口对应的外接模块(Master模块或者Slave模块)形成一条走线,从而,可以通过中断矩阵模块采用逻辑上的走线简化相关技术中的SOC构架的中断走线复杂度,提升了产品研发效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例公开的一种电子设备的结构示意图;
图2是本申请实施例公开的中断矩阵模块的结构示意图;
图3是本申请实施例公开的一种SOC构架的中断走线演示示意图;
图4是本申请实施例提供的另一种SOC构架的中断走线演示示意图;
图5是本申请实施例提供的一种中断控制方法的流程示意图;
图6是本申请实施例提供的另一种中断控制方法的流程示意图;
图7是本申请实施例提供的另一种电子设备的结构示意图;
图8A是本申请实施例提供的一种中断控制装置的结构示意图;
图8B是本申请实施例提供的图8A所描述的中断控制装置的另一结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的电子设备可以包括各种具有计算功能的手持设备、电路板、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS),终端设备(terminaldevice)、服务器、视频矩阵、监控平台、BUS总线等等。为方便描述,上面提到的设备统称为电子设备。
对于上述电子设备,其结构如图1所示,具体的,电子设备100其可以包括:处理器模块110、中断矩阵模块120、存储器130和外设模块140,其中处理器110通过总线150与中断矩阵模块120、存储器130以及外设模块140之间连接,具体的在一种可选的技术方案中,上述中断矩阵模块120可以集成在总线150内。存储器130可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)等。本申请的技术方案并不局限上述中断矩阵模块120是单独设置还是集成在总线150内,上述中断矩阵模块120可以为集成电路或者芯片。
参阅图2,图2提供了一种中断矩阵模块的示意图,如图2所示,包括M个Master接口(Master接口1、Master接口2、…、Master接口M)、N个Slave接口(Slave接口1、Slave接口2、…、Slave接口N)以及core模块,所述Master接口用于连接Master模块,所述Master接口用于发出中断或者接收中断,所述Slave接口用于连接Slave模块,所述Slave接口用于接收中断且不能发出中断,所述core模块用于实现中断转发传输控制,所述M、所述N均为正整数。当然,上述中断矩阵模块还可以包括BUS接口,用于与外围总线连接,以接入控制设备,方便用户直接对中断矩阵模块的接口功能进行配置。
可选地,所述M个Master接口中至少一个Master接口用于发出中断。
可以看出,本申请实施例中的中断矩阵模块,包括M个Master接口、N个Slave接口以及core模块,Master接口用于连接Master模块,Master接口用于发出中断或者接收中断,Slave接口用于连接Slave模块,Slave接口用于接收中断且不能发出中断,core模块用于实现中断转发传输控制,M、N均为正整数,任一中断均可以由core模块完成接收以及转发,该接收与转发的过程相当于两个不同接口对应的外接模块(Master模块或者Slave模块)形成一条走线,从而,可以通过中断矩阵模块采用逻辑上的走线简化相关技术中的SOC构架的中断走线复杂度,提升了产品研发效率。
在一个可能的示例中,在所述core模块用于实现中断转发传输控制方面,所述core模块具体用于:
接收由第一接口发出的目标中断,对所述目标中断进行转发,所述第一接口为所述中断矩阵模块中任一具备发出中断功能的接口。
其中,第一接口为具备发出中断功能的任一Master接口,在core模块接收到目标中断之后,可以将该目标中断进行转发,如此,可以实现不同接口之间的中断传输,在中断传输过程中,实现了不同接口对应的外接模块之间的通信。
在一个可能的示例中,在所述对所述目标中断进行转发方面,所述core模块用于:
将所述目标中断发送到第二接口,所述第二接口为需要接收中断的Master接口,或者,所述目标中断携带的接口标识对应的Master接口。
其中,上述第二接口可以为需要接收中断的Master接口,例如,Master接口1设置了要接收5个中断,目前只接收了3个中断,当core模块接收到中断时,可以将该中断转发给该Master接口1。当然,目标中断还可以携带接口标识,接口标识用于唯一识别接口,接口标识可以为以下至少一种:接口编号,接口位置、接口名称、接口优先级、接口类别等等,在这种情况下,相当于指定接口中断转发,例如,当core接口接收到Master接口1发送的中断时,该中断携带的接口标识为Master接口2,则可以将中断转发给Master接口2。上述目标中断可以携带多个接口标识,这种情况下,相当于实现了中断群发功能。
在一个可能的示例中,在所述第一接口为所述N个Slave接口中的一个;
在所述core模块用于将所述目标中断发送到第二接口方面,所述core模块具体用于直接将所述目标中断发送到第二接口。
其中,core模块在接收到目标中断之后,可以直接将目标中断发送到第二接口,即core模块不需要通过本申请实施例中所涉及的mailbox模块,如此,可以实现快速发送,例如,任一Slave接口接收到一个中断之后,由于Slave接口不具备mailbox功能,进而,只能由core模块直接转发,可以是将该中断转发给指定的Master接口,或者,需要接收中断的Master接口,实现了Slave模块与Master模块之间的通信。
在一个可能的示例中,在所述第一接口为所述M个Master接口中的一个;所述中断矩阵模块还包括mailbox模块;
在所述core模块用于将所述目标中断发送到第二接口方面,所述core模块具体用于:
控制所述mailbox模块将所述目标中断发送到第二接口。
其中,由于Master模块具备mailbox功能,进而,在第一接口为M个Master接口中的一个时,可以通过mailbox模块将中断发送给另一个Master接口(第二接口)。Mailbox模块的主要原理类似于邮箱功能,例如,第一接口的寄存器中存储有第一接口的第一地址和第二接口的第二地址,而第二接口的寄存器中也存储有第一接口的第一地址和第二接口的第二地址,则mailbox模块在接收到第一接口发送的中断之后,可以转发给第二接口,由于第一接口与第二接口互相关联有对方的地址,因此,可以实现mailbox功能。
在一个可能的示例中,所述目标中断包括第一优先级;
所述core模块还具体用于:
获取当前正在执行的中断任务的第二优先级;
在所述第一优先级高于所述第二优先级时,暂停执行所述中断任务,并优先执行所述对所述目标中断进行转发的步骤;
或者,
在所述第一优先级低于或等于所述第二优先级时,在所述中断任务结束后,执行所述对所述目标中断进行转发的步骤。
其中,core模块可以按照优先级先后顺序执行转发中断,例如,在转发某一中断时,若再接收到一个优先级高的中断,则停止当前的中断,执行优先级高的中断,又例如,在转发某一中断时,若再接收到一个同一优先级中断,则进行执行当前的中断,并在完成之后,执行该同一优先级的中断,如此,保证了core模块在执行多个中断时,可以有序进行。
因此,上述core模块可以实现对所有中断进行控制、管理,对最终送到同一个Master接口的中断实现中断优先级判断、仲裁、中断嵌套,并将完成仲裁后的中断按照既定规则依序发送给每一个Master接口。
例如,在core模块接收到两个中断,则可以判断该两个中断的优先级,优先执行优先级高的中断,若该两个中断的优先级相同,则可以按照先接收先执行的顺序执行该两个中断,如:中断矩阵模块接收到中断1和中断2,中断1和中断2属于同一优先级,但先接收到中断1,则可以先执行中断1,在中断1执行完后,可以执行中断2。如:中断矩阵模块在执行中断1,又接收到中断2,中断2的优先级高于中断1,则暂停执行中断1,而优先执行中断2,在中断2执行完成后,再执行中断1,若中断1尚未执行完,又接收中断3,中断3的优先级高于中断1,则暂停执行中断1,而优先执行中断3,在中断3执行完成后,若中断3尚未执行完,又接收到中断4,中断4优先级高于中断3,则暂停执行中断3,优先执行中断4,在中断4执行完成后,再执行中断3,以此类推。
在一个可能的示例中,在所述将所述目标中断发送到第二接口之后,所述第二接口具体用于:
在所述第二接口预先配置了屏蔽功能,将所述目标中断保存在与所述第二接口对应的寄存器中;
或者,
在所述第二接口未配置屏蔽功能时,将所述目标中断发送给与所述第二接口连接的Master模块。
其中,本申请实施例中的每一接口均可有一个与之对应的寄存器,寄存器可以用于存储地址,或者,中断。若上述第二接口为接口A,若接口A设置了屏蔽功能,则该接口A在接收了中断之后,可以对该中断进行屏蔽,即将该中断保存在相应的寄存器,且不响应该中断;进一步地,接口A未设置屏蔽功能,则可以将该目标发送给接口A连接的Master模块。如此,可以为接口设置屏蔽功能,可以对指定模块响应中断的频率以及次数进行控制。
在一个可能的示例中,所述第二接口还具体用于:
在所述将所述目标中断发送给与所述第二接口连接的Master模块之后,清除所述目标中断。
其中,在将目标中断发送给与第二接口连接的Master接口,该第二接口可以清除目标中断,如此,可以降低中断矩阵模块的内存空间。
在一个可能的示例中,所述目标中断的中断类型为以下一种:
高电平、低电平、上升沿脉冲和下降沿脉冲。
在一个可能的示例中,所述Master模块为以下至少一种:CPU、DSP、GPU和MCU。
其中,Master模块为以下至少一种:中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processing,DSP)、图像处理器(graphicsprocessing unit,GPU)和微控制单元(microcontroller unit,MCU),还可以为其他具备处理器功能的模块。
在一个可能的示例中,所述Slave模块为以下至少一种:clock、reset、DDRSDRAM、DMA、video、ISP、display、audio、camera、LCD/LED、RF、USB、MIPI、PCIE、LVDS、SD/SDIO、eMMC、UFS、nand flash、nor flash、UART、I2C、I2S、SPI、RTC、timer、watchdog、GPIO、pinmux。
其中,本申请实施例中的Slave模块为以下至少一种:时钟(clock)、复位(reset)、双倍速率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、直接内存存取(direct memory access,DMA)、视频编解码(videocodec)、图像信号处理(image signal processing,ISP)、显示模块(display)、音频模块(audio)、摄像模块(camera)、显示屏(LCD、LED)、射频电路(RF)、通用串行总线(universalserial bus,USB)、移动产业处理器接口(mobile industry processor interface,MIPI)、高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)、低电压差分信号接口(low-voltage differential signaling,LVDS)、SD(secure digital)卡、安全数字输入输出接口(secure digital input and output,SDIO)、嵌入式多媒体卡(embedded multi-media card,EMMC)、通用闪存(universal flash storage,UFS)、NAND存储器(nand flash)、NOR存储器(nor flash)、通用异步收发传输器(universalasynchronous receiver transmitter,UART)、两线式串行总线(inter-integratedcircuit,I2C)、集成电路内置音频总线(inter-IC sound,I2S)、串行外设接口(serialperipheral interface,SPI)、实时时钟(real-time clock,RTC)、定时器(timer)、看门狗(watchdog)、通用输入输出(general purpose input output,GPIO)、管脚复用(pinmux)等等。
在一个可能的示例中,中断矩阵模块可集成于芯片中,即中断矩阵芯片。
在一个可能的示例中,中断矩阵模块可集成于BUS总线,或者,以中断矩阵芯片形式集成于BUS总线。
本申请实施例中,中断矩阵模块中Master接口数量、Slave接口数量均可以任意配置。
本申请实施例中,中断矩阵模块所有与中断相关的Master接口和Slave接口完全互联互通,互联互通关系可以根据需求任意配置,具体表现在如下方面:
例如,每一个Master接口的中断可以通过寄存器任意配置发给指定Master接口,指定Master接口可以任意配置;
例如,每一个的Slave接口的中断可以通过寄存器任意配置发给指定Master接口,指定Master接口可以任意配置;
例如,每一个Master接口可以任意配置该Master接口需要接收具体哪些Master接口和Slave接口的中断;
例如,每一个Master接口需要发出的、接收的中断数量,均可以任意配置;
例如,每一个Slave接口需要发出的中断数量,可以任意配置;
例如,每一个Master接口发出的中断类型可以为以下一种:高电平、低电平、上升沿脉冲、下降沿脉冲,具体的中断类型可以任意配置;
例如,每一个Slave接口需要发出的中断类型可以为以下一种:高电平、低电平、上升沿脉冲、下降沿脉冲,具体的中断类型可以任意配置;
例如,每一个Master接口接收的中断类型可以为以下一种:高电平、低电平、上升沿脉冲、下降沿脉冲,中断优先级,可以任意配置;
例如,每一个Master接口接收的中断,可独立的对每个中断配置屏蔽或不屏蔽;
例如,每一个Master接口接收的中断,可独立的对每个中断进行清除,即每个中断在执行完成后,可以清除该中断。
在一个可能的示例中,本申请实施例的中断矩阵模块采用多时钟域设计,但对任何输入、输出的中断均不做时序要求,对任意时钟频率的中断均能正确采样和处理,对输出到同一个Master接口的所有中断信号均能正确同步到该Master接口自身时钟域。例如,某个Master接口接收到一个中断,若该中断的时钟频率与中断矩阵模块的时钟频率不一致,则中断矩阵模块可以对该中断的时钟频率进行调整,调整后的时钟频率可以与该Master接口自身的时钟频率同步。
其中,由于中断矩阵模块有多个用于接收中断的接口,不同的接口连接不同的外接设备(Master模块,或者,Slave模块),由不同的外接设备产生的中断的时钟频率不一样,为了让中断矩阵模块接收的所有中断都可以有序转发,本申请实施例中采用了多时钟域设计,所有的外接设备的时钟频率均可以与中断矩阵模块的本地时钟实现同步,如此,可以保证中断矩阵模块实现优先级设计,以及保证中断可以有序转发。
在一个可能的示例中,中断矩阵模块与总线矩阵同等级别,在具体电路设计中,可以放置于全电路/芯片顶层实现。中断矩阵模块可以为总线的控制部分,基于中断矩阵模块,可以连接多个Master模块,或者,多个Slave模块,从而,满足不同的功能设计。
例如,在上述所描述的中断矩阵模块中,例如,Slave接口1连接了DMA,具备接收中断功能,Master接口1连接了CPU,Master接口1具备发出中断功能,则在DMA发出中断,则Slave接口1接收中断,可以将该中断发送给Master接口1,Master接口1则可以进一步转该中断发出给CPU,由此,Slave接口1与Master接口1相当于一条连线。
上述图2所描述的中断矩阵模块,可以应用于如下硬件设备,如:异构或者同构多核SOC架构,具体地:印制电路板(printed circuit board,PCB)、复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程门阵列(field programmablegate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)、SOC(System on Chip)芯片等,在此不做限定。
可以看出,本申请实施例中的中断矩阵模块,包括M个Master接口、N个Slave接口以及core模块,Master接口用于连接Master模块,Master接口用于发出中断或者接收中断,Slave接口用于连接Slave模块,Slave接口用于接收中断且不能发出中断,core模块用于实现中断转发传输控制,M、N均为正整数,任一中断均可以由core模块完成接收以及转发,该接收与转发的过程相当于两个不同接口对应的外接模块(Master模块或者Slave模块)形成一条走线,从而,可以通过中断矩阵模块采用逻辑上的走线简化相关技术中的SOC构架的中断走线复杂度,提升了产品研发效率。另外,可以简化多个硬件设备之间的走线复杂度。
基于上述图2所描述的中断矩阵芯片,可以用于实现如下一种中断控制方法,具体如下:
所述core模块接收由第一接口发出的目标中断,对所述目标中断进行转发,所述第一接口为所述中断矩阵模块中任一具备发出中断功能的接口。
在一个可能的示例中,在所述对所述目标中断进行转发方面,所述core模块将所述目标中断发送到第二接口,所述第二接口为需要接收中断的Master接口,或者,所述目标中断携带的接口标识对应的Master接口。
在一个可能的示例中,在所述第一接口为所述N个Slave接口中的一个;
在所述core模块将所述目标中断发送到第二接口方面,所述core模块具体用于直接将所述目标中断发送到第二接口。
在一个可能的示例中,在所述第一接口为所述M个Master接口中的一个;所述中断矩阵模块还包括mailbox模块;
在所述core模块将所述目标中断发送到第二接口方面,所述core模块:
控制所述mailbox模块将所述目标中断发送到第二接口。
在一个可能的示例中,所述目标中断包括第一优先级;
所述core模块:
获取当前正在执行的中断任务的第二优先级;
在所述第一优先级高于所述第二优先级时,暂停执行所述中断任务,并优先执行所述对所述目标中断进行转发的步骤;
或者,
在所述第一优先级低于或等于所述第二优先级时,在所述中断任务结束后,执行所述对所述目标中断进行转发的步骤。
在一个可能的示例中,在所述将所述目标中断发送到第二接口之后,所述第二接口:
在所述第二接口预先配置了屏蔽功能,将所述目标中断保存在与所述第二接口对应的寄存器中;
或者,
在所述第二接口未配置屏蔽功能时,将所述目标中断发送给与所述第二接口连接的Master模块。
在一个可能的示例中,所述第二接口:
在所述将所述目标中断发送给与所述第二接口连接的Master模块之后,清除所述目标中断。
上述中断控制方法的具体步骤描述可以参阅图2所描述的中断矩阵模块的功能描述,在此不再赘述。
请参阅图3,假定这个多核SOC架构里面,有4个处理器,4个外设模块,处理器之间彼此需要中断进行核间通讯,外设模块需要把模块中断送到每一个处理器进行处理。其中,处理器属于Master类模块,以Master0~3来表示,上述处理器可以是CPU类别的,也可能是DSP类别,也可能是GPU类别等等。
外设模块属于Slave类模块,我们用Slave0~3来表示,它可能是DMA模块,也可能是USB、MIPI、PCIE、SDIO、UART、I2C、I2S、SPI等外设,诸如此类。
依据传统设计方案,得到如图3所示的走线设计:
Master0接口:发出3个中断,接收7个中断,共10根连线;
Master1接口:发出3个中断,接收7个中断,共10根连线;
Master2接口:发出3个中断,接收7个中断,共10根连线;
Master3接口:发出3个中断,接收7个中断,共10根连线;
Slave0接口:发出4个中断,共4根连线;
Slave1接口:发出4个中断,共4根连线;
Slave2接口:发出4个中断,共4根连线;
Slave3接口:发出4个中断,共4根连线;
因此,在仅有8个模块的情况下,最终,合计共使用28根中断连线,连线数量已经呈现较多,而具体实际的项目情况中,处理器数量往往不止4个,外设模块的数量一般都超过20个以上,最终导致系统中的中断连线成百上千,非常难以处理,不仅带来质量风险的同时,而且所需的人力成本、时间成本、经济成本都大大提高。举例说明下,假定有8个处理器、20个外设模块的情况下,中断连线总数将多达216根,假定有10个处理器、30个外设模块的情况下,中断连线总数将多达390根,当然,处理器数目越多,或者,外设模块数量越多,则中断走线会更加复杂。
进一步地,请参阅图4,图4为图3所描述的SOC构架的中断走线的又一结构,为方便描述,定义处理器类的模块为Master模块,该Master模块既可以发出中断,又可以接收中断,该Master模块可包括但不限于:CPU、DSP、GPU等,它们发出中断可以通过自身的功能,也可以是通过系统内其他模块实现,例如mailbox的功能,本申请实施例中,可以理解为中断均由处理器发出。
另外,外设类的模块为Slave模块,它们只能发出中断,不能接收中断,中断一般是根据自身的行为完成业务后,或者异常时发出,例如,可以包括但不限于DMA、video、USB、MIPI、PCIE、SDIO、UART、I2C、I2S、SPI等外设。
采用本申请的中断矩阵(Interrupt Matrix)模块,来对所有与中断有关的Master和Slave进行互联,并且将mailbox的功能内置于中断矩阵(Interrupt Matrix)模块中,处理器可以直接通过原本就必须有的高级微控制器总线结构(advanced microcontrollerbus architecture,AMBA)总线对中断矩阵模块进行寄存器配置而发出中断,得出图4的最终设计,其中:
Master0接口:接收1个中断,共1根连线;
Master1接口:接收1个中断,共1根连线;
Master接口:接收1个中断,共1根连线;
Master接口:接收1个中断,共1根连线;
Slave0接口:发出1个中断,共1根连线;
Slave1接口:发出1个中断,共1根连线;
Slave2接口:发出1个中断,共1根连线;
Slave3接口:发出1个中断,共1根连线;
最终合计共8根中断连线,就解决了上述图3的走线,相比图3结构中的28根中断走线而言,本申请简洁而又清晰,易实现且风险低。举例说明下,假定有8个处理器、20个外设模块的情况下,中断连线总数将从216根简化到28根,假定有10个处理器、30个外设模块的情况下,中断连线总数将从390根简化到40根。当然,处理器数量越多、外设模块数量越多时,效果越显著,连线数量至少下降一个数量级。
图4为上述图3所描述的技术问题提出的优化设计方案,其采用本申请实施例中上述图2的中断矩阵模块,由于本申请实施例采用图2中的中断矩阵(interrupt matrix)模块,通过中断矩阵模块来更高效、更灵活的实现中断所需的功能,以极少的连线数量实现相同的功能,不仅节省大量资源,降低经济成本,降低集成、验证、测试的一系列工作量和风险,而且提高质量且快项目进度,降低时间成本,简化后相关工作可大大减少人力投入,降低人力成本。
基于上述图1所描述的电子设备,以及图2所描述的电子设备的中断矩阵模块,下面对本申请实施例的中断控制方法进行详细介绍。
请参阅图5,为本申请实施例提供的一种中断控制方法的实施例流程示意图。其可包括以下步骤101-102,具体如下:
101、在中断矩阵模块的任一Master接口接收到中断消息时,解析所述中断消息,得到指定接口,所述指定接口为所述断矩阵芯片中除了所述任一Master接口之外的一个接口。
其中,电子设备中的中断矩阵模块的Master接口与处理器连接,不同的Master接口之间可以通过mailbox实现通信,该中断消息可以携带需要发送的某个接口,即指定接口,该指定接口可以由用户自行设置,或者,系统默认,在电子设备检测到中断矩阵模块的任一Master接口接收到的中断消息时,可以对该中断消息进行解析,得到指定接口。
102、将所述中断消息发送给所述指定接口。
其中,指定接口可与处理器连接。由于中断矩阵模块包含core模块和mailbox模块,mailbox模块具备mailbox功能,因此,在core模块接收到中断之后,可讲该中断转发给mailbox模块,mailbox模块通过mailbox功能可以将中断消息发送到指定接口,并可以由指定接口对应的硬件模块响应该中断消息。
可选地,以此类推,本申请实施例也可以按照如下步骤实施:
在中断矩阵模块的任一Master接口接收到中断消息时,解析中断消息,得到指定接口,指定接口为所述断矩阵芯片中除了该任一Master接口之外的一个接口,将中断消息发送给指定接口。
可以看出,本申请实施例中所描述的中断控制方法,可以在中断矩阵模块的任一Master接口接收到中断消息时,解析该中断消息中的指定接口,指定接口为断矩阵芯片中除了任一Master接口之外的一个接口,将中断消息发送给指定接口,如此,可以在任一Master接口接收到中断消息时,由中断矩阵模块将其发送给中断消息对应的接口,相较于相关技术中,若发送一个中断,需要连接一个走线而言,本申请可以简化中断走线复杂度,从而,提升了产品研发效率。
请参阅图6,为本申请实施例提供的一种中断控制方法的实施例流程示意图。其可包括以下步骤201-205,具体如下:
201、在中断矩阵模块的任一Master接口接收到中断消息时,解析所述中断消息,得到指定接口以及第一优先级,所述指定接口为所述断矩阵芯片中除了所述任一Master接口之外的一个接口。
其中,上述步骤201的具体描述可以参阅图5中的步骤101,在此不再赘述。当然,中断消息中不仅可以包含指定接口,还可以包括执行响应该中断消息的优先级,即第一优先级。
202、获取所述中断矩阵模块当前正在执行的中断任务的第二优先级。
其中,若电子设备的中断矩阵模块正在执行中断任务,则可以获取该中断任务的优先级,得到第二优先级。进而,针对第一优先级与第二优先级不同的等级,则可以按照优先级高优先执行原则进行。
203、在所述第一优先级高于所述第二优先级时,暂停执行所述中断任务,并执行步骤204。
其中,第一优先级高于第二优先级时,则可以暂停执行中断任务,而是优先执行将中断消息发送给指定接口,等该中断消息发送给指定接口之后,则可以由指定接口对应的模块响应该中断消息,并通过该指定接口向中断矩阵模块反馈响应消息,中断矩阵模块在接收到该响应消息之后,可以继续执行中断任务。
204、将所述中断消息发送给所述指定接口。
其中,上述步骤204的具体描述可以参阅图5中的步骤102,在此不再赘述。
205、在所述第一优先级低于或等于所述第二优先级时,优先执行所述中断任务,在所述中断任务结束后,执行步骤204将所述中断消息发送给所述指定接口。
其中,在第一优先级低于或等于第二优先级时,可以优先执行中断任务,并在该中断任务执行完成后,再执行步骤204,如此,使得各种中断按照不同的优先级有序进行,在一定程度,提升了中断执行效率。
可以看出,本申请实施例中所描述的中断控制方法,可以在中断矩阵模块的任一Master接口接收到中断消息时,解析该中断消息中的指定接口,指定接口为断矩阵芯片中除了任一Master接口之外的一个接口,将中断消息发送给指定接口,如此,可以在任一Master接口接收到中断消息时,由中断矩阵模块将其发送给中断消息对应的接口,相较于相关技术中,若发送一个中断,需要连接一个走线而言,本申请可以简化中断走线复杂度,从而,提升了产品研发效率。
以下是实施上述中断控制方法的装置,具体如下:
与上述一致地,请参阅图7,图7是本申请实施例提供的一种电子设备,包括:处理器、存储器和中断矩阵模块;以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置成由所述处理器执行,所述程序包括用于执行以下步骤的指令:
在中断矩阵模块的任一Master接口接收到中断消息时,解析所述中断消息,得到指定接口,所述指定接口为所述断矩阵芯片中除了所述任一Master接口之外的一个接口;
将所述中断消息发送给所述指定接口。
在一个可能的示例中,所述中断消息还包括第一优先级;
所述程序还包括用于执行以下步骤的指令:
获取所述中断矩阵模块当前正在执行的中断任务的第二优先级;
在所述第一优先级高于所述第二优先级时,暂停执行所述中断任务,并优先执行所述将所述中断消息发送给所述指定接口的步骤;
在所述第一优先级低于或等于所述第二优先级时,在所述中断任务结束后,执行所述将所述中断消息发送给所述指定接口的步骤。
请参阅图8A,图8A是本实施例提供的一种中断控制装置的结构示意图。该中断控制装置应用于电子设备,该中断控制装置可包括:解析单元801和执行单元802,其中,
解析单元801,用于在中断矩阵模块的任一Master接口接收到中断消息时,解析所述中断消息,得到指定接口,所述指定接口为所述断矩阵芯片中除了所述任一Master接口之外的一个接口;
执行单元802,用于将所述中断消息发送给所述指定接口。
可选地,如图8B,图8B是图8A所描述的中断控制装置的又一变型结构,其与图8A所描述的中断控制装置相比较,还可以包括:获取单元803,具体如下:
获取单元803,用于获取所述中断矩阵模块当前正在执行的中断任务的第二优先级;
所述执行单元802还具体用于:
在所述第一优先级高于所述第二优先级时,暂停执行所述中断任务,并优先执行所述将所述中断消息发送给所述指定接口的步骤;
在所述第一优先级低于或等于所述第二优先级时,在所述中断任务结束后,执行所述将所述中断消息发送给所述指定接口的步骤。
可以看出,本申请实施例中所描述的中断控制装置,可以在中断矩阵模块的任一Master接口接收到中断消息时,解析该中断消息中的指定接口,指定接口为断矩阵芯片中除了任一Master接口之外的一个接口,将中断消息发送给指定接口,如此,可以在任一Master接口接收到中断消息时,由中断矩阵模块将其发送给中断消息对应的接口,相较于相关技术中,若发送一个中断,需要连接一个走线而言,本申请可以简化中断走线复杂度,从而,提升了产品研发效率。
可以理解的是,本实施例的中断控制装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种中断控制方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种中断控制方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种中断矩阵模块,其特征在于,所述中断矩阵模块包括M个Master接口、N个Slave接口以及core模块,所述Master接口用于连接Master模块,所述Master接口用于发出中断或者接收中断,所述Slave接口用于连接Slave模块,所述Slave接口用于接收中断且不能发出中断,所述core模块用于实现中断转发传输控制,具体为:接收由第一接口发出的目标中断,对所述目标中断进行转发,所述第一接口为所述中断矩阵模块中任一具备发出中断功能的接口;将所述目标中断发送到第二接口,所述第二接口为需要接收中断的Master接口,或者,所述目标中断携带的接口标识对应的Master接口;所述M、所述N均为正整数。
2.根据权利要求1所述的中断矩阵模块,其特征在于,在所述第一接口为所述N个Slave接口中的一个;
在所述core模块用于将所述目标中断发送到第二接口方面,所述core模块具体用于直接将所述目标中断发送到第二接口。
3.根据权利要求1所述的中断矩阵模块,其特征在于,在所述第一接口为所述M个Master接口中的一个;所述中断矩阵模块还包括mailbox模块;
在所述core模块用于将所述目标中断发送到第二接口方面,所述core模块具体用于:
控制所述mailbox模块将所述目标中断发送到第二接口。
4.根据权利要求1-3任一项所述的中断矩阵模块,其特征在于,所述目标中断包括第一优先级;
所述core模块还具体用于:
获取当前正在执行的中断任务的第二优先级;
在所述第一优先级高于所述第二优先级时,暂停执行所述中断任务,并优先执行所述对所述目标中断进行转发的步骤;
或者,
在所述第一优先级低于或等于所述第二优先级时,在所述中断任务结束后,执行所述对所述目标中断进行转发的步骤。
5.根据权利要求1-3任一项所述的中断矩阵模块,其特征在于,在所述将所述目标中断发送到第二接口之后,所述第二接口具体用于:
在所述第二接口预先配置了屏蔽功能,将所述目标中断保存在与所述第二接口对应的寄存器中;
或者,
在所述第二接口未配置屏蔽功能时,将所述目标中断发送给与所述第二接口连接的Master模块。
6.根据权利要求5所述的中断矩阵模块,其特征在于,所述第二接口还具体用于:
在所述将所述目标中断发送给与所述第二接口连接的Master模块之后,清除所述目标中断。
7.一种中断矩阵芯片,其特征在于,包括如权利要求1-6任一项所述的中断矩阵模块。
8.一种电子设备,其特征在于,包括如权利要求1-6任一项所述的中断矩阵模块,或者,如权利要求7所述的中断矩阵芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810051158.XA CN108345564B (zh) | 2018-01-19 | 2018-01-19 | 中断矩阵模块、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810051158.XA CN108345564B (zh) | 2018-01-19 | 2018-01-19 | 中断矩阵模块、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108345564A CN108345564A (zh) | 2018-07-31 |
CN108345564B true CN108345564B (zh) | 2020-04-14 |
Family
ID=62961063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810051158.XA Active CN108345564B (zh) | 2018-01-19 | 2018-01-19 | 中断矩阵模块、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108345564B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201810785D0 (en) | 2018-06-29 | 2018-08-15 | Nordic Semiconductor Asa | Asynchronous communication |
CN110022356B (zh) * | 2019-03-08 | 2021-11-30 | 北京三快在线科技有限公司 | 分布式系统和具有该分布式系统的无人驾驶设备 |
CN112817778A (zh) * | 2021-01-27 | 2021-05-18 | 惠州Tcl移动通信有限公司 | 一种移动终端复用模块管理方法、系统、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201583944U (zh) * | 2009-12-24 | 2010-09-15 | 北京航天长征飞行器研究所 | 一种采用fpga实现基于pci总线的实时采集卡 |
CN103455401A (zh) * | 2013-08-25 | 2013-12-18 | 浙江大学 | 一种dsp和fpga紧耦合架构的协同验证方法 |
CN107526707A (zh) * | 2017-07-19 | 2017-12-29 | 成都华微电子科技有限公司 | 可编程片上系统 |
-
2018
- 2018-01-19 CN CN201810051158.XA patent/CN108345564B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201583944U (zh) * | 2009-12-24 | 2010-09-15 | 北京航天长征飞行器研究所 | 一种采用fpga实现基于pci总线的实时采集卡 |
CN103455401A (zh) * | 2013-08-25 | 2013-12-18 | 浙江大学 | 一种dsp和fpga紧耦合架构的协同验证方法 |
CN107526707A (zh) * | 2017-07-19 | 2017-12-29 | 成都华微电子科技有限公司 | 可编程片上系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108345564A (zh) | 2018-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345564B (zh) | 中断矩阵模块、芯片及电子设备 | |
CN111901164B (zh) | Ocp nic网卡的适配控制方法、装置、设备及系统 | |
CN103617138A (zh) | 多主机仲裁方法及多主机通信系统 | |
CN101820460B (zh) | 实现spi接口的模块 | |
CN110765052B (zh) | 一种ahb/apb扩展总线接口、片上系统 | |
CN105550147A (zh) | 一种spi总线扩展系统及其通讯方法 | |
CN103324596A (zh) | 一种基于x86体系结构处理器的VME单板计算机装置 | |
CN110968352A (zh) | 一种pcie设备的复位系统及服务器系统 | |
CN111026697A (zh) | 核间通信方法、系统、电子器件以及电子设备 | |
US10176133B2 (en) | Smart device with no AP | |
CN103425434A (zh) | 一种多通道读/写ram的电路和方法 | |
CN104572515B (zh) | 跟踪模块、方法、系统和片上系统芯片 | |
CN105068962A (zh) | I2c控制器访问方法及系统 | |
CN110098989A (zh) | 一种基于canfd总线的多路can仿真系统及测试方法 | |
CN104598420A (zh) | 一种1394总线SoC芯片架构 | |
CN210572737U (zh) | 一种二次雷达信号处理装置 | |
CN111079922B (zh) | 基于axi-apb的神经网络交互系统、方法、服务器及存储介质 | |
CN109510682B (zh) | 一种池化服务器系统bmc时钟同步方法、装置、终端及存储介质 | |
CN108710508B (zh) | 一种处理方法、装置及电子设备 | |
CN203930821U (zh) | 能对单命令和批命令同时进行处理的spi总线控制系统 | |
CN105930294A (zh) | 一种基于状态机的数字集成电路总线系统 | |
CN106557441A (zh) | 一种基于中断控制器的低速接口中断处理方法及系统 | |
CN105068957A (zh) | 一种apb总线系统中访问从模块的方法及装置 | |
CN111124974B (zh) | 接口扩展装置及方法 | |
RU158939U1 (ru) | Контроллер периферийных интерфейсов (кпи-2) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |