CN117561505A - 用于动态地配置设备结构的系统、方法、装置和架构 - Google Patents
用于动态地配置设备结构的系统、方法、装置和架构 Download PDFInfo
- Publication number
- CN117561505A CN117561505A CN202280045338.1A CN202280045338A CN117561505A CN 117561505 A CN117561505 A CN 117561505A CN 202280045338 A CN202280045338 A CN 202280045338A CN 117561505 A CN117561505 A CN 117561505A
- Authority
- CN
- China
- Prior art keywords
- mode
- link
- fabric
- coupled
- circuit
- 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 description 33
- 239000004744 fabric Substances 0.000 claims abstract description 54
- 238000012549 training Methods 0.000 claims abstract description 24
- 230000008878 coupling Effects 0.000 claims abstract description 4
- 238000010168 coupling process Methods 0.000 claims abstract description 4
- 238000005859 coupling reaction Methods 0.000 claims abstract description 4
- 238000004891 communication Methods 0.000 claims description 30
- 238000001514 detection method Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 230000010354 integration Effects 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 28
- 238000012545 processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000001427 coherent effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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)
- Bus Control (AREA)
Abstract
在一个实施例中,一种设备包括:接口电路,用于经由链路将设备耦合到主机,其中,在第一模式中,接口电路被配置为集成交换机控制器,并且在第二模式中,接口电路被配置为链路控制器;以及结构,其耦合到接口电路,结构耦合到多个硬件电路,其中,结构基于链路的链路训练而被动态地配置用于第一模式或第二模式中的一个模式。描述并要求保护其他实施例。
Description
背景技术
在计算系统中,互连根据所选择的互连协议来操作,以将设备耦合在一起并实现通信。一些协议支持交换机拓扑和设备到计算平台中的热添加。从系统的角度来看,内置解决方案对于基于交换机的平台配置或基于非交换机的平台配置是无缝的。对平台进行静态硬接线和大量生产用于基于交换机和基于非交换机的解决方案的不同平台和设备配置是不可行的。
附图说明
图1A是根据实施例的系统的框图。
图1B是根据实施例的系统的另一视图。
图1C是根据实施例的系统的另一视图。
图2是根据实施例的方法的流程图。
图3是根据实施例的接口电路的框图。
图4是根据实施例的系统的框图。
图5是根据本发明的另一实施例的系统的框图。
具体实施方式
在各种实施例中,诸如加速器设备的要被配置到平台中的设备可以包括动态可配置结构(fabric)网络。通过这种动态可配置结构网络,这种设备可以被并入到多种类型的平台配置中,而不是将设备限制到特定的平台配置。
尽管实施例在这方面不受限制,但是不同平台配置或能力的一个示例可以是设备耦合到平台可以通过的不同串行互连协议。使用实施例可用的特定协议包括外围部件互连高速(PCIe)协议,诸如根据PCIe规范的给定版本,诸如PCIe基本规范版本5.0(2019年公布)或其任何未来的更新、版本或变更。其他协议可包括计算高速限制(CXL)协议,诸如根据CXL规范的给定版本,诸如CXL规范版本1.1(2020年3月公布)、2.0(2020年11月公布)、其任何未来的更新、版本或变更。当然,另外的其他协议也是可能的。
在实施例中,设备可以动态地确定其是否通过根据支持或不支持集成交换机能力的协议操作的链路耦合到主机。关于上述示例,CXL 2.0和PCIe支持集成交换机拓扑和热添加,而CXL 1.1不支持。因此,设备可以动态地确定(例如在链路训练时)其耦合到平台所通过的链路协议,并且动态地自动配置自身以正确地操作。
因此,基于链路训练,设备可以识别链路类型,并且基于此动态地配置一个或多个内部结构。另外,链路控制器形式的设备接口电路还可以被配置为在具有或不具有集成交换机功能的情况下操作。因此,耦合在该接口电路后面的设备(包括诸如知识产权(IP)硬件电路的端点设备)也可以根据所检测的模式而被不同地配置。
即,当集成交换机功能可用时,这样的端点可以被配置为PCIe端点。相反,当没有启用集成交换机功能时(诸如对于CXL 1.1操作),这些端点可以被暴露为根复合体集成端点。此外,如本文将描述的,取决于集成交换机功能是否有效,可以启用或禁用诸如虚拟交换机端口的附加交换电路。虽然描述了用于设备的一个或多个结构、IP电路和内部交换机电路的这些特定动态配置能力,但可能出现附加的设备动态配置,诸如通过动态地选择设备ID以避免不同模式之间的冲突。
由此,利用实施例,可以提供预期所有可能的平台配置并且可以暴露用于多个协议的所有系统能力的设备,这与基于设备将附接到什么主机来硬编码平台配置以支持CXL2.0/PCIe或CXL 1.1形成对比。在协商的初始阶段期间,在主机与设备之间发生链路训练,并且链路进入L0状态。此时,固件(其可以在主机上执行)轮询设备链路状态机,并检查链路已经被训练到什么状态,例如CXL 1.1、PCIe或CXL 2.0。
基于该确定,固件可以配置操作模式,并且结构、互连结构和功能电路可以在对应模式下运行,包括用于多个模式中的一个的结构和功能电路的适当动态配置以具有不同的硬件配置;一个支持PCIe端点,另一个支持根复合体集成端点的系统。利用实施例,在主机BIOS枚举期间,系统可以无缝地工作,因为硬件被动态地配置用于进行枚举。由此可见,实现了无缝设备解决方案以支持CXL 2.0构建系统的向后兼容性,特别是对于具有内部交换机配置的架构。原始设备制造商(OEM)或最终客户不需要附加的平台配置,因为一个设备解决方案支持任何主机/设备配置。
现在参考图1A,示出了根据实施例的系统的框图。更具体地,在图1A中,系统100可以是任何类型的计算平台,范围从诸如便携式计算机或其他个人计算机之类的相对小的设备到诸如服务器和基于数据中心的实施方式之类的较大设备。在任何情况下,在图1A所示的高级别,系统100包括主机110。在实施例中,主机110可以是片上系统(SoC)或系统的其他主主机处理器。在一个或多个示例中,主机110可以是多核SoC或具有附加电路的其他处理器,该附加电路包括串行接口电路以接口连接到一个或多个设备,该一个或多个设备经由一个或多个串行链路耦合到主机110。
主机110又经由串行链路115耦合到设备120。在本文的实施例中,设备120可以是某种类型的加速器设备。在不同的使用情况下,设备120可以是图形加速器、网络加速器、专用计算加速器等。此外,应理解,设备120在不同的实施方式中可以具有不同的形状因子。在一些情况下,设备120可以被实施为附加卡,其可以耦合到主板的插槽中。在其他情况下,设备120可以被实施为直接适配到系统100的主板或其他电路板上的集成电路。
例示了设备120的各种细节。如图所示,设备120经由物理(PHY)电路125经由链路115耦合到主机110,该链路可以是给定的串行链路,诸如PCIe或CXL链路。虽然实施例在这方面不受限制,但是PHY电路125可以是PCIe 5.0兼容的部件,其可以以例如2.5千兆传输(GT)/秒的速度操作。PHY电路125又耦合到链路控制器130。
如所设计和制造的,链路控制器130能够作为CXL 1.1/CXL 2.0/PCIe链路控制器来操作。因此,根据其中放置设备120的特定系统,控制器130可以被动态地配置为根据这些协议中给定的一个来操作。在本文的实施例中,更具体地,链路控制器130可以被动态地配置为在两个模式(即,第一模式,本文称为集成交换机功能模式,当在基于CXL 2.0或PCIe的系统中实施时可以使用;以及第二模式,即链路控制器模式,当在基于CXL 1.1的系统中配置时可以使用)中的一个下操作。
如图例示,控制器130包括逻辑PHY(logPHY)132,其可以根据给定规范操作,诸如逻辑PHY接口(LPIF)规范,例如该规范的给定版本,例如版本1.1(2020年9月公布)、或者该规范的未来版本或修订。logPHY 132又耦合到动态仲裁复用器134,其可选择性地将不同协议的通信提供给链路层和事务层的不同组合,即链路层137/事务层138和链路层135/事务层136。由此,如图所示,PCIe/CXL.I/O通信可经由层135/136进行,而CXL.mem/CXL.缓存通信可以经由层137/138进行。
链路控制器130还包括模式检测电路139。在实施例中,检测电路139可以基于链路训练来确定有效协议的类型,并且向各种下游部件发送模式检测信号以启用其动态配置。链路控制器130还可以包括链路训练电路,以实现与主机110的链路训练。
仍然参考图1A,PCIe/CXL.I/O通信可以通过桥电路145进行到可以被实施为主可缩放结构(PSF)的第一可配置结构150。结构150可响应于模式检测信号而被动态地配置用于在两个模式中的一个下操作。CXL.缓存/存储器事务又可以在层137/138与设备一致性代理140之间传送,该设备一致性代理又耦合到多个执行单元1580-N。
在实施例中,各个执行单元158可以是给定加速器(例如图形处理电路)的切片,各个切片包括内部存储器接口。切片158还耦合到图形电路156,图形电路156可以充当单独的执行单元与附加电路之间的接口。如图所示,图形电路156又耦合到被实施为CXL/PCIe I/O分路器的分路器154。根据流量的类型,分路器可以适当地引导通信。如图所示,分路器154耦合到虚拟交换机端口(VSP)152。当在第一模式(集成交换机拓扑)下操作时,VSP 152可以是有效的。
仍然参考图1A,结构150还耦合到另一结构160,其可以是被实施为另一PSF的另一动态可配置结构。如图所示,PSF 160耦合到多个VSP 1620-n,各个VSP又耦合到另一个分路器1640-n。这些分路器中的每一个又可以耦合到给定的IP硬件电路,该IP硬件电路被实施为各种类型的端点部件。在所示的实施例中,这些端点可以包括USB4接口电路1660、遥测电路1661和音频电路166n。根据模式,这些IP电路中的每一个可以被动态地配置为作为PCIe端点(在第一模式中)或者作为根复合体集成端点(在第二模式中)进行操作。为此,各个IP电路可以包括控制电路,其响应于模式检测信号而动态地将IP电路配置为PCIe端点或者根复合体集成端点。该控制电路还可以在不同的模式中暴露IP电路的不同配置空间和/或寄存器。
如进一步所示,另一结构170还可耦合到结构150。各种部件耦合到结构170。如图所示,测试电路172、安全/数字权限管理(DRM)电路174、调试电路176、SMBus消息传输(SMT)电路178和串行外围接口(SPI)控制器179都可以耦合到结构170。DRM电路174可执行数字权限管理和安全操作以确保安全密钥被适当地生成且与主机通信。SMT电路178可以通过对结构上的通信进行分组并且将数据串流到SoC之外以检查预期行为,来确保SEC/DRM块在硅上的功能的正确性。应理解,虽然在图1A中示出了这些特定的部件和设备配置,但是许多变型和替代方案是可能的。
现在参考图1B,示出了根据实施例的系统的另一视图。更具体地,如图1B所示,系统100可以用与上面在图1A中讨论的相同的硬件布置来实施。然而,在这个视图中,应注意,系统被配置用于具有集成交换机功能的第一操作模式,例如,根据CXL2.0或PCIe配置。
由此,如图所示,根据该枚举,链路控制器130可以被实施为集成交换机。进而,在该布置中启用VSP(例如,VSP 152和1620-162n),并且这些VSP之后的端点可以被枚举为PCIe端点,其用给定的总线和设备(以及潜在的功能)编号枚举,如图1B所示。应注意,各个端点用不同的总线编号来枚举(并且在该示例中,可以全部被枚举为给定总线的设备0)。
进一步地,为了动态地配置结构150,可以设置第一遮蔽基地址寄存器(BAR)配置,其中,在该第一模式下,这些设备的被遮蔽ID和空间可以引用VSP,而不是端点本身。应注意,诸如耦合到结构170的设备之类的其他设备可以对主机110隐藏。由此,如图1B所示,出现设备120的第一配置,其中,该设备被实施为具有集成交换机功能和用于其结构的第一配置、以及作为PCIe端点的各种IP电路的第一硬件配置(具有第一配置空间和第一组暴露的寄存器)。
现在参考图1C,示出了根据实施例的系统的另一视图。更具体地,如图1C所示,系统100可以再次用与上面在图1A中讨论的相同的硬件布置来实施。然而,在这个视图中,应注意,根据该枚举,系统被配置用于作为CXL 1.1链路控制器的第二操作模式。进而,在该布置中禁用VSP(例如,VSP 152和1620-162n),并且这些VSP之后的端点可以被枚举为根复合体端点,各个端点被枚举为不同的设备(但具有相同的总线编号),如图1C所示。
进一步地,为了动态地配置结构150,可以设置第二遮蔽BAR配置,其中,由于这里VSP被禁用和绕过,因此在该第二模式下,这些设备的被遮蔽ID和空间可以引用端点本身。应注意,诸如耦合到结构170的设备之类的其他设备可以对主机110隐藏。
由此,如图1C所示,出现设备120的第二配置,其中,该设备被实施为CXL 1.1链路控制器和用于其结构的第二配置、以及作为根复合体集成端点的各种IP电路的第二硬件配置(具有第二配置空间和第二组暴露的寄存器)。当然,虽然图1B和图1C示出了各种部件的具体枚举,但是在其他实施方式中可以出现不同的枚举。
现在参考图2,示出了根据实施例的方法的流程图。更具体地,图2所示的方法200是用于当将设备置于给定平台实施方式中时将该设备动态地配置用于多个模式中的一个的方法。由此可见,在系统的任何给定加电或其他复位期间,方法200可至少部分地由设备连同主机参与来执行。
如图所示,方法200开始于执行链路训练并识别给定链路协议的主机能力(方框210)。为此,主机和设备中的链路训练电路可以进行通信,以根据协商(例如关于所支持的协议、链路速度等)来识别协议能力。作为其中识别给定协议的该链路训练的结果,控制传到方框220,在该方框中,可以暂停主机(例如SoC)的复位。在一个实施例中,在链路训练期间,固件可以读取链路控制器的训练状态,并引起SoC复位的暂停以及这种模式或能力向设备中的电路的传播。例如,可以将所识别的主机能力传播到链路控制器和设备的一个或多个结构。这样,链路控制器可以基于所识别的主机能力例如对于第一模式动态地配置为集成交换机,而对于第二模式动态地配置为CXL 1.1链路控制器,在一个实施例中,所识别的主机能力可以采取模式检测信号的形式。
仍然参考图2,接下来在方框240,可以将该模式检测信号传送到一个或多个结构。进而,在方框250,可以基于网络中的哪些部件对主机可见来配置结构(例如,路由器),以确保适当的流量路由。因此,可以改变包括被遮蔽BAR的各种路由部件。例如,在第二模式中,所有虚拟交换机端口可以被控制为被绕过。因此,可以更新结构中的被遮蔽BAR以将通信直接引导到端点,而不是这些虚拟交换机端口。相反,在端点要被配置为PCIe设备的第一模式中,被遮蔽的BAR可以被配置为将通信引导到虚拟交换机端口,而不是直接引导到端点。
根据一个示例,参见下表1,根据操作模式,可以将不同的部件遮蔽在结构的BAR中。应注意,在第一模式中,VSP可以被包括在被遮蔽的BAR中,而它们的耦合端点设备并未被包括在其中。相反,在第二模式中,这些VSP没有被遮蔽,而端点设备本身被遮蔽。由此可见,VSP在第一模式中可见但在第二模式中不可见。
表1
仍然参考图2,在方框260,可以例如基于模式检测信号将端点本身(连同它们的设备ID)配置用于所选择的模式。由此,根据所选择的模式,端点可以被配置为PCIe端点(例如,用于第一模式)或者根复合体集成端点(例如,用于第二模式)。这样,可以修改这些端点的配置空间,其中某些寄存器被暴露而其他寄存器被隐藏,以使得端点表现为这些端点类型中的一个或另一个。仍然进一步,各个端点可以具有用于不同模式的不同设备ID配置。
参见下表2,各个配置空间项可以被动态地配置为使得IP电路(端点)表现为PCIe端点或者表现为根复合体集成端点。
表2
最后参考图2,在方框270,主机复位可以完成,并且其后,当设备被正确地配置用于适当的模式时,通信可以根据所选择的模式进行。由此,根据方法200,实现了一旦链路被训练到L0链路状态就改变行为的动态配置的结构。在一个或多个示例中,固件可以将结构配置为切换到适当的模式,并且在该配置之后在主机枚举发生之前发起复位序列,以确保修改的配置生效。应理解,虽然在图2的实施例中以这种高级别示出,但是许多变型和替代方案是可能的。
如上所述,部件可以针对不同模式具有不同的设备ID,以确保没有冲突。在一个示例中,设备和功能编号可以被动态地配置。现在参考表3,示出了各种IP电路的动态设备ID的示例列表。在表3中,在用于图形功能的各种模式中可以有64个虚拟功能。进一步如图所示,如果VSP处于PCIe/CXL2.0模式而不是CXL1.1模式,则VSP是可见的并且被分配了编号。而且,各种端点及其设备ID可以取决于它们是由根复合体直接看到(CXL1.1模式)还是仅通过PCIe/CXL2.0模式中的下游VSP看到。应注意,这些设备ID中的至少一些可以存储在一个或多个结构的遮蔽BAR中以用于结构路由,并且还可以用于主机枚举。如表3所示,CXL1.1与CXL2.0/PCIE模式之间在ID上有很小的差异或没有差异。例如,在不同模式中,虚拟功能ID相同,而耦合在VSP后面的设备可以具有最小的设备ID差异。
表3
现在参考图3,示出了根据实施例的接口电路的框图。更具体地,如图3所示,接口电路300用于将诸如加速器之类的给定设备接口连接到链路。在图3所示的实施例中,接口电路300是CXL接口电路。如图所示,CXL接口电路300包括事务层310、链路层320和物理层340。参考CXL事务层310,包括各种部件以使得能够进行针对PCIe/CXL.io通信和CXL.缓存和CXL.存储器事务的事务层处理。更具体地,PCIe/CXL.io事务层310包括控制电路312,其可以执行各种事务层控制操作。另外,事务层310还包括PCIe事务层316和用于处理对PCIe事务层316的增强以便处理CXL.io事务的附加电路318。进而,CXL.缓存和CXL.存储器事务层319可以执行这些协议的事务层处理。
参考CXL链路层320,包括各种部件以使得能够进行针对PCIe/CXL.io通信和CXL.缓存和CXL.存储器事务的链路层处理。更具体地,PCIe/CXL.io链路层325包括PCIe数据链路层326和用于处理对PCIe数据链路层326的增强以便处理CXL.io事务的附加电路328。
进而,CXL.缓存和CXL.存储器链路层329可以执行这些协议的链路层处理。为此,控制电路322可以至少部分地基于与如本文所述的logPHY电路的通信来配置链路层329内的处理电路。在一个实施例中,控制电路322可以包括或耦合到一个或多个配置寄存器327。这样的配置寄存器可以包括控制如本文所述的操作的一个或多个字段。
进一步参考图3,链路层320耦合到仲裁器/复用器330,其从链路层320接收传入数据流,并选择数据流(或其部分)用于传送到物理层340。
在一个实施例中,物理层340可以是进一步处理传入数据分组以便在物理链路上进行传送的物理层,在一个实施例中,该物理链路可以是柔性总线。如图例示,物理层340包括PCIe/CXL logPHY逻辑电路342和PCIe/CXL电气电路346。如所看到的,这些电路包括相应的控制电路345、348以控制物理层340内的处理。在完成所有这样的处理之后,可以在链路上传送传出事务层数据分组。类似地,可以在物理层340内接收传入事务层数据分组,并且在接口电路300的通信栈内处理该传入事务层数据分组。应注意,如本文所述,可以基于协商的通信模式,对耦合到接口电路300(更具体地,事务层310)的一个或多个可编程结构进行不同的配置。应理解,虽然在图3的实施例中以这种高级别示出,但是许多变型和替代方案是可能的。
图4是根据实施例的系统的框图。如图4所示,设备405可以是经由互连489耦合到主机处理器445的加速器或处理器设备,该互连可以是单个互连、总线、迹线等。设备405和主机处理器445可以通过链路489通信以使得数据和消息能够在其间传递。在一些实施例中,链路489可操作为支持多个协议以及经由多个互连协议(包括如本文所述的CXL协议)的数据和消息的通信。例如,链路489可支持各种互连协议,包括非一致性互连协议、一致性互连协议以及存储器互连协议。所支持的互连协议的非限制性示例可包括PCI、PCIe、USB、IDI、IOSF、SMI、SMI3、SATA、CXL.io、CXL.缓存和CXL.mem等。
在实施例中,设备405可以包括加速器逻辑425,其包括电路429。在一些情况下,加速器逻辑425和电路429可以提供处理和存储器能力。设备405的示例可以包括诸如图形或其他专用加速器之类的生产者-消费者设备、生产者-消费者加设备、软件辅助设备存储器设备、自主设备存储器设备和巨型缓存设备。在一些情况下,加速器逻辑425可以耦合到可选的加速器存储器430。加速器逻辑425和电路429可以基于设备提供处理和存储器能力。例如,加速器逻辑425和电路429可以使用例如一致性互连协议来进行通信,以用于各种功能,诸如经由接口逻辑413和电路427与主机处理器445进行一致性请求和存储器流程。
接口逻辑413和电路427可以基于用于通信的消息和数据来确定互连协议。如本文所述,这种逻辑和电路可以基于协商的通信模式来配置设备405内的一个或多个可编程结构。在一些实施例中,接口逻辑413可以耦合到具有一个或多个协议队列412的多协议复用器410,以与主机处理器445发送和接收消息和数据。协议队列412可以是协议特定的,使得各个互连协议可以与特定协议队列相关联。复用器410还可实施仲裁电路以在不同协议的通信之间进行仲裁,并且将所选择的通信提供到物理层415。
在各种实施例中,主机处理器445可以是主处理器,诸如CPU。主机处理器445可以耦合到主机存储器440,并且可以包括一致性逻辑(或一致性和缓存逻辑)455,其可以包括缓存层次结构。一致性逻辑455可以使用各种互连与包括电路461的接口逻辑463以及一个或多个核心465a-n通信。在一些实施例中,一致性逻辑455可以使得能够经由一致性互连协议和存储器互连协议中的一个或多个进行通信。
在各种实施例中,主机处理器440可以包括用于通过互连与总线逻辑460通信的设备470。在一些实施例中,设备470可以是I/O设备,诸如PCIe I/O设备。在其他情况下,诸如PCIe设备之类的一个或多个外部设备可以耦合到总线逻辑470。
在实施例中,主机处理器445可以包括接口逻辑463和电路461以实现主机处理器445的部件与设备405之间的多协议通信。接口逻辑463和电路461可以根据一个或多个互连协议(例如非一致性互连协议、一致性互连协议和存储器互连协议)动态地处理和实现主机处理器445与设备405之间的消息和数据的通信。例如,接口逻辑463和电路461可以确定各个消息的消息类型,并且确定多个互连协议中的哪个互连协议处理各个消息。可以利用不同的互连协议来处理消息。另外,电路461可以包括选择电路,用于经由多个逻辑端口中选定的一个逻辑端口引导例如CXL.缓存和CXL.存储器协议流量,如本文所述。
在一些实施例中,接口逻辑463可以耦合到具有一个或多个协议队列452的多协议复用器450,以与设备405发送和接收消息和数据。协议队列452可以是协议特定的,使得各个互连协议可以与特定协议队列相关联。复用器450还可实施仲裁电路以在不同协议的通信之间进行仲裁,并且将所选择的通信提供到物理层454。
现在参考图5,示出了根据本发明的另一实施例的系统的框图。如图5所示,系统500可以是任何类型的计算设备,并且在一个实施例中可以是诸如边缘平台之类的服务器系统。在图5的实施例中,系统500包括多个CPU 510a、510b,其又耦合到相应的系统存储器520a、520b,在实施例中,系统存储器可以实施为双倍数据速率(DDR)存储器。注意,CPU 510可以经由诸如超级通道互连或其他处理器互连技术之类的互连系统515耦合在一起。
为了使相干加速器设备和/或智能适配器设备能够通过潜在的多个通信协议耦合到CPU 510,可以存在多个互连530a1-b2。在一个实施例中,各个互连530可以是CXL链路的给定实例。
在所示的实施例中,在一个实施例中,各个CPU 510耦合到对应的现场可编程门阵列(FPGA)/加速器设备550a、550b(其可以包括图形处理单元(GPU)和如本文所述的可编程结构)。另外,CPU 510还耦合到智能网络接口电路(NIC)设备560a、560b。智能NIC设备560a、560b又耦合到交换机580a、580b(例如,根据实施例的CXL交换机),交换机又耦合到池式存储器590a、590b,诸如永久存储器。如图所示,信息可以存储在池式存储器590中。CPU 510或其他实体又可以访问并进一步处理来自池式存储器590的该信息。
以下示例涉及另外的实施例。
在一个示例中,一种设备包括:接口电路,用于经由链路将设备耦合到主机,其中,在第一模式中,接口电路被配置为集成交换机控制器,并且在第二模式中,接口电路被配置为链路控制器;以及结构,其耦合到接口电路,结构耦合到多个IP电路,其中,结构基于链路的链路训练而被动态地配置用于第一模式或第二模式中的一个模式。
在一个示例中,在结构被动态地配置用于第一模式或第二模式中的一个模式之后,设备在主机枚举设备之前复位。
在一个示例中,设备还包括耦合到结构的多个IP电路,其中,多个IP电路中的至少一些被动态地配置为在第一模式中作为PCIe端点进行操作,并且在第二模式中作为根复合体集成端点进行操作。
在一个示例中,在第一模式中,第一IP电路具有包括第一组暴露的寄存器的第一配置空间,并且在第二模式中,第一IP电路具有包括第二组暴露的寄存器的第二配置空间。
在一个示例中,接口电路包括集成交换机控制器,其中,接口电路被配置为在第一模式中是PCIe或CXL 2.0集成交换机控制器,并且在第二模式中是CXL 1.1控制器。
在一个示例中,设备还包括:多个虚拟交换机端口,多个虚拟交换机端口中的每一个耦合在结构与多个IP电路中的一个之间;以及多个旁路路径,多个旁路路径中的每一个耦合在结构与多个IP电路中的一个之间。
在一个示例中,多个虚拟交换机端口在第二模式中被禁用,并且在第二模式中在结构与第一IP电路之间的通信经由第一旁路路径进行。
在一个示例中,设备还包括耦合到第一IP电路的第一分路器,其中,第一分路器在第二模式中经由第一旁路路径或者在第一模式中经由第一虚拟交换机端口选择性地将流量引导至结构。
在一个示例中,接口电路向多个IP电路中的至少一些发送模式检测信号,其中,多个IP电路中的至少一些包括控制器电路,用于基于模式检测信号自动地和动态地将IP电路配置用于第一模式或第二模式中的一个模式。
在一个示例中,设备包括具有至少一个加速器电路的加速器。
在一个示例中,设备包括附加卡。
在另一示例中,一种方法包括:经由链路训练电路训练链路,链路耦合在计算系统的主机处理器与经由链路耦合到主机处理器的设备之间;至少部分地基于训练来识别主机处理器的协议能力;以及响应于将主机处理器的协议能力识别为第一类型,将设备的至少一个结构动态地配置用于第一模式,并且响应于将主机处理器的协议能力识别为第二类型,将结构动态地配置用于第二模式。
在一个示例中,方法还包括:响应于将主机处理器的协议能力识别为第一类型,将设备的至少一个链路控制器动态地配置用于第一模式,以提供集成交换机功能;以及响应于将主机处理器的协议能力识别为第二类型,将链路控制器动态地配置用于不具有集成交换机功能的第二模式。
在一个示例中,方法还包括:在第一模式中将设备的第一端点动态地配置为具有第一设备ID的PCIe端点;以及在第二模式中将第一端点动态地配置为具有第二设备ID的根复合体端点。
在一个示例中,方法还包括:在第一模式中为第一端点提供具有第一暴露寄存器的第一配置空间;以及在第二模式中为第一端点提供具有第二暴露寄存器的第二配置空间。
在一个示例中,动态地配置至少一个结构包括:在第一模式中,配置至少一个结构的一个或多个影子基地址寄存器,以实现至少一个结构与一个或多个虚拟交换机端口之间的路由,一个或多个虚拟交换机端口耦合到一个或多个端点;以及在第二模式中,配置一个或多个影子基地址寄存器以实现至少一个结构与一个或多个端点之间的路由。
在一个示例中,方法还包括:在训练链路之后并且在动态地配置结构之前暂停主机处理器的复位,以及在动态地配置结构之后继续主机处理器的复位。
在另一示例中,一种包括指令的计算机可读介质执行上述示例中任一示例的方法。
在另外示例中,一种包括数据的计算机可读介质由至少一个机器用于制造执行上述示例中任一示例的方法的至少一个集成电路。
在又一示例中,一种装置包括用于执行上述示例中任一示例的方法的装置。
在另一示例中,一种系统包括:主机处理器,其具有多个核心和与串行链路接口连接的第一接口电路;以及设备,其经由串行链路耦合到主机处理器。设备可以包括:第二接口电路,用于经由串行链路与主机处理器通信;结构,其耦合到第二接口电路,结构包括多个影子基地址寄存器;多个虚拟交换机端口,其耦合到结构;多个硬件电路,多个硬件电路中的每一个耦合到多个虚拟交换机端口中的一个;以及多个旁路路径,多个旁路路径中的每一个绕过多个虚拟交换机端口中的一个,其中,结构基于串行链路的链路训练而被动态地配置用于第一模式或第二模式中的一个模式。
在一个示例中:在第一模式中,第二接口电路被配置为集成交换机控制器,并且多个硬件电路被配置为外围部件互连高速端点;并且在第二模式中,第二接口电路被配置为链路控制器,并且多个硬件电路被配置为根复合体集成端点。
在一个示例中:在第一模式中,多个虚拟交换机端口被启用,并且影子基地址寄存器中的至少一些指向多个虚拟交换机端口中的至少一些;并且在第二模式中,多个虚拟交换机端口被禁用,并且影子基地址寄存器中的至少一些指向多个硬件电路中的至少一些。
应理解,上述示例的各种组合是可能的。
应注意,术语“电路”和“电路系统”在本文中可互换使用。如本文所用的,这些术语和术语“逻辑”用于单独地或以任何组合指代模拟电路、数字电路、硬接线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路和/或任何其他类型的物理硬件部件。实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文所述的各种方法和技术。当然,本发明的范围不限于通信设备,而是替代地,其他实施例可以针对用于处理指令的其他类型的装置或者包括指令的一个或多个机器可读介质,指令响应于在计算设备上被执行而使设备执行本文所述的方法和技术中的一个或多个。
实施例可以以代码实施,并且可以存储在上面存储有指令的非瞬态存储介质上,指令可以用于对系统进行编程以执行指令。实施例还可以以数据实施,并且可以存储在非瞬态存储介质上,如果由至少一个机器使用,则该非瞬态存储介质使得该至少一个机器制造执行一个或多个操作的至少一个集成电路。另一些实施例可以在包括信息的计算机可读存储介质中实施,该信息当被制造到SoC或其他处理器中时配置SoC或其他处理器以执行一个或多个操作。存储介质可以包括但不限于:任何类型的盘,其包括软盘、光盘、固态驱动器(SSD)、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘;半导体器件,诸如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦可编程只读存储器(EPROM)、闪存、电可擦可编程只读存储器(EEPROM)、磁卡或光卡;或适合于存储电子指令的任何其他类型的介质。
虽然已经关于有限数量的实施方式描述了本公开,但是受益于本公开的本领域技术人员将从其领会许多修改和变化。所附权利要求旨在覆盖所有这些修改和变化。
Claims (20)
1.一种设备,包括:
接口电路,用于经由链路将所述设备耦合到主机,其中,在第一模式中,所述接口电路被配置为集成交换机控制器,并且在第二模式中,所述接口电路被配置为链路控制器;以及
结构,其耦合到所述接口电路,所述结构耦合到多个知识产权(IP)电路,其中,所述结构基于所述链路的链路训练而被动态地配置用于所述第一模式或所述第二模式中的一个模式。
2.根据权利要求1所述的设备,其中,在所述结构被动态地配置用于所述第一模式或所述第二模式中的所述一个模式之后,所述设备在所述主机枚举所述设备之前复位。
3.根据权利要求1所述的设备,还包括耦合到结构的所述多个IP电路,其中,所述多个IP电路中的至少一些被动态地配置为在所述第一模式中作为外围部件互连高速(PCIe)端点进行操作,并且在所述第二模式中作为根复合体集成端点进行操作。
4.根据权利要求3所述的设备,其中,在所述第一模式中,第一IP电路具有包括第一组暴露的寄存器的第一配置空间,并且在所述第二模式中,所述第一IP电路具有包括第二组暴露的寄存器的第二配置空间。
5.根据权利要求3所述的设备,其中,所述接口电路包括集成交换机控制器,其中,所述接口电路被配置为在所述第一模式中是PCIe或计算高速限制(CXL)2.0集成交换机控制器,并且在所述第二模式中是CXL1.1控制器。
6.根据权利要求1所述的设备,还包括:
多个虚拟交换机端口,所述多个虚拟交换机端口中的每一个耦合在所述结构与所述多个IP电路中的一个之间;以及
多个旁路路径,所述多个旁路路径中的每一个耦合在所述结构与所述多个IP电路中的一个之间。
7.根据权利要求6所述的设备,其中,所述多个虚拟交换机端口在所述第二模式中被禁用,并且在所述第二模式中在所述结构与第一IP电路之间的通信经由第一旁路路径进行。
8.根据权利要求7所述的设备,还包括耦合到所述第一IP电路的第一分路器,其中,所述第一分路器在所述第二模式中经由所述第一旁路路径或者在所述第一模式中经由第一虚拟交换机端口选择性地将流量引导至所述结构。
9.根据权利要求1所述的设备,其中,所述接口电路向所述多个IP电路中的至少一些发送模式检测信号,其中,所述多个IP电路中的至少一些包括控制器电路,用于基于所述模式检测信号自动地和动态地将所述IP电路配置用于所述第一模式或所述第二模式中的一个模式。
10.根据权利要求1所述的设备,其中,所述设备包括具有至少一个加速器电路的加速器。
11.根据权利要求10所述的设备,其中,所述设备包括附加卡。
12.一种方法,包括:
经由链路训练电路训练链路,所述链路耦合在计算系统的主机处理器与经由所述链路耦合到所述主机处理器的设备之间;
至少部分地基于所述训练来识别所述主机处理器的协议能力;以及
响应于将所述主机处理器的所述协议能力识别为第一类型,将所述设备的至少一个结构动态地配置用于第一模式,并且响应于将所述主机处理器的所述协议能力识别为第二类型,将所述结构动态地配置用于第二模式。
13.根据权利要求12所述的方法,还包括:
响应于将所述主机处理器的所述协议能力识别为所述第一类型,将所述设备的至少一个链路控制器动态地配置用于所述第一模式,以提供集成交换机功能;以及
响应于将所述主机处理器的所述协议能力识别为所述第二类型,将所述链路控制器动态地配置用于不具有所述集成交换机功能的所述第二模式。
14.根据权利要求13所述的方法,还包括:
在所述第一模式中将所述设备的第一端点动态地配置为具有第一设备ID的外围部件互连高速(PCIe)端点;以及
在所述第二模式中将所述第一端点动态地配置为具有第二设备ID的根复合体端点。
15.根据权利要求14所述的方法,还包括:
在所述第一模式中为所述第一端点提供具有第一暴露寄存器的第一配置空间;以及
在所述第二模式中为所述第一端点提供具有第二暴露寄存器的第二配置空间。
16.根据权利要求12所述的方法,其中,动态地配置所述至少一个结构包括:
在所述第一模式中,配置所述至少一个结构的一个或多个影子基地址寄存器,以实现所述至少一个结构与一个或多个虚拟交换机端口之间的路由,所述一个或多个虚拟交换机端口耦合到一个或多个端点;以及
在所述第二模式中,配置所述一个或多个影子基地址寄存器以实现所述至少一个结构与所述一个或多个端点之间的路由。
17.根据权利要求12所述的方法,还包括:在训练所述链路之后并且在动态地配置所述结构之前暂停所述主机处理器的复位,以及在动态地配置所述结构之后继续所述主机处理器的复位。
18.一种系统,包括:
主机处理器,其具有多个核心和与串行链路接口连接的第一接口电路;以及
设备,其经由所述串行链路耦合到所述主机处理器,所述设备包括:
第二接口电路,用于经由所述串行链路与所述主机处理器通信;
结构,其耦合到所述第二接口电路,所述结构包括多个影子基地址寄存器;
多个虚拟交换机端口,其耦合到所述结构;
多个硬件电路,所述多个硬件电路中的每一个耦合到所述多个虚拟交换机端口中的一个;以及
多个旁路路径,所述多个旁路路径中的每一个绕过所述多个虚拟交换机端口中的一个,
其中,所述结构基于所述串行链路的链路训练而被动态地配置用于第一模式或第二模式中的一个模式。
19.根据权利要求18所述的系统,其中,
在所述第一模式中,所述第二接口电路被配置为集成交换机控制器,并且所述多个硬件电路被配置为外围部件互连高速端点;以及
在所述第二模式中,所述第二接口电路被配置为链路控制器,并且所述多个硬件电路被配置为根复合体集成端点。
20.根据权利要求19所述的系统,其中,
在所述第一模式中,所述多个虚拟交换机端口被启用,并且所述影子基地址寄存器中的至少一些指向所述多个虚拟交换机端口中的至少一些;并且
在所述第二模式中,所述多个虚拟交换机端口被禁用,并且所述影子基地址寄存器中的至少一些指向所述多个硬件电路中的至少一些。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/558,945 | 2021-12-22 | ||
US17/558,945 US20220114131A1 (en) | 2021-12-22 | 2021-12-22 | System, method, apparatus and architecture for dynamically configuring device fabrics |
PCT/US2022/048643 WO2023121775A1 (en) | 2021-12-22 | 2022-11-02 | System, method, apparatus and architecture for dynamically configuring device fabrics |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117561505A true CN117561505A (zh) | 2024-02-13 |
Family
ID=81079198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280045338.1A Pending CN117561505A (zh) | 2021-12-22 | 2022-11-02 | 用于动态地配置设备结构的系统、方法、装置和架构 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220114131A1 (zh) |
CN (1) | CN117561505A (zh) |
WO (1) | WO2023121775A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11537543B2 (en) * | 2021-03-02 | 2022-12-27 | Arm Limited | Technique for handling protocol conversion |
US20220114131A1 (en) * | 2021-12-22 | 2022-04-14 | Intel Corporation | System, method, apparatus and architecture for dynamically configuring device fabrics |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10210120B2 (en) * | 2015-03-26 | 2019-02-19 | Intel Corporation | Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch |
US10255399B2 (en) * | 2016-10-31 | 2019-04-09 | Intel Corporation | Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect |
EP3776231B1 (en) * | 2018-03-30 | 2023-05-03 | Google LLC | Procedures for implementing source based routing within an interconnect fabric on a system on chip |
US11973650B2 (en) * | 2019-04-25 | 2024-04-30 | Liqid Inc. | Multi-protocol communication fabric control |
US11971841B2 (en) * | 2020-05-21 | 2024-04-30 | Intel Corporation | Link layer-PHY interface adapter |
US20220114131A1 (en) * | 2021-12-22 | 2022-04-14 | Intel Corporation | System, method, apparatus and architecture for dynamically configuring device fabrics |
-
2021
- 2021-12-22 US US17/558,945 patent/US20220114131A1/en active Pending
-
2022
- 2022-11-02 CN CN202280045338.1A patent/CN117561505A/zh active Pending
- 2022-11-02 WO PCT/US2022/048643 patent/WO2023121775A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023121775A1 (en) | 2023-06-29 |
US20220114131A1 (en) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194753B2 (en) | Platform interface layer and protocol for accelerators | |
CN107278299B (zh) | 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统 | |
US20200142752A1 (en) | Physical partitioning of computing resources for server virtualization | |
US11301406B2 (en) | Method, apparatus and system for role transfer functionality for a bus master | |
KR101035832B1 (ko) | 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템 | |
JP4128956B2 (ja) | デュアル・インライン・メモリモジュール・フォーマットにおいて一連のマルチアダプティブプロセッサを採用したクラスタ型コンピュータ用スイッチ/ネットワークアダプタポート | |
CN117561505A (zh) | 用于动态地配置设备结构的系统、方法、装置和架构 | |
US11372787B2 (en) | Unified address space for multiple links | |
JP2005141739A (ja) | Pciエクスプレスリンクのダイナミック再構成 | |
US20050091432A1 (en) | Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs | |
US11775464B2 (en) | Computer system and a computer device | |
WO2013100783A1 (en) | Method and system for control signalling in a data path module | |
JP6491741B2 (ja) | セルオートマトンを用いたクラスタサーバの構成 | |
WO2013048856A2 (en) | Common idle state, active state and credit management for an interface | |
US11003607B2 (en) | NVMF storage to NIC card coupling over a dedicated bus | |
EP4016309A1 (en) | System, apparatus and method for handling multi-protocol traffic in data link layer circuitry | |
WO2019125561A1 (en) | Self identifying interconnect topology | |
US10474612B1 (en) | Lane reversal detection and bifurcation system | |
CN111752607A (zh) | 用于处理器中的批量寄存器访问的系统、装置和方法 | |
CN111752873A (zh) | 用于在计算平台的多个主设备之间共享Flash设备的系统、装置和方法 | |
US7647433B2 (en) | System and method for flexible multiple protocols | |
US11232060B2 (en) | Method, apparatus and system for power supply policy exchange on a bus | |
TW202246976A (zh) | 快速週邊元件互連裝置以及包括其的計算系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |