CN108628782B - 一种基于飞腾平台的中断转换机制的实现方法 - Google Patents

一种基于飞腾平台的中断转换机制的实现方法 Download PDF

Info

Publication number
CN108628782B
CN108628782B CN201810256210.5A CN201810256210A CN108628782B CN 108628782 B CN108628782 B CN 108628782B CN 201810256210 A CN201810256210 A CN 201810256210A CN 108628782 B CN108628782 B CN 108628782B
Authority
CN
China
Prior art keywords
interrupt
hardware
pcie
msi
shared peripheral
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
CN201810256210.5A
Other languages
English (en)
Other versions
CN108628782A (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.)
Tianjin Kylin Information Technology Co ltd
Original Assignee
Tianjin Kylin Information 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 Tianjin Kylin Information Technology Co ltd filed Critical Tianjin Kylin Information Technology Co ltd
Priority to CN201810256210.5A priority Critical patent/CN108628782B/zh
Publication of CN108628782A publication Critical patent/CN108628782A/zh
Application granted granted Critical
Publication of CN108628782B publication Critical patent/CN108628782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种基于飞腾平台的中断转换机制的实现方法,包括中断发起:PCIE设备发起MSI中断请求,PCIE设备根据配置空间的MSI属性,对飞腾平台的中断转换寄存器发起写硬件中断号的消息;中断转换:PCIE设备将硬件中断号传递到中断转换寄存器,引起共享外设中断;中断分发:共享外设中断通过中断控制器被分发到中央处理器;中断处理:共享外设中断被中央处理器接收,触发共享外设中断处理函数,从中断转换寄存器中读取硬件中断号,PCIE设备的中断被处理。本发明提供的基于飞腾平台的中断转换机制的实现方法,实现PCIE设备的消息信号中断到共享外设中断的转换,实现了使用GICV2控制器的支持PCIE总线控制器的飞腾平台的中断发起、中断转换、中断分发、中断处理。

Description

