首页> 中国专利> 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置

通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置

摘要

一种初始化装置。所述装置包括管理I/O设备控制器,所述管理I/O设备控制器用于管理耦合到PCIe(PCI Express,PCIe)交换网络的多个I/O设备的初始化。所述管理I/O设备控制器用于接收注册第一工作者计算资源的目标中断寄存器地址的请求,其中所述目标中断寄存器地址与耦合到所述PCIe交换网络的第一I/O设备生成的第一中断关联。所述管理I/O设备控制器的映射模块用于将所述目标中断寄存器地址映射到一个域的映射中断寄存器地址,所述第一I/O设备驻留在所述域中。翻译中断寄存器表包括所述域中的多个映射中断寄存器地址,所述多个映射中断寄存器地址与多个工作者计算资源中的多个目标中断寄存器地址关联。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-19

    授权

    授权

  • 2016-11-09

    实质审查的生效 IPC(主分类):G06F13/42 申请日:20141118

    实质审查的生效

  • 2016-10-05

    公开

    公开

说明书

背景

本发明要求2013年11月18日递交的发明名称为“通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置(METHOD AND APPARATUS FOR DELIVERING MSI-X INTERRUPTS THROUGH NON-TRANSPARENT BRIDGES TO COMPUTING RESOURCES IN PCIE CLUSTERS)”的第14/083,206号美国非临时申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文本中。

背景

作为PCI(外围部件互连,Peripheral Component Interconnect)技术的后继者,PCIe(PCI Express,PCIe)在PC和服务器内部署时是中央处理器(central processing unit,CPU)及其外围设备之间使用最广泛的互连。PCIe提供高吞吐量、低延迟、基于分组和分组交换互连技术。PCIe目前大多数部署在单个壳体(即,服务器和PC)内,主要部署在印刷电路板(printedcircuit board,PCB)级处。PCIe以及所有它的属性和优点显然能够成为诸如以太网(Ethernet,ETH)和InfiniBand(InfiniBand,IB)之类的传统数据中心互连技术的灵活且有成本效益的替代选择。

例如,单个PCIe链路可以扩展到256Gbps(吉比特每秒),其中每交换机一跳的延迟大约为130纳秒。链路的带宽可以灵活配置,从1到16个通道,其中通道数必须是2的幂,每个通道为8Gbps(截止第三代PCIe技术)。 PCIe交换机能够以不同速度(即,通道数目)互连链路,而且可以动态重新配置每条链路的通道数(即,交换机端口)。

PCIe技术提供与支持该技术的基于大量不同PCIe集合的I/O设备共享的硬件级资源。该技术本身在服务器内广泛使用,使得大多数最新的CPU已经将PCIe内置在芯片中,因此不需要在CPU和外围设备之间连接的任何额外芯片组。这样,基于PCIe互连的集群或数据中心,由于系统中所需部件的数目和类型较少,将实现成本效益极大提高。另外,与ETH和IB相比而言,PCIe交换机的功耗每Gbps减少几倍,进一步有助于提高这种系统的成本效益。

根据功能,除了硬件级资源虚拟化,该技术还提供RDMA(远程直接数据访问,Remote Direct Memory Access)功能,使其成为高速、低延迟CPU到CPU通信的可实行方案。PCIe还使用基于内置信用的流控,从而在硬件级提供可靠数据传输,并且需要更“苗条”的软件栈。该技术还支持网络的走线以跨越较大距离,并且足够灵活以支持不同的网络拓扑。存在若干具有低成本适配器和电缆的成熟方案,使其成为潜在的具有成本效益的数据中心互连。

PCIe技术的另一大优点在于它的标准化组织(即,PCI-SIG)只定义协议和报文格式。也就是说,实施PCIe的供应商在它们设备内部(例如,交换机、端点等)自由实施任意功能。因此,PCIe提供较大程度的灵活性和潜力以支持其它数据中心互连技术中缺失的应用的不同功能。

具体而言,PCIe架构是一种点到点拓扑,其中串行链路将每个设备连接到根主机。PCIe设备经过逻辑互连或链路进行通信。链路通过两个PCIe端口之间的信道提供点到点通信。这允许两端发送和/或接收普通PCIe请求 (例如,配置读/写、I/O读/写、存储器读/写等)和中断(INTx、MSI、MSI-X等)。

在CPU及其外围设备之间的通信中典型应用PCIe时,中断的初始化提供将存储器地址编程为对应外围设备处的(例如,中断处理程序的)目的地址。初始化允许中断从外围设备传送给CPU以进行处理。当所有外围设备和CPU都位于一台计算机内时,CPU可以适当地在中断初始化期间编程它的外围设备。然而,当扩展PCIe作为数据中心的部件之间的统一互连技术使用时,中断初始化是有问题的,因为在设备处编程中断的CPU可能不知道正确的地址。在这种情况下,初始化将失败。

当PCIe作为数据中心的部件之间的互连技术使用时,在多个独立CPU中的现有PCIe设备中提供中断初始化将是有利的。

发明内容

一种初始化装置。所述装置包括管理I/O设备控制器,所述管理I/O设备控制器用于管理耦合到PCIe(PCI Express,PCIe)交换网络的多个I/O设备的初始化。所述管理I/O设备控制器用于接收注册第一工作者计算资源的目标中断寄存器地址的请求,其中所述目标中断寄存器地址与耦合到所述PCIe交换网络的第一I/O设备生成的第一中断关联。所述管理I/O设备控制器的映射模块用于将所述目标中断寄存器地址映射到一个域的映射中断寄存器地址,所述第一I/O设备驻留在所述域中。翻译中断寄存器表包括所述域中的多个映射中断寄存器地址,所述多个映射中断寄存器地址与多个工作者计算资源的多个目标中断寄存器地址关联。

在其它实施例中,公开了一种初始化中断的系统。所述系统包括多个工作者计算资源。多个目标中断寄存器与所述多个工作者计算资源关联, 其中所述目标中断寄存器包括目的和/或中断寄存器地址,每个目的和/或中断寄存器地址与对应的中断和对应的中断处理例程关联。所述系统包括位于所述多个工作者计算资源上的多个I/O设备(例如,外围设备)。所述系统包括PCIe交换网络,所述PCIe交换网络用于实现所述多个I/O设备和所述多个工作者计算资源之间的通信,所有这些都耦合到所述PCIe交换网络。所述系统包括管理I/O设备控制器或链路控制器,所述管理I/O设备控制器或链路控制器用于部分管理所述多个I/O设备的初始化。所述系统包括翻译中断寄存器表,所述翻译中断寄存器表包括与所述多个工作者计算资源的多个目标中断寄存器地址关联的多个映射中断寄存器地址。所述翻译中断寄存器表与所述管理I/O设备控制器关联并受其控制。另外,所述管理I/O设备控制器用于接收注册第一工作者计算资源的第一目标中断寄存器的目标中断寄存器地址的请求,其中所述目标中断注册地址与耦合到所述PCIe交换网络的第一I/O设备生成的第一中断关联。所述系统包括所述管理I/O设备控制器的映射模块,所述映射模块用于将所述目标中断寄存器地址映射到映射中断寄存器地址。

在其它实施例中,公开了一种初始化中断的方法。所述方法包括接收注册第一工作者计算资源的目标和/或目的中断寄存器地址的请求。所述目的或目标中断寄存器地址与耦合到PCIe(PCI Express,PCIe)交换网络的第一I/O设备生成的第一中断关联。所述方法包括将所述目标中断寄存器地址映射到一个域的映射中断寄存器地址,所述第一I/O设备驻留在所述域中。所述方法包括向所述第一I/O设备发送指令以注册所述映射中断寄存器地址,所述映射中断寄存器地址与所述第一I/O设备的对应I/O中断向量表中的所述第一中断关联。

在一项实施例中,公开了一种计算机系统,所述计算机系统包括耦合到存储器的处理器,所述存储器具有存储在其中的指令,如果所述计算机 系统执行所述指令,使得所述计算机执行一种初始化中断的方法。所述方法包括接收注册第一工作者计算资源的目标和/或目的中断寄存器地址的请求。所述目的或目标中断寄存器地址与耦合到PCIe(PCI Express,PCIe)交换网络的第一I/O设备生成的第一中断关联。所述方法包括将所述目标中断寄存器地址映射到一个域的映射中断寄存器地址,所述第一I/O设备驻留在所述域中。所述方法包括向所述第一I/O设备发送指令以注册所述映射中断寄存器地址,所述映射中断寄存器地址与所述第一I/O设备的对应I/O中断向量表中的所述第一中断关联。

在一些实施例中,公开了一种包括有形、非瞬时性计算机可读存储介质的装置,所述计算机可读存储介质具有存储在其上的计算机可执行指令,当执行所述计算机可执行指令时,使得所述计算机系统执行初始化中断的方法。所述方法包括接收注册第一工作者计算资源的目标和/或目的中断寄存器地址的请求。所述目的或目标中断寄存器地址与耦合到PCIe(PCIExpress,PCIe)交换网络的第一I/O设备生成的第一中断关联。所述方法包括将所述目标中断寄存器地址映射到一个域的映射中断寄存器地址,所述第一I/O设备驻留在所述域中。所述方法包括向所述第一I/O设备发送指令以注册所述映射中断寄存器地址,所述映射中断寄存器地址与所述第一I/O设备的对应I/O中断向量表中的所述第一中断关联。

在阅读下面在各种附图中图示的实施例的详细说明后,所属领域的普通技术人员将明白本发明的各种实施例的这些及其它目的和优点。

附图说明

附图包含在并且构成本说明书的一部分,其中相同的数字描绘相同的元件,附图说明本发明的实施例,并且与描述内容一起用于解释本发明的原理。

图1为根据本发明一项实施例的图示如由多个I/O设备实施的多个工作者计算资源中的地址空间和管理I/O设备控制器中的地址空间之间关系的PCIe集群的方框图,多个工作者计算资源和管理I/O设备控制器都耦合到PCIe交换网络。

图2为根据本发明一项实施例的通过PCIe适配器和管理链路CPU和I/O设备控制器实施的PCIe集群的方框图,其中所述管理链路CPU和I/O设备控制器用于管理耦合到形成到PCIe集群的互连的PCIe(PCI Express,PCIe)交换网络的多个I/O设备的初始化。

图3为根据本发明一项实施例的用于初始化I/O设备中的中断的中断初始化控制器的方框图,其中所述中断可传送给耦合到PCIe交换网络的计算资源。

图4为根据本发明一项实施例图示通过管理I/O设备控制器初始化I/O设备中的中断时的信息流程的信息流程图,其中所述中断可传送给耦合到PCIe交换网络的计算资源。

图5为根据本发明一项实施例图示如管理I/O设备控制器所实施的初始化I/O设备中的中断的方法的流程图,其中所述中断可传送给耦合到PCIe交换网络的计算资源。

图6描绘根据本发明一项实施例的适用于实施本方法的示例性计算机系统的方框图。

具体实施方式

现将详细地对本发明的各种实施例、附图示出的示例做出参考。虽然会结合这些实施例进行描述,但可以理解的是它们并不用于将本发明限制于这些实施例。相反,本发明公开旨在覆盖可以包括在由所附权利要求书限定的本发明公开的精神和范围内的替代物、修改和等同物。另外,在以下本发明的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而, 可以理解的是,实际应用中,可以不包括本发明的这些特定细节。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本发明的各方面造成不必要地模糊。

因此,本发明各实施例提供将中断(例如,消息中断扩展,还称为“MSI-x”、MSI等)初始化并传送给置于PCIe交换网络集群中的非透明桥之后的计算资源。

图1为根据本发明一项实施例的图示如由多个I/O设备所实施的多个工作者计算资源中的地址空间和管理I/O设备控制器中的地址空间之间关系的PCIe集群100的方框图,多个工作者计算资源和管理I/O设备控制器都耦合到PCIe交换网络。

图1示出了具有单个管理(还称为链路)CPU的PCIe集群100,该管理CPU控制主交换网络地址域(F)中的所有资源。在PCIe集群100中,存在多个位于NTB之后的工作者计算资源(例如,CPU),每个工作者计算资源具有它们自己的PCIe地址域(图1中2个节点示例中的A和B)。具体而言,第一工作者计算资源201通过NTB 211耦合到PCIe交换网络;第二工作者计算资源206通过NTB 212耦合到PCIe交换网络210。尽管只示出了两个工作者资源,但本发明各实施例是可扩展的,并且可以支持多个或N个工作者计算资源。

各个工作者计算资源与对应的地址空间关联。例如,工作者计算资源201具有地址空间A 205,工作者计算资源206具有地址空间B 209。地址空间包括配置为中断寄存器地址的地址。这些中断寄存器地址可以包含在中断寄存器中,该中断寄存器包括目的地址,合适的中断处理程序将中断传送给这些 目的地址以进行处理。

如图所示,主PCIe交换网络210用于以通信方式耦合多个设备(例如,计算资源、I/O设备等)。例如,多个PCIe I/O设备220A至220N耦合到PCIe交换网络。PCIe在PCIe交换网络210内用作通信标准。具体而言,PCIe设备可以通过逻辑互连或链路与另一PCIe设备通信,逻辑互连或链路包括两个PCIe端口之间的点到点通信信道。通过这种方式,PCIe请求(例如,配置读/写、I/O读/写、存储器读/写等)可以通过PCIe端口发送和接收。另外,INTx、MSI、MSI-X等中断可通过PCIe传送。

尽管每个PCIe I/O设备220A至220N可以位于对应的计算资源处,但是每个I/O设备的管理由管理链路CPU和/或I/O设备控制器215执行。各个I/O设备220A至220N能够处理和生成中断以向设备(例如,CPU)进行传送,该设备能够接收中断并耦合到PCIe交换网络210。也就是说,I/O PCIe设备用于向任意设备(工作者计算资源等)传送中断,而不一定只用于向PCIe设备位于的计算资源传送,该任意设备能够接收中断并耦合到PCIe交换网络210。

具体而言,管理I/O设备控制器215用于管理耦合到PCIe(PCI Express,PCIe)交换网络210的多个I/O设备220A至220N的初始化。具体地,管理I/O设备控制器215用于接收和初始化注册第一工作者计算资源的目标中断寄存器地址的请求。目标中断寄存器地址与耦合到PCIe交换网络210的第一I/O设备生成的第一中断关联。这通过将目标中断寄存器地址映射到域中地址空间F 217中的映射中断寄存器地址来完成,该域对第一I/O设备和其它I/O设备可见,正如将在下面更详细描述的一样。因此,管理I/O设备控制器215协调中断向第一I/O设备的注册。

图2为根据本发明一项实施例的如通过一个或多个PCIe适配器和管理链路CPU和/或I/O设备控制器270所实施的PCIe集群200的方框图。如图所示,PCIe集群200包括两个设备或计算资源250和260。各个设备包括一个或多个I/O设备,例如存储器、网络接口卡(network interface card,NIC)、SATA RAID存储控制器等。图2仅出于说明目的而示出,并公开PCIe交换网络的一个实施方式。本发明的其它实施例支持实施PCIe交换网络的其它部件配置。

例如,PCIe集群200包括计算资源250,计算资源250包括CPU 252和存储器253(例如,动态随机存取存储器,称为“DRAM”)。计算资源250还包括两个I/O设备、NIC以太网卡255和SATA内存磁盘(例如RAID)控制器。各个I/O设备包括中断向量表,其包括地址向量,其中每个向量与对应的中断关联并指向中断寄存器的地址,该中断寄存器用于接收中断并间接初始化中断处理例程。例如,NIC 255包括IRQ中断向量表256,SATA控制器257包括IRQ中断向量表258。另外,PCIe集群200包括计算资源260,计算资源260包括CPU 262和存储器263(例如,DRAM)。

PCIe交换网络用于以通信方式将计算资源250和260耦合在一起。此外,PCIe交换网络用于将位于各个计算资源250和260的I/O内部设备耦合在一起。通过该方式,位于一个计算资源的I/O设备向耦合到PCIe交换网络的其它计算资源发送中断。

具体而言,在一项实施例中,PCIe交换网络通过一个或多个PCIe适配器、PCIe交换机和管理链路CPU和/或I/O设备控制器270可实施。仍然可以使用其它部件来实施PCIe交换网络。例如,各个设备250和260包括PCIe交换机,该PCIe交换机用于将PCIe消息路由到合适的PCIe信道和/或PCIe 端口。例如,设备250包括PCIe交换机254,设备260包括PCIe交换机264,两个交换机都用于将到达和来自内部部件/设备的消息路由至其它网络部件/设备。

PCIe交换机254和264与PCIe适配器一起工作以在网络设备和这些设备的部件之间路由消息。例如,计算资源250包括PCIe适配器251,计算资源260包括PCIe适配器261。PCIe适配器251和261提供计算资源250和260之间的通信信道或链路,各个计算资源使用PCIe在单个计算资源的内部设备之间进行通信。也就是说,计算资源250和260之间的直接链路提供使用PCIe格式的通信,不需要经过基于以太网的NIC卡,不需要将为PCIe格式化的消息翻译到以太网以通过网络传送,然后也不需要重新翻译回到PCIe以在目的计算资源处进行内部通信。

另外,根据本发明一项实施例,PCIe交换机254和264与管理链路CPU和/或I/O设备控制器215一起工作,管理链路CPU和/或I/O设备控制器215用于管理耦合到PCIe交换网络的多个I/O设备和计算资源的初始化。具体而言,管理链路CPU和/或I/O设备控制器215用于将计算资源的目的地址映射到中断寄存器中的映射中断地址,该中断寄存器由管理链路CPU和/或I/O设备控制器215管理,正如将在下面进一步描述的一样。

图3为根据本发明一项实施例的用于初始化I/O设备中的中断的中断初始化控制器300的方框图,其中所述中断可传送给耦合到PCIe交换网络的计算资源。如图所示,控制器300包括管理I/O设备控制器310、映射中断寄存器320以及映射模块330。

