CN108628782A - 一种基于飞腾平台的中断转换机制的实现方法 - Google Patents
一种基于飞腾平台的中断转换机制的实现方法 Download PDFInfo
- Publication number
- CN108628782A CN108628782A CN201810256210.5A CN201810256210A CN108628782A CN 108628782 A CN108628782 A CN 108628782A CN 201810256210 A CN201810256210 A CN 201810256210A CN 108628782 A CN108628782 A CN 108628782A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- interruption
- soaring
- platform
- pcie device
- 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.)
- Granted
Links
- 230000007246 mechanism Effects 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000009466 transformation Effects 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000013519 translation Methods 0.000 claims abstract description 54
- 230000002093 peripheral effect Effects 0.000 claims abstract description 45
- 238000006243 chemical reaction Methods 0.000 claims abstract description 20
- 230000001960 triggered effect Effects 0.000 claims abstract description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000007493 shaping process Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 31
- 230000005540 biological transmission Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 (10)
1.一种基于飞腾平台的中断转换机制的实现方法,包括:
中断发起:PCIE设备发起MSI中断请求,所述PCIE设备根据配置空间的MSI属性,对飞腾平台的中断转换寄存器发起写硬件中断号的消息;
中断转换:所述PCIE设备将所述硬件中断号传递到所述中断转换寄存器,引起共享外设中断;
中断分发:所述共享外设中断通过中断控制器被分发到中央处理器;
中断处理:所述共享外设中断被所述中央处理器接收,触发共享外设中断处理函数,从所述中断转换寄存器中读取所述硬件中断号,所述PCIE设备的中断被处理。
2.根据权利要求1所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述中断发起步骤前还包括:
所述中断转换寄存器的初始化:初始化所述中断转换寄存器,实现共享外设中断的注册;
MSI中断申请和分配:实现所述MSI中断申请和分配,配置PCIE设备的MSI属性。
3.根据权利要求2所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述中断转换寄存器的初始化过程包括:
获取所述中断转换寄存器的地址;
配置所述中断转换寄存器的中断触发类型;
配置所述中断转换寄存器的功能使能位;
获取触发共享外设中断的共享外设中断号;
注册所述共享外设中断的中断处理函数。
4.根据权利要求3所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述中断触发类型为低位数据写触发模式。
5.根据权利要求4所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述配置所述中断转换寄存器的功能使能位具体包括,中断触发所述功能使能位后,所述低位数据被写入时,触发所述共享外设中断。
6.根据权利要求3所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述MSI中断申请和分配的过程包括:
为所述PCIE设备分配硬件中断号;
创建所述硬件中断号、虚拟中断号和所述PCIE设备的中断处理函数的对应关系;
配置PCIE设备的MSI地址属性,将所述中断转换寄存器的地址写入所述PCIE设备的MSI地址属性;
配置PCIE设备的MSI数据属性,将分配的所述硬件中断号写入所述PCIE设备的MSI数据属性。
7.根据权利要求6所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:分配硬件中断号采用基于位图的分配机制,所述基于位图的分配机制具体包括利用一个长整形的位图数据,根据所述位图数据的bit位来分配硬件中断号。
8.根据权利要求6或7所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述中断处理具体包括:
a.所述中央处理器接收所述共享外设中断,触发所述共享外设中断处理函数;
b.读取所述中断转换寄存器中的所述硬件中断号;
c.检测读取到的所述硬件中断号是否有效,判断所述硬件中断号是否在所述基于位图的分配机制的位图分配表里,如果无效则退出所述中断处理函数;
d.如果有效,将所述硬件中断号放入中断缓存队列中,所述中断缓存队列的tail指针加1,所述tail指针指向所述中断缓存队列缓存数据的下一个可写地址;
e.退出所述中断处理函数。
9.根据权利要求8所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述d步骤后还包括:
S101.触发PCIE中断READY信号;
S102.所述PCIE中断READY信号来临后,读取所述中断缓存队列的head和tail指针,所述head指针指向所述中断缓存队列缓存数据的第一个可读地址,所述tail指针指向下一个可写地址;
S103.读取所述head指针指向的硬件中断号;
S104.找到所述硬件中断号映射的所述虚拟中断号;
S105.调用所述虚拟中断号对应的所述PCIE设备的中断处理函数;
S106.head指针指向下一个缓存地址;
S107.判断head是否与tail相等,如果相等,等待下一次PCIE中断READY信号,如果不相等,回到S103步骤。
10.根据权利要求7所述的基于飞腾平台的中断转换机制的实现方法,其特征在于:所述中断缓存队列为环形队列,所述S102至S107步骤均在单独的一个中断处理内核线程内完成。
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 true CN108628782A (zh) | 2018-10-09 |
CN108628782B 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) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947580A (zh) * | 2019-03-27 | 2019-06-28 | 上海燧原智能科技有限公司 | 中断处理方法、装置、设备和存储介质 |
CN110399324A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 中断转换器及中断转换方法 |
CN111897632A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种中断处理方法、装置、电子设备及存储介质 |
CN112084128A (zh) * | 2020-09-09 | 2020-12-15 | 中国航空工业集团公司雷华电子技术研究所 | 消息中断通信方法、计算机设备和存储介质 |
CN112769905A (zh) * | 2020-12-25 | 2021-05-07 | 麒麟软件有限公司 | 一种基于numa架构的飞腾平台下高性能网卡性能优化方法 |
CN112817772A (zh) * | 2019-11-15 | 2021-05-18 | 深信服科技股份有限公司 | 一种数据通信方法、装置、设备及存储介质 |
CN114461371A (zh) * | 2022-04-13 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种服务器系统中断优化方法、装置、设备及介质 |
CN116107771A (zh) * | 2022-12-13 | 2023-05-12 | 成都海光集成电路设计有限公司 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
Citations (4)
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中断方法和系统 |
-
2018
- 2018-03-27 CN CN201810256210.5A patent/CN108628782B/zh active Active
Patent Citations (4)
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中断方法和系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947580A (zh) * | 2019-03-27 | 2019-06-28 | 上海燧原智能科技有限公司 | 中断处理方法、装置、设备和存储介质 |
CN111897632A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种中断处理方法、装置、电子设备及存储介质 |
CN111897632B (zh) * | 2019-05-05 | 2023-10-20 | 兆易创新科技集团股份有限公司 | 一种中断处理方法、装置、电子设备及存储介质 |
CN110399324A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 中断转换器及中断转换方法 |
CN112817772B (zh) * | 2019-11-15 | 2023-12-29 | 深信服科技股份有限公司 | 一种数据通信方法、装置、设备及存储介质 |
CN112817772A (zh) * | 2019-11-15 | 2021-05-18 | 深信服科技股份有限公司 | 一种数据通信方法、装置、设备及存储介质 |
CN112084128A (zh) * | 2020-09-09 | 2020-12-15 | 中国航空工业集团公司雷华电子技术研究所 | 消息中断通信方法、计算机设备和存储介质 |
CN112084128B (zh) * | 2020-09-09 | 2023-01-17 | 中国航空工业集团公司雷华电子技术研究所 | 消息中断通信方法、计算机设备和存储介质 |
CN112769905B (zh) * | 2020-12-25 | 2023-03-31 | 麒麟软件有限公司 | 一种基于numa架构的飞腾平台下高性能网卡性能优化方法 |
CN112769905A (zh) * | 2020-12-25 | 2021-05-07 | 麒麟软件有限公司 | 一种基于numa架构的飞腾平台下高性能网卡性能优化方法 |
CN114461371B (zh) * | 2022-04-13 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 一种服务器系统中断优化方法、装置、设备及介质 |
CN114461371A (zh) * | 2022-04-13 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种服务器系统中断优化方法、装置、设备及介质 |
CN116107771A (zh) * | 2022-12-13 | 2023-05-12 | 成都海光集成电路设计有限公司 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108628782B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628782A (zh) | 一种基于飞腾平台的中断转换机制的实现方法 | |
US10365830B2 (en) | Method, device, and system for implementing hardware acceleration processing | |
CN107992436B (zh) | 一种NVMe数据读写方法及NVMe设备 | |
CN110888827B (zh) | 数据传输方法、装置、设备及存储介质 | |
US20210326260A1 (en) | Multicore shared cache operation engine | |
US7496699B2 (en) | DMA descriptor queue read and cache write pointer arrangement | |
US20190121671A1 (en) | Flexible allocation of compute resources | |
JP5737050B2 (ja) | 情報処理装置、割込み制御方法および割込み制御プログラム | |
US10909655B2 (en) | Direct memory access for graphics processing unit packet processing | |
CN103810133A (zh) | 动态共享读缓冲器管理 | |
US9239804B2 (en) | Back-off mechanism for a peripheral page request log | |
CN118435178A (zh) | 直接存储器存取命令的硬件管理 | |
US10909056B2 (en) | Multi-core electronic system | |
WO2020029619A1 (zh) | 数据处理的方法、设备和服务器 | |
US8996772B1 (en) | Host communication device and method with data transfer scheduler | |
KR20150120027A (ko) | 컴퓨터 시스템에서의 메모리 접근 방법 | |
CN116136790A (zh) | 任务处理方法和装置 | |
US11042494B1 (en) | Direct injection of a virtual interrupt | |
CN117493236B (zh) | Fpga加速器以及加速器系统 | |
US11995357B2 (en) | Disaggregation computing system and method | |
US20240160594A1 (en) | CONNECTING NON-PCIe ACCELERATORS AS PCIe DEVICES | |
KR100215572B1 (ko) | 인터페이스 버퍼 제어 방법 및 장치 | |
Raj et al. | Scalable i/o virtualization via self-virtualizing devices |
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 |