一种基于飞腾平台的中断转换机制的实现方法
技术领域
本发明属于处理器中断处理技术领域,尤其涉及一种基于飞腾平台的中断转换机制的实现方法。
背景技术
PCIE消息信号中断是PCIE规范总定义支持的一种高效的中断传递方案,它传递方式简单,且传递速度较快。在基于飞腾处理器的计算机系统中,PCIE消息信号中断需要中断控制器中的中断转换单元才能进行路由和分发。但是对于使用GICV2中断控制器的处理器,由于GICV2中断控制器没有中断转换单元,在PCIE总线的解决方案中,只能采用基于INTX的中断传递逻辑,不高效且设计复杂。
飞腾处理器平台中的飞腾嵌入式系列处理器基于ARM64体系结构,它采用了SOC架构,内部集成了PCIE控制器。它是我国自主可控的国产处理器平台,广泛地应用在了高性能嵌入式领域,其中断控制器为GICV2的中断控制器。所以在PCIE设备中断传递解决方案中,也面临着PCIE设备使用INTX中断的不高效且设计复杂问题,并且在进行PCIE设备INTX中断测试过程中,出现了多个由于PCIE设备硬件设计不合理导致的中断问题。针对这种使用GICV2控制器的支持PCIE总线控制器的飞腾平台,为解决PCIE设备在传递基于消息类型的中断信号时,由于使用中断控制器的特点,不支持、不分发或不路由该类型中断导致的设备不能够使用的问题,所以需要在飞腾嵌入平台中实现一个传递PCIE设备消息信号中断的方法。
中国发明专利“用于飞腾服务器的中断控制方法”(申请号CN201210040518.9),该发明提供了一种用于飞腾服务器的中断控制方法,包括以下步骤:初始化;硬件中断源通过南桥CS5536中的硬件控制逻辑部件产生相应类型的中断信号,通过南桥CS5536中的中断控制器8259A路由输出为一公共中断触发信号,并在中断控制器8259A的内部寄存器中修改相应的中断位,公共中断触发信号经桥接芯片映射转换成中断消息报文并传至PCIE总线;飞腾处理器从PCIE总线获取中断消息报文,进入中断状态并调用一公共中断响应函数,读取中断控制器8259A的内部寄存器获取中断位,从而确定硬件中断源并处理中断。该发明实现了飞腾处理器平台南桥CS5536各功能部件与飞腾处理器的中断交互。
中国发明专利“中断处理方法、中断控制器及处理器”(申请号CN201210122172.7),该发明提供一种中断处理方法、中断控制器及处理器。其中方法包括:中断控制器根据预先配置的中断转消息信息,将中断源的中断转换为中断消息,然后将中断消息发送给中断响应单元,中断响应单元至少包括处理器、加速器、DMA和调试单元其中之一;中断响应单元根据中断消息进行中断响应。该发明技术方案中断控制器通过中断转消息向各中断响应单元输出中断消息,降低了中断响应所消耗的软件开销。
中国发明专利“多处理器系统中的操作系统管理的中断引导”(申请号CN201380077383.6),该发明公开了一种操作系统,其中,中断路由器基于来自处理器集合的总负载信息,动态地将每个中断引导到所述处理器集合内的一个或多个处理器;操作系统接收该历史负载信息,以便确定对于来自给定设备的给定类型中断的预期负载、系统上的总负载以及对于每个处理器的目标负载。该发明采用中断路由器来接收中断信息,根据中断源的集合、其预期负载以及对于每个处理器的目标负载,可以在系统的运行期间将每个中断源动态指派给处理器进行处理。
中国发明专利“具有共享仲裁单元的服务请求中断路由器”(申请号CN201510162158.3),该发明公开了一种服务请求中断路由器,具有中断控制单元(ICU)以及仲裁单元,仲裁单元被配置成由ICU共享,以在具有各自的服务请求中断信号并且被映射到ICU的服务请求节点(SRN)当中仲裁,以针对ICU中的每一个来确定SRN中的哪一个具有最高优先级,但是以上专利均没有涉及到基于飞腾平台的中断转换逻辑的实现。
发明内容
为解决上述技术问题,本发明提供一种基于飞腾平台的中断转换机制的实现方法,通过对PCIE设备配置空间MSI属性和对飞腾中断转换寄存器的配置,以及PCIE中断的处理,实现了整个中断转换机制的中断发起、中断转换、中断分发、中断处理的流程。
本发明提供了一种基于飞腾平台的中断转换机制的实现方法,包括:
中断发起:PCIE设备发起MSI中断请求,所述PCIE设备根据配置空间的MSI属性,对飞腾平台的中断转换寄存器发起写硬件中断号的消息;
中断转换:所述PCIE设备将所述硬件中断号传递到所述中断转换寄存器,引起共享外设中断;
中断分发:所述共享外设中断通过中断控制器被分发到中央处理器;
中断处理:所述共享外设中断被所述中央处理器接收,触发共享外设中断处理函数,从所述中断转换寄存器中读取所述硬件中断号,所述PCIE设备的中断被处理。
以上技术方案优选的,所述中断发起步骤前还包括:
所述中断转换寄存器的初始化:初始化所述中断转换寄存器,实现共享外设中断的注册;
MSI中断申请和分配:实现所述MSI中断申请和分配,配置PCIE设备的MSI属性。
以上技术方案优选的,所述中断转换寄存器的初始化过程包括:
获取所述中断转换寄存器的地址;
配置所述中断转换寄存器的中断触发类型;
配置所述中断转换寄存器的功能使能位;
获取触发共享外设中断的共享外设中断号;
注册所述共享外设中断的中断处理函数。
以上技术方案优选的,所述中断触发类型为低位数据写触发模式。
以上技术方案优选的,所述配置所述中断转换寄存器的功能使能位具体包括,中断触发所述功能使能位后,所述低位数据被写入时,触发所述共享外设中断。
以上技术方案优选的,所述MSI中断申请和分配的过程包括:
为所述PCIE设备分配硬件中断号;
创建所述硬件中断号、虚拟中断号和所述PCIE设备的中断处理函数的对应关系;
配置PCIE设备的MSI地址属性,将所述中断转换寄存器的地址写入所述PCIE设备的MSI地址属性;
配置PCIE设备的MSI数据属性,将分配的所述硬件中断号写入所述PCIE设备的MSI数据属性。
以上技术方案优选的,分配硬件中断号采用基于位图的分配机制,所述基于位图的分配机制具体包括利用一个长整形的位图数据,根据所述位图数据的bit位来分配硬件中断号。
以上技术方案优选的,所述中断处理具体包括:
a.所述中央处理器接收所述共享外设中断,触发所述共享外设中断处理函数;
b.读取所述中断转换寄存器中的所述硬件中断号;
c.检测读取到的所述硬件中断号是否有效,判断所述硬件中断号是否在所述基于位图的分配机制的位图分配表里,如果无效则退出所述中断处理函数;
d.如果有效,将所述硬件中断号放入中断缓存队列中,所述中断缓存队列的tail指针加1,所述tail指针指向所述中断缓存队列缓存数据的下一个可写地址;
e.退出所述中断处理函数。
以上技术方案优选的,所述d步骤后还包括:
S101.触发PCIE中断READY信号;
S102.所述PCIE中断READY信号来临后,读取所述中断缓存队列的head和tail指针,所述head指针指向所述中断缓存队列缓存数据的第一个可读地址,所述tail指针指向下一个可写地址;
S103.读取所述head指针指向的硬件中断号;
S104.找到所述硬件中断号映射的所述虚拟中断号;
S105.调用所述虚拟中断号对应的所述PCIE设备的中断处理函数;
S106.head指针指向下一个缓存地址;
S107.判断head是否与tail相等,如果相等,等待下一次PCIE中断READY信号,如果不相等,回到S103步骤。
以上技术方案优选的,所述中断缓存队列为环形队列,所述S102至S107步骤均在单独的一个中断处理内核线程内完成。
本发明具有的优点和积极效果是:本发明针对使用GICV2控制器的支持PCIE总线控制器的飞腾平台,通过对PCIE设备配置空间MSI属性和对飞腾中断转换寄存器的配置,以及PCIE中断的处理,实现了整个中断转换机制的中断发起、中断转换、中断分发、中断处理的流程;飞腾中断转换寄存器的初始化逻辑,初始化飞腾平台中断转换寄存器,实现专有的SPI中断的注册,实现PCIE设备的消息信号中断到共享外设中断的转换;考虑PCIE设备消息信号中断的突发性,在中断传递和PCIE中断处理中间增加一层缓存队列,在PCIE投递消息信号中断后,系统产生共享外设中断,共享外设中断的中断处理函数将会把PCIE设备投递的硬件中断号缓存在缓存队列里面,并单独使用一个内核线程来处理缓存的PCIE中断,防止消息信号写入到中断转换寄存器的硬件中断还没有被处理的情况下,被下一个PCIE设备的消息信号中断覆盖。
附图说明
图1是本发明一实施例的中断转换逻辑实现流程图
图2是本发明一实施例的中断转换寄存器的初始化流程图
图3是本发明一实施例的MSI中断申请和分配流程图
图4是本发明一实施例的中断处理流程图
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,下面结合附图对本发明的实施方式做出具体说明。
MSI:消息信号中断是PCI 3.0规范里面定义的一种PCIE设备需要支持的中断类型,所有PCIE设备的任意一个功能都可以产生MSI中断。PCIE设备发送MSI中断的机制是通过执行内存写操作来实现的,MSI会传递设备号和事件号给中断控制器。
SPI:共享外设中断是GICV2支持的3种中断类型之一,共享外设中断是所有CPU之间共享的。它可以被中断线引发,也可以通过写某个特殊的寄存器来引发,是能够直接被GICV2分发到CPU的中断类型。
本发明一实施例提供了一种基于飞腾平台的中断转换机制的实现方法,涉及到PCIE设备、中断转换寄存器、中断控制器三个部件之间的交互,如图1所示,当PCIE设备发起消息信号中断后,消息信号中断的逻辑将会把设备的中断信息写入到一个目的地址,在中断转换机制的实现中该目的地址就是中断转换寄存器,当有效数据被写入到中断转换寄存器后,系统将会发起能直接被中断控制器分发的共享外设中断(SPI),从而达到了消息信号中断到共享外设中断的转换,接下来中断控制器分发共享外设中断,系统将解析PCIE设备传递过来的中断信息,最终调用PCIE设备的中断处理函数,一个基于飞腾平台的中断转换逻辑和中断处理逻辑完成,其具体步骤如下:
中断发起:PCIE设备由于事务,发起MSI中断请求,PCIE设备根据配置空间的MSI属性,对目的地址(飞腾平台的中断转换寄存器)发起写硬件中断号的消息;
中断转换:PCIE设备将硬件中断号写到中断转换寄存器,引起SPI中断;
中断分发:SPI中断被中断控制器接收,SPI中断分发到CPU,CPU收到SPI中断,触发注册了的SPI中断处理函数;
中断处理:软件层SPI中断处理函数被触发,系统从中断转换寄存器读到PCIE设备传递的硬件中断号;软件根据读到的硬件中断号,处理PCIE设备的中断。
而上述流程的实现,需要在Linux中断子系统中对中断转换机制软件流程的支持,软件层组织设计了飞腾中断转换寄存器的初始化逻辑、PCIE设备MSI中断申请和分配流程逻辑、PCIE中断处理逻辑。这三个逻辑嵌入到Linux的中断子系统中,实现中断转换、中断申请流程的初始化,实现中断处理的逻辑。
飞腾中断转换寄存器的初始化流程是整个中断转换逻辑实现的基础,该流程初始化飞腾平台中断转换寄存器,并实现专有的SPI中断处理函数的注册,当中断转换寄存器初始化后,PCIE设备消息信号中断写入到中断转换寄存器,系统才会产生共享外设中断,实现PCIE设备的消息信号中断到共享外设中断的转换。如图2所示,初始化流程具体步骤如下:
获取中断转换寄存器的地址;
配置中断转换寄存器中断触发类型,配置为低位数据写触发模式;
使能中断转换寄存器,中断触发功能使能位,使能后,低位数据被写入时,将触发共享外设中断;
获取触发中断的中断号,获取触发共享外设中断的中断号;
注册该共享外设中断的中断处理函数。
MSI中断申请和分配逻辑是在PCIE设备驱动初始化MSI中断的时候调用的流程,在PCIE设备消息信号中断申请流程中,引入了硬件中断号,该硬件中断号用来作为PCIE设备MSI中断传递的中断号,当设备驱动在申请MSI中断时,中断转换机制会给PCIE设备分配一个硬件中断号,也用来映射PCIE设备驱动所使用的虚拟中断号和中断处理函数,并实现PCIE设备的消息中断和PCIE设备中断处理函数的一一对应,当PCIE设备有MSI中断上来时,传递的就是这个硬件中断号。在硬件中断分配流程中,引入了基于位图的分配机制来为PCIE设备分配硬件中断号,该机制是利用一个长整形的位图数据,根据其bit位来分配硬件中断号,一个长整形的位图数据,可以最多分配64个硬件中断号。如图3所示,中断转换机制的MSI中断申请和分配流程的具体实施步骤如下:
利用位图机制分配一个给PCIE设备使用的硬件中断号;
映射硬件中断号、虚拟中断号、PCIE设备中断处理函数;
配置PCIE设备的MSI地址属性,将中断转换寄存器地址写入PCIE设备配置空间的MSI ADDR地址;
配置PCIE设备的MSI数据属性,将分配的硬件中断号写入PCIE设备配置空间的MSIDATA地址;
其他PCIE设备使用MSI功能的通用配置。
如图4所示为中断转换机制的中断处理流程,整个流程是处理PCIE设备发起MIS中断触发中断转换寄存器发出共享外设中断后开始的软件流程,该流程可以用两个逻辑来概括:PCIE设备中断缓存逻辑以及内核线程中断处理逻辑。在中断处理流程的实现中,由于考虑PCIE设备消息信号中断的突发性,设计了一个PCIE设备缓存中断的机制,防止消息信号写入到中断转换寄存器的硬件中断还没有被处理的情况下被下一个PCIE设备的消息信号中断覆盖了,在中断传递和PCIE中断处理中间增加一层缓存队列,在PCIE投递消息信号中断后,系统产生共享外设中断,共享外设中断的中断处理函数将会把PCIE设备投递的硬件中断号缓存在缓存队列里面,并单独使用一个内核线程来处理缓存的PCIE中断,这个缓存队列是用一个环形队列来实现,具体是在SPI中断处理函数中处理,该队列使用了2个指针:head、tail,head指针指向环形队列缓存数据的第一个可以读的地址,tail指针指向下一个可以写的地址。另外考虑到PCIE设备中断处理的即时性,单独使用一个内核线程来处理缓存在环形队列里面的硬件中断。
PCIE设备中断缓存逻辑可以描述为:
a.SPI中断到来,触发SPI中断的中断处理函数;
b.读取中断转换寄存器中的硬件中断号;
c.检测读取到的硬件中断号是否有效,判断硬件中断号是否在基于位图的分配机制的位图分配表里,如果无效则退出中断处理函数,SPI中断结束;
d.如果有效,将硬件中断号放入缓存队列中,缓存队列tail指针加1;
e.触发PCIE中断READY信号;
f.SPI中断结束。
内核线程中断处理逻辑可以描述为:
S101.等待PCIE中断READY信号,如果READY信号来临,进入下一个流程,如果没有来临,等待;
S102.读取缓存队列的head和tail指针,两个指针标识这次中断处理需要处理多少个PCIE设备中断;
S103.读取环形队列head指针指向的硬件中断号;
S104.找到硬件中断号映射的虚拟中断号;
S105.调用虚拟中断号对应的PCIE设备的中断处理函数;
S106.head指针指向下一个缓存地址;
S107.判断head是否与tail相等,如果相等证明这次PCIE中断处理完成了,回到内核线程等待下一次PCIE中断READY信号;如果不相等,回到S103流程,读取下一个缓存的PCIE硬件中断号。
针对使用GICV2控制器的支持PCIE总线控制器的飞腾平台,为解决PCIE设备在传递基于消息类型的中断信号时,由于使用的中断控制器没有中断转换单元,不支持、不分发或不路由MSI类型中断导致的设备不能够使用的问题。本实施例的PCIE设备消息中断转换成能被GICV2分发的外设中断的逻辑,其软件实现上可以分为飞腾中断转换寄存器的初始化逻辑、PCIE设备消息信号中断申请和分配逻辑、PCIE中断缓存及中断处理逻辑,这三个逻辑对外部软件环境没有依赖。
本实施例针对使用GICV2控制器的支持PCIE总线控制器的飞腾平台,通过对PCIE设备配置空间MSI属性和对飞腾中断转换寄存器的配置,以及PCIE中断的处理,实现了整个中断转换机制的中断发起、中断转换、中断分发、中断处理的流程;飞腾中断转换寄存器的初始化逻辑,初始化飞腾平台中断转换寄存器,实现专有的SPI中断的注册,实现PCIE设备的消息信号中断到共享外设中断的转换;考虑PCIE设备消息信号中断的突发性,在中断传递和PCIE中断处理中间增加一层缓存队列,在PCIE投递消息信号中断后,系统产生共享外设中断,共享外设中断的中断处理函数将会把PCIE设备投递的硬件中断号缓存在缓存队列里面,并单独使用一个内核线程来处理缓存的PCIE中断,防止消息信号写入到中断转换寄存器的硬件中断还没有被处理的情况下,被下一个PCIE设备的消息信号中断覆盖。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (7)

