CN117971526A - 中断触发设备确定方法和装置 - Google Patents
中断触发设备确定方法和装置 Download PDFInfo
- Publication number
- CN117971526A CN117971526A CN202410389522.9A CN202410389522A CN117971526A CN 117971526 A CN117971526 A CN 117971526A CN 202410389522 A CN202410389522 A CN 202410389522A CN 117971526 A CN117971526 A CN 117971526A
- Authority
- CN
- China
- Prior art keywords
- switch
- interrupt
- memory write
- identification information
- request message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000011144 upstream manufacturing Methods 0.000 claims description 103
- 230000001960 triggered effect Effects 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本公开提供一种中断触发设备确定方法和装置。该方法应用于pcie系统,当连接某一级交换机的终端设备触发中断时,触发中断的终端设备将中断请求消息发送至与该终端设备连接的交换机,交换机接收触发中断的终端设备发送的中断请求消息,根据中断请求消息生成存储器写报文,并将存储器写报文和中断请求消息经由各级交换机传递至根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对中断请求消息进行更新。根组件将各级交换机生成的存储器写报文写入存储器并将中断请求消息发送至CPU。CPU接收根组件发送的中断请求消息,根据中断请求消息和存储器内的各个存储器写报文确定触发中断的终端设备。
Description
技术领域
本公开的实施例涉及通信技术领域,具体涉及一种中断触发设备确定方法和装置。
背景技术
在pcie(一种高速串行计算机扩展总线标准)系统中,根组件、终端设备和交换机逐级连接,当终端设备需要向根组件发送中断消息时,首先,终端设备会将该中断消息发送至该终端设备的上层设备,当上层设备不是根组件时,则需要经过各个中间层设备进行层层传递直至中断消息到达根组件。
在将中断消息向上传递至各个交换机时,各个交换机都会按照该交换机的上游端口的端口标识信息对中断消息进行更新,重新发送中断消息,因而,在中断消息发送至根组件时,中断消息中只会携带和根组件相连的交换机的上游端口的端口标识信息,而发出中断消息的终端设备的标识信息已经丢失,这会导致根组件无法知道中断消息的发起者是哪个终端设备。
那么,根组件要确定发出中断消息的终端设备,只能通过读取pcie系统中挂在根组件下的所有终端设备的header(头部)寄存器中的command(命令区域)中的中断状况比特位,根据比特位是否拉高来判断哪个终端设备发生了INTx中断。如此,通过读取终端设备的寄存器来确定发生INTx中断的终端设备,要以I2C(Inter-Integrated Circuit,集成电路间总线)等低速协议来访问读取终端设备的寄存器,这会增加终端设备的查找时间,并且,当pcie系统比较复杂,挂载的终端设备众多,但是只有其中几个终端设备发生了中断时,通过读取所有挂在根组件下的所有终端设备的寄存器查找发生中断的终端设设备时,会导致查找效率低下。
因此,有必要提出一种中断触发设备确定方法以解决上述至少一个技术问题。
发明内容
本公开的实施例提出了一种中断触发设备确定方法和装置。
第一方面,本公开提供了一种中断触发设备确定方法,应用于pcie系统,所述pcie系统包括CPU、根组件、存储器、至少一个终端设备以及至少一个交换机,所述方法包括:
当连接某一级所述交换机的所述终端设备触发中断时,触发中断的所述终端设备将中断请求消息发送至与该终端设备连接的所述交换机,其中,所述中断请求消息包括触发中断的所述终端设备的设备标识信息;
所述交换机接收触发中断的所述终端设备发送的所述中断请求消息,根据所述中断请求消息生成存储器写报文,所述存储器写报文包含触发中断的所述终端设备的设备标识信息,并将所述存储器写报文和所述中断请求消息经由各级交换机传递至所述根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对所述中断请求消息进行更新;
所述根组件将各级所述交换机生成的存储器写报文写入所述存储器并将所述中断请求消息发送至所述CPU;
所述CPU接收所述根组件发送的所述中断请求消息,根据所述中断请求消息和所述存储器内的各个所述存储器写报文确定触发中断的所述终端设备。
在一些可选的实施方式中,所述根据所述中断请求消息生成存储器写报文,包括:
所述交换机确定与发送所述中断请求消息的所述终端设备直接相连的所述交换机的下游端口的端口标识信息,根据所述中断请求消息和所述交换机的下游端口的端口标识信息生成存储器写报文。
在一些可选的实施方式中,所述中断请求消息还包括所述终端设备触发的中断类型,所述根据所述中断请求消息和所述交换机的下游端口的端口标识信息生成存储器写报文,包括:
所述交换机对所述中断请求消息进行解析,获取触发中断的所述终端设备的设备标识信息以及触发的中断类型;
所述交换机根据触发中断的所述终端设备的设备标识信息、触发的中断类型以及所述交换机的下游端口的端口标识信息生成所述存储器写报文。
在一些可选的实施方式中,所述存储器写报文包括地址信息和数据信息,所述交换机根据触发中断的所述终端设备的设备标识信息、触发的中断类型以及所述交换机的下游端口的端口标识信息生成所述存储器写报文,包括:
所述交换机将所述触发中断的所述终端设备的设备标识信息、触发的中断类型确定为所述存储器写报文的数据信息;
所述交换机将所述交换机与下级交换机直接相连的下游端口的端口标识信息确定为所述存储器写报文的地址信息;
所述交换机根据所述数据信息和所述地址信息生成所述存储器写报文。
在一些可选的实施方式中,所述交换机将所述存储器写报文和所述中断请求消息逐级传递至根组件,包括:
在传递过程中,当上级设备为交换机时,执行以下存储器写报文传递操作直至将存储器写报文传递至根组件:
上级所述交换机接收下级所述交换机发送的所述存储器写报文,确定与发送所述存储器写报文的下级所述交换机直接相连的上级所述交换机的下游端口的端口标识信息和该下级所述交换机的上游端口的端口标识信息,根据下级所述交换机生成的所述存储器写报文、下级所述交换机的上游端口的端口标识信息和上级所述交换机的下游端口的端口标识信息生成新的所述存储器写报文,并将各个所述存储器写报文向上进行逐级传递,直至上级设备为根组件时,将各级交换机生成的所述存储器写报文传递至所述根组件。
在一些可选的实施方式中,所述存储器写报文包括地址信息和数据信息,所述根据下级所述交换机生成的所述存储器写报文、下级所述交换机的上游端口的端口标识信息和上级所述交换机的下游端口的端口标识信息生成新的所述存储器写报文,包括:
上级所述交换机对下级所述交换机生成的所述存储器写报文进行解析,获得所述存储器写报文的数据信息中的中断类型;
上级所述交换机将下级所述交换机的上游端口的端口标识信息和解析获得的中断类型确定为新的所述存储器写报文的数据信息;
上级所述交换机将上级所述交换机的下游端口的端口标识信息确定为新的所述存储器写报文的地址信息;
上级所述交换机根据新的所述存储器写报文的数据信息和新的存储器写报文的地址信息生成新的所述存储器写报文。
在一些可选的实施方式中,所述交换机将所述存储器写报文和所述中断请求消息逐级传递至根组件,包括:
在传递过程中,当上级设备为交换机时, 执行以下中断请求消息传递操作直至将中断请求消息传递至根组件:
在所述中断请求消息传递至各级交换机时,该级交换机根据其上游端口的端口标识信息对所述中断请求消息进行更新,并将更新后的所述中断请求消息向上逐级传递,直至上级设备为根组件时,将更新后的所述中断请求消息传递至所述根组件。
在一些可选的实施方式中,所述该级交换机根据其上游端口的端口标识信息对所述中断请求消息进行更新,包括:
当所述交换机的下级设备为终端设备时,所述交换机将所述中断请求消息中的设备标识信息修改为该交换机的上游端口的端口标识信息,其中,所述更新后的所述中断请求消息包括交换机的上游端口的端口标识信息以及触发的中断类型。
在一些可选的实施方式中,所述该级交换机根据其上游端口的端口标识信息对所述中断请求消息进行更新,包括:
当所述交换机的下级设备为交换机时,所述交换机接收下级所述交换机发送的所述中断请求消息,并确定所述交换机的上游端口的端口标识信息,根据所述交换机的上游端口的端口标识信息对所述中断请求消息进行更新,其中,所述更新后的所述中断请求消息包括所述交换机的上游端口的端口标识信息以及触发的中断类型。
在一些可选的实施方式中,所述根据上级所述交换机的上游端口的端口标识信息对所述中断请求消息进行更新,包括:
上级所述交换机将所述中断请求消息中的下级所述交换机的上游端口的端口标识信息修改为上级所述交换机的上游端口的端口标识信息。
在一些可选的实施方式中,所述根组件将各级所述交换机生成的存储器写报文写入所述存储器并将所述中断请求消息发送至所述CPU,包括:
所述根组件对各级所述交换机生成的所述存储器写报文进行解析,获得所述存储器写报文的地址信息和数据信息;
所述根组件根据所述存储器写报文的地址信息和数据信息将所述存储器写报文写入至所述存储器。
在一些可选的实施方式中,所述CPU接收所述根组件发送的所述中断请求消息,根据所述中断请求消息和所述存储器内的所述存储器写报文确定触发中断的所述终端设备,包括:
所述CPU接收所述根组件发送的所述中断请求消息,根据所述中断请求消息获取与所述根组件连接的所述交换机的上游端口的端口标识信息;
所述CPU根据与所述根组件连接的所述交换机的上游端口的端口标识信息读取所述存储器内的各个存储器写报文;
所述CPU根据所述存储器内的各个存储器写报文确定所述触发中断的所述终端设备。
在一些可选的实施方式中,所述CPU根据与所述根组件连接的所述交换机的上游端口的端口标识信息读取所述存储器内的各个存储器写报文,包括:
所述CPU根据与所述根组件连接的所述交换机的上游端口的端口标识信息获取与所述根组件连接的所述交换机的所述下游端口的端口标识信息;
所述CPU根据所述根组件连接的所述交换机的所述下游端口的端口标识读取所述存储器中对应的存储器写报文,并判断所述交换机的该下游端口是否有中断发生;
若有中断发生,根据该下游端口的标识信息依次继续读取各个所述存储器中对应的存储器写报文,直至获取到所述存储器写报文中的所述终端设备的设备标识信息;以及,
所述CPU根据所述存储器内的各个存储器写报文确定所述触发中断的所述终端设备,包括:
所述CPU根据所述存储器写报文中的所述终端设备的设备标识信息确定所述触发中断的所述终端设备。
第二方面,本公开提供了一种pcie系统,所述pcie系统包括CPU、根组件、存储器、至少一个终端设备以及至少一个交换机,其中,
终端设备,被配置成当连接某一级所述交换机的所述终端设备触发中断时,将中断请求消息发送至与该终端设备连接的所述交换机,其中,所述中断请求消息包括触发中断的所述终端设备的设备标识信息;
交换机,被配置成接收触发中断的所述终端设备发送的所述中断请求消息,根据所述中断请求消息生成存储器写报文,所述存储器写报文包含触发中断的所述终端设备的设备标识信息,并将所述存储器写报文和所述中断请求消息经由各级交换机传递至所述根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对所述中断请求消息进行更新;
根组件,被配置成将各级所述交换机生成的存储器写报文写入所述存储器并将所述中断请求消息发送至所述CPU;
CPU,被配置成接收所述根组件发送的所述中断请求消息,根据所述中断请求消息和所述存储器内的各个所述存储器写报文确定触发中断的所述终端设备。
本公开的实施例提供的中断触发设备确定方法和装置,应用于pcie系统,pcie系统包括CPU、根组件、存储器、至少一个终端设备以及至少一个交换机,首先,触发中断的终端设备将中断请求消息发送至与该终端设备连接的交换机,其中,中断请求消息包括触发中断的终端设备的设备标识信息。然后,交换机接收触发中断的终端设备发送的中断请求消息,根据中断请求消息生成存储器写报文,存储器写报文包含触发中断的所述终端设备的设备标识信息,并将存储器写报文和中断请求消息经由各级交换机传递至根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对中断请求消息进行更新。接着,根组件将各级交换机生成的存储器写报文写入存储器并将中断请求消息发送至CPU。最后,CPU接收根组件发送的中断请求消息,根据中断请求消息和存储器内的各个存储器写报文确定触发中断的终端设备。本公开通过在中断请求消息层层传递的过程中,在各层交换机都生成存储器写报文,并将各个存储器写报文和中断请求消息经由各级交换机传递至根组件并将各个存储器写报文写入存储器,可以记录下中断传递的各个路径,这样,CPU可以根据中断请求消息和存储器中的各个存储器写报文逐层按照反向路径确定触发中断的终端设备。这样,由于存储器的读写速度远高于I2C等低速接口,可以提高发生中断的终端设备查找效率,并且,当pcie系统比较复杂,挂载的终端设备众多时,可以不用读取全部设备的寄存器,便可以找到发出中断的终端设备,进一步提高查找效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显。附图仅用于示出具体实施方式的目的,而并不认为是对本发明的限制。在附图中:
图1是根据本公开的pcie系统的一个实施例的系统架构图;
图2是根据本公开的pcie系统的拓扑结构示意图;
图3是根据本公开的一个INTx中断传递示意图;
图4根据本公开的中断触发设备确定方法的一个实施例的流程图;
图5是根据本公开的步骤402的一个实施例的分解流程图;
图6是根据本公开的步骤404的一个实施例的分解流程图;
图7是根据本公开的中断触发设备确定装置的一个实施例的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的中断触发设备确定方法和装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括pcie系统101,终端设备102、103,网络104和服务器105。
pcie系统和终端设备102、103之间通过有线或者无线方式连接,以实现数据的交互。网络104用以在终端设备102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备102、103上可以安装有各种通讯客户端应用,例如语音交互类应用、视频会议类应用、短视频社交类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备102、103可以是硬件,也可以是软件。当终端设备102、103为硬件时,可以是具有麦克风和扬声器的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4播放器(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)、便携计算机和台式计算机等等。当终端设备102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如获取目标用户在第一历史时段内每个第一历史子时段内的资源申请行为信息),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
在一些情况下,本公开所提供的中断触发设备确定方法可以由pcie系统101执行,具体地,也可以由pcie系统101的pcie终端设备、交换机、CPU、根组件执行,例如,“当连接某一级交换机的终端设备触发中断时,触发中断的终端设备将中断请求消息发送至与该终端设备连接的交换机”,“交换机接收触发中断的终端设备发送的中断请求消息,根据中断请求消息和交换机生成存储器写报文,并将存储器写报文和中断请求消息经由各级交换机传递至根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对中断请求消息进行更新”等等。本公开对此不做限定。
应该理解,图1中的pcie系统、终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的pcie系统、终端设备、网络和服务器。
继续参考图2,图2示出了根据本公开的pcie系统的拓扑结构示意图。
需要说明的是,在该pcie系统的拓扑结构示意图中,存在二级交换机,其仅是示意性的,并不用于限定本公开,pcie系统的拓扑结构中也可以是存在三级交换机、四级交换机或更多级的交换机的拓扑结构。
如图2所示,在本公开中,pcie系统拓扑结构中包括CPU、根组件、存储器、至少一个pcie终端设备以及至少一个交换机,CPU、根组件、存储器、至少一个终端设备以及至少一个交换机逐级连接,其中,根组件连接CPU和交换机,交换机连接根组件、交换机和/或终端设备。
具体地,在pcie系统拓扑结构中,根组件的一端连接根组件上级的CPU,另一端连接根组件下级的交换机,每个交换机包括一个上游端口和至少一个下游端口,交换机的上游端口连接根组件或者该交换机上级的交换设备的下游端口,交换机的下游端口连接该交换机下级的交换机的上游端口或终端设备。
例如,在图2中,交换机1的上游端口和根组件连接,交换机1的一个下游端口和终端设备1连接,另一个下游端口和交换机2的上游端口连接,交换机2的上游端口和交换机1的下游端口连接,交换2的一个下游端口和终端设备2连接,一个下游端口和终端设备3连接。
其中,交换机的上游端口具有上游端口的端口标识信息,各个下游端口具有下游端口的标识信息,用于唯一标识一个交换机的上游端口和各个下游端口,
在pcie系统中,CPU通过与根组件的连接,管理和控制所有连接到pcie系统上的设备,包括终端设备和交换机。
根组件负责处理和管理pcie链路的所有事务,包括初始化、配置、数据传输以及中断处理等。CPU通过内存映射I/O的方式访问和控制根组件,进而与pcie插槽上的设备进行通信。
当系统启动时,CPU通过根组件对整个pcie系统进行枚举,识别并配置所有连接到pcie系统上的设备。
当pcie终端设备需要CPU注意某个事件时,会通过中断机制通知CPU。CPU接收到中断信号后,会暂停当前任务并执行相应的中断服务程序来处理该事件。
交换机提供了额外的端口和层级以扩展pcie总线的能力,允许连接更多的设备或创建更复杂的拓扑结构,负责处理设备间的事务请求、数据包路由、带宽共享以及中断信号的转发等功能。
存储器可以是SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)。
pcie终端设备具有终端设备的设备标识信息,用于唯一标识该终端设备,pcie终端设备例如可以是显卡(Graphics Processing Unit,GPU)、网络接口卡(NetworkInterface Card,NIC)、存储控制器和固态硬盘(Solid State Drive,SD)适配器,如NVMeSSD、声卡、RAID控制器、数据采集卡、FPGA加速卡、专业音频或视频处理卡以及USB、SATA、Thunderbolt等扩展控制器。
pcie中断是pcie系统中的一种通信机制,允许 pcie终端设备通知中央处理器(CPU)或主机控制器存在需要处理的事件。当终端设备完成数据传输、检测到错误状态或其他重要条件时,它会通过发送一个中断信号来请求 CPU 的注意和干预。
INTx中断是pcie系统中断机制中的一种,包括INTA、INTB、INTC 和 INTD四种类型的中断。
终端设备在发出中断之后,需要经过层层传递,将中断请求消息发送至根组件。终端设备在发出中断时,中断请求消息可以携带该终端设备的设备标识信息。
参考图3,图3是根据本公开的一个INTx中断传递示意图。
如图3所示,不同的pcie终端设备可以发出不同类型的中断,也可以发出同类型的中断,例如,终端设备1和终端设备3可以发出INTA类型的中断,终端设备2可以发出INTB类型的中断。
当各个中断消息向上传递至各个交换机时,各个交换机都会按照该交换机的上游端口的端口标识信息对中断消息进行更新,重新发送中断消息,例如,终端设备2发出INTB类型的中断消息,在将中断消息传递至交换机2时,交换机2会根据交换机2的上游端口的端口标识信息对中断消息进行更新,并重新将更新的中断消息发送至交换机1,在中断消息到达交换机1时,交换机1再根据交换机1的上游端口的端口标识信息对中断消息进行更新。并且,当同类型的中断传递到各交换机时,交换机会对同类型的中断进行合并,例如,当终端设备1发出的INTA类型的中断和终端设备3发出的INTA类型的中断在传递至交换机1时,交换机1会对这两个中断消息进行合并,并根据交换机1的上游端口的标识信息对中断消息进行更新,发送至根组件。因而,在中断消息发送至根组件时,中断消息中只会携带和根组件相连的交换机的上游端口的端口标识信息,而发出中断消息的终端设备的标识信息已经丢失,这会导致根组件无法知道中断消息的发起者是哪个终端设备。这样,通过读取终端设备的寄存器来确定发生INTx中断的终端设备,要以I2C(Inter-Integrated Circuit,集成电路间总线)等低速协议来访问读取终端设备的寄存器,这会延长发生中断的终端设备的查找时间,另外,当pcie系统比较复杂,挂载的终端设备众多,但是只有其中几个终端设备发生了中断时,通过读取所有挂在根组件下的所有终端设备的寄存器查找发生中断的终端设设备时,查找效率低下。为了解决中断传递过程中,发出中断消息的终端设备的标识信息丢失,导致根组件无法知道中断消息的发起者是哪个终端设备的问题,本公开提出了一种中断触发设备确定方法。
继续参考图4,图4示出了根据本公开的中断触发设备确定方法的一个实施例的流程图400,图4所示的中断触发设备确定方法可应用于图1中所示的pcie系统。pcie系统包括CPU、根组件、存储器、至少一个pcie终端设备以及至少一个交换机,CPU、根组件、存储器、至少一个终端设备以及至少一个交换机逐级连接,其中,根组件连接CPU和交换机,交换机连接根组件、交换机和/或终端设备。
该流程400包括以下步骤:
步骤401,当连接某一级交换机的终端设备触发中断时,触发中断的终端设备将中断请求消息发送至与该终端设备连接的交换机。
在本实施例中,连接任意一级交换机的终端设备都可以触发中断,继续考图2,如图2所示,对于交换机1,交换机2可以视为其下级交换机,对于交换机2,交换机1可以视为其上级交换机,交换机1和交换机2连接的终端设备都可以发出中断。
这里,以终端设备3发出INTA类型的中断为例进行说明,当终端设备3触发中断时,终端设备3可以将中断请求发送至与该终端设备连接的交换机,即,交换机2。
在本实施例中,终端设备发出的中断请求消息可以包括触发中断的终端设备的设备标识信息。
例如,终端设备3发出的中断请求消息可以包括终端设备3的设备标识信息,比如,终端设备3的设备标识信息可以为endpoint3。
步骤402,交换机接收触发中断的终端设备发送的中断请求消息,根据中断请求消息和交换机生成存储器写报文,并将存储器写报文和中断请求消息经由各级交换机传递至根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对中断请求消息进行更新。
在本实施例中,存储器写报文包含触发中断的终端设备的设备标识信息。
在本实施例中,终端设备将中断请求消息发送至与该终端设备连接的交换机,首先,交换机接收触发中断的终端设备发送的中断请求消息,根据中断请求消息和交换机生成存储器写报文,然后,将将存储器写报文和中断请求消息经由各级交换机传递至根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对中断请求消息进行更新。
在一些可选的实施方式中,交换机根据中断请求消息生成存储器写报文,可以是与终端设备直接相连的交换机确定与发送中断请求消息的终端设备直接相连的交换机的下游端口的端口标识信息,根据中断请求消息和交换机的下游端口的端口标识信息生成存储器写报文。
例如,交换机2有两个下游端口,可以分别为下游端口A和下游端口B,与终端设备3直接相连的下游端口可以为下游端口B,对应的端口标识信息可以为b。
在一些可选的实施方式中,中断请求消息还可以包括终端设备触发的中断类型,首先,交换机可以对中断请求消息进行解析,获取触发中断的终端设备的设备标识信息以及触发的中断类型。然后,交换机根据触发中断的终端设备的设备标识信息、触发的中断类型以及交换机的下游端口的端口标识信息生成存储器写报文。
终端设备发出的中断请求消息中携带有终端设备的设备标识信息和中断类型,交换机对中断请求消息进行解析,可以从解析后的中断请求消息中得到发出中断的终端设备的设备标识信息和触发的中断类型。
例如,交换机2对中断请求消息进行解析,得到终端设备3的设备标识信息endpoint3和中断类型INTA。
获得发出中断的终端设备的设备标识信息和触发的中断类型之后,交换机根据触发中断的终端设备的设备标识信息、触发的中断类型以及交换机的下游端口的端口标识信息生成存储器写报文。
在一些可选的实施方式中,存储器写报文包括地址信息和数据信息,其中,地址信息可以是各个交换机的下游端口的标识信息,数据信息的数据字段可以包括标识信息(requester id)、触发的中断代码(intx code)以及启用INTX中断(intx enable)字段,其中,数据字段的标识信息可以为交换设备的设备标识信息或者各个交换机的上游端口的端口标识信息。其中,intx enable指的是启用或配置设备使用INTx中断的能力。当intxenable被设置为有效时,设备可以通过对应的INTx信号线发起中断请求,通知CPU或其他中断控制器有需要处理的事件。其中,intx enable设置为1可以用于表征intx enable被设置为有效,intx code可以表征INTx的中断类型,其中,INTx的中断代码包括INTx消息和消息代码,具体地, INTx消息可以包括Assert_INTA、Assert_INTB、Assert_INTC、Assert_INTD、Dessert_INTA、Dessert_INTB 、Dessert_INTC、Dessert_INTD,各个INTx消息对应的消息代码可以分别为:00100000、00100001、00100010、00100011、00100100、00100101、00100110、00100111。
具体地,数据信息的第bit 0~15bit可以为触发中断的终端设备的设备标识信息字段、第16bit可以为启用INTX中断字段、第17bit~第20bit可以为触发的中断类型。
在一些可选的实施方式中,首先,交换机将触发中断的终端设备的设备标识信息、触发的中断类型确定为存储器写报文的数据信息。然后,交换机将交换机的下游端口的端口标识信息确定为存储器写报文的地址信息。最后,交换机根据数据信息和地址信息生成存储器写报文。
这里,交换机可以是交换机2,生成的存储器写报文可以是存储器写报文1,例如,存储器写报文1的数据部分可以包括触发中断的终端设备的设备标识信息:endpoint3、启用INTX中断:1和触发的中断类型:INTA,地址信息可以为交换机2的下游端口B的端口标识信息b。
由于pcie系统中可能涉及到多级交换机,因此,存储器写报文也要经过多级交换机传递至根组件。
参考图5,图5是根据本公开的步骤402将存储器写报文传递至根组件的一个实施例的分解流程图。
如图5所示,将存储器写报文传递至根组件可以包括步骤4021至步骤4023。
在一些可选的实施方式中,在传递过程中,当上级设备为交换机时,执行以下存储器写报文传递操作直至将存储器写报文传递至根组件:
步骤4021,上级交换机接收下级交换机发送的存储器写报文,确定与发送存储器写报文的下级交换机直接相连的上级交换机的下游端口的端口标识信息和该下级交换机的上游端口的端口标识信息。
在本实施例中,上级交换机可以是指交换机1,下级交换机可以是指交换机2,在交换机2将存储器写报文1发送给交换机1之后,交换机1接收交换机2发送的存储器写报文1,确定和交换机2直接相连的交换机1的下游端口的端口标识信息,可以看出,这里和交换2直接相连的交换机1的下游端口为E,其对应的端口标识信息可以为e,以及,交换机2的上游端口的端口标识信息,这里,交换机2的上游端口可以为C,对应的,其上游端口的端口标识信息可以为c。
步骤4022,根据下级交换机生成的存储器写报文、下级交换机的上游端口的端口标识信息和上级交换机的下游端口的端口标识信息生成新的存储器写报文。
上级交换机在确定与发送存储器写报文的下级交换机直接相连的上级交换机的下游端口的端口标识信息和该下级交换机的上游端口的端口标识信息,即,交换机1在获得交换机1的下游端口E的端口标识信息e和交换机2的上游端口C的端口标识信息c之后,本步骤可以根据下级交换机生成的存储器写报文、下级交换机的上游端口的端口标识信息和上级交换机的下游端口的端口标识信息生成新的存储器写报文。
类似地,新的存储器写报文也包括地址信息和数据信息。
具体地, 首先,上级交换机对下级交换机生成的存储器写报文进行解析,获得存储器写报文的数据信息中的中断类型。然后,上级交换机将下级交换机的上游端口的端口标识信息和解析获得的中断类型确定为新的存储器写报文的数据信息。接着,上级交换机将上级交换机与下级交换机直接相连的下游端口的端口标识信息确定为新的存储器写报文的地址信息。最后,上级交换机根据新的存储器写报文的数据信息和新的存储器写报文的地址信息生成新的存储器写报文。
例如,交换机1对交换机2生成的存储器写报文1进行解析,获得中断类型为INTA。然后,交换机1将交换机2的上游端口C的端口标识信息c以及中断类型INTA确定为新的存储器写报文的数据信息,这里,新的存储器写报文还可以包括启用INTX中断设置为1,新的存储器写报文例如可以是存储器写报文2。
类似地,数据信息的第bit 0~15bit可以为下级交换机的上游端口的端口标识信息,可以为交换机2的上游端口C的端口标识信息c、第16bit可以为启用INTX中断字段,即,INTX中断可以设置为1、第17bit~第20bit可以为从下级交换机生成的存储器写报文解析获得的中断类型,可以是INTA。
交换机1可以将和交换机2直接相连的下游端口E的标识信息e确定为新的地址信息。
最后,上级交换机根据新的存储器写报文的数据信息和新的存储器写报文的地址信息生成新的存储器写报文。
需要明白的是,pcie系统可以包括多级交换机,每向上传递一级,根据上述规则生成一个新的存储器写报文。
步骤4023,将各个存储器写报文向上进行逐级传递,直至上级设备为根组件时,将各级交换机生成的存储器写报文传递至根组件。
这里,各个存储器写报文是指各个交换机生成的各个存储器写报文,例如,交换机2生成的存储器写报文1和交换机1生成的存储器写报文2,当pcie系统还包括更高级的交换机时,还可以包括更高级的交换机生成的存储器写报文。
在一些可选的实施方式中, 在传递过程中,当上级设备为交换机时, 执行以下中断请求消息传递操作直至将中断请求消息传递至根组件:
在中断请求消息传递至各级交换机时,该级交换机根据其上游端口的端口标识信息对中断请求消息进行更新,并将更新后的中断请求消息向上逐级传递,直至上级设备为根组件时,将更新后的中断请求消息传递至根组件。
在一些可选的实施方式中,当交换机的下级设备为终端设备时,交换机将中断请求消息中的设备标识信息修改为该交换机的上游端口的端口标识信息,其中,更新后的中断请求消息包括交换机的上游端口的端口标识信息以及触发的中断类型。
例如,交换机2的下级设备可以为终端设备3,交换机2可以将中断请求消息中的终端设备3的标识信息endpoint3修改为交换机2的上游端口C的端口标识信息c。然后,将更新后的中断请求信息发送给上级设备,继续向上逐级传递。
在一些可选的实施方式中,当交换机的下级设备为交换机时,交换机接收下级交换机发送的中断请求消息,并确定交换机的上游端口的端口标识信息,根据交换机的上游端口的端口标识信息对中断请求消息进行更新,其中,更新后的中断请求消息包括交换机的上游端口的端口标识信息以及触发的中断类型。
具体地,根据上级交换机的上游端口的端口标识信息对中断请求消息进行更新,可以是上级交换机将中断请求消息中的下级交换机的上游端口的端口标识信息修改为上级交换机的上游端口的端口标识信息。
例如,交换机1在接收了交换机2发送的中断请求消息之后,交换机1确定其上游端口为F,对应的端口标识信息可以为f,然后,将中断请求消息中交换机2的上游端口C的端口标识信息c修改为交换机1的上游端口F的端口标识信息f。
需要说明的是,在将中断请求消息向上传递的过程中,每向上传递一级,对应的交换机都需要根据上述方法对中断请求消息进行更新直至将中断请求消息上传至根组件。
步骤403,根组件将各级交换机生成的存储器写报文写入存储器并将中断请求消息发送至CPU。
经过步骤402,根组件接收到了中断请求消息以及各个存储器写报文,步骤403将各级交换机生成的存储器写报文写入存储器并将中断请求消息发送至CPU。
在一些可选的实施方式中,根组件将各级交换机生成的存储器写报文写入存储器并将中断请求消息发送至CPU,可以是根组件对各级交换机生成的存储器写报文进行解析,获得存储器写报文的地址信息和数据信息。根组件根据存储器写报文的地址信息和数据信息将存储器写报文写入至存储器。
这里,根组件对各级交换机生成的存储器写报文进行解析,获得各个存储器写报文的地址信息和数据信息,然后,依次将各个报文的地址信息和数据信息写入存储器。
步骤404,CPU接收根组件发送的中断请求消息,根据中断请求消息和存储器内的各个存储器写报文确定触发中断的终端设备。
在一些可选的实施方式中,参考图6,图6是根据本公开的步骤404的一个实施例的分解流程图。
如图6所示,步骤404还可以包括步骤4041至步骤4043。
步骤4041,CPU接收根组件发送的中断请求消息,根据中断请求消息获取与根组件连接的交换机的上游端口的端口标识信息。
在本实施例中,CPU可以对中断请求消息进行解析,从中断请求消息中获得与根组件直接相连接的交换机的上游端口的端口标识信息。
例如,CPU对中断请求消息进行解析,可以获得交换机1的上游端口F的端口标识信息f。
步骤4042,CPU根据与根组件连接的交换机的上游端口的端口标识信息读取存储器内的各个存储器写报文。
在一些可选的实施方式中,首先,CPU根据与根组件连接的交换机的上游端口的端口标识信息获取与根组件连接的交换机的下游端口的端口标识信息。然后,CPU根据根组件连接的交换机的下游端口的端口标识读取存储器中对应的存储器写报文,并判断交换机的该下游端口是否有中断发生。若有中断发生,根据该下游端口的标识信息依次继续读取各个存储器中对应的存储器写报文,直至获取到存储器写报文中的终端设备的设备标识信息。
当系统启动时,CPU通过根组件对整个pcie系统进行枚举,识别并配置所有连接到pcie系统上的设备。因此,CPU可以根据与根组件连接的交换机的上游端口的端口标识信息获取与根组件连接的交换机的各个下游端口的端口标识信息。然后,根据与根组件连接的交换机的各个下游端口的端口标识信息读取存储在存储器中的存储器写报文。
例如,根据交换机1的上游端口F的标识信息可以读取存储器写报文2的数据信息,然后,判断存储器写报文2中是否有中断发生,若有中断发生,从存储器写报文2的数据信息读取到交换机1的下游端口E的端口标识信息e,根据交换机1的下游端口E的端口标识信息e继续读取存储器写报文1,然后,判断存储器写报文1中是否有中断发生,若有中断发生,从存储器写报文1的数据信息读取到发生中断的终端设备可以为终端设备3的设备标识信息endpoint3。
步骤4043,CPU根据存储器内的各个存储器写报文确定触发中断的终端设备。
在一些可选的实施方式中,CPU根据存储器写报文中的终端设备的设备标识信息确定触发中断的终端设备。
在确定触发中断的终端设备的设备标识信息之后,可以根据该表示信息确定触发中断的终端设备,另外,还可以获取该终端设备对应的中断类型,将判断该终端设备对应的中断类型和存储器中存储器的存储器写报文中的中断类型是否一致以确定查找的触发中断的终端设备是否正确。若一致,则表示查找的触发中断的终端设备正确,若不一致,则表示查找的触发中断的终端设备错误。
本公开的实施例提供的中断触发设备确定方法,应用于pcie系统,pcie系统包括CPU、根组件、存储器、至少一个终端设备以及至少一个交换机,CPU、根组件、存储器、至少一个终端设备以及至少一个交换机逐级连接,其中,根组件连接CPU和交换机,交换机连接根组件、交换机和/或终端设备,当连接某一级交换机的终端设备触发中断时,首先,触发中断的终端设备将中断请求消息发送至与该终端设备连接的交换机,其中,中断请求消息包括触发中断的终端设备的设备标识信息以及该终端设备触发的中断类型。然后,交换机接收触发中断的终端设备发送的中断请求消息,根据中断请求消息生成存储器写报文,并将存储器写报文和中断请求消息经由各级交换机传递至根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对中断请求消息进行更新。接着,根组件将各级交换机生成的存储器写报文写入存储器并将中断请求消息发送至CPU。最后,CPU接收根组件发送的中断请求消息,根据中断请求消息和存储器内的各个存储器写报文确定触发中断的终端设备。本公开通过在中断请求消息层层传递的过程中,在各层交换机都生成存储器写报文,并将各个存储器写报文和中断请求消息经由各级交换机传递至根组件并将各个存储器写报文写入存储器,可以记录下中断传递的各个路径,这样,CPU可以根据中断请求消息和存储器中的各个存储器写报文逐层按照反向路径确定触发中断的终端设备。这样,由于存储器的读写速度远高于I2C等低速接口,可以提高发生中断的终端设备查找效率,并且,当pcie系统比较复杂,挂载的终端设备众多时,可以不用读取全部设备的寄存器,便可以找到发出中断的终端设备,进一步提高查找效率。
进一步参考图7,作为对上述各图所示方法的实现,本公开提供了pcie系统的一个实施例,该实施例与图4所示的方法实施例相对应。
如图7所示,本实施例的pcie系统500,包括至少一个终端设备501、至少一个交换机502、根组件503、CPU504以及存储器。
其中,触发中断的终端设备501,被配置成当连接某一级交换机的终端设备触发中断时,将中断请求消息发送至与该终端设备连接的交换机,其中,中断请求消息包括触发中断的终端设备的设备标识信息;
交换机502,被配置成接收触发中断的终端设备发送的中断请求消息,根据中断请求消息生成存储器写报文,存储器写报文存储器写报文包含触发中断的存储器写报文终端设备的设备标识信息,并将存储器写报文和中断请求消息经由各级交换机传递至根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对中断请求消息进行更新;
根组件503,被配置成将各级交换机生成的存储器写报文写入存储器并将中断请求消息发送至CPU;
CPU504,被配置成接收根组件发送的中断请求消息,根据中断请求消息和存储器内的各个存储器写报文确定触发中断的终端设备。
在一些可选的实施方式中,上述交换机502进一步被配置成:
交换机确定与发送中断请求消息的终端设备直接相连的交换机的下游端口的端口标识信息,根据中断请求消息和交换机的下游端口的端口标识信息生成存储器写报文。
在一些可选的实施方式中,中断请求消息还包括终端设备触发的中断类型,上述交换机502进一步被配置成:
交换机对中断请求消息进行解析,获取触发中断的终端设备的设备标识信息以及触发的中断类型;
交换机根据触发中断的终端设备的设备标识信息、触发的中断类型以及交换机的下游端口的端口标识信息生成存储器写报文。
在一些可选的实施方式中,存储器写报文包括地址信息和数据信息,上述交换机502进一步被配置成:
交换机将触发中断的终端设备的设备标识信息、触发的中断类型确定为存储器写报文的数据信息;
交换机将交换机与下级交换机直接相连的下游端口的端口标识信息确定为存储器写报文的地址信息;
交换机根据数据信息和地址信息生成存储器写报文。
在一些可选的实施方式中,上述交换机502进一步被配置成:
在传递过程中,当上级设备为交换机时,执行以下存储器写报文传递操作直至将存储器写报文传递至根组件:
上级交换机接收下级交换机发送的存储器写报文,确定与发送存储器写报文的下级交换机直接相连的上级交换机的下游端口的端口标识信息和该下级交换机的上游端口的端口标识信息,根据下级交换机生成的存储器写报文、下级交换机的上游端口的端口标识信息和上级交换机的下游端口的端口标识信息生成新的存储器写报文,并将各个存储器写报文向上进行逐级传递,直至上级设备为根组件时,将各级交换机生成的存储器写报文传递至根组件。
在一些可选的实施方式中,存储器写报文包括地址信息和数据信息,上述交换机502进一步被配置成:
上级交换机对下级交换机生成的存储器写报文进行解析,获得存储器写报文的数据信息中的中断类型;
上级交换机将下级交换机的上游端口的端口标识信息和解析获得的中断类型确定为新的存储器写报文的数据信息;
上级交换机将上级交换机的下游端口的端口标识信息确定为新的存储器写报文的地址信息;
上级交换机根据新的存储器写报文的数据信息和新的存储器写报文的地址信息生成新的存储器写报文。
在一些可选的实施方式中,上述交换机502进一步被配置成:
在传递过程中,当上级设备为交换机时, 执行以下中断请求消息传递操作直至将中断请求消息传递至根组件:
在中断请求消息传递至各级交换机时,该级交换机根据其上游端口的端口标识信息对中断请求消息进行更新,并将更新后的中断请求消息向上逐级传递,直至上级设备为根组件时,将更新后的中断请求消息传递至根组件。
在一些可选的实施方式中,上述交换机502进一步被配置成:
当交换机的下级设备为终端设备时,交换机将中断请求消息中的设备标识信息修改为该交换机的上游端口的端口标识信息,其中,更新后的中断请求消息包括交换机的上游端口的端口标识信息以及触发的中断类型。
在一些可选的实施方式中,上述交换机502进一步被配置成:
当交换机的下级设备为交换机时,交换机接收下级交换机发送的中断请求消息,并确定交换机的上游端口的端口标识信息,根据交换机的上游端口的端口标识信息对中断请求消息进行更新,其中,更新后的中断请求消息包括交换机的上游端口的端口标识信息以及触发的中断类型。
在一些可选的实施方式中,上述交换机502进一步被配置成:
上级交换机将中断请求消息中的下级交换机的上游端口的端口标识信息修改为上级交换机的上游端口的端口标识信息。
在一些可选的实施方式中,上述根组件503进一步被配置成:
根组件对各级交换机生成的存储器写报文进行解析,获得存储器写报文的地址信息和数据信息;
根组件根据存储器写报文的地址信息和数据信息将存储器写报文写入至存储器。
在一些可选的实施方式中,上述CPU504进一步被配置成:
CPU接收根组件发送的中断请求消息,根据中断请求消息获取与根组件连接的交换机的上游端口的端口标识信息;
CPU根据与根组件连接的交换机的上游端口的端口标识信息读取存储器内的各个存储器写报文;
CPU根据存储器内的各个存储器写报文确定触发中断的终端设备。
在一些可选的实施方式中,上述CPU504进一步被配置成:
CPU根据与根组件连接的交换机的上游端口的端口标识信息获取与根组件连接的交换机的下游端口的端口标识信息;
CPU根据根组件连接的交换机的下游端口的端口标识读取存储器中对应的存储器写报文,并判断交换机的该下游端口是否有中断发生;
若有中断发生,根据该下游端口的标识信息依次继续读取各个存储器中对应的存储器写报文,直至获取到存储器写报文中的终端设备的设备标识信息;以及,
CPU根据存储器内的各个存储器写报文确定触发中断的终端设备,包括:
CPU根据存储器写报文中的终端设备的设备标识信息确定触发中断的终端设备。
需要说明的是,本公开的实施例提供的中断触发设备确定方法和装置中各单元的实现细节和技术效果可以参考本公开中其它实施例的说明,在此不再赘述。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体地例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备实现如图4所示的实施例及其可选实施方式示出的中断触发设备确定方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种中断触发设备确定方法,其特征在于,应用于pcie系统,所述pcie系统包括CPU、根组件、存储器、至少一个终端设备以及至少一个交换机,所述方法包括:
当连接某一级所述交换机的所述终端设备触发中断时,触发中断的所述终端设备将中断请求消息发送至与该终端设备连接的所述交换机,其中,所述中断请求消息包括触发中断的所述终端设备的设备标识信息;
所述交换机接收触发中断的所述终端设备发送的所述中断请求消息,根据所述中断请求消息生成存储器写报文,所述存储器写报文包含触发中断的所述终端设备的设备标识信息,并将所述存储器写报文和所述中断请求消息经由各级交换机传递至所述根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对所述中断请求消息进行更新;
所述根组件将各级所述交换机生成的存储器写报文写入所述存储器并将所述中断请求消息发送至所述CPU;
所述CPU接收所述根组件发送的所述中断请求消息,根据所述中断请求消息和所述存储器内的各个所述存储器写报文确定触发中断的所述终端设备。
2.根据权利要求1所述的方法,其特征在于,所述根据所述中断请求消息生成存储器写报文,包括:
所述交换机确定与发送所述中断请求消息的所述终端设备直接相连的所述交换机的下游端口的端口标识信息,根据所述中断请求消息和所述交换机的下游端口的端口标识信息生成存储器写报文。
3.根据权利要求2所述的方法,其特征在于,所述中断请求消息还包括所述终端设备触发的中断类型,所述根据所述中断请求消息和所述交换机的下游端口的端口标识信息生成存储器写报文,包括:
所述交换机对所述中断请求消息进行解析,获取触发中断的所述终端设备的设备标识信息以及触发的中断类型;
所述交换机根据触发中断的所述终端设备的设备标识信息、触发的中断类型以及所述交换机的下游端口的端口标识信息生成所述存储器写报文。
4.根据权利要求3所述的方法,其特征在于,所述存储器写报文包括地址信息和数据信息,所述交换机根据触发中断的所述终端设备的设备标识信息、触发的中断类型以及所述交换机的下游端口的端口标识信息生成所述存储器写报文,包括:
所述交换机将所述触发中断的所述终端设备的设备标识信息、触发的中断类型确定为所述存储器写报文的数据信息;
所述交换机将所述交换机的下游端口的端口标识信息确定为所述存储器写报文的地址信息;
所述交换机根据所述数据信息和所述地址信息生成所述存储器写报文。
5.根据权利要求1所述的方法,其特征在于,所述交换机将所述存储器写报文和所述中断请求消息逐级传递至根组件,包括:
在传递过程中,当上级设备为交换机时,执行以下存储器写报文传递操作直至将存储器写报文传递至根组件:
上级所述交换机接收下级所述交换机发送的所述存储器写报文,确定与发送所述存储器写报文的下级所述交换机直接相连的上级所述交换机的下游端口的端口标识信息和该下级所述交换机的上游端口的端口标识信息,根据下级所述交换机生成的所述存储器写报文、下级所述交换机的上游端口的端口标识信息和上级所述交换机的下游端口的端口标识信息生成新的所述存储器写报文,并将各个所述存储器写报文向上进行逐级传递,直至上级设备为根组件时,将各级交换机生成的所述存储器写报文传递至所述根组件。
6.根据权利要求5所述的方法,其特征在于,所述存储器写报文包括地址信息和数据信息,所述根据下级所述交换机生成的所述存储器写报文、下级所述交换机的上游端口的端口标识信息和上级所述交换机的下游端口的端口标识信息生成新的所述存储器写报文,包括:
上级所述交换机对下级所述交换机生成的所述存储器写报文进行解析,获得所述存储器写报文的数据信息中的中断类型;
上级所述交换机将下级所述交换机的上游端口的端口标识信息和解析获得的中断类型确定为新的所述存储器写报文的数据信息;
上级所述交换机将上级所述交换机的与下级交换机直接相连的下游端口的端口标识信息确定为新的所述存储器写报文的地址信息;
上级所述交换机根据新的所述存储器写报文的数据信息和新的存储器写报文的地址信息生成新的所述存储器写报文。
7.根据权利要求1所述的方法,其特征在于,所述交换机将所述存储器写报文和所述中断请求消息逐级传递至根组件,包括:
在传递过程中,当上级设备为交换机时, 执行以下中断请求消息传递操作直至将中断请求消息传递至根组件:
在所述中断请求消息传递至各级交换机时,该级交换机根据其上游端口的端口标识信息对所述中断请求消息进行更新,并将更新后的所述中断请求消息向上逐级传递,直至上级设备为根组件时,将更新后的所述中断请求消息传递至所述根组件。
8.根据权利要求7所述的方法,其特征在于,所述该级交换机根据其上游端口的端口标识信息对所述中断请求消息进行更新,包括:
当所述交换机的下级设备为终端设备时,所述交换机将所述中断请求消息中的设备标识信息修改为该交换机的上游端口的端口标识信息,其中,所述更新后的所述中断请求消息包括交换机的上游端口的端口标识信息。
9.根据权利要求7所述的方法,其特征在于,所述该级交换机根据其上游端口的端口标识信息对所述中断请求消息进行更新,包括:
当所述交换机的下级设备为交换机时,所述交换机接收下级所述交换机发送的所述中断请求消息,并确定所述交换机的上游端口的端口标识信息,根据所述交换机的上游端口的端口标识信息对所述中断请求消息进行更新,其中,所述更新后的所述中断请求消息包括所述交换机的上游端口的端口标识信息。
10.根据权利要求9所述的方法,其特征在于,所述根据上级所述交换机的上游端口的端口标识信息对所述中断请求消息进行更新,包括:
上级所述交换机将所述中断请求消息中的下级所述交换机的上游端口的端口标识信息修改为上级所述交换机的上游端口的端口标识信息。
11.根据权利要求1所述的方法,其特征在于,所述根组件将各级所述交换机生成的存储器写报文写入所述存储器并将所述中断请求消息发送至所述CPU,包括:
所述根组件对各级所述交换机生成的所述存储器写报文进行解析,获得所述存储器写报文的地址信息和数据信息;
所述根组件根据所述存储器写报文的地址信息和数据信息将所述存储器写报文写入至所述存储器。
12.根据权利要求1所述的方法,其特征在于,所述CPU接收所述根组件发送的所述中断请求消息,根据所述中断请求消息和所述存储器内的所述存储器写报文确定触发中断的所述终端设备,包括:
所述CPU接收所述根组件发送的所述中断请求消息,根据所述中断请求消息获取与所述根组件连接的所述交换机的上游端口的端口标识信息;
所述CPU根据与所述根组件连接的所述交换机的上游端口的端口标识信息读取所述存储器内的各个存储器写报文;
所述CPU根据所述存储器内的各个存储器写报文确定所述触发中断的所述终端设备。
13.根据权利要求12所述的方法,其特征在于,所述CPU根据与所述根组件连接的所述交换机的上游端口的端口标识信息读取所述存储器内的各个存储器写报文,包括:
所述CPU根据与所述根组件连接的所述交换机的上游端口的端口标识信息获取与所述根组件连接的所述交换机的下游端口的端口标识信息;
所述CPU根据所述根组件连接的所述交换机的所述下游端口的端口标识读取所述存储器中对应的存储器写报文,并判断所述交换机的该下游端口是否有中断发生;
若有中断发生,根据该下游端口的标识信息依次继续读取各个所述存储器中对应的存储器写报文,直至获取到所述存储器写报文中的所述终端设备的设备标识信息;以及,
所述CPU根据所述存储器内的各个存储器写报文确定所述触发中断的所述终端设备,包括:
所述CPU根据所述存储器写报文中的所述终端设备的设备标识信息确定所述触发中断的所述终端设备。
14.一种pcie系统,其特征在于,所述pcie系统包括CPU、根组件、存储器、至少一个终端设备以及至少一个交换机,其中,
所述终端设备,被配置成当连接某一级所述交换机的所述终端设备触发中断时,将中断请求消息发送至与该终端设备连接的所述交换机,其中,所述中断请求消息包括触发中断的所述终端设备的设备标识信息;
交换机,被配置成接收触发中断的所述终端设备发送的所述中断请求消息,根据所述中断请求消息生成存储器写报文,所述存储器写报文包含触发中断的所述终端设备的设备标识信息,并将所述存储器写报文和所述中断请求消息经由各级交换机传递至所述根组件,以及,在传递至各级交换机时,生成新的存储器写报文并对所述中断请求消息进行更新;
根组件,被配置成将各级所述交换机生成的存储器写报文写入所述存储器并将所述中断请求消息发送至所述CPU;
CPU,被配置成接收所述根组件发送的所述中断请求消息,根据所述中断请求消息和所述存储器内的各个所述存储器写报文确定触发中断的所述终端设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410389522.9A CN117971526A (zh) | 2024-04-02 | 2024-04-02 | 中断触发设备确定方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410389522.9A CN117971526A (zh) | 2024-04-02 | 2024-04-02 | 中断触发设备确定方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971526A true CN117971526A (zh) | 2024-05-03 |
Family
ID=90859774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410389522.9A Pending CN117971526A (zh) | 2024-04-02 | 2024-04-02 | 中断触发设备确定方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971526A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060010277A1 (en) * | 2004-07-08 | 2006-01-12 | International Business Machines Corporation | Isolation of input/output adapter interrupt domains |
US8917734B1 (en) * | 2012-11-19 | 2014-12-23 | Pmc-Sierra Us, Inc. | Method and apparatus for an aggregated non-transparent requester ID translation for a PCIe switch |
CN114265800A (zh) * | 2022-03-02 | 2022-04-01 | 山东云海国创云计算装备产业创新中心有限公司 | 中断消息处理方法、装置、电子设备及可读存储介质 |
US20220318170A1 (en) * | 2021-03-24 | 2022-10-06 | Infineon Technologies Ag | DEVICES, SYSTEMS, AND METHODS FOR PCIe ENDPOINT INTERRUPT |
CN115422106A (zh) * | 2022-09-30 | 2022-12-02 | 新华三信息技术有限公司 | 一种中断请求的处理方法和装置 |
-
2024
- 2024-04-02 CN CN202410389522.9A patent/CN117971526A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060010277A1 (en) * | 2004-07-08 | 2006-01-12 | International Business Machines Corporation | Isolation of input/output adapter interrupt domains |
US8917734B1 (en) * | 2012-11-19 | 2014-12-23 | Pmc-Sierra Us, Inc. | Method and apparatus for an aggregated non-transparent requester ID translation for a PCIe switch |
US20220318170A1 (en) * | 2021-03-24 | 2022-10-06 | Infineon Technologies Ag | DEVICES, SYSTEMS, AND METHODS FOR PCIe ENDPOINT INTERRUPT |
CN114265800A (zh) * | 2022-03-02 | 2022-04-01 | 山东云海国创云计算装备产业创新中心有限公司 | 中断消息处理方法、装置、电子设备及可读存储介质 |
CN115422106A (zh) * | 2022-09-30 | 2022-12-02 | 新华三信息技术有限公司 | 一种中断请求的处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9934177B2 (en) | Methods and systems for accessing storage using a network interface card | |
CN109445905B (zh) | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 | |
WO2017041398A1 (zh) | 数据传输方法和装置 | |
US8972615B2 (en) | Communication with input/output system devices | |
US10331613B2 (en) | Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices therof | |
CN104216865B (zh) | 映射和化简运算加速系统及方法 | |
US9467368B2 (en) | System and method for routing data to devices within an information handling system | |
CN112291293B (zh) | 任务处理方法、相关设备及计算机存储介质 | |
US11201836B2 (en) | Method and device for managing stateful application on server | |
TWI773959B (zh) | 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品 | |
US20100306387A1 (en) | Network interface device | |
US9253275B2 (en) | Cognitive dynamic allocation in caching appliances | |
US10474620B2 (en) | System and method for improving peripheral component interface express bus performance in an information handling system | |
CN114153778A (zh) | 跨网络桥接 | |
US7460531B2 (en) | Method, system, and program for constructing a packet | |
US8055817B2 (en) | Efficient handling of queued-direct I/O requests and completions | |
WO2019232932A1 (zh) | 节点处理方法及装置、计算机可读存储介质和电子设备 | |
CN111835801B (zh) | 文件下载方法、装置、服务器、边缘设备、终端及介质 | |
US9396023B1 (en) | Methods and systems for parallel distributed computation | |
US10560527B2 (en) | Network service chains using hardware logic devices in an information handling system | |
US8041902B2 (en) | Direct memory move of multiple buffers between logical partitions | |
CN117971526A (zh) | 中断触发设备确定方法和装置 | |
WO2020024392A1 (zh) | 节点处理方法及装置、存储介质和电子设备 | |
US8918559B2 (en) | Partitioning of a variable length scatter gather list | |
CN113824689B (zh) | 边缘计算网络、数据传输方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |