CN107278299B - 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统 - Google Patents

经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统 Download PDF

Info

Publication number
CN107278299B
CN107278299B CN201680012189.3A CN201680012189A CN107278299B CN 107278299 B CN107278299 B CN 107278299B CN 201680012189 A CN201680012189 A CN 201680012189A CN 107278299 B CN107278299 B CN 107278299B
Authority
CN
China
Prior art keywords
downstream
fabric
switch
coupled
virtual
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
CN201680012189.3A
Other languages
English (en)
Other versions
CN107278299A (zh
Inventor
J.古德蒂
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN107278299A publication Critical patent/CN107278299A/zh
Application granted granted Critical
Publication of CN107278299B publication Critical patent/CN107278299B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • 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/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)

Abstract

在实施例中,一种装置包括:第一通信协议的结构;交换机,所述交换机耦合在结构和至少一些下游代理之间,交换机经由交换机的主接口耦合到结构的主接口并且经由第一通信协议与结构进行通信,交换机进一步包括与第一通信协议的边带结构接口连接的边带接口;以及至少一些下游代理,其经由边带结构耦合到交换机,其中所述至少一些下游代理利用第二通信协议的次级总线来枚举,并且交换机设备基于用来枚举第一下游代理的次级总线的总线标识符向第一下游代理提供从上游代理接收的事务。

Description

经由可重配置的虚拟交换机实现次级总线功能性的方法、装 置和系统
技术领域
实施例涉及半导体设备中的通信。
背景技术
多个逻辑块可以合并到单个集成电路中,常常在单个半导体管芯上。在一些设计中,片上结构(fabric)互连(interconnect)和各种设备位置的拓扑可能由于多种原因(包括由于带宽、平面布置图、物理定时等)被预先定义。
在拓扑中引入附加的层来合并根端口或交换机端口模块可能导致芯片布局中的扰乱和重新综合每个产品的设计,增加了努力和周转时间。在结构层级中引入附加的级也可能由于事务处理中的附加分级而影响等待时间/性能。在另一场景中,可能期望具有加速复合体(complex)的不同版本,一个用于片上集成并且另一个用于片外形状因数。由于给定的结构层级中的为了支持不同变型的剧烈改变,现有的方法不能支持对此类型的综合设计区段的复用。
附图说明
图1是根据本发明的实施例的装置的框图。
图2是根据本发明的实施例的虚拟交换机的框图。
图3是根据本发明的实施例的方法的流程图。
图4是根据本发明的另一实施例的方法的流程图。
图5是根据本发明的实施例的通信的选择性路由的图示。
图6是根据本发明的实施例的用于广播消息的路由的布置。
图7是根据本发明的实施例的用于处置从下游设备接收的中断消息的图示。
图8是根据本发明的实施例的SoC的高级框图。
图9是根据本发明的实施例的系统的框图。
图10是可以与实施例一起使用的另一示例系统的框图。
图11是根据本发明的实施例的系统的框图。
具体实施方式
在各种实施例中,单个交换机模块可以合并到诸如片上系统(SoC)或其它处理器之类的集成电路(IC)中。此交换机模块根据给定的通信协议,其在一实施例中符合快速外围组件互连(PCIe)规范,诸如PCIe基础规范修订本3.0(日期为2010年11月10日)或另一可用版本或未来版本。如在本文中使用的,此交换机被称为虚拟交换机,因为其被配置成针对其连接到的多个设备执行PCIe交换操作。
在本文中描述的实施例中,要理解各种片上组件可以经由另一通信协议(例如,经由片上结构协议)进行通信。作为示例,组件可以根据给定的通信协议进行通信,所述给定的通信协议诸如由半导体制造商或设计者发布的集成片上系统结构(IOSF)规范,用来提供用于在诸如SoC之类的芯片内附接知识产权(IP)块或逻辑(在本文中,“块”和“逻辑”可互换地使用)的经标准化的管芯上互连协议。注意,在不同的实施例中,这样的IP块可以是不同类型的,除了许多其它之外还包括诸如有序核心或乱序核心之类的通用处理器、固定功能单元、图形处理器、输入/输出(I/O)控制器、显示控制器、媒体处理器。注意,可以在不同类型的芯片中集成许多不同类型的IP代理。因此,半导体制造商不仅可以跨各种各样的客户段高效地设计不同类型的芯片,其还可以经由规范使得第三方能够设计要合并在这样的芯片中的诸如IP代理之类的逻辑。并且此外,通过为互连协议的许多方面提供多个选项,设计的复用被高效地适应。
现在参考图1,示出了根据本发明的实施例的装置100的框图。如图1中所示,装置100可以在不同的实现中采取不同的形式。例如,装置100可以是在单个半导体管芯上实现的SoC。在其它情况下,装置100是多芯片模块的分离的半导体管芯。在更进一步的情况下,装置100可以被实现为插入卡,例如具有加速器复合体,以提供用于特定的专门功能性(示例包括联网、视频处理等)的高效操作。
在任何情况下,装置100提供多分层结构拓扑。在所示实施例中,存在多个结构110、140、160和170,每个结构在对应的分层级别处。在实施例中,每个结构(一般地,“110x”,本文中“110”用于具体指代顶级结构110)可以被实现为IOSF结构。进一步地,使用本发明的实施例,可以对所有这些结构例示110x使用单个结构设计,以使得可以避免为特定连接定制每个结构的设计复杂性。在实施例中,在层级的不同级别处的结构110x跟踪(shadow)该特定结构下的对应设备的PCIe基地址寄存器(BAR)。不同级别的结构110x使用这些BAR寄存器来解码传入地址并路由到对应设备150。
如图1中进一步图示的,顶级结构110经由第一互连115耦合到虚拟PCIe交换机120。在所示实施例中,互连115是耦合到结构110和PCIe交换机120内的对应主接口的IOSF主互连。如本文中进一步描述的,虚拟PCIe交换机120(也称为PCIe交换机)可以针对经由边带网络130耦合到虚拟PCI交换机120的多个设备执行PCIe交换操作和控制功能性,边带网络130在一实施例中可以是IOSF边带网络。因此,如所看见的,虚拟PCIe交换机120经由第一边带互连125(IOSF边带互连)耦合到边带网络130。更进一步地,边带网络130经由对应的边带互连135(附加IOSF边带互连)耦合到多个设备。
在图1的图示中,存在多个设备1501 - 15011。每个这样的设备150可以是在半导体管芯或插入卡内实现的给定知识产权(IP)逻辑。在不同的实现中,可以提供多种不同的IP逻辑,从专用加速器到联网设备等。在一些实施例中,设备150中的一个或多个可以是对装置100的设计者而言的第三方的。在半导体管芯的情况下,第三方可能是来自半导体设计者、许可者、和/或制造商的独立实体。在插入卡的背景下,这些设备中的一个或多个可以是来自插入卡的设计者和/或制造商的独立实体的。
如图1中所示,PCIe交换机120被实现成仅与要配置在次级总线上的那些设备150接口连接(不考虑它们在物理拓扑中的物理位置)。在各种实施例中,虚拟PCIe交换机120是可重配置的单片逻辑块,用以支持用于多个设备的次级总线,而不扰乱基础结构物理拓扑。虚拟PCIe交换机120与主接口(经由互连115)和边带接口(经由边带互连125)二者进行交互,以处置来自/到设备的不同类型的事务。
在实施例中,虚拟PCIe交换机120实现各种功能性,包括:用于交换机的上游和下游端口的配置空间;使用源解码的配置访问的路由;未实现的PCIe总线和地址范围的减法(subtractive)解码;处置边带互连上的广播消息;边带互连上的传统中断支持;按照PCIe交换机规则的错误记录和报告;次级总线的复位和功率(power)管理处置;以及可选的在片上集成的情况下的PCIe根端口配置空间。
实施例使得能实现经综合的电路块(包括结构和耦合到这样的结构的设备)在没有用于将这些电路块合并在不同产品中的重新设计努力的情况下的跨产品的不同变型的可复用性。以该方式,芯片设计者可以在短时间帧内交付片上和片外二者的多个产品变型。进一步地,该复用是在包括具有多个功能的设备的设计和单根I/O虚拟化(SRIOV)场景中实现的,而不改变标准通信结构。在本文中描述的实施例使得集成在给定SoC或其它处理器内的一个或多个设备能够支持SRIOV。在片外加速复合体的情况下,可以针对加速复合体中的每个设备实现PCIe交换机,而片上复合体可以(基于SRIOV支持、功能数量)仅针对有限的设备实现次级总线。通过向这些设备分配非零总线号,这样的SRIOV设备可以被枚举(enumerate)具有大量虚拟功能。
替代地,在虚拟PCIe交换机内合并任何产品特定的修改。设备1501和1506(示出为通过边带互连135耦合到边带网络130并进而耦合到虚拟PCIe交换机120)可以根据SRIOV机制执行多个功能。为此,这样的设备150可以耦合到虚拟PCIe交换机120以利用此交换机的能力,从而避免对用于这些设备的分离的专用PCIe交换机的需要。
要理解,可以利用次级总线来枚举设备1501和1506以支持设备的多个功能。注意,在图1的实施例中,其它设备150(即,除了设备1501和1506之外的其它设备150)不需要这样的次级总线功能性,并因此未耦合到虚拟PCIe交换机120。注意,在其它情况下,大多数或所有设备150可以实现次级总线,特别是在片外加速复合体的情况下。然而,在典型情况下,这些其它设备150仍然可以耦合到边带网络130(虽然为了图1中的图示的容易而未示出物理连接),以使得能实现贯穿装置100的各种边带信息的传送。要理解,虽然在图1的实施例中以此高级别示出,但许多变型和替代是可能的。
现在参考图2,示出了根据本发明的实施例的虚拟PCIe交换机的框图。如图2中所示,PCIe交换机200经由主接口210提供顶级结构之间的互连,所述主接口210在一实施例中是IOSF主接口。更进一步地,边带接口215(例如,IOSF边带接口)提供到诸如图1的IOSF边带网络135之类的边带网络的互连。IOSF通信协议支持“代理”和“结构”类型的主接口,其中这样的接口对相互交互。在图1的背景下,虚拟PCIe交换机120将自身呈现为“代理”接口并连接到结构110上的“结构”接口。边带接口215耦合到IOSF边带结构,所述IOSF边带结构是基于路由器的结构,以使得任何设备可以使用边带端口ID与任何其它设备通信。并且因此,不同的设备可以经由对应的边带接口发送事务和从虚拟PCIe交换机120接收事务。在实施例中,结构110和设备150可以意识到在边带结构上存在虚拟PCIe交换机120,以使得能实现设计跨不同的产品变型的最大限度复用。
如图2中进一步图示的,虚拟PCI交换机200包括配置空间。此配置空间可以符合给定的PCIe规范。在所示实施例中,配置空间包括上游配置空间220,其可以是具有用于存储与类型1上游设备相关联的配置信息的多个配置寄存器的类型1配置空间。进而,可以存在一个或多个下游配置空间2250-225n,其中每个这样的下游配置空间225与虚拟PCIe交换机200经由边带网络所耦合到的给定设备相关联。因此,参考回图1,可以存在两个下游配置空间225,一个与设备1501相关联并且一个与设备1506相关联。注意,为了根据与交换机120的关联来添加或移除设备,可以添加或移除对应的下游配置空间。将在下面进一步讨论关于此配置空间的各种操作。
虚拟PCIe交换机200进一步包括要执行基于PCIe的功能性的各种逻辑。在所示实施例中,虚拟PCIe交换机200包括要执行减法解码操作的减法解码处置器230,如本文所描述的。经由减法解码处置器230,虚拟PCIe交换机120接收和处置针对在交换机上游配置中分配且未由任何下游端口配置空间要求的地址空间的事务。在另一实现中,可以存在另一代理,该代理可以是减法代理。
传统中断处置器235被配置成针对例如从下游设备接收的传入的传统中断而执行传统中断处置。配置处置器240被配置成执行例如如从上游代理接收的配置操作并且完成配置操作并提供从下游设备接收的配置完成。复位处置器245被配置成当包括虚拟PCIe交换机的系统被复位时在该交换机内执行复位操作。
此外,虚拟PCIe交换机200包括错误记录和报告逻辑250。在实施例中,逻辑250可以包括一组寄存器或其它记忆装置,以存储错误报告信息和状态信息,并且执行错误到这样的记忆装置中的记录。此外,逻辑250可以被配置成过滤错误信息和/或将错误消息传送到适当的实体。广播逻辑255被配置成例如从上游代理接收传入的广播消息,并且将这样的消息选择性地转发到耦合到虚拟PCIe交换机200的一个或多个下游设备。要理解,虽然在图2的实施例中以此高级别示出并且具有这些有限的组件和其它逻辑,但是对于根据实施例的虚拟PCIe交换机而言包括附加的和/或不同的组件和逻辑是可能的。
配置处置器240可以被配置成处置来自结构110的重定向到虚拟PCIe交换机120的配置请求。处置器240执行下游端口的次级和从属总线号的查找,以确定特定配置事务的目的地设备。它还在向上游转发之前分配用于传入的配置事务和从下游设备接收的对应完成的缓冲器空间。配置处置器240还在与每个设备对应的每个流内维持事务之间的排序。
在特定配置事务的总线不被任何下游端口所拥有的情况下,事务被发送到减法解码处置器230,其可以生成主设备中止。减法解码处置器230被配置成接收未由任何下游端口要求的事务,并且回应以针对非发布事务的不支持请求或者如果它是发布类型则丢弃事务。
错误记录和报告逻辑250被配置成在下游端口的配置空间和上游端口中每个设备执行高级错误报告(AER)报告。在任何结构中检测到的错误经由边带结构向此逻辑报告错误。逻辑250被配置成记录具有错误的PCIe事务层协议(TLP)报头。
传统中断处置器235被配置成执行中断调配(swizzling),以将设备的中断映射成上游中断。为此,处置器235使用中断生成设备的设备标识符和对应的端口号来访问调配表并映射到目标INTx。
广播逻辑255被配置成通过查找下游配置设置来确定可以接收特定广播消息的设备并且在边带接口上发送到每个设备来处置广播消息。
复位处置器245可以被配置成在枚举期间操作以确保系统软件(例如,BIOS和/或操作系统)可以与不同的设备和接口交互。这包括链路初始化、链路状态和信用初始化等。复位处置器245还实现要支持PCIe次级总线复位、链路禁用、高级配置和功率接口(ACPI)定义的设备低功率状态等的功能性。为了支持源验证,在相应的IOSF结构端口中跟踪总线映射,其可以由虚拟PCIe交换机120在PCIe枚举时使用边带接口执行。
现在参考图3,示出了根据本发明的实施例的方法的流程图。如图3中所示,方法300可以在从一个或多个上游代理接收传入的事务的顶级结构的逻辑内执行。虽然本发明的范围在此方面不受限制,但这样的上游代理可以是处理器复合体、加速器复合体等的核心或其它主逻辑。如所看见的,方法300通过在顶级结构中从上游代理接收事务(块310)而开始。接下来,可以确定传入的事务是否是针对下游代理的PCIe配置事务(菱形320)。在实施例中,这样的确定可以基于包括命令或用以指示这样的配置事务的存在的其它信息的报头。如果是这样,则控制传递到块330,其中事务可被路由到虚拟PCIe交换机。更具体地,此事务可以经由顶级结构的主接口进行传送,该顶级结构的主接口进而耦合到经由主互连(其可以是IOSF互连)耦合到该结构的虚拟PCIe交换机的对应主接口。由此理解,虚拟PCIe交换机可以适当地处置事务,如本文中进一步描述的。
仍然参考图3,如果替代地事务被确定成不是配置事务,则控制接下来传递到菱形340以确定传入的事务是否是去往下游设备的存储器或I/O事务。如果是这样,则控制传递到块350,其中事务被转发到目标设备。在实施例中,目标设备的标识和适当的寻址可以基于顶级结构中存在的影子地址映射。因此,诸如存储器或IO事务之类的事务可以被传送到给定的下游代理,该下游代理或者(经由对应的主接口和主互连)直接耦合到顶级结构,或者经由结构的一个或多个层级耦合在顶级结构和目标设备之间。
否则,如果确定事务不涉及下游设备,则控制从菱形340传递到块360,其中可以在顶级结构中处置事务。例如,事务可以包括用以适当地配置顶级结构的控制信息,或者它可以包括要在顶级结构内消费的数据。要理解,虽然在图3的实施例中以此高级别示出,但许多变型和替代是可能的。
现在参考4,示出了根据本发明的另一实施例的方法的流程图。如图4中所示,方法400可以由虚拟PCIe交换机内的逻辑来执行以处置如从顶级结构接收到的传入的事务。如所看见的,方法400通过在虚拟PCIe交换机中接收事务(块410)而开始。可以经由将该顶部结构和虚拟PCIe交换机耦合的主互连从顶级结构接收此事务。接下来,确定事务是否是PCIe配置事务(菱形415)。如果是这样,则控制传递到块420,其中可以确定针对此事务的目标设备。更具体地,可以基于事务中的解码信息来使用虚拟PCIe交换机的下游配置空间中的信息来标识适当的目标设备而确定目标设备。在一些情况下,可能发生其中解码信息由上游代理应用的源解码。接下来,控制传递到菱形425,其中确定目标设备是否经由此解码被有效地标识。如果是这样,则控制传递到块430,其中配置事务可以经由主接口转发到目标设备。更具体地,如上面关于图1所讨论的,虚拟PCIe交换机可以经由对应的主接口和一个或多个主互连而耦合到各种下游代理,所述一个或多个主互连耦合到耦合在虚拟PCIe交换机和配置事务所涉及的给定设备之间的不同级别的分层结构。如果替代地未标识出目标设备,则控制传递到块435,其中事务可以被转发到减法代理以供处置。在实施例中,减法代理可以经由虚拟PCIe交换机自身内的逻辑来实现以处置减法操作并发送适当的完成(如果被指示的话)。
仍然参考图4,如果事务被确定成不是PCIe配置事务,则控制从菱形415传递到菱形440以确定事务是否是下游广播消息。如果是这样,则在块445处可以对消息进行解码以确定适当的下游目标设备。此确定可以基于如上所述的解码。此后,在块450处,可以应用目标地址,并且经由边带接口将该消息发送到目标设备。接下来,确定是否为广播消息指示附加的目标设备(在菱形455处)。如果是这样,则控制传递回到块450。否则,在完成将广播消息发送到所有指示的目标设备时,控制传递到块460,其中可以向源发送完成消息。
进一步参考图4,如果确定传入的事务不是广播消息,则控制传递到菱形470以确定传入的消息是否是来自下游设备的传统中断。如果确定事务是传统中断,则控制传递到块475,其中传统中断被映射成上游中断。这样的映射可以至少部分地基于虚拟PCIe交换机的中断映射表中的信息。此后,控制传递到块480,其中可以经由边带接口将中断信息发送到中断控制器(诸如IO高级可编程中断控制器(APIC))。照此,中断可以被发送到适当的实体(例如,为特定类型的中断提供处置器的核心或其它逻辑),以使得可以对中断进行处置。
仍然参考图4,如果替代地确定传入的事务不是传统中断,则控制传递到菱形485以确定是否存在错误消息。如果是这样,则控制传递到块490,其中错误可被记录在下游端口状态记忆装置中。此外,可以基于错误设置向上游转发错误(如果所指示的错误类型不被过滤的话)。
如果替代地事务不与错误消息相关联,则控制传递到块495,其中可以执行虚拟PCIe交换机内用以处置该消息类型的各种其它操作。虽然在图4的实施例中以该高级别示出,但许多变型和替代是可能的。
包括存储器和IO事务的某些事务是带宽密集的;为了支持最大可能带宽,这些事务直接从顶级结构路由到相应的设备150,而没有虚拟PCIe交换机干预。由虚拟PCIe交换机120拥有的设备(在图2示例中,设备1501和1506)具有非零总线号。来自上游代理(例如,处理器核心)的配置事务使用总线-设备-功能标识符将不同的设备作为目标。因为配置空间在虚拟PCIe交换机120内,所以结构110不知道分配给每个设备的总线号。因而,结构110不能将配置事务直接路由到虚拟PCIe交换机120所拥有的设备。为了使得能实现主结构系统上的配置事务路由,虚拟PCIe交换机120将其所拥有的总线呈现给结构110,并且将这些总线作为目标的事务被路由到虚拟PCIe端口。虚拟PCIe交换机120使用下游端口配置空间的次级和从属总线号来基于配置事务中的总线号对目标设备进行解码。在解码之后,配置事务经由主接口和主互连115发送到对应设备。
在实施例中,虚拟PCIe交换机120可以使用IOSF源解码模式来将配置事务转发到目的地设备150。作为目标总线解码的部分,虚拟PCIe交换机120还确定特定总线号是否未被任何设备拥有。在此情况下,事务被转发到减法解码处置器230。注意,在虚拟PCIe交换机120中接收从设备发送的针对配置事务的完成,所述虚拟PCIe交换机120将完成转发到结构110以发送给上游代理。
虚拟PCIe交换机120通过使用虚拟PCIe交换机120内针对每个设备的缓冲器(诸如先进先出(FIFO)缓冲器)来实现针对每个设备的配置事务的排序。FIFO的大小确定每个设备进行中的配置事务的数量,其可能与实现相关。因为配置事务不是执行密集的,所以这些缓冲器的大小可能相对小,以节省管芯面积。为了遵从由同一设备生成的配置完成和中断之间的PCIe排序要求,在发送配置完成之前向上推送在先中断。在实施例中,可以通过确保结构110的下游端口在将配置完成发送到虚拟PCIe交换机120之前首先推送中断(如果它是)来实现此排序。注意,这样的配置完成和中断由对应设备生成,并且被经由结构110向上游路由。
虚拟PCIe交换机120还经由主接口路由按ID路由的消息类型事务,类似于(使用源解码的)配置事务。消息类型事务是“已发布”类型,并且因此不期望来自设备的完成。现在参考图5,示出了根据本发明的实施例的通信的选择性路由的图示。如图5中所示,装置100可以如上面图1中那样配置。在图5中所示的实施例中,在顶级结构110中从上游代理接收不同的事务类型。具体如所看见的,除了一个或多个其它事务180之外,在结构110中接收一个或多个配置事务,所述一个或多个其它事务180在实施例中可以是存储器事务和/或I/O事务。如所看见的,可能发生对这些不同事务类型的不同处置。
可以经由主互连115直接从结构110向虚拟PCIe交换机120提供配置事务170。进而,在执行适当的映射之后,虚拟PCIe交换机120将配置事务转发到目标设备(例如,图5的实施例中的设备1506)。如所看见的,配置事务的此转发可以经由耦合在虚拟PCIe交换机120和设备1506之间的主互连115(图示为配置事务流175)。为了利用主互连的增强带宽,事务180可以直接从结构110路由到目标设备(例如,在图5实施例中的设备1506)。
关于图6,图示了根据本发明的实施例的用于广播消息的路由的布置。如所看见的,可以在虚拟PCIe交换机120中或者直接从源代理(诸如上游代理,为了图示的容易而未在图6中示出)或者经由结构110接收传入的广播消息190。在不同的实施例中,广播消息可以包括但不限于要经由边带接口传送的中断的结束、功率管理事件(PME_TO)等。在特定实现中,可以使用转换器将处理单元发起的广播消息转换到边带结构中。在其它情况下,在缺乏这样的模块的情况下,虚拟PCIe交换机120实现类似的功能性以将广播消息转换到边带结构。这里,虚拟PCIe交换机120代表交换机上游端口或者从边带或者从定制接口接收广播消息(如果边带转换由虚拟PCIe交换机处置的话)。虚拟PCIe交换机120使用下游端口的配置值来确定特定广播消息是否可以被发送到对应设备。一旦广播消息被提取,虚拟PCIe交换机120就一次一个地将消息发送到每个目标设备的边带端口并完成广播。在虚拟PCIe交换机120中的适当处置(包括确定广播目的地或目标设备的列表)之后,这样的广播消息可以经由边带互连125和135(通过边带网络130)作为涉及特定目标设备(即,设备1501和1506)的消息192和194被发出到目标设备。
下游设备150可以进一步向上游向虚拟PCIe交换机120发送消息。在实施例中,传入的消息类型可以包括但不限于:传统中断(INTx)、PCIe错误消息、PME_TO_ACK等。现在参考图7,示出了根据本发明的实施例的用于处置从下游设备接收的中断消息的图示。如所看见的,传统中断消息可以经由边带互连135、边带网络130和边带互连125从下游设备1501和1506发送到虚拟PCIe交换机120。在对这些传入的中断执行各种处理之后,与这些中断相关联的信息可以(例如,经由结构110)向上游转发到给定的目的地,例如给定的上游代理。要理解,虽然图7的样本流程在INTx消息的背景下,但该流程同样适用于其它消息。
虚拟PCIe交换机120按照PCIe交换机要求来实现INTx调配。在从特定设备接收到INTx时,交换机内的调配逻辑(其可以在中断处置器235中)访问映射表以将中断映射成对应的上游INTx。然后,映射的INTx可以经由边带接口发送到IO APIC。虚拟PCIe交换机120还按照PCIe规范实现针对上游端口和下游端口二者的高级错误报告(AER)。在边带接口上接收到来自设备的错误消息时,虚拟PCIe交换机120记录对应的交换机下游端口中的错误,并基于错误设置将错误升级到上游端口。
结构110x还可以检测事务中的错误,并且在检测到错误时,结构110x可以向虚拟PCIe交换机120发送错误消息。在此情况下,虚拟PCIe交换机120基于其拥有的号码过滤错误消息,针对其拥有的总线,记录对应的下游端口和上游端口中的错误。对于其它错误消息,错误消息可以被转发到结构错误处置块。在不同的实施例中,此错误处置块可以是顶部结构110的部分,或者它可以是独立逻辑。
因此,实施例通过不扰乱物理布局并且仍然提供在给定设计中添加或丢弃对任何设备的次级总线支持的灵活性来实现互连结构和设备的最高程度的复用。注意,此虚拟PCIe交换机不同于给定结构内的具有内联上游和下游交换机端口的典型PCIe交换机。
现在参考图8,示出了根据本发明的实施例的SoC的高级框图。如图8中所示,SoC500可以包括各种组件,所有所述各种组件都可以集成在单个半导体管芯上以以高速度和低功率提供各种处理能力,这消耗相当少量的基板面。如图8中所看见的,SoC 500包括多个核心5050 - 505n。在各种实施例中,核心505可以是相对简单的有序核心或较复杂的乱序核心,或者是有序核心和无序核心的组合。如所看见的,核心505可以经由一致性互连515而互连,所述一致性互连515进一步耦合到高速缓冲存储器510,例如共享的最后一级缓存(LLC)。虽然本发明的范围在这方面不受限制,但是在一个实施例中一致性互连515可以根据可从加利福尼亚州圣克拉拉市的英特尔公司获得的快速路径互连(QPI)TM规范。
如在图8中进一步所看见的,一致性互连515可以经由桥接器520与结构550(其可以是IOSF结构)通信。一致性互连515可以进一步经由集成存储器控制器515与片外存储器(为了图示的容易而未在图8的实施例中示出)通信,并且进一步通过桥接器530与结构550通信。
如在图8中进一步所看见的,各种组件可以耦合到结构550,所述各种组件包括可用于执行诸如安全处理、密码功能等的各种操作的内容处理模块(CPM)540。此外,显示处理器545可以是为关联的显示器渲染视频的媒体处理流水线的部分。
如进一步所看见的,结构550可以进一步耦合到IP代理555。虽然为了图示的容易在图8实施例中仅示出了单个代理,但要理解在不同的实施例中多个这样的代理是可能的。通用串行总线(USB)控制器565可以根据USB协议与各种设备进行通信。虚拟PCIe交换机560也耦合到结构550并且使得能实现与边带网络580的互连,所述边带网络580进而可以耦合到多种代理,诸如IP代理555和其它这样的代理,其耦合到进而耦合到结构550的其它分层结构。经由虚拟PCIe交换机560,可以支持多种不同的SoC配置而只改变虚拟PCIe交换机560的配置(而不是改变所耦合的代理、结构等的配置)。最后,图8的实施例中示出了桥接器570,其可以用于与诸如开放核心协议(OCP)或ARM高级微控制器总线架构(AMBA)协议之类的其它协议的附加组件进行通信。虽然在图8的实施例中示出具有这些特定组件,但要理解本发明的范围不以该方式限制,并且在不同的实施例中可以存在附加的或不同的组件。
要理解,如本文中描述的包括集成设备的处理器或SoC(或其它集成电路)可用在许多不同的系统中,范围从小型便携式设备到高性能计算系统和网络。现在参考图9,示出了根据本发明的实施例的系统的框图。在图9的实施例中,系统900可以是包括多个域的SoC,每个域可以被控制以在独立的操作电压和操作频率下操作。作为具体的说明性示例,系统900可以是基于英特尔®架构核心™的SoC,诸如可从英特尔公司获得的i3、i5、i7或另一这样的处理器。然而,诸如可从加利福尼亚州桑尼维尔的高级微器件公司(AMD)获得的其它低功率SoC或处理器、来自ARM控股有限公司或其被许可者的基于ARM的设计、或者来自加利福尼亚州桑尼维尔的MIPS技术公司或其被许可者或采用者的基于MIPS的设计可以替代地存在于其它实施例中,诸如苹果A7处理器、高通骁龙处理器、或德州仪器OMAP处理器。这样的SoC可以用在诸如智能电话、平板计算机、平板手机计算机、超极本TM计算机、IoT设备、可穿戴物或其它便携式计算设备之类的低功率系统中。
在图9中示出的高级视图中,SoC 900包括包括多个核心的核心域910。核心域910可以包括一个或多个处理器核心、一个或多个高速缓冲存储器和其它电路。域的每个核心可以支持一个或多个指令集(例如,x86指令集(具有已经被添加较新版本的一些扩展);MIPS指令集;ARM指令集(具有可选的附加扩展,诸如NEON))或其它指令集或其组合。注意,一些核心单元可以是(例如,不同的设计的)异构资源。此外,每个这样的核心可以耦合到高速缓冲存储器(未示出),其在实施例中可以是共享级别(L2)高速缓冲存储器。非易失性记忆装置930可以用于存储各种程序和其它数据。例如,此记忆装置可以用于至少存储微代码、诸如BIOS之类的引导信息、其它系统软件等的部分。
核心域910还可以包括诸如网络接口之类的接口以使得能实现到SoC的附加电路的互连。在实施例中,核心域910耦合到根复合体915和存储器控制器935。进而,存储器控制器935控制与诸如DRAM之类的存储器的通信(为了图示的容易而未在图9中示出)。根复合体915进而耦合到结构905,其在实施例中可以是各种设备可以耦合到的分层结构系统的顶级结构。此外,在次级总线上配置的设备925可以如本文中所描述的那样(例如,通过边带网络)接口连接到虚拟PCIe交换机920(为了图示的容易而未在图9中示出)。
还可以存在其它加速器。在图9的图示中,视频编解码器(coder)950可以执行包括针对视频信息的编码和解码的编解码操作,例如为高分辨率视频内容提供硬件加速支持。可以进一步提供显示控制器955以使显示操作加速,包括提供对系统的内部和外部显示的支持。此外,可以存在安全处理器945以执行安全操作。单元中的每个可以使其功率消耗经由功率管理器940来控制,所述功率管理器940可以包括要执行各种功率管理技术的控制逻辑。
在一些实施例中,SoC 900可以进一步包括耦合到各种外围设备可以耦合到的一致性结构的非一致性结构。一个或多个接口960a-960d使得能实现与一个或多个片外设备的通信。这样的通信可以根据多种通信协议,除了其它类型的通信协议之外还诸如PCIeTM、GPIO、USB、I2C、UART、MIPI、SDIO、DDR、SPI、HDMI。虽然在图9的实施例中以该高级别示出,但要理解本发明的范围在此方面不受限制。
现在参考图10,示出了可以与实施例一起使用的另一示例系统的框图。在图10的图示中,系统1300可以是诸如平板计算机、2:1平板、平板手机或其它可转换或独立的平板系统之类的移动低功率系统。如所图示的, SoC 1310存在并且可以被配置成起用于设备的应用处理器的作用。SoC 1310可以包括如本文中描述的包括虚拟交换机(例如,虚拟PCIe交换机)的管芯上互连架构,该虚拟交换机可以提供与要利用次级总线来枚举的多种设备的通信。照此,可以针对特定SoC设计从基础设计对此虚拟交换机进行重配置,而结构例示和IP逻辑例示可以保持固定,没有用以适应这样的次级总线功能性的定制。
多种设备可以耦合到SoC 1310。在所示的图示中,存储器子系统包括耦合到SoC1310的闪存1340和DRAM 1345。此外,触摸面板1320耦合到SoC 1310以经由触摸提供显示能力和用户输入,包括在触摸面板1320的显示器上供应虚拟键盘。为了提供有线网络连接性,SoC 1310耦合到以太网接口1330。外围集线器1325耦合到SoC 1310以使得能实现与各种外围设备的接口连接,诸如可以通过各种端口或其它连接器中的任何而耦合到系统1300。
除了SoC 1310内的内部功率管理电路和功能性外,PMIC 1380耦合到SoC 1310,以例如基于系统是由电池1390供电还是经由AC适配器1395由AC电源供电来提供基于平台的功率管理。除了此基于电源的功率管理之外,PMIC 1380可以进一步基于环境条件和使用条件来执行平台功率管理活动。更进一步地,PMIC 1380可以将控制和状态信息传送到SoC1310,以引起SoC 1310内的各种功率管理动作。
仍然参考图10,为了提供无线能力,WLAN单元1350耦合到SoC 1310,并进而耦合到天线1355。在各种实现中,WLAN单元1350可以提供根据一个或多个无线协议(包括IEEE802.11协议、蓝牙TM协议或任何其它无线协议)的通信。
如进一步所图示的,多个传感器1360可以耦合到SoC 1310。这些传感器可以包括各种加速度计、环境传感器和其它传感器(包括用户姿态传感器)。最后,音频编解码器1365耦合到SoC 1310以提供到音频输出设备1370的接口。当然要理解,虽然在图10中被示出具有此特定实现,但许多变型和替代是可能的。
现在参考图11,示出了根据本发明的实施例的系统的框图。如图11中所示,多处理器系统1500包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如图11中所示,处理器1570和1580中的每个可以是包括代表性的第一和第二处理器核心(即,处理器核心1574a和1574b以及处理器核心1584a和1584b)的多核心处理器。每个处理器1570和1580可以进一步包括根复合体1575和1585,其可以如在本文中描述的那样经由顶级结构(为了图示的容易而未在图11中示出)耦合到虚拟交换机1577和1587以使得能实现与一个或多个集成设备1579和1589的通信,所述一个或多个集成设备1579和1589可以被配置用于多功能操作并且利用次级总线来枚举。在各种实施例中,集成设备1579和1589可以是任何期望类型的专用处理器、加速器或要被集成到处理器中的其它期望设备。
仍然参考图11,第一处理器1570进一步包括存储器控制器中枢(MCH)1572和点对点(P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如图11中所示,MCH 1572和1582将处理器耦合到相应的存储器,即存储器1532和存储器1534,其可以是本地附接到相应处理器的系统存储器(例如,DRAM)的部分。第一处理器1570和第二处理器1580可以分别经由P-P互连1562和1564耦合到芯片组1590。如图11中所示,芯片组1590包括P-P接口1594和1598。
此外,芯片组1590包括通过P-P互连1539将芯片组1590与高性能图形引擎1538耦合的接口1592。进而,芯片组1590可以经由接口1596耦合到第一总线1516。如图11中所示,各种输入/输出(I/O)设备1514可以与将第一总线1516耦合到第二总线1520的总线桥接器1518一起耦合到第一总线1516。各种设备可以耦合到第二总线1520,在一个实施例中包括例如键盘/鼠标1522、通信设备1526和数据存储单元1528(诸如可包括代码1530的盘驱动器或其它大容量存储设备)。进一步地,音频I/O 1524可以耦合到第二总线1520。
实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可被布置成执行在本文中描述的各种方法和技术。当然,本发明的范围不限于通信设备,并且替代地,其它实施例可以涉及用于处理指令的其它类型的装置或者包括指令的一个或多个机器可读介质,所述指令响应于被在计算设备上执行而使得该设备执行在本文中描述的方法和技术中的一个或多个。
以下示例关于其它实施例。
在一个示例中,一种装置包括:第一通信协议的结构,其要在上游方向上与上游代理进行通信并要在下游方向上与多个下游代理进行通信;交换机,其耦合在结构和所述多个下游代理中的至少一些下游代理之间,交换机要经由交换机的主接口耦合到结构的主接口并且要经由第一通信协议与结构进行通信,交换机进一步包括边带接口以与第一通信协议的边带结构进行接口连接;以及所述至少一些下游代理,其经由边带结构耦合到交换机,其中所述至少一些下游代理要利用第二通信协议的次级总线来枚举,并且交换机设备要基于用来枚举第一下游代理的次级总线的总线标识符向第一下游代理提供从上游代理接收的事务。
在示例中,交换机包括:配置空间,配置空间具有上游空间和用于所述至少一些下游代理的下游空间;以及配置逻辑,其要从上游代理接收配置事务并基于下游空间确定要接收事务的第一下游代理。
在示例中,结构要经由耦合在结构和交换机之间的第一主互连向交换机传送配置事务,接收针对第一下游代理的存储器事务,并且经由一个或多个次级结构将存储器事务传送至第一下游代理,所述一个或多个次级结构经由多个主互连耦合在结构和第一下游代理之间。
在示例中,所述一个或多个次级结构包括影子地址解码器记忆装置,其要存储用于耦合到对应的次级结构的多个下游代理的地址解码信息,以使得对应的次级结构能够将存储器事务路由到第一下游代理。
在示例中,交换机进一步包括:减法解码处置器,其要处置未涉及所述至少一些下游代理的事务;错误处置器逻辑,其要从第一下游代理接收错误消息,更新与第一下游代理相关联的状态记忆装置,并且将与错误消息相关联的错误信息转发至结构;以及广播逻辑,其要从结构接收广播消息,确定所述至少一些下游代理中的要接收广播消息的目标下游代理,并且将广播消息发送到目标下游代理。
在示例中,交换机包括虚拟PCIe交换机。
在示例中,虚拟PCIe交换机包括可重配置逻辑,所述可重配置逻辑要具有用于包括第一层级的结构的第一半导体管芯的第一配置并且要具有用于包括第二层级的结构的第二半导体管芯的第二配置。
在示例中,第一层级的结构中的结构和第二层级的结构中的结构具有单一设计。
注意,上面的装置可以被实现为使用各种部件的处理器。
在示例中,处理器包括合并在用户装备触摸使能的设备中的SoC。
在另一示例中,系统包括显示器和存储器,并且包括上面的示例中的一个或多个示例的处理器。
在另一示例中,一种方法包括:在处理器的虚拟交换机中接收配置事务;基于虚拟交换机的多个下游配置空间中的至少一个下游配置空间中的信息,确定耦合到虚拟交换机的多个下游设备中的要接收配置事务的目标设备;基于该确定,经由耦合在虚拟交换机和目标设备之间的主互连将配置事务转发到目标设备;以及如果配置事务没有将所述多个下游设备中的任何下游设备作为目标,则将配置事务转发到减法代理。
在示例中,该方法进一步包括:在虚拟交换机中接收广播消息;确定要接收广播消息的多个下游设备的列表;以及将列表中的所述多个下游设备中的每个的目标地址应用于广播消息,并且经由耦合在虚拟交换机和对应的下游设备之间的一个或多个边带互连将广播消息发送到列表中的被作为目标的多个下游设备。
在示例中,该方法进一步包括在向列表中的所述多个下游设备发送广播消息之后,从虚拟交换机向源代理发送完成消息。
在示例中,该方法进一步包括:在虚拟交换机中经由边带互连从第一下游设备接收传统中断;将传统中断映射成上游中断;以及将上游中断发送到耦合到虚拟交换机的中断控制器。
在示例中,该方法进一步包括:从第一下游设备接收错误消息;在与第一下游设备相关联的下游端口状态记忆装置中记录与错误消息相关联的错误;以及基于与第一下游设备相关联的一个或多个错误设置,将与错误相关联的错误信息转发到耦合到虚拟交换机的上游设备。
在示例中,该方法进一步包括:在耦合到虚拟交换机的结构中接收来自上游设备的配置事务;以及经由耦合在结构和虚拟交换机之间的第一主互连,将配置事务路由到虚拟交换机。
在示例中,该方法进一步包括:在结构中接收来自上游设备的针对第一下游设备的存储器事务;以及经由耦合在结构和第一下游设备之间的第二主互连,基于与结构相关联的影子地址映射表将存储器事务转发到第一下游设备。
在另一示例中,一种包括指令的计算器可读介质要执行上面的示例中的任何示例的方法。
在另一示例中,一种包括数据的计算机可读介质要由至少一个机器使用以制造至少一个集成电路来执行上面的示例中的任何一个示例的方法。
在另一示例中,一种装置包括用于执行上面的示例中的任何一个示例的方法的部件。
在另一示例中,一种SoC包括:至少一个核心,其要执行指令;一致性互连,其要将所述至少一个核心耦合到存储器控制器;非一致性互连系统的第一结构,其要经由桥接器逻辑耦合到一致性互连,第一结构要耦合到非一致性互连系统的一个或多个分层结构;以及虚拟PCIe交换机,其经由第一主互连耦合到第一结构并且经由非一致性互连系统的边带网络耦合到至少一个下游代理,其中所述至少一个下游代理利用次级总线来枚举,次级总线对虚拟PCIe交换机可见并且对第一结构不可见。
在示例中,虚拟PCIe交换机要经由第一结构从所述至少一个核心接收配置事务,并且向第一下游代理提供配置事务。
在示例中,第一结构要经由第一主互连将配置事务传送到虚拟PCIe交换机,接收针对第一下游代理的存储器事务,并且经由一个或多个分层结构中的至少一个分层结构向第一下游代理传送存储器事务,所述至少一个分层结构经由多个主互连耦合在第一结构和第一下游代理之间。
在示例中,虚拟PCIe交换机要从第一下游设备接收错误消息,在虚拟PCIe交换机的端口状态记忆装置中记录与错误消息相关联的错误,并且经由第一结构将与错误相关联的错误信息转发到所述至少一个核心。
在示例中,虚拟PCIe交换机要经由边带网络从第一下游设备接收传统中断,将传统中断映射成上游中断,并且经由第一结构将上游中断发送到耦合到虚拟PCIe交换机的中断控制器。
在示例中,虚拟PCI交换机包括:减法解码处置器,其要处置未涉及所述至少一个下游代理的事务;错误处置器逻辑,其要从第一下游代理接收错误消息,更新与第一下游代理相关联的状态记忆装置,并且将与错误消息相关联的错误信息转发至第一结构;以及广播逻辑,其要从第一结构接收广播消息,确定所述至少一个下游代理中的要接收广播消息的目标下游代理,并且将广播消息发送到目标下游代理。
在示例中,第一结构和所述一个或多个分层结构具有用于多个不同SoC产品的固定设计,并且虚拟PCIe交换机被针对所述不同SoC产品中的至少一些产品进行重配置。
要理解,上面的示例的各种组合是可能的。
实施例可以以代码实现,并且可以被存储在具有指令存储在其上的非暂时性存储介质上,其可以用于对系统进行编程以执行指令。实施例还可以以数据实现,并且可以被存储在非暂时性存储介质上,所述数据如果被至少一个机器使用,则使得所述至少一个机器制造至少一个集成电路以执行一个或多个操作。存储介质可以包括但不限于:包括软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)和磁-光盘的任何类型的盘,半导体设备,诸如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡,或者适用于存储电子指令的任何其它类型的介质。
虽然已经相对于有限数量的实施例描述了本发明,但是本领域技术人员将领会来自于其的众多修改和变型。意图所附权利要求书涵盖如落入该本发明的真实精神和范围内的所有这样的修改和变型。