在各实施例中,管理I/O设备控制器310类似于图1至2中示出的管理 链路CPU和/或I/O设备控制器215。具体而言,管理I/O设备控制器310用于管理耦合到PCIe交换网络的多个I/O设备的初始化。也就是说,管理I/O设备控制器310能够通过PCIe交换网络将工作者计算资源连接到I/O设备,该工作者计算资源不包括作为部件的I/O设备。具体来说,管理I/O设备控制器310用于在中断I/O设备处注册工作者计算资源的(例如,中断寄存器的)目标中断寄存器地址。目标中断寄存器地址与第一中断关联,该第一中断在I/O设备处注册。在成功注册之后,在I/O设备处生成的相同中断,在管理I/O设备控制器的帮助下,通过PCIe交换网络经过对应的映射中断寄存器地址传送给目标或目的中断寄存器地址。

具体来说,中断初始化控制器300包括映射模块330。在一项实施例中,映射模块330包含在管理I/O设备控制器300中并由其管理。映射模块用于将对应的工作者计算资源的目标中断寄存器地址映射到翻译中断寄存器表320中的映射中断寄存器地址,该翻译中断寄存器表由管理I/O设备控制器310管理。具体来说,翻译中断寄存器表320包括多个映射中断寄存器地址,其中这些地址与多个工作者计算资源的多个目标或目的中断寄存器地址关联。

例如,返回参考图1,为了使连接到主PCIe交换网络210的I/O设备(例如,220A至220N)向对应的计算资源发送中断(例如,MSI-x中断),I/O设备必须能够寻址该目标计算资源的中断寄存器地址。在一项实施方式中,映射模块330用于提供该映射,并利用合适的映射编程对应的NTB。也就是说,将目标计算资源耦合到PCIe交换网络210的NTB用于将工作者CPU的地址域中的目的或目标中断寄存器地址映射到多个I/O设备的域的映射中断寄存器地址并为PCIe交换网络210所知。

图4至5共同示出了通信系统中I/O设备处的中断初始化,该通信系统包括多个工作者计算资源、多个I/O设备、管理I/O设备控制器和PCIe交换网络,实现了系统中所有部件之间的通信。具体而言,图4为根据本发明一项实施例图示通过管理I/O设备控制器初始化I/O设备中的中断时的信息流程的信息流程图400,其中所述中断可传送给耦合到PCIe交换网络的计算资源。中断初始化通过将对应的工作者计算资源的中断寄存器的目标中断寄存器地址映射到与PCIe交换网络关联的映射中断寄存器的映射中断寄存器地址来完成。

图5为根据本发明一项实施例图示如由管理I/O设备控制器所实施的初始化I/O设备中的中断的方法的流程图500,其中所述中断可传送给耦合到PCIe交换网络的计算资源。在一项实施例中,流程图500图示如由管理I/O设备控制器所实施的初始化I/O设备中的中断的计算机实施方法,其中所述中断可传送给耦合到PCIe交换网络的计算资源。在另一项实施例中,流程图500在计算机系统内实施,计算机系统包括处理器和耦合到处理器的存储器,存储器具有存储在其中的指令,如果计算机系统执行这些指令,使得系统执行如由管理I/O设备控制器所实施的初始化I/O设备中的中断的方法,其中该中断可传送给耦合到PCIe交换网络的计算资源。在又一项实施例中,执行该方法的指令存储在非瞬时性计算机可读存储介质上,该非瞬时性计算机可读存储介质具有计算机可执行指令,用于使得计算机系统执行如由管理I/O设备控制器所实施的初始化I/O设备中的中断的方法,其中该中断可传送给如流程图500所概述的PCIe交换网络的计算资源。在本发明的一些实施例中,流程图500的操作在图6的系统600和/或图1至4的管理I/O设备控制器215内实施。

如图1、2和4所示,在一项实施例中,映射通过基地址寄存器420(Base Address Register,BAR)来完成。BAR 420分配有足够大的地址空间(例如,64位地址空间)。因此,BAR用于将各个工作者计算资源上的中断寄存器的目标地址映射到对应的映射中断寄存器地址,由管理I/O设备控制器215管理。BAR的大小可以大于工作者计算资源处的多个中断寄存器的大小,并且可以访问工作者CPU的地址域(例如,CPU的整个DRAM,用于将数据DMA复制到DRAM的任何位置中)中的额外资源。

对于中断初始化和传送,当管理链路CPU和/或I/O设备控制器215能够控制在PCIe交换网络210的主侧配置资源时,在主交换网络侧配置NTB的一个或多个BAR时,同样在将工作者计算资源的对应中断寄存器中的目标地址映射到这些一个或多个BAR时,工作者计算资源(例如,图1的201和206)依赖于来自管理链路CPU和/或I/O设备控制器215的协助。另外,在配置和初始化PCIe设备220A至220A等I/O设备中的中断时,图1中的工作者计算资源201和206还依赖于管理链路CPU和/或I/O设备控制器215。

为了执行这些任务的所有必要操作,在一项实施例中,涉及两个部件。首先,工作者驱动器(未示出)在对应的工作者计算资源201上运行,主要向I/O设备提供读和写能力。其次,管理设备驱动器(未示出)在管理链路CPU和/或I/O设备控制器215上运行,该管理设备驱动器用于执行所有设备配置,以及设备初始化的主要部分。管理设备还配置代表工作者CPU的NTB。在一项实施例中,管理设备包括图1至2的管理链路CPU和/或I/O设备控制器215。在一项实施例中,两个部件通过某个信道(例如,PCIe门铃、以太网等另一管理网络,等等)相互交换配置信息。

一般而言,中断PCIe I/O设备具有可用的MSI-x向量表,管理链路CPU和/或I/O设备控制器215(代表对应的工作者计算资源,例如CPU 201)利 用PCIe目的消息地址(即,中断消息应当发往的地址,也就是说,给定CPU的中断寄存器)、数据字段和标记字段编程该MSI-x向量表。如图4所示,中断I/O PCIe I/O设备包括中断向量表430。该表430只可用于在管理链路CPU和/或I/O设备控制器215上运行的物理设备驱动器。因此,目的工作者计算资源201在没有管理链路CPU和/或I/O设备控制器215的协助下无法直接将(它的中断寄存器的)它的目的地址编程为中断向量表430中的向量(例如,MSI-x向量)。此外,工作者计算资源201与管理链路CPU和/或设备控制器215一起工作以通过映射特征接收中断。因此,如本发明各实施例所提供,来自主PCIe交换网络的一个或多个I/O设备的中断可通过耦合到PCIe交换网络的NTB传送给任何工作者计算资源。

在一项实施例中,中断初始化通过将设备驱动器的中断初始化部分从工作者计算资源201在功能上卸载到管理I/O设备控制器215来实施。也就是说,管理I/O设备控制器215编程代表工作者计算资源的中断向量(例如,MSI-x)。这在510中执行,其中流程图500的方法包括接收注册第一工作者计算资源201的工作者中断寄存器410的目标中断寄存器地址的请求,其中目标中断寄存器地址与耦合到PCIe(PCI Express,PCIe)交换网络210的第一I/O设备(未在图4中示出)生成的第一中断关联。

具体而言,在图4的操作1中,工作者计算资源201与管理I/O设备控制器215协调,使得工作者计算资源201的中断寄存器410的地址范围可以映射到主PCIe交换网络。这允许管理I/O设备控制器215准确计算这些中断寄存器在NTB的BAR处可用的映射结构地址范围中的地址。此外,工作者计算资源201还可指定其想要注册的中断的数目。

具体地,在流程图500的520处,该方法包括将目标中断寄存器地址映 射到一个域的映射中断寄存器地址,第一I/O设备驻留在该域中。在一项实施例中,通过映射中断寄存器420实例化该映射。

一旦完成映射,执行特定I/O设备(未在图4中示出)处的中断的注册。具体而言,在流程图500的530处,该方法包括使管理I/O设备控制器215向第一I/O设备发送指令以注册映射中断寄存器地址,该映射中断寄存器地址与第一I/O设备的对应I/O中断向量表430中的第一中断关联。具体而言,在图4的操作2a处,管理计算资源215与设备验证:I/O设备中存在足够可用的中断向量以注册中断(例如,将向量注册到合适的映射中断寄存器地址)。也就是说,该方法包括确定向量条目是否在I/O中断向量表中可用于将第一中断注册到第一I/O设备,目的是将映射中断寄存器地址作为第一向量存储在I/O中断向量表中。另外,管理I/O设备控制器215确定I/O设备是否用于生成第一中断。

管理计算资源215获取关于该检查结果的通知。如果存在足够可用的中断向量,在图4的操作2b处,管理I/O设备控制器215通知工作者计算资源201它的可用性。因此,在操作3处,工作者计算资源201在其存储器450中为簿记创建必要的数据结构,还在接收第一中断时创建标识特定I/O设备和中断(如果注册多个中断)的数据字段。

在图4的操作4处,将对应于中断的中断寄存器地址和数据字段的存储器地址转发给管理I/O设备控制器215,该中断包含在工作者计算资源201的目标中断寄存器内。具体而言,将对应于工作者计算资源201处的中断注册的地址空间大小,以及目录地址传送给管理计算资源215。

