CN117472637B - 一种中断管理方法、***、设备及介质 - Google Patents

一种中断管理方法、***、设备及介质 Download PDF

Info

Publication number
CN117472637B
CN117472637B CN202311813316.8A CN202311813316A CN117472637B CN 117472637 B CN117472637 B CN 117472637B CN 202311813316 A CN202311813316 A CN 202311813316A CN 117472637 B CN117472637 B CN 117472637B
Authority
CN
China
Prior art keywords
interrupt
current
module
logic
interrupt number
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
Application number
CN202311813316.8A
Other languages
English (en)
Other versions
CN117472637A (zh
Inventor
李军
郭巍
邓子为
张德闪
刘伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311813316.8A priority Critical patent/CN117472637B/zh
Publication of CN117472637A publication Critical patent/CN117472637A/zh
Application granted granted Critical
Publication of CN117472637B publication Critical patent/CN117472637B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明涉及通信数据处理技术领域,公开了一种中断管理方法、***、设备及介质。方法包括:根据当前时钟周期内接收到的内核单元发送的若干中断请求,基于中断识别逻辑模块确定发送中断请求的当前中断数量以及各中断请求对应的当前中断编号;将当前中断数量和各当前中断编号分别缓存至中断数量缓存模块和中断编号缓存模块;若检测到中断数量缓存模块非空,通过中断逻辑生成模块从中断数量缓存模块中读取当前中断数量,并基于当前中断数量依次从中断编号缓存模块中读取各当前中断编号;基于读取到的各当前中断编号和中断信息表生成中断消息。通过本发明的方案,有效避免了内核中断瓶颈的问题,提高内核工作效率。

Description

一种中断管理方法、***、设备及介质
技术领域
本发明涉及通信数据处理技术,尤其涉及一种中断管理方法、***、设备及介质。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)的设计分为外壳(shell)部分和动态内核(dynamic kernel)部分,动态内核通过寄存器读写和中断信号实现与主机驱动程序的通信。当任一动态内核需要向主机驱动程序发起中断时,通过该动态内核内维护的中断状态寄存器发送中断请求,外壳通过逻辑识别该中断请求以将该动态内核对应的中断向量传输至CPU(Central Processing Unit,中央处理器)从而实现中断。
随着芯片工艺的进步、FPGA逻辑规模的扩大以及FPGA动态内核数量的增加,在高密度FPGA动态内核同时发起中断信号的情况下,相关技术中实现硬件中断的过程存在较高的时延,容易导致动态内核中断瓶颈,进而导致内核执行效率降低的问题。因此,亟需提出一种中断管理方法以解决相关技术中存在的缺陷。
发明内容
有鉴于此,本发明提出了一种中断管理方法、***、设备及介质。解决了中断消息生成过程中的中断请求识别效率低、中断地址信息确认速度慢以及内核中断瓶颈等问题,有效提高了内核的工作效率,为时延敏感的FPGA应用场景提供了较高的应用价值。
基于上述目的,本发明实施例的一方面提供了一种中断管理方法,应用于现场可编程门阵列设备的外壳单元,所述外壳单元包括中断识别逻辑模块、中断逻辑生成模块、中断数量缓存模块和中断编号缓存模块,所述的中断管理方法具体包括如下步骤:
根据当前时钟周期内接收到的内核单元发送的若干中断请求,基于所述中断识别逻辑模块确定发送所述中断请求的当前中断数量以及各所述中断请求对应的当前中断编号;
将所述当前中断数量和各所述当前中断编号分别缓存至所述中断数量缓存模块和所述中断编号缓存模块;
若检测到所述中断数量缓存模块非空,通过所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并基于所述当前中断数量依次从所述中断编号缓存模块中读取各所述当前中断编号;
基于读取到的各所述当前中断编号和中断信息表生成中断消息。
在一些实施方式中,所述通过所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并基于所述当前中断数量依次从所述中断编号缓存模块中读取各所述当前中断编号的步骤,包括:
判断所述当前时钟周期内所述中断逻辑生成模块是否处于空闲状态;
若在所述当前时钟周期内检测到所述中断逻辑生成模块处于空闲状态,通过所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并依次从所述中断编号缓存模块中读取与所述当前中断数量对应数量的各所述当前中断编号。
在一些实施方式中,所述基于读取到的各所述当前中断编号和中断信息表生成中断消息的步骤,包括:
获取各所述当前中断编号中目标位对应的二进制编码,通过所述中断逻辑生成模块在所述中断信息表中查询与各所述二进制编码匹配的目标中断位置信息,根据各所述目标中断位置信息构建对应的中断消息。
在一些实施方式中,所述的中断管理方法还包括:
若在所述当前时钟周期内检测到所述中断逻辑生成模块处于非空闲状态,在所述中断数量缓存模块中获取上一时钟周期对应的第一中断数量;
判断通过所述中断逻辑生成模块读取的所述上一时钟周期对应的第一中断编号的数量是否满足所述第一中断数量;
若通过所述中断逻辑生成模块读取的所述第一中断编号的数量满足所述第一中断数量,触发所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并依次从所述中断编号缓存模块中读取与所述当前中断数量对应数量的各所述当前中断编号。
在一些实施方式中,所述的中断管理方法还包括:
若通过所述中断逻辑生成模块已读取的所述第一中断编号的数量未满足所述第一中断数量,继续通过所述中断逻辑生成模块从所述中断编号缓存模块中读取所述第一中断编号;
基于所述第一中断编号和中断信息表生成中断消息,并返回判断通过所述中断逻辑生成模块读取的所述上一时钟周期对应的第一中断编号的数量是否满足所述第一中断数量的步骤。
在一些实施方式中,所述基于所述中断识别逻辑模块确定各所述中断请求对应的当前中断编号的步骤,包括:
将各所述中断请求输入至所述中断识别逻辑模块的查找表中,在所述查找表中查询与各所述中断请求匹配的内核编码,将各所述内核编码的二进制编码作为对应的当前中断编号。
在一些实施方式中,所述基于所述中断识别逻辑模块确定发送所述中断请求的当前中断数量的步骤,包括:
将所有所述中断请求传输至所述中断识别逻辑模块内的串行进位加法器以计算所述当前中断数量。
在一些实施方式中,所述基于所述当前中断数量依次从所述中断编号缓存模块中读取各所述当前中断编号的步骤,包括:
每读取完成一个当前中断编号,判断通过所述中断逻辑生成模块读取的所述当前中断编号的数量是否满足所述当前中断数量;
若通过所述中断逻辑生成模块读取的所述当前中断编号的数量未满足所述当前中断数量,按照缓存顺序继续通过所述中断逻辑生成模块从所述中断编号缓存模块中读取所述中断编号,返回判断所述中断逻辑生成模块已读取的所述当前中断编号的数量是否满足所述当前中断数量的步骤;
若通过所述中断逻辑生成模块读取的所述当前中断编号的数量满足所述当前中断数量,停止所述中断逻辑生成模块从所述中断编号缓存模块中读取所述当前中断编号。
在一些实施方式中,所述的中断管理方法还包括:
若通过响应于所述中断逻辑生成模块已读取的所述当前中断编号的数量满足所述当前中断数量,清除所述中断数量缓存模块中缓存的所述当前中断数量和所述中断编号缓存模块中缓存的与所述当前中断数量对应数量的所述当前中断编号;
检测所述中断数量缓存模块是否为空;
若检测到所述中断数量缓存模块不为空,触发所述中断逻辑生成模块从所述中断数量缓存模块中读取下一时钟周期对应的第二中断数量,并从所述中断编号缓存模块中读取与所述第二中断数量对应数量的第二内核编码,所述第二内核编码为下一时钟周期对应的内核编码。
在一些实施方式中,所述的中断管理方法还包括:
依次将各所述中断消息发送至中央处理器以对各所述中断位置信息对应的内核进行中断响应。
在一些实施方式中,所述的中断管理方法还包括:
根据所述内核单元中每个内核对应的内核编号信息、中断编号信息以及每个软件分别分配至各所述内核的中断位置信息,初始化扩展消息信号中断向量表;
将初始化后的所述扩展消息信号中断向量表内所有所述内核编号信息、所述中断编号信息和所述中断位置信息同步到所述中断信息表。
在一些实施方式中,所述当前时钟周期内接收到的内核单元发送的若干中断请求的步骤,包括:
在所述当前时钟周期内检测所述内核单元中每个内核的中断信号对应的上升沿信号的值是否为1;
若检测到存在任一所述上升沿信号的值为1,确定所述外壳单元在当前时钟周期内接收到所述内核单元发送的中断请求。
在一些实施方式中,所述的中断管理方法还包括:
初始化所述中断识别逻辑模块的输出信号,并将各所述当前中断编号按照从低到高的顺序依次赋值至初始化后的所述输出信号中的目标位;
通过所述中断识别逻辑模块发送赋值后的所述输出信号至所述中断编号缓存模块,以将所有所述当前中断编号缓存至所述中断编号缓存模块。
在一些实施方式中,所述串行进位加法器为级串行进位加法器,其中,N为所述内核单元的总个数。
在一些实施方式中,所述输出信号的位宽为,其中,N为所述内核单元的总个数。
在一些实施方式中,所述目标中断位置信息包括中断向量和中断地址。
在一些实施方式中,所述目标位为低位,其中,N为所述内核单元的总个数。
在一些实施方式中,所述中断数量缓存模块和所述中断编号缓存模块的缓存深度均不小于N,其中,N为所述内核单元的总个数。
本发明实施例的另一方面,还提供了一种中断管理***,所述中断管理***具体包括:
识别模块,用于根据当前时钟周期内接收到的内核单元发送的若干中断请求,基于中断识别逻辑模块确定发送所述中断请求的当前中断数量以及各所述中断请求对应的当前中断编号;
缓存模块,用于将所述当前中断数量和各所述当前中断编号分别缓存至中断数量缓存模块和中断编号缓存模块;
读取模块,用于若中断逻辑生成模块检测到所述中断数量缓存模块非空,通过所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并基于所述当前中断数量依次从所述中断编号缓存模块中读取各所述当前中断编号;
生成模块,用于基于读取到的各所述当前中断编号和中断信息表生成中断消息。
本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
本发明至少具有以下有益技术效果:
(1)本发明的一种中断管理方法,通过增加中断数量缓存模块和中断编号缓存模块,使得外壳中的中断识别逻辑模块的处理进程和中断逻辑生成模块的处理进程能够分别独立进行,即中断识别逻辑模块无需等待中断逻辑生成模块中正在进行的处理进程完成后才能开始新的处理进程,有效降低中断识别逻辑进程的处理时延,避免了中断识别逻辑模块和中断逻辑生成模块之间大量不必要的等待时间;
(2)本发明的一种中断管理方法,利用串行进位加法器快速确定内核数量,并在中断识别逻辑模块中设置查找表来存储中断请求与中断编号间的映射关系,通过查表的方式快速获取中断请求对应内核的中断编号,避免了大量繁复的计算,实现在一个时钟周期内批量识别多个内核单元在同一时刻下发送的中断请求;
(3)本发明的一种中断管理方法,设置中断信息表来存储中断编号与中断地址信息间的映射关系,一旦中断逻辑生成模块检测到中断数量缓存模块非空,即可根据中断数量从中断编号缓存模块中读取中断编号作为索引,用于在中断信息表查询中断地址信息快速生成中断消息,极大降低了中断消息产生的时延,避免内核中断瓶颈的问题,提高了内核的工作效率,为时延敏感的FPGA应用场景提供了较高的应用价值。
此外,本发明还提供了一种中断管理***、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明提供的中断管理方法的一实施例的框图;
图2为本发明提供的FPGA中断管理结构的一实施例的示意图;
图3所示为相关技术中的2输入中断编号计算逻辑电路的示意图;
图4所示为本发明提供的2输入中断编号计算电路的一实施例的示意图;
图5为本发明提供的中断管理***的一实施例的示意图;
图6为本发明提供的计算机设备的一实施例的结构示意图;
图7为本发明提供的计算机可读存储介质的一实施例的结构示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本申请做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备固有的其他步骤或单元。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
外壳部分实现设备生产商定义的对FPGA异构加速器的基本管理功能和各种数据接口。基本管理功能包括动态内核的下载、板载闪存(Flash)芯片外壳版本的烧写、管理权限和用户权限的消息通信、硬核IP(Internet Protocol,网际互连协议)以及底层协议的逻辑实现等。数据接口包括主机(Host)和动态内核之间的数据传输通道,其一般通过PCIe(peripheral component interconnect express,高速串行计算机扩展总线标准)总线标准的DMA(Direct Memory Access,直接内存访问)机制实现。动态内核部分实现用户定义的各种功能,动态内核部分一般通过多个内核进行并联或串联的方式形成实现特定用户功能的***。所有的用户功能都可以通过FPGA编程的方式实现动态的切换,从而使基于FPGA的异构加速器具有强大的通用性和灵活性。每个内核内维护主机驱动程序可访问的中断状态寄存器,当内核需要向主机驱动程序发起中断时,该内核会将自身中断状态寄存器置一,外壳通过逻辑识别该信号将内核对应的中断向量写入主机***软件指定的地址,然后由CPU中断控制器捕获该动作从而实现对主机驱动程序的中断,中断处理完成后,主机驱动程序通过寄存器读写方式将该内核的中断状态寄存器清零。
由于每个内核之间往往是独立工作的,因此内核中断请求具有突发性和不确定性,即同一时刻可能有多个数量的内核发起中断请求。相关技术中外壳部分一般使用逐一检测内核中断信号线的方式产生硬件中断。这种方法在内核布局密度低和内核算法单次执行时间较长的场景下是可行的。假设内核数量为N,那么只要内核的平均中断请求间隔高于个中断周期,使用相关技术的方法就不会造成内核中断瓶颈。但在高密度FPGA动态内核场景下,如内核数量为1024个且外壳部分时钟频率为250MHz的场景下,若内核执行的是类似矩阵求逆或神经网络前向计算等轻量级算法,算法执行频率较高导致中断请求间隔时间短,继续采用相关技术的方法很容易造成内核中断瓶颈导致内核工作效率下降。
为了解决上述问题,本发明提出了一种应用于FPGA外壳部分的中断管理方法,实现低时延的硬件中断检测和产生,有效降低外壳部分的中断处理时延,防止中断瓶颈。
基于上述目的,本发明实施例的第一个方面,提出了一种中断管理方法的实施例。本发明的中断管理方法应用于FPGA的外壳单元,该外壳单元包括中断识别逻辑模块、中断逻辑生成模块、中断数量缓存模块和中断编号缓存模块。如图1所示,本发明的中断管理方法具体包括如下步骤:
步骤S100,根据当前时钟周期内接收到的内核单元发送的若干中断请求,基于中断识别逻辑模块确定发送中断请求的当前中断数量以及各中断请求对应的当前中断编号。
图2为本发明提供的FPGA中断管理结构的一实施例的示意图。
在一些实施方式中,如图2所示,外壳单元包括中断识别逻辑模块、中断数量缓存模块、中断编号缓存模块、中断生成逻辑模块和中断信息表,内核单元包括多个内核。每个内核根据自身中断状态寄存器的值将中断请求发送给外壳单元的中断识别逻辑模块。中断识别逻辑模块用于计算同一时钟周期内发送中断请求的内核数量和对应的中断编号,中断编号记录了中断请求对应的内核在一组中断信号线中的位置,其为中断内核对应的二进制编码。
在一些实施方式中,若内核单元中内核的总数量为N,通过级串行进位加法器即可快速计算得到当前时钟周期内发送了中断请求的当前中断数量。
相关技术中,FPGA外壳部分一般使用逐一检测内核中断信号线的方式产生硬件中断,这种方法首先以独热编码的方式构建中断信号线与内核的一一对应关系,同时检测每个中断信号线的上升沿,将存在某个上升沿子集的时钟周期进行缓存,并以中断数量为计数周期逐一检测每组已缓存的中断信号对应的中断位置,并根据中断位置推断出需要发起中断的内核对应的中断编号,随后将发起中断所需的信息提交给PCIe设备的中断管理模块,由中断管理模块查询设备的MSIX(Message Signal Interrupt eXtended,扩展的消息信号中断)功能寄存器并构建中断TLP(Transaction Layer Protocol,传输层协议)帧。图3所示为相关技术中的2输入中断编号计算逻辑电路的示意图。相关技术中采用门电路检测中断信号对应的中断位置,若内核单元中内核的总数量为N,首先需要依次判断N个内核中断信号是否为0。当N=2时,需要经过RTL(Rigister Transfer Level,寄存器传输级)模块级数为2N+2的门电路进行检测,而当N>3时,则需要经过RTL模块级数为2N+2的门电路进行检测。从而导致在内核总数量较大时,电路组合路径过长而无法在一个时钟周期内输出结果。另外,内核发送的中断请求的编码形式为独热码,需要将独热码转换为二进制编码后才能用以计算最终的中断编号,而相关技术中独热码与二进制编码的转换过程也需要占用大量的额外门电路与线网资源。
在一些实施方式中,外壳单元的中断识别逻辑模块通过在每个时钟周期内检测每个内核的中断信号对应的上升沿信号的值是否为1来判断内核是否发送了中断请求。若每个内核的中断信号对应的上升沿信号整体为0表示在当前时钟周期中内核单元没有发送中断请求,则不进行任何处理。若存在任意一个内核的中断信号对应的上升沿信号的值为1,表示在当前时钟周期中内核单元发送了中断请求,然后在查找表中查询与上升沿信号的值为1的中断信号匹配的中断编号,按照中断编号从低到高的顺序,将中断编号依次赋值给中断识别逻辑模块的输出信号的目标位,以将中断编号传输至中断编号缓存模块。一实例中,如图4所示为本发明提供的2输入中断编号计算电路的一实施例的示意图,该中断编号计算线路中的LUT(Look Up Table,查找表)级联级数不会随着内核总数量的增大而明显变化,避免了在高密度FPGA内核场景下出现级联级数增大使得中断编号计算线路过长,导致无法在一个时钟周期内完成中断编码的计算的问题,并且通过LUT查表以获取中断请求对应的中断编号的方式,避免了独热码与二进制转换造成额外门电路与线网资源的浪费。针对不同的内核总数通过设置相应的LUT资源单元数量来保证中断编号的快速计算。本发明的中断编号计算电路相比于相关技术中的中断编号计算逻辑电路而言,即使在内核总数量很大的情况下,也只需要5-6级查找表即可完成逻辑编号的计算,能够轻松完成时序收敛。
其中,图3和图4中kernel_0_interrupt和kernel_1_interrupt分别表示两输入端口,图3中interrupt_position[1:0]为编码形式为二进制编码的中断位置(即输出结果),图4中interrupt_position[1]和interrupt_position[0]为编码形式为二进制编码的中断编码。图3中Mux为多路选择器模块,图3中Merge为合并电路模块,图3中2'b11、2'b00和2'b01表示为两位二进制数的Verilog(硬件描述语言)符号。图4中LUT2为两端口输入的查找表,Vdd为电路中的电源电压。
步骤S200,将当前中断数量和各当前中断编号分别缓存至中断数量缓存模块和中断编号缓存模块。
在一些实施方式中,在当前时钟周期内计算得到一组中断请求对应的当前中断数量和当前中断编号后会进行短时间的锁存,在锁存时间内将当前中断数量缓存至中断数量缓存模块,并按照当前中断编号从低到高的顺序将其依次缓存至中断编号缓存模块。由于每个时钟周期都可能会存在不定数量的内核发起中断请求,为保证大时间尺度下各个内核的中断请求不会被外壳丢失,需要对中断识别逻辑模块在每个时钟周期的计算结果进行缓存,并且中断编号缓存模块的缓存深度至少与内核总数量相对应,或缓存深度略大于内核总数量。
步骤S300,若检测到中断数量缓存模块非空,通过中断逻辑生成模块从中断数量缓存模块中读取当前中断数量,并基于当前中断数量依次从中断编号缓存模块中读取各当前中断编号。
在一些实施方式中,一旦外壳单元通过中断逻辑生成模块检测到中断数量缓存模块非空,能够从中断编号缓存模块中读取对应中断数量的若干中断编号依次作为索引,并依次在中断信息表查询与各索引匹配的中断地址信息,根据该中断地址信息快速生成中断消息发送至CPU。同时中断识别逻辑模块能够继续计算下一时钟周期接收到的中断请求对应的中断数量和中断编号,无需等待中断逻辑生成模块的处理进程完成后才能开始新的处理进程,避免了中断识别逻辑模块和中断逻辑生成模块之间大量不必要的等待时间。
步骤S400,基于读取到的各当前中断编号和中断信息表生成中断消息。
在一些实施方式中,中断信息表是维护在外壳单元的一组内核相关中断信息的缓存。其以中断编号为索引,中断信息表的内容包括中断地址和中断向量。PCIe设备配置BAR(基地址寄存器)空间的MSIX功能相关寄存器能够定位内核的中断地址和中断向量,在PCIe设备的MSIX向量表初始化阶段,会将软件给指定内核分配的中断地址和中断向量同步更新到中断信息表中,方便中断逻辑生成模块查询并独立构建IRP(Interrupt ReQuest,中断请求)TLP帧。
本发明的一种中断管理方法,通过增加中断数量缓存模块和中断编号缓存模块,使得外壳中的中断识别逻辑模块的处理进程和中断逻辑生成模块的处理进程能够分别独立进行,即中断识别逻辑模块无需等待中断逻辑生成模块中正在进行的处理进程完成后才能开始新的处理进程,有效降低中断识别逻辑进程的处理时延,避免了中断识别逻辑模块和中断逻辑生成模块之间大量不必要的等待时间,利用串行进位加法器快速确定中断数量,并在中断识别逻辑模块中设置查找表来存储中断请求与中断编号间的映射关系,通过查表的方式快速获取中断请求对应内核的中断编号,避免了大量繁复的计算,实现在一个时钟周期内批量识别多个内核单元在同一时刻下发送的中断请求,进一步的,设置中断信息表来存储中断编号与中断地址信息间的映射关系,一旦中断逻辑生成模块检测到中断数量缓存模块非空,即可根据中断数量从中断编号缓存模块中读取中断编号作为索引,用于在中断信息表查询中断地址信息快速生成中断消息,极大降低了中断消息产生的时延,避免内核中断瓶颈的问题,提高了内核的工作效率,为时延敏感的FPGA应用场景提供了较高的应用价值。
在一些实施方式中,通过中断逻辑生成模块从中断数量缓存模块中读取当前中断数量,并基于当前中断数量依次从中断编号缓存模块中读取各当前中断编号的步骤,包括:判断当前时钟周期内中断逻辑生成模块是否处于空闲状态;若在当前时钟周期内检测到中断逻辑生成模块处于空闲状态,通过中断逻辑生成模块从中断数量缓存模块中读取当前中断数量,并依次从中断编号缓存模块中读取与所述当前中断数量对应数量的各当前中断编号。
在一些实施方式中,本发明的一种中断管理方法还包括:若在当前时钟周期内检测到中断逻辑生成模块处于非空闲状态,在中断数量缓存模块中获取上一时钟周期对应的第一中断数量;判断通过中断逻辑生成模块读取的上一时钟周期对应的第一中断编号的数量是否满足第一中断数量;若通过中断逻辑生成模块读取的第一中断编号的数量满足第一中断数量,触发中断逻辑生成模块从中断数量缓存模块中读取当前中断数量,并依次从中断编号缓存模块中读取与所述当前中断数量对应数量的各当前中断编号。
在一些实施方式中,本发明的一种中断管理方法还包括:若通过中断逻辑生成模块已读取的第一中断编号的数量未满足第一中断数量,继续通过中断逻辑生成模块从中断编号缓存模块中读取第一中断编号;基于第一中断编号和中断信息表生成中断消息,并返回判断通过中断逻辑生成模块读取的上一时钟周期对应的第一中断编号的数量是否满足第一中断数量的步骤。
在一些实施方式中,若当前时钟周期内中断逻辑生成模块处于空闲状态,表示中断逻辑生成模块能够立即开始生成当前时钟周期发起的中断请求对应的中断消息。若当前时钟周期内中断逻辑生成模块处于非空闲状态,表示中断逻辑生成模块还在处理上一时钟周期发起的中断请求,直至逻辑生成模块生成上一时钟周期的中断数量相应的中断消息,触发开始生成当前时钟周期发起的中断请求对应的中断消息。
本发明的一种中断管理方法,通过增加中断数量缓存模块和中断编号缓存模块对每个时钟周期计算得到的中断数量和中断编号进行缓存,有利于外壳中的中断识别逻辑模块的处理进程和中断逻辑生成模块的处理进程能够分别独立进行,中断识别逻辑模块能够在中的逻辑生成模块生成上一时钟周期的中断消息的同时,继续计算另一时钟周期接收到的中断请求对应的中断数量和中断编号,有效降低中断识别逻辑进程的处理时延以及中断消息的产生时延,避免了中断识别逻辑模块和中断逻辑生成模块之间大量不必要的等待时间。
在一些实施方式中,基于读取到的各当前中断编号和中断信息表生成中断消息的步骤,包括:获取各当前中断编号中目标位对应的二进制编码,通过中断逻辑生成模块在中断信息表中查询与各二进制编码匹配的目标中断位置信息,根据各目标中断位置信息构建对应的中断消息。
在一些实施方式中,目标中断位置信息包括中断向量和中断地址。
本发明的一种中断管理方法,设置中断信息表来存储中断编号与中断地址信息间的映射关系,一旦中断逻辑生成模块检测到中断数量缓存模块非空,即可根据中断数量从中断编号缓存模块中读取中断编号作为索引,用于在中断信息表查询中断地址信息快速生成中断消息,避免了大量繁杂的计算,极大降低了中断消息产生的时延,避免内核中断瓶颈的问题,提升了内核的工作效率。
在一些实施方式中,基于中断识别逻辑模块确定各中断请求对应的当前中断编号的步骤,包括:将各中断请求输入至中断识别逻辑模块的查找表中,在查找表中查询与各中断请求匹配的内核编码,将各内核编码的二进制编码作为对应的当前中断编号。
本发明的一种中断管理方法,在中断识别逻辑模块中设置查找表来存储中断请求与中断编号间的映射关系,通过查表的方式快速获取中断请求对应内核的中断编号,无需经过多RTL模块级数的门电路依次对中断请求进行检测,同时避免了独热码与二进制编码的转换过程,简化了中断编码的计算过程,实现在一个时钟周期内批量识别多个内核单元在同一时刻下发送的中断请求,有效降低内核时延避免内核中断瓶颈。
在一些实施方式中,基于中断识别逻辑模块确定发送中断请求的当前中断数量的步骤,包括:将所有中断请求传输至中断识别逻辑模块内的串行进位加法器以计算当前中断数量。
在一些实施方式中,串行进位加法器为级串行进位加法器,其中,N为内核单元的总个数。
本发明的一种中断管理方法,利用串行进位加法器实现在一个时钟周期内快速确定中断数量,避免了多RTL模块级数的门电路依次检测存在的计算时延,实现了时序收敛的效果。
在一些实施方式中,基于当前中断数量依次从中断编号缓存模块中读取各当前中断编号的步骤,包括:每读取完成一个当前中断编号,判断通过中断逻辑生成模块已读取的当前中断编号的数量是否满足当前中断数量;若通过中断逻辑生成模块已读取的当前中断编号的数量未满足当前中断数量,按照缓存顺序继续通过中断逻辑生成模块从中断编号缓存模块中读取中断编号,返回判断通过中断逻辑生成模块读取的当前中断编号的数量是否满足当前中断数量的步骤;若通过中断逻辑生成模块已读取的当前中断编号的数量满足当前中断数量,停止中断逻辑生成模块从中断编号缓存模块中读取当前中断编号。
在一些实施方式中,本发明的一种中断管理方法还包括:若通过中断逻辑生成模块读取的当前中断编号的数量满足当前中断数量,清除中断数量缓存模块中缓存的当前中断数量和中断编号缓存模块中缓存的与所述当前中断数量对应数量的当前中断编号;检测中断数量缓存模块是否为空;若检测到中断数量缓存模块不为空,触发中断逻辑生成模块从中断数量缓存模块中中读取下一时钟周期对应的第二中断数量,并从中断编号缓存模块中读取与第二中断数量对应数量的第二内核编码,第二内核编码为下一时钟周期对应的内核编码。
本发明的一种中断管理方法,中断逻辑生成模块仅需检测中断数量缓存模块中确认非空就能够开始处理相应的中断请求,降低了中断识别逻辑模块的处理进程与中断逻辑生成模块的处理进程之间的相互干扰,有效降低了中断编号的计算时延以及中断消息的产生时延。
在一些实施方式中,本发明的一种中断管理方法还包括:依次将各中断消息发送至中央处理器以对各中断位置信息对应的内核进行中断响应。
在一些实施方式中,本发明的一种中断管理方法还包括:根据内核单元中每个内核对应的内核编号信息、中断编号信息以及每个软件分别分配至各内核的中断位置信息,初始化扩展消息信号中断向量表;将初始化后的扩展消息信号中断向量表内所有内核编号信息、中断编号信息和中断位置信息同步到中断信息表。
在一些实施方式中,当前时钟周期内接收到的内核单元发送的若干中断请求的步骤包括:在当前时钟周期内检测内核单元中每个内核的中断信号对应的上升沿信号的值是否为1;若检测到存在任一上升沿信号的值为1,确定外壳单元在当前时钟周期内接收到内核单元发送的中断请求。
本发明的一种中断管理方法,通过消耗LUT资源,即使在内核数量较大的情况也能保证内核的中断效率,通过同步于BAR空间中的MSIX信息快速确定中断信息表,保证了中断位置信息与中断编号间映射关系的准确性,有利于中的逻辑生成模块直接生成中断消息使CPU对内核进行中断响应,避免了内核中断瓶颈。
在一些实施方式中,本发明的一种中断管理方法还包括:初始化中断识别逻辑模块的输出信号,并将各当前中断编号按照从低到高的顺序依次赋值至初始化后的输出信号中的目标位;通过中断识别逻辑模块发送赋值后的输出信号至中断编号缓存模块,以将所有当前中断编号缓存至中断编号缓存模块。
本发明的一种中断管理方法,通过对每个周期的计算结果都进行缓存,能够保证大时间尺度下内核的中断请求不会被外壳丢失。
在一些实施方式中,输出信号的位宽为,其中,N为内核单元的总个数。
在一些实施方式中,目标位为低位,其中,N为内核单元的总个数。
在一些实施方式中,中断数量缓存模块和中断编号缓存模块的缓存深度均不小于N,其中,N为内核单元的总个数。
本发明的一种中断管理方法,通过增加中断数量缓存模块和中断编号缓存模块,使得外壳中的中断识别逻辑模块的处理进程和中断逻辑生成模块的处理进程能够分别独立进行,即中断识别逻辑模块无需等待中断逻辑生成模块中正在进行的处理进程完成后才能开始新的处理进程,有效降低中断识别逻辑进程的处理时延,避免了中断识别逻辑模块和中断逻辑生成模块之间大量不必要的等待时间,利用串行进位加法器快速确定中断数量,并在中断识别逻辑模块中设置查找表来存储中断请求与中断编号间的映射关系,通过查表的方式快速获取中断请求对应内核的中断编号,避免了大量繁复的计算,实现在一个时钟周期内批量识别多个内核单元在同一时刻下发送的中断请求,进一步的,设置中断信息表来存储中断编号与中断地址信息间的映射关系,一旦中断逻辑生成模块检测到中断数量缓存模块非空,即可根据中断数量从中断编号缓存模块中读取中断编号作为索引,用于在中断信息表查询中断地址信息快速生成中断消息,极大降低了中断消息产生的时延,避免内核中断瓶颈的问题,提高了内核的工作效率,为时延敏感的FPGA应用场景提供了较高的应用价值。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一些实施例中,请参照图5所示,本发明还提供了一种中断管理***,中断管理***具体包括:
识别模块110,用于根据当前时钟周期内接收到的内核单元发送的若干中断请求,基于中断识别逻辑模块确定发送中断请求的当前中断数量以及各中断请求对应的当前中断编号;
缓存模块120,用于将当前中断数量和各当前中断编号分别缓存至中断数量缓存模块和中断编号缓存模块;
读取模块130,用于若中断逻辑生成模块检测到中断数量缓存模块非空,通过中断逻辑生成模块从中断数量缓存模块中读取当前中断数量,并基于当前中断数量依次从中断编号缓存模块中读取各当前中断编号;
生成模块140,用于基于读取到的各当前中断编号和中断信息表生成中断消息。
本发明的一种中断管理***,通过增加中断数量缓存模块和中断编号缓存模块,使得外壳中的中断识别逻辑模块的处理进程和中断逻辑生成模块的处理进程能够分别独立进行,即中断识别逻辑模块无需等待中断逻辑生成模块中正在进行的处理进程完成后才能开始新的处理进程,有效降低中断识别逻辑进程的处理时延,避免了中断识别逻辑模块和中断逻辑生成模块之间大量不必要的等待时间,利用串行进位加法器快速确定中断数量,并在中断识别逻辑模块中设置查找表来存储中断请求与中断编号间的映射关系,通过查表的方式快速获取中断请求对应内核的中断编号,避免了大量繁复的计算,实现在一个时钟周期内批量识别多个内核单元在同一时刻下发送的中断请求,进一步的,设置中断信息表来存储中断编号与中断地址信息间的映射关系,一旦中断逻辑生成模块检测到中断数量缓存模块非空,即可根据中断数量从中断编号缓存模块中读取中断编号作为索引,用于在中断信息表查询中断地址信息快速生成中断消息,极大降低了中断消息产生的时延,避免内核中断瓶颈的问题,提高了内核的工作效率,为时延敏感的FPGA应用场景提供了较高的应用价值。
基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机设备30,在该计算机设备30中包括处理器310以及存储器320,存储器320存储有可在处理器上运行的计算机程序321,处理器310执行程序时执行如上的方法的步骤。
本发明的一种计算机设备,通过增加中断数量缓存模块和中断编号缓存模块,使得外壳中的中断识别逻辑模块的处理进程和中断逻辑生成模块的处理进程能够分别独立进行,即中断识别逻辑模块无需等待中断逻辑生成模块中正在进行的处理进程完成后才能开始新的处理进程,有效降低中断识别逻辑进程的处理时延,避免了中断识别逻辑模块和中断逻辑生成模块之间大量不必要的等待时间,利用串行进位加法器快速确定中断数量,并在中断识别逻辑模块中设置查找表来存储中断请求与中断编号间的映射关系,通过查表的方式快速获取中断请求对应内核的中断编号,避免了大量繁复的计算,实现在一个时钟周期内批量识别多个内核单元在同一时刻下发送的中断请求,进一步的,设置中断信息表来存储中断编号与中断地址信息间的映射关系,一旦中断逻辑生成模块检测到中断数量缓存模块非空,即可根据中断数量从中断编号缓存模块中读取中断编号作为索引,用于在中断信息表查询中断地址信息快速生成中断消息,极大降低了中断消息产生的时延,避免内核中断瓶颈的问题。
基于同一发明构思,根据本发明的另一个方面,如图7所示,本发明的实施例还提供了一种计算机可读存储介质40,计算机可读存储介质40存储有被处理器执行时执行如上方法的计算机程序410。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个***的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (21)

1.一种中断管理方法,其特征在于,应用于现场可编程门阵列设备的外壳单元,所述外壳单元包括中断识别逻辑模块、中断逻辑生成模块、中断数量缓存模块和中断编号缓存模块,所述的中断管理方法包括:
根据当前时钟周期内接收到的内核单元发送的若干中断请求,基于所述中断识别逻辑模块确定发送所述中断请求的当前中断数量以及各所述中断请求对应的当前中断编号;
将所述当前中断数量和各所述当前中断编号分别缓存至所述中断数量缓存模块和所述中断编号缓存模块;
若检测到所述中断数量缓存模块非空,通过所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并基于所述当前中断数量依次从所述中断编号缓存模块中读取各所述当前中断编号;
基于读取到的各所述当前中断编号和中断信息表生成中断消息。
2.根据权利要求1所述的中断管理方法,其特征在于,所述通过所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并基于所述当前中断数量依次从所述中断编号缓存模块中读取各所述当前中断编号的步骤包括:
判断所述当前时钟周期内所述中断逻辑生成模块是否处于空闲状态;
若在所述当前时钟周期内检测到所述中断逻辑生成模块处于空闲状态,通过所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并依次从所述中断编号缓存模块中读取与所述当前中断数量对应数量的各所述当前中断编号。
3.根据权利要求1所述的中断管理方法,其特征在于,所述基于读取到的各所述当前中断编号和中断信息表生成中断消息的步骤,包括:
获取各所述当前中断编号中目标位对应的二进制编码,通过所述中断逻辑生成模块在所述中断信息表中查询与各所述二进制编码匹配的目标中断位置信息,根据各所述目标中断位置信息构建对应的中断消息。
4.根据权利要求2所述的中断管理方法,其特征在于,还包括:
若在所述当前时钟周期内检测到所述中断逻辑生成模块处于非空闲状态,在所述中断数量缓存模块中获取上一时钟周期对应的第一中断数量;
判断通过所述中断逻辑生成模块读取的所述上一时钟周期对应的第一中断编号的数量是否满足所述第一中断数量;
若通过所述中断逻辑生成模块读取的所述第一中断编号的数量满足所述第一中断数量,触发所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并依次从所述中断编号缓存模块中读取与所述当前中断数量对应数量的各所述当前中断编号。
5.根据权利要求4所述的中断管理方法,其特征在于,还包括:
若通过所述中断逻辑生成模块读取的所述第一中断编号的数量未满足所述第一中断数量,继续通过所述中断逻辑生成模块从所述中断编号缓存模块中读取所述第一中断编号;
基于所述第一中断编号和中断信息表生成中断消息,并返回判断通过所述中断逻辑生成模块读取的所述上一时钟周期对应的第一中断编号的数量是否满足所述第一中断数量的步骤。
6.根据权利要求1所述的中断管理方法,其特征在于,所述基于所述中断识别逻辑模块确定各所述中断请求对应的当前中断编号的步骤,包括:
将各所述中断请求输入至所述中断识别逻辑模块的查找表中,在所述查找表中查询与各所述中断请求匹配的内核编码,将各所述内核编码的二进制编码作为对应的当前中断编号。
7.根据权利要求1所述的中断管理方法,其特征在于,所述基于所述中断识别逻辑模块确定发送所述中断请求的当前中断数量的步骤,包括:
将所有所述中断请求传输至所述中断识别逻辑模块内的串行进位加法器以计算所述当前中断数量。
8.根据权利要求1所述的中断管理方法,其特征在于,所述基于所述当前中断数量依次从所述中断编号缓存模块中读取各所述当前中断编号的步骤,包括:
每读取完成一个当前中断编号,判断通过所述中断逻辑生成模块读取的所述当前中断编号的数量是否满足所述当前中断数量;
若通过所述中断逻辑生成模块读取的所述当前中断编号的数量未满足所述当前中断数量,按照缓存顺序继续通过所述中断逻辑生成模块从所述中断编号缓存模块中读取所述中断编号,返回判断通过所述中断逻辑生成模块读取的所述当前中断编号的数量是否满足所述当前中断数量的步骤;
若通过所述中断逻辑生成模块读取的所述当前中断编号的数量满足所述当前中断数量,停止所述中断逻辑生成模块从所述中断编号缓存模块中读取所述当前中断编号。
9.根据权利要求8所述的中断管理方法,其特征在于,还包括:
若通过所述中断逻辑生成模块读取的所述当前中断编号的数量满足所述当前中断数量,清除所述中断数量缓存模块中缓存的所述当前中断数量和所述中断编号缓存模块中缓存的与所述当前中断数量对应数量的所述当前中断编号;
检测所述中断数量缓存模块是否为空;
若检测到所述中断数量缓存模块不为空,触发所述中断逻辑生成模块从所述中断数量缓存模块中读取下一时钟周期对应的第二中断数量,并从所述中断编号缓存模块中读取与所述第二中断数量对应数量的第二内核编码,所述第二内核编码为下一时钟周期对应的内核编码。
10.根据权利要求3所述的中断管理方法,其特征在于,还包括:
依次将各所述中断消息发送至中央处理器以对各所述中断位置信息对应的内核进行中断响应。
11.根据权利要求1所述的中断管理方法,其特征在于,还包括:
根据所述内核单元中每个内核对应的内核编号信息、中断编号信息以及每个软件分别分配至各所述内核的中断位置信息,初始化扩展消息信号中断向量表;
将初始化后的所述扩展消息信号中断向量表内所有所述内核编号信息、所述中断编号信息和所述中断位置信息同步到所述中断信息表。
12.根据权利要求1所述的中断管理方法,其特征在于,所述当前时钟周期内接收到的内核单元发送的若干中断请求的步骤,包括:
在所述当前时钟周期内检测所述内核单元中每个内核的中断信号对应的上升沿信号的值是否为1;
若检测到存在任一所述上升沿信号的值为1,确定在当前时钟周期内接收到所述内核单元发送的中断请求。
13.根据权利要求6所述的中断管理方法,其特征在于,还包括:
初始化所述中断识别逻辑模块的输出信号,并将各所述当前中断编号按照从低到高的顺序依次赋值至初始化后的所述输出信号中的目标位;
通过所述中断识别逻辑模块发送赋值后的所述输出信号至所述中断编号缓存模块,以将所有所述当前中断编号缓存至所述中断编号缓存模块。
14.根据权利要求7所述的中断管理方法,其特征在于,所述串行进位加法器为级串行进位加法器,其中,N为所述内核单元中内核的总个数。
15.根据权利要求13所述的中断管理方法,其特征在于,所述输出信号的位宽为,其中,N为所述内核单元中内核的总个数。
16.根据权利要求3所述的中断管理方法,其特征在于,所述目标中断位置信息包括中断向量和中断地址。
17.根据权利要求3所述的中断管理方法,其特征在于,所述目标位为低位,其中,N为所述内核单元中内核的总个数。
18.根据权利要求1所述的中断管理方法,其特征在于,所述中断数量缓存模块和所述中断编号缓存模块的缓存深度均不小于N,其中,N为所述内核单元中内核的总个数。
19.一种中断管理***,其特征在于,包括:
识别模块,用于根据当前时钟周期内接收到的内核单元发送的若干中断请求,基于中断识别逻辑模块确定发送所述中断请求的当前中断数量以及各所述中断请求对应的当前中断编号;
缓存模块,用于将所述当前中断数量和各所述当前中断编号分别缓存至中断数量缓存模块和中断编号缓存模块;
读取模块,用于若检测到所述中断数量缓存模块非空,通过所述中断逻辑生成模块从所述中断数量缓存模块中读取所述当前中断数量,并基于所述当前中断数量依次从所述中断编号缓存模块中读取各所述当前中断编号;
生成模块,用于基于读取到的各所述当前中断编号和中断信息表生成中断消息。
20.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1至18任意一项所述的方法的步骤。
21.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1至18任意一项所述的方法的步骤。
CN202311813316.8A 2023-12-27 2023-12-27 一种中断管理方法、***、设备及介质 Active CN117472637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311813316.8A CN117472637B (zh) 2023-12-27 2023-12-27 一种中断管理方法、***、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311813316.8A CN117472637B (zh) 2023-12-27 2023-12-27 一种中断管理方法、***、设备及介质