Claims (29)

1.一种用于与边带结构进行接口连接的装置,包括:
第一通信协议的结构,其要在上游方向上与上游代理进行通信并要在下游方向上与多个下游代理进行通信;
交换机,其耦合在所述结构和所述多个下游代理中的至少一些下游代理之间,所述交换机要经由所述交换机的主接口耦合到所述结构的主接口并且要经由所述第一通信协议与所述结构进行通信,所述交换机进一步包括边带接口以与所述第一通信协议的边带结构进行接口连接;以及
所述至少一些下游代理,其经由所述边带结构耦合到所述交换机,其中所述至少一些下游代理要利用第二通信协议的次级总线来枚举以支持多个功能,并且所述交换机要经由所述结构来接收从所述上游代理接收的配置事务,基于用来枚举第一下游代理的所述次级总线的总线标识符对要路由到所述第一下游代理的所述配置事务进行解码,所述总线标识符对所述结构而言是未知的,并且经由所述结构将所述配置事务发送到所述第一下游代理。
2.根据权利要求1所述的装置,其中所述交换机包括:
配置空间,其具有上游空间和用于所述至少一些下游代理的下游空间;以及
配置逻辑,其要从所述上游代理接收所述配置事务并基于所述下游空间确定要接收所述事务的所述第一下游代理。
3.根据权利要求2所述的装置,其中所述结构要经由耦合在所述结构和所述交换机之间的第一主互连向所述交换机传送所述配置事务,接收针对所述第一下游代理的存储器事务,并且直接经由一个或多个次级结构将所述存储器事务传送至所述第一下游代理而没有与所述交换机的通信,所述一个或多个次级结构经由多个主互连而耦合在所述结构和所述第一下游代理之间。
4.根据权利要求3所述的装置,其中所述一个或多个次级结构包括影子地址解码器记忆装置,所述影子地址解码器记忆装置要存储针对耦合到对应的次级结构的多个下游代理的地址解码信息,以使得所述对应的次级结构能够将所述存储器事务路由到所述第一下游代理。
5.根据权利要求2所述的装置,其中所述交换机进一步包括:
减法解码处置器,其要处置未涉及所述至少一些下游代理的事务;
错误处置器逻辑,其要从所述第一下游代理接收错误消息,更新与所述第一下游代理相关联的状态记忆装置,并且将与所述错误消息相关联的错误信息转发至所述结构;以及
广播逻辑,其要从所述结构接收广播消息,确定所述至少一些下游代理中的要接收所述广播消息的目标下游代理,并且将所述广播消息发送到所述目标下游代理。
6.根据权利要求1所述的装置,其中所述交换机包括虚拟快速外围组件互连(PCIe)交换机。
7.根据权利要求6所述的装置,其中所述虚拟PCIe交换机包括可重配置逻辑,所述可重配置逻辑要具有用于包括第一层级的结构的第一半导体管芯的第一配置并且要具有用于包括第二层级的结构的第二半导体管芯的第二配置。
8.根据权利要求7所述的装置,其中所述第一层级的结构中的结构和所述第二层级的结构中的结构具有单一设计。
9.一种用于与虚拟交换机进行通信的方法,包括:
在处理器的虚拟交换机中从所述处理器的耦合到所述虚拟交换机的结构接收配置事务,所述配置事务来自所述处理器的上游设备;
基于用来枚举多个下游设备中的耦合到所述虚拟交换机的目标设备的第二通信协议的次级总线的总线标识符、基于所述虚拟交换机的多个下游配置空间中的至少一个下游配置空间中的信息来确定所述目标设备以接收所述配置事务,所述总线标识符对所述结构而言是未知的,所述结构要根据第一通信协议进行通信;
基于所述确定,经由所述结构以及耦合在所述虚拟交换机和所述目标设备之间的主互连将所述配置事务转发到所述目标设备;以及
如果所述配置事务不将所述多个下游设备中的任何下游设备作为目标,则将所述配置事务转发到减法代理。
10.根据权利要求9所述的方法,进一步包括:
在所述虚拟交换机中接收广播消息;
确定要接收所述广播消息的多个下游设备的列表;以及
将针对所述列表中的所述多个下游设备中的每个的目标地址应用于所述广播消息,并且经由耦合在所述虚拟交换机和对应的下游设备之间的一个或多个边带互连将所述广播消息发送到所述列表中的被作为目标的多个下游设备。
11.根据权利要求10所述的方法,进一步包括在向所述列表中的所述多个下游设备发送所述广播消息之后,从所述虚拟交换机向源代理发送完成消息。
12.根据权利要求9所述的方法,进一步包括:
在所述虚拟交换机中经由边带互连从第一下游设备接收传统中断;
将所述传统中断映射成上游中断;以及
将所述上游中断发送到耦合到所述虚拟交换机的中断控制器。
13.根据权利要求12所述的方法,进一步包括:
从所述第一下游设备接收错误消息;
在与所述第一下游设备相关联的下游端口状态记忆装置中记录与所述错误消息相关联的错误;以及
基于与所述第一下游设备相关联的一个或多个错误设置,将与所述错误相关联的错误信息转发到耦合到所述虚拟交换机的上游设备。
14.根据权利要求9所述的方法,进一步包括:
在耦合到所述虚拟交换机的所述结构中从所述上游设备接收所述配置事务;以及
经由耦合在所述结构和所述虚拟交换机之间的第一主互连,将所述配置事务路由到所述虚拟交换机。
15.根据权利要求14所述的方法,进一步包括:
在所述结构中从所述上游设备接收针对第一下游设备的存储器事务;以及
经由耦合在所述结构和所述第一下游设备之间的第二主互连,基于与所述结构相关联的影子地址映射表将所述存储器事务转发到所述第一下游设备。
16.一种包括机器可读指令的机器可读存储介质,所述机器可读指令在被执行时要实现如在权利要求9至15中的任一项中所要求保护的方法。
17.一种用于与至少一个下游代理进行接口连接的片上系统(SoC),包括:
至少一个核心,其要执行指令;
一致性互连,其要将所述至少一个核心耦合到存储器控制器;
非一致性互连系统的第一结构,其要经由桥接器逻辑耦合到所述一致性互连,所述第一结构要耦合到所述非一致性互连系统的一个或多个分层结构;以及
虚拟快速外围组件互连(PCIe)交换机,其经由第一主互连耦合到所述第一结构并且经由所述非一致性互连系统的边带网络耦合到至少一个下游代理,其中所述至少一个下游代理利用PCIe通信协议的次级总线的总线标识符来枚举以支持多个功能,所述次级总线对所述虚拟PCIe交换机可见并且对所述第一结构不可见,其中所述虚拟PCIe交换机要经由所述第一结构从所述至少一个核心接收配置事务,基于所述总线标识符、基于所述虚拟PCIe交换机的多个下游配置空间中的至少一个配置空间中的信息来确定多个下游代理中的耦合到所述虚拟PCIe交换机以接收所述配置事务的所述至少一个下游代理,并且将所述配置事务发送到所述第一结构以使得所述第一结构能够将所述配置事务提供到所述至少一个下游代理。
18.根据权利要求17所述的SoC,其中所述第一结构要经由所述第一主互连将所述配置事务传送到所述虚拟PCIe交换机,接收针对第一下游代理的存储器事务,并且经由通过多个主互连耦合在所述第一结构和所述第一下游代理之间的所述一个或多个分层结构中的至少一个分层结构向所述第一下游代理传送所述存储器事务而没有与所述PCIe交换机的通信。
19.根据权利要求17所述的SoC,其中所述虚拟PCIe交换机要从第一下游设备接收错误消息,在所述虚拟PCIe交换机的端口状态记忆装置中记录与所述错误消息相关联的错误,并且经由所述第一结构将与所述错误相关联的错误信息转发到所述至少一个核心。
20.根据权利要求17所述的SoC,其中所述虚拟PCIe交换机要经由所述边带网络从第一下游设备接收传统中断,将所述传统中断映射成上游中断,并且经由所述第一结构将所述上游中断发送到耦合到所述虚拟PCIe交换机的中断控制器。
21.根据权利要求17所述的SoC,其中所述虚拟PCIe交换机包括:
减法解码处置器,其要处置未涉及所述至少一个下游代理的事务;
错误处置器逻辑,其要从第一下游代理接收错误消息,更新与所述第一下游代理相关联的状态记忆装置,并且将与所述错误消息相关联的错误信息转发至所述第一结构;以及
广播逻辑,其要从所述第一结构接收广播消息,确定所述至少一个下游代理中的要接收所述广播消息的目标下游代理,并且将所述广播消息发送到所述目标下游代理。
22.根据权利要求17所述的SoC,其中所述第一结构和所述一个或多个分层结构具有用于多个不同SoC产品的固定设计,并且所述虚拟PCIe交换机被针对所述不同SoC产品中的至少一些产品进行重配置。
23.一种用于与虚拟交换机进行通信的装置,包括:
用于在处理器的虚拟交换机中从所述处理器的耦合到所述虚拟交换机的结构接收配置事务的部件,所述配置事务来自所述处理器的上游设备;
用于基于用来枚举多个下游设备中的耦合到所述虚拟交换机的目标设备的第二通信协议的次级总线的总线标识符、基于所述虚拟交换机的多个下游配置空间中的至少一个下游配置空间中的信息来确定所述目标设备以接收所述配置事务的部件,所述总线标识符对所述结构而言是未知的,所述结构要根据第一通信协议进行通信;
用于基于所述确定、经由所述结构以及耦合在所述虚拟交换机和所述目标设备之间的主互连将所述配置事务转发到所述目标设备的部件;以及
用于如果所述配置事务不将所述多个下游设备中的任何下游设备作为目标则将所述配置事务转发到减法代理的部件。
24.根据权利要求23所述的装置,进一步包括:
用于在所述虚拟交换机中接收广播消息的部件;
用于确定要接收所述广播消息的多个下游设备的列表的部件;以及
用于将针对所述列表中的所述多个下游设备中的每个的目标地址应用于所述广播消息、并且经由耦合在所述虚拟交换机和对应的下游设备之间的一个或多个边带互连将所述广播消息发送到所述列表中的被作为目标的多个下游设备的部件。
25.根据权利要求24所述的装置,进一步包括用于在向所述列表中的所述多个下游设备发送所述广播消息之后从所述虚拟交换机向源代理发送完成消息的部件。
26.根据权利要求23所述的装置,进一步包括:
用于在所述虚拟交换机中经由边带互连从第一下游设备接收传统中断的部件;
用于将所述传统中断映射成上游中断的部件;以及
用于将所述上游中断发送到耦合到所述虚拟交换机的中断控制器的部件。
27.根据权利要求26所述的装置,进一步包括:
用于从所述第一下游设备接收错误消息的部件;
用于在与所述第一下游设备相关联的下游端口状态记忆装置中记录与所述错误消息相关联的错误的部件;以及
用于基于与所述第一下游设备相关联的一个或多个错误设置而将与所述错误相关联的错误信息转发到耦合到所述虚拟交换机的上游设备的部件。
28.根据权利要求23所述的装置,进一步包括:
用于在耦合到所述虚拟交换机的所述结构中从所述上游设备接收所述配置事务的部件;以及
用于经由耦合在所述结构和所述虚拟交换机之间的第一主互连将所述配置事务路由到所述虚拟交换机的部件。
29.根据权利要求28所述的装置,进一步包括:
用于在所述结构中从所述上游设备接收针对第一下游设备的存储器事务的部件;以及
用于经由耦合在所述结构和所述第一下游设备之间的第二主互连、基于与所述结构相关联的影子地址映射表将所述存储器事务转发到所述第一下游设备的部件。
CN201680012189.3A 2015-03-26 2016-02-29 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统 Active CN107278299B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/669256 2015-03-26
US14/669,256 US10210120B2 (en) 2015-03-26 2015-03-26 Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
PCT/US2016/020046 WO2016153727A1 (en) 2015-03-26 2016-02-29 A method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch

Publications (2)

Publication Number Publication Date
CN107278299A CN107278299A (zh) 2017-10-20
CN107278299B true CN107278299B (zh) 2021-03-05

Family

ID=56975448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680012189.3A Active CN107278299B (zh) 2015-03-26 2016-02-29 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统

Country Status (3)

Country Link
US (1) US10210120B2 (zh)
CN (1) CN107278299B (zh)
WO (1) WO2016153727A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680678B2 (en) 2014-06-23 2017-06-13 Intel IP Corporation Communication systems and methods
US10176126B1 (en) * 2015-06-29 2019-01-08 Cadence Design Systems, Inc. Methods, systems, and computer program product for a PCI implementation handling multiple packets
US11983138B2 (en) 2015-07-26 2024-05-14 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
US10659396B2 (en) 2015-08-02 2020-05-19 Wave Computing, Inc. Joining data within a reconfigurable fabric
US10333865B2 (en) * 2015-08-21 2019-06-25 Cisco Technology, Inc. Transformation of peripheral component interconnect express compliant virtual devices in a network environment
US10019546B1 (en) * 2015-10-30 2018-07-10 Amazon Technologies, Inc. Modular system on chip configuration system
US10346041B2 (en) 2016-09-14 2019-07-09 Samsung Electronics Co., Ltd. Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US20190109720A1 (en) 2016-07-26 2019-04-11 Samsung Electronics Co., Ltd. Modular system (switch boards and mid-plane) for supporting 50g or 100g ethernet speeds of fpga+ssd
US10372659B2 (en) * 2016-07-26 2019-08-06 Samsung Electronics Co., Ltd. Multi-mode NMVE over fabrics devices
US11461258B2 (en) 2016-09-14 2022-10-04 Samsung Electronics Co., Ltd. Self-configuring baseboard management controller (BMC)
US11144496B2 (en) 2016-07-26 2021-10-12 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
US10762023B2 (en) * 2016-07-26 2020-09-01 Samsung Electronics Co., Ltd. System architecture for supporting active pass-through board for multi-mode NMVe over fabrics devices
US10387353B2 (en) * 2016-07-26 2019-08-20 Samsung Electronics Co., Ltd. System architecture for supporting active pass-through board for multi-mode NMVE over fabrics devices
US10210123B2 (en) * 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
WO2019006119A1 (en) * 2017-06-30 2019-01-03 Wave Computing, Inc. COMBINING DATA IN A RECONFIGURABLE MATRIX
WO2019113021A1 (en) * 2017-12-05 2019-06-13 Wave Computing, Inc. Tensor manipulation within a reconfigurable fabric using pointers
JP7457654B2 (ja) 2018-03-30 2024-03-28 グーグル エルエルシー システムオンチップ上の相互接続ファブリック内でソースベースルーティングを実施するための手順
US20190302861A1 (en) 2018-03-30 2019-10-03 Provino Technologies, Inc. Protocol level control for system on a chip (soc) agent reset and power management
US11537548B2 (en) * 2019-04-24 2022-12-27 Google Llc Bandwidth allocation in asymmetrical switch topologies
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management
CN112491672B (zh) * 2019-09-11 2022-05-06 杭州海康威视数字技术股份有限公司 一种pcie通信系统、通信配置参数备份方法及pcie交换机
CN111131064B (zh) * 2019-12-31 2021-12-28 电子科技大学 数据中心网络中多播流调度方法
EP4167101A4 (en) * 2020-07-10 2023-11-08 Huawei Technologies Co., Ltd. MULTIPROCESSOR SYSTEM AND METHOD FOR CONFIGURATION OF A MULTIPROCESSOR SYSTEM
EP4167100A4 (en) * 2020-07-13 2023-11-08 Huawei Technologies Co., Ltd. PCIE SYSTEM EXTENSION METHOD, PCIE SWITCH DEVICE AND PCIE SYSTEM
CN112835837B (zh) * 2021-02-04 2023-06-23 北京百度网讯科技有限公司 建立数据连接的方法、相关装置及计算机程序产品
US11467776B1 (en) * 2021-06-28 2022-10-11 H3 Platform Inc. System supporting virtualization of SR-IOV capable devices
TWI792684B (zh) * 2021-11-17 2023-02-11 瑞昱半導體股份有限公司 資料傳輸方法以及資料傳輸系統
US20220114131A1 (en) * 2021-12-22 2022-04-14 Intel Corporation System, method, apparatus and architecture for dynamically configuring device fabrics
CN115225591B (zh) * 2022-07-15 2023-12-26 井芯微电子技术(天津)有限公司 一种处理交换芯片控制报文的方法
US20240111686A1 (en) * 2022-09-29 2024-04-04 Samsung Electronics Co., Ltd. Application processor, system-on-a-chip and method of operation thereof

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285907B2 (en) 2004-12-10 2012-10-09 Intel Corporation Packet processing in switched fabric networks
US7752376B1 (en) 2006-08-11 2010-07-06 Oracle America, Inc. Flexible configuration space
US7752346B2 (en) 2007-12-21 2010-07-06 Aprius, Inc. Universal routing in PCI-Express fabrics
US7873068B2 (en) 2009-03-31 2011-01-18 Intel Corporation Flexibly integrating endpoint logic into varied platforms
US8170062B2 (en) 2009-04-29 2012-05-01 Intel Corporation Packetized interface for coupling agents
US9110860B2 (en) 2009-11-11 2015-08-18 Mellanox Technologies Tlv Ltd. Topology-aware fabric-based offloading of collective functions
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8930602B2 (en) 2011-08-31 2015-01-06 Intel Corporation Providing adaptive bandwidth allocation for a fixed priority arbiter
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US8713234B2 (en) 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US8713240B2 (en) 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
CN102707991B (zh) * 2012-05-17 2016-03-30 中国科学院计算技术研究所 多根i/o虚拟化共享方法和系统
US8958340B2 (en) * 2012-06-15 2015-02-17 Dell Products L.P. System and methods for open fabric management
CN103353861B (zh) * 2013-06-18 2016-06-29 中国科学院计算技术研究所 实现分布式i/o资源池化的方法及装置
US10684973B2 (en) * 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
US9836309B2 (en) * 2014-09-17 2017-12-05 Dell Products L.P. Systems and methods for in-situ fabric link optimization in a modular information handling system chassis

Also Published As

Publication number Publication date
US10210120B2 (en) 2019-02-19
CN107278299A (zh) 2017-10-20
US20160283428A1 (en) 2016-09-29
WO2016153727A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
CN107278299B (zh) 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统
CN107003955B (zh) 用于在根复合体中集成设备的方法、装置和系统
US11593292B2 (en) Many-to-many PCIe switch
US11657015B2 (en) Multiple uplink port devices
US10191877B2 (en) Architecture for software defined interconnect switch
KR101686360B1 (ko) 다중슬롯 링크 계층 플릿에서의 제어 메시징
US9921989B2 (en) Method, apparatus and system for modular on-die coherent interconnect for packetized communication
EP3716084A1 (en) Apparatus and method for sharing a flash device among multiple masters of a computing platform
US11372674B2 (en) Method, apparatus and system for handling non-posted memory write transactions in a fabric
CN107660282B (zh) 处理多根系统中的分区复位
CN107533443B (zh) 在半导体器件中提供多个根
US10075398B2 (en) Systems and methods for enabling a host system to use a network interface of a management controller
US20230089863A1 (en) Executable passing using mailbox registers

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