1.一种基于飞腾平台的中断转换机制的实现方法,其特征在于,针对使用GICV2控制器的支持PCIE总线控制器的飞腾平台,包括如下步骤:
中断发起:为PCIE设备申请和分配MSI中断以及硬件中断号,创建虚拟中断号、所述硬件中断号和所述PCIE设备的中断处理函数的对应关系;配置所述PCIE设备的MSI地址属性,将中断转换寄存器的地址写入所述PCIE设备的MSI地址属性;配置所述PCIE设备的MSI数据属性,将分配的所述硬件中断号写入所述PCIE设备的MSI数据属性;
获取所述中断转换寄存器的地址;
配置所述中断转换寄存器的中断触发类型;
配置所述中断转换寄存器的功能使能位;
获取触发共享外设中断的共享外设中断号;
注册所述共享外设中断的中断处理函数;
中断发起:所述PCIE设备由于事务,发起MSI中断请求,所述PCIE设备根据配置空间的MSI属性,对目的地址发起写硬件中断号的信息,其中,目标地址为飞腾平台的所述中断转换寄存器;
中断转换:所述PCIE设备将硬件中断号写到所述中断转换寄存器,引起SPI的中断;
中断分发:所述SPI的中断被中断控制器接收,所述SPI的中断信息分发到CPU,CPU收到所述SPI的中断信息,触发注册了的SPI的中断处理函数;
中断处理:所述共享外设中断被中央处理器接收,触发共享外设中断处理函数,从所述中断转换寄存器中读取所述硬件中断号,所述PCIE设备的中断被处理。
2.根据权利要求1所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述中断触发类型为低位数据写触发模式。
3.根据权利要求2所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述配置所述中断转换寄存器的功能使能位具体包括,中断触发所述功能使能位后,所述低位数据被写入时,触发所述共享外设中断。
4.根据权利要求1所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述硬件中断号采用基于位图的分配机制,分配硬件中断号采用基于位图的分配机制,所述基于位图的分配机制具体包括利用一个长整形的位图数据,根据所述位图数据的bit位来分配硬件中断号。
5.根据权利要求1或4所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述中断处理具体包括:
a.所述中央处理器接收所述共享外设中断,触发所述共享外设中断处理函数;
b.读取所述中断转换寄存器中的所述硬件中断号;
c.检测读取到的所述硬件中断号是否有效,判断所述硬件中断号是否在所述基于位图的分配机制的位图分配表里,如果无效则退出所述中断处理函数;
d.如果有效,将所述硬件中断号放入中断缓存队列中,所述中断缓存队列的tail指针加1,所述tail指针指向所述中断缓存队列缓存数据的下一个可写地址;
e.退出所述中断处理函数。
6.根据权利要求5所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述d步骤后还包括:
S101.触发PCIE中断READY信号;
S102.所述PCIE中断READY信号来临后,读取所述中断缓存队列的head和tail指针,所述head指针指向所述中断缓存队列缓存数据的第一个可读地址,所述tail指针指向下一个可写地址;
S103.读取所述head指针指向的硬件中断号;
S104.找到所述硬件中断号映射的所述虚拟中断号;
S105.调用所述虚拟中断号对应的所述PCIE设备的中断处理函数;
S106.head指针指向下一个缓存地址;
S107.判断head是否与tail相等,如果相等,等待下一次PCIE中断READY信号,如果不相等,回到S103步骤。
7.根据权利要求6所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述中断缓存队列为环形队列,所述S102至S107步骤均在单独的一个中断处理内核线程内完成。
CN201810256210.5A 2018-03-27 2018-03-27 一种基于飞腾平台的中断转换机制的实现方法 Active CN108628782B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810256210.5A CN108628782B (zh) 2018-03-27 2018-03-27 一种基于飞腾平台的中断转换机制的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810256210.5A CN108628782B (zh) 2018-03-27 2018-03-27 一种基于飞腾平台的中断转换机制的实现方法