在操作5处,管理I/O设备控制器215执行将工作者计算资源201的目 标中断地址映射到PCIe交换网络的映射中断地址。具体而言,管理I/O设备控制器215将该数据元素和先前计算和映射的地址写入映射中断寄存器420中,先前计算和映射的地址对应于工作者计算资源201的中断寄存器的目标地址。在一项实施例中,映射中断寄存器包括NTB中的一个或多个映射条目。例如,虚拟存储器空间425的第一子集在映射中断寄存器420中分配,该映射中断寄存器420由管理I/O设备控制器215控制。第一子集的大小等于工作者计算资源201管理的目标中断寄存器的大小。通过这种方式,管理I/O设备控制器215的映射模块(例如,图3的330)能够将多个工作者计算资源的一个或多个工作者中断寄存器中的目标和目的地址映射到虚拟存储器空间的映射中断寄存器中的多个映射地址。

此外,图5的方法包括向第一I/O设备发送映射中断寄存器地址以存储在先前发现的可用条目中。具体地,管理I/O设备控制器215引导对应的I/O设备编程或写入该数据元素和先前计算和映射的地址,该先前计算和映射的地址对应于工作者计算资源201的中断寄存器的目标地址。数据元素和映射地址被写入到I/O设备的中断向量表(例如,MSI-x向量)中。

在图4的操作6处,管理I/O设备控制器215实现I/O设备中的中断。例如,管理I/O设备控制器向I/O设备发送指令以实现中断。因此,在特定事件出现后(即,写操作完成,新报文到达,等等),I/O设备向待中断的CPU的映射地址发送中断(例如,MSI-x消息)。

在图4的操作7处,管理计算资源215向第一工作者计算资源201发送通知,指示第一中断已经在I/O设备中使能。这完成了中断的初始化,该中断由代表工作者计算资源201的管理计算资源215来执行。

图6为能够实施本发明各实施例的计算系统600的示例的方框图。计算系统600大体上表示能够执行计算机可读指令的任意单个或多处理器计算设备或系统。计算系统600的示例包括但不限于,工作站、膝上型电脑、客户端侧终端、服务器、分布式计算系统、手持设备或任意其它计算系统或设备。在计算系统的多数基本配置中,计算系统600可包括至少一个处理器610和系统存储器640。

中央处理器(central processing unit,CPU)610和图形处理器(graphicsprocessing unit,GPU)620都耦合到存储器640。系统存储器640通常表示能够存储数据和/或其它计算机可读指令的任意类型或形式的易失性或非易失性存储设备或介质。系统存储器640的示例包括但不限于RAM、ROM、闪存或任意其它合适的存储器设备。在图6的示例中,存储器640是一个共享存储器,借此存储器存储CPU 610和GPU 620的指令和数据。或者,可存在分别专用于CPU 610和GPU 620的单独存储器。存储器可包括帧缓冲器,用于存储驱动显示屏630的像素数据。

系统600包括用户接口660,其在一种实施方式中包括屏幕光标控制设备。用户接口可包括键盘、鼠标和/或触屏设备(触摸板)。

CPU 610和/或GPU 620通常表示能够处理数据或解析和执行指令的任意类型或形式的处理单元。在某些实施例中,处理器610和/或620可接收来自软件应用或硬件模块的指令。这些指令可使得处理器610和/或620执行本文中所描述和/或所图示的一个或多个示例实施例的功能。例如,处理器610和/或620可单独或与其它元件结合来执行和/或为一种构件执行本文中所述的监控、确定、控制和检测等等中的一个或多个。处理器610和/或620还可执行和/或为一种构件用于执行本文中所描述和/或所图示的任意其它步骤、方法 或过程。

此外,在本发明各实施例中,系统600包括通信系统中的管理I/O设备控制器215,该管理I/O设备控制器用于I/O设备处的中断初始化,该通信系统包括多个工作者计算资源、多个I/O设备、管理I/O设备控制器和PCIe交换网络,实现了系统中所有部件之间的通信。

在一些实施例中,含有计算机程序的计算机可读介质可加载到计算系统600中。存储在计算机可读介质上的所有或一部分计算机程序随后可存储在系统存储器640和/或存储设备的各个部分中。加载到计算设备600中的计算机程序在由处理器610和/或620执行时可使处理器610和/或620执行和/或为一种构件用于执行本文中所描述和/或所图示的示例实施例的功能。另外或替代性地,本文中所描述和/或所图示的示例实施例可在固件和/或硬件中实施。

本发明各实施例可通过仅使用硬件或通过使用软件和必须的通用硬件平台来实施。基于这种理解,本发明的技术方案可以以软件产品的形式体现。软件产品包括使计算机设备(个人计算机、服务器或网络设备)执行本发明各实施例中提供的方法的多个指令。