Publications (2)

Publication Number Publication Date
CN117472637A CN117472637A (zh) 2024-01-30
CN117472637B true CN117472637B (zh) 2024-02-23

Family

ID=89639994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311813316.8A Active CN117472637B (zh) 2023-12-27 2023-12-27 一种中断管理方法、***、设备及介质

Country Status (1)

Country Link
CN (1) CN117472637B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947580A (zh) * 2019-03-27 2019-06-28 上海燧原智能科技有限公司 中断处理方法、装置、设备和存储介质
CN110427337A (zh) * 2019-09-29 2019-11-08 广东高云半导体科技股份有限公司 基于现场可编程门阵列的处理器内核及其运行方法
CN114201276A (zh) * 2021-11-25 2022-03-18 天津津航技术物理研究所 一种基于fifo中断管理的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959270B2 (en) * 2010-12-07 2015-02-17 Apple Inc. Interrupt distribution scheme

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947580A (zh) * 2019-03-27 2019-06-28 上海燧原智能科技有限公司 中断处理方法、装置、设备和存储介质
CN110427337A (zh) * 2019-09-29 2019-11-08 广东高云半导体科技股份有限公司 基于现场可编程门阵列的处理器内核及其运行方法
CN114201276A (zh) * 2021-11-25 2022-03-18 天津津航技术物理研究所 一种基于fifo中断管理的方法