Publications (2)

Publication Number Publication Date
CN108628782A CN108628782A (zh) 2018-10-09
CN108628782B true CN108628782B (zh) 2024-03-15

Family

ID=63696320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810256210.5A Active CN108628782B (zh) 2018-03-27 2018-03-27 一种基于飞腾平台的中断转换机制的实现方法

Country Status (1)

Country Link
CN (1) CN108628782B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947580A (zh) * 2019-03-27 2019-06-28 上海燧原智能科技有限公司 中断处理方法、装置、设备和存储介质
CN111897632B (zh) * 2019-05-05 2023-10-20 兆易创新科技集团股份有限公司 一种中断处理方法、装置、电子设备及存储介质
CN110399324A (zh) * 2019-06-28 2019-11-01 苏州浪潮智能科技有限公司 中断转换器及中断转换方法
CN112817772B (zh) * 2019-11-15 2023-12-29 深信服科技股份有限公司 一种数据通信方法、装置、设备及存储介质
CN112084128B (zh) * 2020-09-09 2023-01-17 中国航空工业集团公司雷华电子技术研究所 消息中断通信方法、计算机设备和存储介质
CN112769905B (zh) * 2020-12-25 2023-03-31 麒麟软件有限公司 一种基于numa架构的飞腾平台下高性能网卡性能优化方法
CN114461371B (zh) * 2022-04-13 2023-02-28 苏州浪潮智能科技有限公司 一种服务器系统中断优化方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872330A (zh) * 2009-11-04 2010-10-27 杭州海康威视数字技术股份有限公司 多pcie设备系统中断处理方法
CN102622320A (zh) * 2012-02-22 2012-08-01 中国人民解放军国防科学技术大学 用于飞腾服务器的中断控制方法
US20130326102A1 (en) * 2012-05-31 2013-12-05 Bryan D. Marietta Virtualized Interrupt Delay Mechanism
CN106681816A (zh) * 2016-12-27 2017-05-17 深圳开立生物医疗科技股份有限公司 PCIe中断方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872330A (zh) * 2009-11-04 2010-10-27 杭州海康威视数字技术股份有限公司 多pcie设备系统中断处理方法
CN102622320A (zh) * 2012-02-22 2012-08-01 中国人民解放军国防科学技术大学 用于飞腾服务器的中断控制方法
US20130326102A1 (en) * 2012-05-31 2013-12-05 Bryan D. Marietta Virtualized Interrupt Delay Mechanism
CN106681816A (zh) * 2016-12-27 2017-05-17 深圳开立生物医疗科技股份有限公司 PCIe中断方法和系统