本文中所描述的各实施例是以计算机可执行指令的大背景来讨论的,计算机可执行指令可位于一个或多个计算机或其它设备执行的某种形式的计算机可读介质,例如程序模块中。举例来说,但不限于,软件产品可存储在非易失性或非瞬时性计算机可读存储媒体中,该媒体包括非瞬时性计算机存储媒体和通信媒体。通常,程序模块包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、部件、数据结构等。程序模块的功能可根据各种实 施例结合或分开。

计算机存储媒体包括以任意方法或技术实现的用于存储计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动媒体。计算机存储媒体包括但不限于随机存取存储器(random access memory,ROM)、只读存储器(read only memory,ROM)、电可擦除可编程ROM(electrically erasable programmable ROM,EEPROM)、闪存或其它存储器技术、光盘ROM(compact disk ROM,CD-ROM)、USB闪盘、多功能数字光盘(digital versatile disk,DVD)或其它光学存储器、盒式磁带、磁带、可移动硬盘、磁盘存储器或其它磁性存储设备,或任意其它可被用来存储所需信息和可以被存取以检索该信息的介质。

通信媒体可具体化为计算机可执行指令、数据结构和程序模块,并包括任意信息传送媒体。举例来说,但不限于,通信媒体包括有线媒体,例如有线网络或直线连接,和无线媒体,例如声学、射频(radio frequency,RF)、红外线和其它无线媒体。上述任何媒体的组合都应包括在计算机可读媒体的范围内。

因此,根据本发明各实施例,描述了用于通信系统中的I/O设备处的中断初始化的系统和方法,该通信系统包括多个工作者计算资源、多个I/O设备、管理I/O设备控制器和PCIe交换网络,实现了系统中所有部件之间的通信。

虽然以上披露使用了具体的方框图、流程图以及示例阐明各种实施例,本文中所描述和/或所图示的每个方框图部件、流程图步骤、操作和/或部件都可以单独地和/或共同地使用一个大范围的硬件、软件或固件(或者它们的任 意组合)配置来实施。另外,在其它部件之中所包括的任意部件的披露应该看作为示例,因为可以实施许多其它架构来达到同样的功能。

本文中所描述和/或所图示的进程参数和步骤顺序仅仅是以举例的方式给出并且可以按需要更改。例如,虽然本文中所图示和/或所描述的步骤可以按照特定顺序来示出或讨论,但这些步骤并非必须按照所图示或所讨论的顺序来执行。本文中所描述和/或所图示的各种示例方法还可以省略本文中所描述和/或所图示的一个或多个步骤或还可以包括除披露的那些之外的额外步骤。

虽然各实施例在本文中已经在全功能性计算系统的背景下进行了描述和/或图示,这些示例实施例中的一个或多个能够以多种方式作为一个程序产品来分发,而无论实际用于进行该分发的计算机可读媒体的具体形式如何。本文中所披露的实施例还可以通过使用执行某些任务的软件模块来实施。这些软件模块可以包括脚本、成批文件或其它可执行文件,它们可以存储在一种计算机可读介质上或者存储在一种计算机系统中。这些软件模块可以将一个计算机系统配置用于执行本文中所披露的一个或多个示例实施例。本文中所披露的一个或多个软件模块可以在云计算环境中实施。云计算环境可以通过互联网提供不同的业务和应用程序。这些基于云的业务(例如,软件即服务、平台即服务、基础设施即服务等等)可以通过网络浏览器或其它远程接口进行访问。本文中所描述的各种功能可以通过远程桌面环境或任意其它基于云的计算环境来提供。

虽然已详细地描述了本发明及其优点,但是应理解,可以在不脱离如所附权利要求书所界定的本发明的精神和范围的情况下对本发明做出各种改变、替代和更改。根据上述教导,许多修改和变更是可能的。选出和描述的 各个实施例的目的是为了更好地解释本发明的原理和其实际应用,因而使本领域技术人员能够更好利用本发明各个实施例和适合预期特定用途的各种变更。

此外,本发明的范围并不局限于说明书中所述的过程、机器、制造、物质组分、构件、方法和步骤的具体实施例。所属领域的一般技术人员可从本发明中轻易地了解,可根据本发明使用现有的或即将开发出的,具有与本文所描述的相应实施例实质相同的功能,或能够取得与所述实施例实质相同的结果的过程、机器、制造、物质组分、构件、方法或步骤。相应地,所附权利要求范围包括这些过程,机器,制造,物质组分,构件,方法,及步骤。

根据本发明的实施例如此处所述。虽然本发明已经在特定实施例中进行了描述,但是应理解,本发明不应该被解释为这些实施例的限制,而是根据以下权利要求书进行解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号