Also Published As

Publication number Publication date
CN117472637A (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
CN110688158B (zh) 计算装置以及神经网络的处理***
US10515030B2 (en) Method and device for improved advanced microcontroller bus architecture (AMBA) and advanced extensible interface (AXI) operations
WO2020001438A1 (zh) 片上代码断点调试方法、片上处理器及芯片断点调试***
US7624221B1 (en) Control device for data stream optimizations in a link interface
EP1723532B1 (en) Multiple burst protocol device controller
US7603492B2 (en) Automatic generation of streaming data interface circuit
WO2020034079A1 (zh) 基于脉动阵列的神经网络处理装置
CN114556311A (zh) 具有多级多步的直接存储器存取架构
CN109190413B (zh) 一种基于fpga和md5加密的串行通信***
CN109739556B (zh) 一种基于多并行缓存交互及计算的通用深度学习处理器
CN114265872B (zh) 一种用于总线的互联装置
US20060265532A1 (en) System and method for generating bus requests in advance based on speculation states
CN111782580B (zh) 复杂计算装置、方法、人工智能芯片和电子设备
CN112698909A (zh) 用于经由虚拟总线编码传送遥测信息的***、装置和方法
CN116074267A (zh) 一种数据通信***及SoC芯片
WO2014169876A1 (zh) 一种总线仲裁方法及装置、存储介质
CN117472637B (zh) 一种中断管理方法、***、设备及介质
CN114707451A (zh) 数字电路的版图规划方法、装置、电子设备、存储介质
CN112799723A (zh) 一种数据读取方法、装置及电子设备
WO2021179289A1 (zh) 卷积神经网络的运算方法、装置、设备和存储介质
CN103176941B (zh) 核间通信方法和代理装置
CN117056255A (zh) 一种原子操作装置、方法、设备及介质
WO2023124371A1 (zh) 数据处理装置、方法、芯片、计算机设备及存储介质
CN116521096A (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
WO2021147602A1 (zh) 数据处理装置、人工智能芯片

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