Also Published As

Publication number Publication date
CN108628782A (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
CN108628782B (zh) 一种基于飞腾平台的中断转换机制的实现方法
US11755203B2 (en) Multicore shared cache operation engine
CN110888827B (zh) 数据传输方法、装置、设备及存储介质
US8850081B2 (en) Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning
CN108027642B (zh) 用于隔离输入/输出计算资源的系统和方法
US9710408B2 (en) Source core interrupt steering
US7496706B2 (en) Message signaled interrupt redirection table
US10846254B2 (en) Management controller including virtual USB host controller
US7257658B2 (en) Message based interrupt table
US20040168001A1 (en) Universal serial bus hub with shared transaction translator memory
CN103810133A (zh) 动态共享读缓冲器管理
US20190243757A1 (en) Systems and methods for input/output computing resource control
CN106560791B (zh) 高效虚拟i/o地址转换
KR102064764B1 (ko) 메시지 시그널 인터럽트의 통신
KR102529761B1 (ko) PCIe 디바이스 및 그 동작 방법
US11907814B2 (en) Data path for GPU machine learning training with key value SSD
US20220318170A1 (en) DEVICES, SYSTEMS, AND METHODS FOR PCIe ENDPOINT INTERRUPT
KR20230152394A (ko) PCIe 장치 및 이의 동작 방법
CN116578501A (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