CN111078597B - 一种中断消息生成装置、方法以及端设备 - Google Patents
一种中断消息生成装置、方法以及端设备 Download PDFInfo
- Publication number
- CN111078597B CN111078597B CN201911230119.7A CN201911230119A CN111078597B CN 111078597 B CN111078597 B CN 111078597B CN 201911230119 A CN201911230119 A CN 201911230119A CN 111078597 B CN111078597 B CN 111078597B
- Authority
- CN
- China
- Prior art keywords
- msix
- interrupt
- control module
- message generation
- register
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
Abstract
本申请提供了一种中断消息生成装置、方法以及端设备,涉及固态硬盘技术领域。该装置应用于端设备,端设备与一主设备连接;端设备包括PCIe控制器,装置包括MSIX表控制模块、MSIX中断控制模块以及MSIX消息产生模块,PCIe控制器分别与MSIX表控制模块、MSIX消息产生模块连接,MSIX中断控制模块分别与MSIX表控制模块、MSIX消息产生模块连接。本申请提供的中断消息生成装置、方法以及端设备解决了现有技术中MSIX中断消息对软件的依赖度较高的问题。
Description
技术领域
本申请涉及固态硬盘技术领域,具体而言,涉及一种中断消息生成装置、方法以及端设备。
背景技术
PCIe(Peripheral Component Interconnect Express,高速外围组件互联)第三代IO通信技术凭借其端对端,差分传输,抗干扰能力强,可靠性高、数据传输速率快等优点在电脑、服务器、固态硬盘、采集卡、存储等发明得到了广泛应用。尤其是PCIe 4.0协议的发布,使得PCIe作为高速数据传输的佼佼者,在高速数据传输领域有广泛的应用。
目前,PCIe协议定义了三种中断模式,Pin_Base模式,MSI(MessageSignaledInterrupt,基于消息的信号中断)模式,MSIX模式,其中MSI又可以分为单MSI模式及多MSI模式。其中,多MSI中断最多支持32个中断向量,较PinBase中断模式和单MSI中断模式已有了较大提升。而MSIX中断最多支持2048个中断向量,且支持每个中断向量动态的分配中断地址,极大地提高了中断效率。
然而,目前端设备中的MSIX中断消息普遍由软件生成,导致MSIX中断消息对软件的依赖度较高。
发明内容
本申请的目的在于提供一种中断消息生成装置、方法以及端设备,以解决现有技术中MSIX中断消息对软件的依赖度较高的问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种中断消息生成装置,所述装置应用于端设备,所述端设备与一主设备连接;所述端设备包括PCIe控制器,所述装置包括MSIX表控制模块、MSIX中断控制模块以及MSIX消息产生模块,所述PCIe控制器分别与所述MSIX表控制模块、所述MSIX消息产生模块连接,所述MSIX中断控制模块分别与所述MSIX表控制模块、所述MSIX消息产生模块连接;
所述MSIX表控制模块用于通过所述PCIe控制器接收并存储所述主设备发送的一个或多个中断向量信息,其中,每个所述中断向量信息至少包括中断向量地址与中断向量数据;
所述MSIX中断控制模块用于在接收到应用层发送的目标中断向量信息后,从所述MSIX表控制模块中提取所述目标中断向量信息对应的目标中断向量地址与目标中断向量数据;
所述MSIX消息产生模块对所述目标中断向量地址与所述目标中断向量数据进行封装,以生成PCIe MSIX中断消息。
第二方面,本申请还提供了一种中断消息生成方法,应用于上述的中断消息生成装置,所述装置应用于端设备,所述端设备与一主设备连接;所述端设备包括PCIe控制器,所述装置包括MSIX表控制模块、MSIX中断控制模块以及MSIX消息产生模块,所述PCIe控制器分别与所述MSIX表控制模块、所述MSIX消息产生模块连接,所述MSIX中断控制模块分别与所述MSIX表控制模块、所述MSIX消息产生模块连接;所述方法包括:
所述MSIX表控制模块通过所述PCIe控制器接收并存储所述主设备发送的一个或多个中断向量信息,其中,每个所述中断向量信息至少包括中断向量地址与中断向量数据;
所述MSIX中断控制模块在接收到应用层发送的目标中断向量信息后,从所述MSIX表控制模块中提取所述目标中断向量信息对应的目标中断向量地址与目标中断向量数据;
所述MSIX消息产生模块对所述目标中断向量地址与所述目标中断向量数据进行封装,以生成PCIe MSIX中断消息。
第三方面,本申请提供了一种端设备,所述端设备与一主设备连接,所述端设备包括PCIe控制器与上述的中断消息生成装置,所述中断消息生成装置与所述PCIe控制器连接。
相对于现有技术,本发明具有以下有益效果:
本发明提供了一种中断消息生成装置、方法以及端设备,该装置应用于端设备,端设备与一主设备连接;端设备包括PCIe控制器,装置包括MSIX表控制模块、MSIX中断控制模块以及MSIX消息产生模块,PCIe控制器分别与MSIX表控制模块、MSIX消息产生模块连接,MSIX中断控制模块分别与MSIX表控制模块、MSIX消息产生模块连接。其中,MSIX表控制模块用于通过PCIe控制器接收并存储主设备发送的一个或多个中断向量信息,其中,每个中断向量信息至少包括中断向量地址与中断向量数据;MSIX中断控制模块用于在接收到应用层发送的目标中断向量信息后,从MSIX表控制模块中提取目标中断向量信息对应的目标中断向量地址与目标中断向量数据;MSIX消息产生模块对目标中断向量地址与目标中断向量数据进行封装,以生成PCIe MSIX中断消息。由于本申请提供的中断消息生成装置、方法以及端设备通过硬件电路的方式实现PCIe MSIX中断消息的生成,因此解决了现有技术中MSIX中断消息对软件的依赖度较高的问题。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本申请实施例提供的中断消息生成装置的一种模块示意图。
图2为本申请实施例提供的中断消息生成装置的另一种模块示意图。
图3为本申请实施例提供的CPU访问寄存器接口的时序图。
图4为本申请实施例提供的MSIX中断控制模块的一种模块示意图。
图5为本申请实施例提供的MSIX中断请求产生时序图。
图6为本申请实施例提供的复位模块的模块示意图。
图7为本申请实施例提供的PCIe MSIX消息生成方法的流程图。
图中:100-中断消息生成装置;110-MSIX表控制模块;120-MSIX中断控制模块;130-MSIX消息产生模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
第一实施例
正如背景技术中所述,目前,PCIe协议定义了三种中断模式,Pin_Base模式,MSI模式,MSIX模式,其中MSI又可以分为单MSI模式及多MSI模式。其中,多MSI中断最多支持32个中断向量,较PinBase中断模式和单MSI中断模式已有了较大提升。而MSIX中断最多支持2048个中断向量,且支持每个中断向量动态的分配中断地址,极大地提高了中断效率。
INTx_disable | MSI_EN | MME | MSIX_EN | 应用中断模式 |
0 | 0 | x | 0 | Pin_Base模式 |
x | 1 | 0 | x | 单MSI模式 |
x | 1 | 1~5 | x | 多MSI模式 |
x | 0 | x | 1 | MSIX模式 |
表一为中断模式分类表,当INTx_disable寄存器为0,MSI enable寄存器为0,MultipleMessageEnable(MME)寄存器的值可以不关心,MSIXenable寄存器为0时,则应用PinBase中断模式;当MSI enable寄存器为1,MME为0时,则PCIe应用单MSI中断模式;当MSIenable寄存器为1,MME为1至5中的某个值时,则应用多MSI中断模式;当MSIenable寄存器为0,MSIXenable寄存器为1时,则应用MSIX中断模式。
其中,多MSI中断最多支持32个中断向量,较PinBase中断模式和单MSI中断模式已有了较大提升,且通过MSI消息向主设备发送MSI中断,省去了带外信号。而MSIX中断最多支持2048个中断向量,且支持每个中断向量动态的分配中断地址,大大提高了中断效率。然后,目前普遍采用软件方式生成PCIe MSIX中断消息,使得MSIX中断消息对软件的依赖度较高。
有鉴于此,本申请提供了一种中断消息生成装置,以通过硬件方式生成PCIe MSIX中断消息。
下面对本申请提供的中断消息生成装置进行示例性说明。
请参与图1,作为本申请一种可能的实现方式,该中断消息生成装100应用于端设备,端设备与一主设备连接;端设备包括PCIe控制器,且该中断消息生成装100包括MSIX表控制模块110、MSIX中断控制模块120以及MSIX消息产生模块130,PCIe控制器分别与MSIX表控制模块110、MSIX消息产生模块130连接,MSIX中断控制模块120分别与MSIX表控制模块110、MSIX消息产生模块130连接。
可选的,端设备包括MSIX控制顶层模块,且MSIX表控制模块110、MSIX中断控制模块120以及MSIX消息产生模块130均位于该MSIX控制顶层模块内。
其中,端设备的PCIe控制器通过PCIe总线与主设备连接,以通过PCIe控制器实现主设备与端设备之间的数据交互,并且,MSIX表控制模块110用于通过PCIe控制器接收并存储主设备发送的一个或多个中断向量信息,其中,每个中断向量信息至少包括中断向量地址与中断向量数据。
并且,在MSIX表控制模块110接收多个中断向量信息后,MSIX中断控制模块120能够在接收到应用层发送的目标中断向量信息时,从MSIX表控制模块110中提取目标中断向量信息对应的目标中断向量地址与目标中断向量数据。其中,应用层发送的目标中断向量信息也为主设备指定。
MSIX消息产生模块130对目标中断向量地址与目标中断向量数据进行封装,以生成PCIe MSIX中断消息。并且,MSIX消息产生模块130会将生成的MSIX中断消息发送至PCIe控制器,然后由PCIe控制器通过PCIe总线将MSIX中断消息发送主设备。
由于本申请提供的中断消息生成装置100采用硬件电路的方式实现PCIe MSIX中断消息的生成,因此解决了现有技术中MSIX中断消息对软件的依赖度较高的问题。
作为本申请一种可能的实现方式,请参阅图2,MSIX表控制模块110包括MSIX表,MSIX表控制模块110负责该MSIX表的访问与维护。其中,MSIX表控制模块110在接收到主设备发送的一个或多个中断向量信息后,会将该一个或多个中断向量信息存储于MSIX表中。其中,每个中断向量信息包括中断向量地址、中断向量数据以及中断向量屏蔽信息等。
可以理解地,通过PCIe控制器能够实现对MSIX表的读写,进而实现主设备对MSIX表的读写。同时,由于在使用过程中,中断消息生成装置100可能出现异常情况或者进行复位,此时需要对MSIX表内的数据进行备份。
有鉴于此,本申请中,MSIX表控制模块110还与端设备的CPU连接,使得MSIX表控制模块110中存储的中断向量信息能够通过CPU进行备份或重写。
作为本申请一种可选的实现方式,MSIX表控制模块110包括AXI访问接口与配置总线接口,PCIe控制器通过AXI访问接口与MSIX表控制模块110连接,CPU通过配置总线接口与MSIX表控制模块110连接。使得PCIe控制器能够通过AXI访问接口实现对MSIX表的读写,CPU能够通过配置总线接口实现对MSIX表的读写。同时,MSIX表控制模块110该提供与MSIX中断控制模块120的接口电路,用于MSIX中断控制模块120向此模块请求对应的中断向量的MSIX表中的中断向量地址、中断向量数据、中断向量屏蔽信息等。
并且,对于MSIX表而言,其具体存放于PCIeBAR空间,使得主设备通过访问PCIe的BAR寄存器实现对MSIX表的读写。同时,本申请所述的CPU对MSIX表进行读写,指允许本地CPU通过寄存器配置总线实现对MSIX表的读取及修改。
同时,MSIX表最多支持2048个中断向量,且每个中断向量对应4个寄存器,以MSIX表支持64(还可以是16,32,128等最大为2048)个中断向量为例进行说明,若此时MSIX表中存储有16个中断向量,则共需要64个寄存器保存MSIX表的信息。
例如,MSIX表中保存有中断向量0,则中断向量0对应的寄存器包括:
中断向量0地址低位寄存器:
中断向量0地址高位寄存器:
中断向量0数据寄存器:
中断向量0控制寄存器:
并且,CPU访问寄存器接口的时序图如图3所示,其中,cpu_msix_cs为片选信号,高有效,此信号为高电平表示CPU访问寄存器读或写请求有效;cpu_msix_wr为写使能信号,高有效,在cpu_msix_cs为高电平的前提下,此信号为高电平时,表示CPU请求写寄存器,此信号为低电平表示CPU请求读寄存器;cpu_msix_be为CPU访问写寄存器的倍特使能信号,32位寄存器供有4个倍特,该信号每一比特表示一个倍特写数据是否有效,例如cpu_msix_be[3]为0表示写数据第三倍特数据无效;cpu_msix_addr为CPU访问寄存器的具体地址;cpu_msix_wdata:为CPU访问寄存器的写数据;cpu_msix_rdata为CPU访问寄存器的读数据;cpu_msix_rdy为CPU写寄存器访问时,表示该寄存器写操作已完成;CPU读寄存器访问时,表示读数据有效,寄存器读操作已完成。
MSIX中断控制模块120为从MSIX表中获取目标中断向量信息,并将获取的目标中断向量信息发送至MSIX消息产生模块130。请参阅图4,作为本申请的一种实现方式,MSIX中断控制模块120包括与门,MSIX中断控制模块120用于在与门输出中断请求信号时,将中断请求信号、目标中断向量地址与目标中断向量数据以及目标中断屏蔽信息发送至MSIX消息产生模块130,以通过MSIX消息产生模块130对上述数据进行封装,生成PCIe MSIX中断消息。
其中,作为一种可选的实现方式,与门可以为四输入与门,端设备还包括MSIX屏蔽寄存器、MSIX使能寄存器、挂起寄存器以及MSIX当前中断屏蔽寄存器,四输入与门的输入端分别与MSIX屏蔽寄存器、MSIX使能寄存器、挂起寄存器以及MSIX当前中断屏蔽寄存器连接。
其中,MSIX屏蔽寄存器为主设备配置的寄存器,高有效,即当主设备配置的msix_function_mask为1时,表示PCIeMSIX功能被屏蔽,不能向主设备发送MSIX中断消息,例如,采用Pin_Base模式、单MSI模式或多MSI模式生成中断消息,然后发送至主设备。
MSIX使能寄存器也通过主设备进行配置,高有效,在msix_function_mask为0的基础上时,当MSIX使能寄存器为高电平时,则使能MSIX功能,MSIX中断功能开启。当MSIX使能寄存器为低电平时,虽然主设备选择不屏蔽MSIX中断功能,但此时MSIX中断功能不启用。其中,主设备配置MSIX使能寄存器的信号为pcie.msix_en,即在msix_function_mask为0的基础上,当pcie.msix_en为1时,表示MSIX中断功能开启;当pcie.msix_en为0时,表示MSIX中断功能关闭。
挂起寄存器配置此时是否存在挂起中断,即MSIX中断控制模块120从MSIX表控制模块110是否已经获取了目标中断向量的相关信息,如果已经获取,则挂起寄存器为1;如果未获取,则挂起寄存器为0。
当前中断屏蔽寄存器配置是否需要屏蔽当前的中断向量,当前中断屏蔽寄存器的信号为pcie_pvm信号,pcie_pvm信号是MSIX表中per vector mask,表示主设备屏蔽当前中断向量,此信号为1时,即使需要向主设备发送MSIX中断消息的条件满足时,PCIe端设备也不会向主设备发送MSIX中断信息;当pcie_pvm信号被主设备写为0时,PCIe端设备将MSIX中断信息发送给主设备。
即当四输入与门在MSIX屏蔽寄存器为0、MSIX使能寄存器为1、挂起寄存器为1以及MSIX当前中断屏蔽寄存器为0时,生成中断请求信号,并将中断信号发送至MSIX消息产生模块130。
作为本申请一种可选的实现方式,MSIX表控制模块110包括MSIX PBA(PendingBitArray),MSIX PBA与挂起寄存器连接。当MSIX屏蔽寄存器为0、MSIX使能寄存器为1、挂起寄存器为1以及MSIX当前中断屏蔽寄存器为1时,挂起寄存器将当前数据存储至MSIX PBA。
例如,当主设备此时较为忙碌,无法处理当前的中断向量信息时,则主设备会配置pcie_pvm信号为0,此时若挂起寄存器为1,则表示此时MSIX中断控制模块120已经从MSIX表控制模块110中获取了相应的数据,则此时起寄存器会将当前数据存储至MSIX PBA。
同时,由于MSIX模式可支持多个中断向量,例如支持64个中断向量,因此,为了保证64个中断向量依次公平产生MSIX中断请求,MSIX中断控制模块120还包括RoundRobin(轮询调度)仲裁状态机,即当与门输入端满足条件,生成的终端请求会经过该仲裁状态机,最后将目标中断向量对应的中断请求信号及目标中断向量相关的地址和数据发送到MSIX中断消息产生模块,以产生MSIX中断消息并将此消息通过PCIe总线发送到主设备。
请参阅图5,为本申请提供的MSIX中断请求产生时序图,其中:
set_pci_intr信号表示PCIe端设备在执行完主设备命令后,向主设备发送的命令完成序列CQE(CompletionQueueEntry)后,将此信号置为高电平脉冲信号,作为产生挂起中断的条件之一。
并且,存在四种情况发送MSIX中断消息:
第一种:当pcie_pvm信号为0,即主设备未屏蔽该中断向量,则挂起寄存器中挂起的MSIX中断信号将生成MSIX中断消息产生请求信号。
第二种,当pcie_pvm信号为1时,产生的set_pci_intr将被挂起,内部的remain_cnt计数器根据set_pci_intr的高电平脉冲将进行累加,该计数器表示被挂起待发送的MSIX中断的数量。当pcie_pvm被主设备写为0后,PCIe端设备端检测到pcie_pvm为0,则发送一个被挂起的MSIX中断,以通知主设备当前CQ存储空间中有未取走的CQE,进而使主设备取走CQE,进而生成MSIX中断消息产生请求信号。
第三种,主设备在取走CQE后,会更新CQ头门铃(CQ head door bell),以告知端设备当前取走的CQE所在的位置。端设备检测到CQ头门铃更新后,将remaining_cnt计数器减1,若PCIe设备计算后得知CQ非空,即当前仍有CQE没有被主设备取走处理,则PCIe设备会再次发送MSIX中断消息以通知主设备取走CQE。
第四种,主设备再次更新CQ头门铃,直到PCIe设备检测到所有的CQE都已被主设备取走,CQ存储空间已空,不再发送MSIX中断消息,MSIX中断向量处理结束。
当MSIX消息产生模块130接收到MSIX中断控制模块120发送的中断请求信号、目标中断向量地址、目标中断向量数据以及目标中断向量屏蔽信息后,会对该目标中断向量地址、目标中断向量数据以及目标中断向量屏蔽信息进行封装,以封装成MSIX标准信息格式,进而生成PCIe MSIX中断消息。
同时,在中断消息生成装置100开始工作及工作过程中,可能需要对中断消息生成装置100进行复位。有鉴于此,作为本申请的一种实现方式,中断消息生成装置100还包括复位模块,复位模块分别与MSIX表控制模块110、MSIX中断控制模块120以及MSIX消息产生模块130连接,且复位模块用于对MSIX表控制模块110、MSIX中断控制模块120以及MSIX消息产生模块130进行复位。
可选的,复位模块包括选择器,端设备还包括复位电路以及复位寄存器,其中,选择器的第一信号端与复位电路连接,以接收复位电路发送的复位信号;选择器的第二信号端与复位寄存器连接,以接收复位寄存器发送的复位信号;选择器的控制端与复位寄存器连接,以接收复位寄存器的复位源选择信号;选择器用于依据复位源选择信号选择第一信号端或第二信号端作输入的复位信号作为复位信号源。通过本申请提供的复位模块,能够实现可通过硬件电路或软件实现对中断消息生成装置100的复位。使得CPU可以在必要时如链路异常时对MSIX模块进行软复位,也可以在低功耗等场景下旁路硬件复位源,不对MSIX模块进行复位,以使得低功耗唤醒后主机配置的MSIX表的数据不会丢失。
例如,请参阅图6,为本申请提供的复位模块的示意图,其中,hw_msix_table_rst_n表示复位电路(即硬件电路)产生的MSIX模块复位信号,fw_msix_table_rst_n表示由复位寄存器(即软件)配置的MSIX模块复位信号,fw_msix_table_rst_sel表示由软件配置的MSIX模块复位源选择信号,当该信号为0时,选择MSIX模块的复位来源为硬件复位源hw_msix_table_rst_n;当该信号为1时,选择MSIX模块的复位来源为软件复位源fw_msix_table_rst_n。且默认情况下选择硬件复位源hw_msix_table_rst_n。
第二实施例
本申请还提供了一种中断消息生成方法,应用于第一实施例所述的中断消息生成装置,该中断消息生成装置应用于端设备,端设备与一主设备连接;端设备包括PCIe控制器,中断消息生成装置包括MSIX表控制模块、MSIX中断控制模块以及MSIX消息产生模块,PCIe控制器分别与MSIX表控制模块、MSIX消息产生模块连接,MSIX中断控制模块分别与MSIX表控制模块、MSIX消息产生模块连接。请参阅图7,该方法包括:
S102,MSIX表控制模块通过PCIe控制器接收并存储主设备发送的一个或多个中断向量信息,其中,每个中断向量信息至少包括中断向量地址与中断向量数据。
S104,MSIX中断控制模块在接收到应用层发送的目标中断向量信息后,从MSIX表控制模块中提取目标中断向量信息对应的目标中断向量地址与目标中断向量数据。
S106,MSIX消息产生模块对目标中断向量地址与目标中断向量数据进行封装,以生成PCIe MSIX中断消息。
由于第一实施例已经对中断消息生成装置的具体工作原理进行了详细说明,因此本申请不再对此进行赘述。
第三实施例
本申请实施例还提供了一种端设备,该端设备与一主设备连接,端设备包括PCIe控制器与第一实施例所述的中断消息生成装置,中断消息生成装置与PCIe控制器连接。
综上所述,本发明提供了一种中断消息生成装置、方法以及端设备,该装置应用于端设备,端设备与一主设备连接;端设备包括PCIe控制器,装置包括MSIX表控制模块、MSIX中断控制模块以及MSIX消息产生模块,PCIe控制器分别与MSIX表控制模块、MSIX消息产生模块连接,MSIX中断控制模块分别与MSIX表控制模块、MSIX消息产生模块连接。其中,MSIX表控制模块用于通过PCIe控制器接收并存储主设备发送的一个或多个中断向量信息,其中,每个中断向量信息至少包括中断向量地址与中断向量数据;MSIX中断控制模块用于在接收到应用层发送的目标中断向量信息后,从MSIX表控制模块中提取目标中断向量信息对应的目标中断向量地址与目标中断向量数据;MSIX消息产生模块对目标中断向量地址与目标中断向量数据进行封装,以生成PCIe MSIX中断消息。由于本申请提供的中断消息生成装置、方法以及端设备通过硬件电路的方式实现PCIe MSIX中断消息的生成,因此解决了现有技术中MSIX中断消息对软件的依赖度较高的问题。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (8)
1.一种中断消息生成装置,其特征在于,所述装置应用于端设备,所述端设备与一主设备连接;所述端设备包括PCIe控制器,所述装置包括MSIX表控制模块、MSIX中断控制模块以及MSIX消息产生模块,所述PCIe控制器分别与所述MSIX表控制模块、所述MSIX消息产生模块连接,所述MSIX中断控制模块分别与所述MSIX表控制模块、所述MSIX消息产生模块连接;
所述MSIX表控制模块用于通过所述PCIe控制器接收并存储所述主设备发送的一个或多个中断向量信息,其中,每个所述中断向量信息至少包括中断向量地址与中断向量数据;
所述MSIX中断控制模块用于在接收到应用层发送的目标中断向量信息后,从所述MSIX表控制模块中提取所述目标中断向量信息对应的目标中断向量地址与目标中断向量数据;
所述MSIX消息产生模块对所述目标中断向量地址与所述目标中断向量数据进行封装,以生成PCIe MSIX中断消息;
所述MSIX中断控制模块包括与门,所述MSIX中断控制模块用于在所述与门输出中断请求信号时,将所述中断请求信号、所述目标中断向量地址与目标中断向量数据发送至所述MSIX消息产生模块,以生成PCIe MSIX中断消息;
所述与门为四输入与门,所述端设备还包括MSIX屏蔽寄存器、MSIX使能寄存器、挂起寄存器以及MSIX当前中断屏蔽寄存器,所述四输入与门的输入端分别与所述MSIX屏蔽寄存器、所述MSIX使能寄存器、所述挂起寄存器以及所述MSIX当前中断屏蔽寄存器连接。
2.如权利要求1所述的中断消息生成装置,其特征在于,所述端设备还包括CPU,所述MSIX表控制模块还与所述CPU连接,以使所述MSIX表控制模块中存储的中断向量信息通过所述CPU进行备份或重写。
3.如权利要求2所述的中断消息生成装置,其特征在于,所述MSIX表控制模块包括AXI访问接口与配置总线接口,所述PCIe控制器通过所述AXI访问接口与所述MSIX表控制模块连接,所述CPU通过所述配置总线接口与所述MSIX表控制模块连接。
4.如权利要求1所述的中断消息生成装置,其特征在于,所述装置还包括复位模块,所述复位模块分别与所述MSIX表控制模块、所述MSIX中断控制模块以及所述MSIX消息产生模块连接;
所述复位模块用于对所述MSIX表控制模块、所述MSIX中断控制模块以及所述MSIX消息产生模块进行复位。
5.如权利要求4所述的中断消息生成装置,其特征在于,所述复位模块包括选择器,所述端设备还包括复位电路以及复位寄存器,其中,
所述选择器的第一信号端与所述复位电路连接,以接收所述复位电路发送的复位信号;
所述选择器的第二信号端与所述复位寄存器连接,以接收所述复位寄存器发送的复位信号;
所述选择器的控制端与所述复位寄存器连接,以接收所述复位寄存器的复位源选择信号;
所述选择器用于依据所述复位源选择信号选择第一信号端或第二信号端作输入的复位信号作为复位信号源。
6.如权利要求1所述的中断消息生成装置,其特征在于,所述MSIX表控制模块包括MSIXPBA,所述MSIX PBA与所述挂起寄存器连接;
当所述MSIX屏蔽寄存器为0、所述MSIX使能寄存器为1、所述挂起寄存器为1以及所述MSIX当前中断屏蔽寄存器为1时,所述挂起寄存器将当前数据存储至所述MSIX PBA。
7.一种中断消息生成方法,其特征在于,应用于如权利要求1至6任意一项所述的中断消息生成装置,所述装置应用于端设备,所述端设备与一主设备连接;所述端设备包括PCIe控制器,所述装置包括MSIX表控制模块、MSIX中断控制模块以及MSIX消息产生模块,所述PCIe控制器分别与所述MSIX表控制模块、所述MSIX消息产生模块连接,所述MSIX中断控制模块分别与所述MSIX表控制模块、所述MSIX消息产生模块连接;所述方法包括:
所述MSIX表控制模块通过所述PCIe控制器接收并存储所述主设备发送的一个或多个中断向量信息,其中,每个所述中断向量信息至少包括中断向量地址与中断向量数据;
所述MSIX中断控制模块在接收到应用层发送的目标中断向量信息后,从所述MSIX表控制模块中提取所述目标中断向量信息对应的目标中断向量地址与目标中断向量数据;
所述MSIX消息产生模块对所述目标中断向量地址与所述目标中断向量数据进行封装,以生成PCIe MSIX中断消息。
8.一种端设备,所述端设备与一主设备连接,其特征在于,所述端设备包括PCIe控制器与如权利要求1至6任意一项所述的中断消息生成装置,所述中断消息生成装置与所述PCIe控制器连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911230119.7A CN111078597B (zh) | 2019-12-04 | 2019-12-04 | 一种中断消息生成装置、方法以及端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911230119.7A CN111078597B (zh) | 2019-12-04 | 2019-12-04 | 一种中断消息生成装置、方法以及端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078597A CN111078597A (zh) | 2020-04-28 |
CN111078597B true CN111078597B (zh) | 2021-07-30 |
Family
ID=70312881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911230119.7A Active CN111078597B (zh) | 2019-12-04 | 2019-12-04 | 一种中断消息生成装置、方法以及端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078597B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611185B (zh) * | 2020-06-18 | 2021-10-01 | 中国人民解放军国防科技大学 | 一种多pcie端口的msi中断过滤装置 |
CN114265800B (zh) * | 2022-03-02 | 2022-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | 中断消息处理方法、装置、电子设备及可读存储介质 |
CN115221083B (zh) * | 2022-09-05 | 2023-01-24 | 浪潮电子信息产业股份有限公司 | 一种PCIe中断处理方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739369A (zh) * | 2008-11-13 | 2010-06-16 | 索尼株式会社 | 中断检测装置和信息处理系统 |
CN101872330A (zh) * | 2009-11-04 | 2010-10-27 | 杭州海康威视数字技术股份有限公司 | 多pcie设备系统中断处理方法 |
CN103959267A (zh) * | 2011-11-30 | 2014-07-30 | 马维尔国际贸易有限公司 | 用于具有多个总线的pcie电桥的中断处理系统及方法 |
CN105993009A (zh) * | 2013-11-18 | 2016-10-05 | 华为技术有限公司 | 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN109977061A (zh) * | 2017-12-28 | 2019-07-05 | 中兴通讯股份有限公司 | 一种中断处理方法及中断处理装置 |
CN110399324A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 中断转换器及中断转换方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9851992B2 (en) * | 2013-08-01 | 2017-12-26 | Red Hat Israel, Ltd. | Paravirtulized capability for device assignment |
-
2019
- 2019-12-04 CN CN201911230119.7A patent/CN111078597B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739369A (zh) * | 2008-11-13 | 2010-06-16 | 索尼株式会社 | 中断检测装置和信息处理系统 |
CN101872330A (zh) * | 2009-11-04 | 2010-10-27 | 杭州海康威视数字技术股份有限公司 | 多pcie设备系统中断处理方法 |
CN103959267A (zh) * | 2011-11-30 | 2014-07-30 | 马维尔国际贸易有限公司 | 用于具有多个总线的pcie电桥的中断处理系统及方法 |
CN105993009A (zh) * | 2013-11-18 | 2016-10-05 | 华为技术有限公司 | 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN109977061A (zh) * | 2017-12-28 | 2019-07-05 | 中兴通讯股份有限公司 | 一种中断处理方法及中断处理装置 |
CN110399324A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 中断转换器及中断转换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111078597A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11169938B2 (en) | Non-volatile memory (NVM) express (NVMe) data processing method and system | |
US11429550B2 (en) | System and method for extended peripheral component interconnect express fabrics | |
CN111078597B (zh) | 一种中断消息生成装置、方法以及端设备 | |
CN100592271C (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
CN102866971A (zh) | 传输数据的装置、系统及方法 | |
US7774575B2 (en) | Integrated circuit capable of mapping logical block address data across multiple domains | |
CN110377221B (zh) | 双端口固态存储设备及其数据处理方法 | |
CN103092798A (zh) | 片上系统及总线下的访问设备的方法 | |
WO2024113985A1 (zh) | 存储系统、数据处理方法及装置、非易失性存储介质及电子设备 | |
CN103810139B (zh) | 一种多处理器的数据交换方法和装置 | |
CN102750245B (zh) | 报文接收方法、报文接收模块、装置及系统 | |
KR20060130664A (ko) | Pci 익스프레스 장치, pci 익스프레스 시스템 및정보 통신 방법 | |
US20220253238A1 (en) | Method and apparatus for accessing solid state disk | |
CN112347012A (zh) | 支持SR-IOV的NVMe控制器及方法 | |
CN111858437B (zh) | 基于双总线的热插拔处理方法、装置、存储介质及电子设备 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
KR101260313B1 (ko) | 전자장치 및 그 데이터 송수신방법과, 슬레이브 장치 및복수의 장치 간의 통신방법 | |
CN114242131A (zh) | 芯片与相关的芯片系统 | |
CN116745754A (zh) | 一种访问远端资源的系统及方法 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
CN107526695B (zh) | NVMe配置空间实现方法与装置 | |
TW202131344A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
KR20200143922A (ko) | 메모리 카드 및 이를 이용한 데이터 처리 방법 | |
CN106325377A (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN118363901B (zh) | PCIe设备、电子组件及电子设备 |
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 |