CN117480498A - 在运行时间为裸金属服务器动态提供PCIe器件 - Google Patents
在运行时间为裸金属服务器动态提供PCIe器件 Download PDFInfo
- Publication number
- CN117480498A CN117480498A CN202280042321.0A CN202280042321A CN117480498A CN 117480498 A CN117480498 A CN 117480498A CN 202280042321 A CN202280042321 A CN 202280042321A CN 117480498 A CN117480498 A CN 117480498A
- Authority
- CN
- China
- Prior art keywords
- pcie
- register
- bare metal
- endpoint
- changing
- 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
- 239000002184 metal Substances 0.000 title claims abstract description 59
- 230000003863 physical function Effects 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 26
- 239000004744 fabric Substances 0.000 claims abstract description 14
- 230000002093 peripheral effect Effects 0.000 claims abstract description 12
- 238000011144 upstream manufacturing Methods 0.000 claims description 20
- 230000008672 reprogramming Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000003860 storage Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000758 substrate Substances 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/409—Mechanical coupling
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45541—Bare-metal, i.e. hypervisor runs directly on hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本公开的系统或方法可以提供包括可编程结构(70)的外围部件互连高速(PCIe)器件(104)。可编程结构(70)包括多个PCIe物理功能(108、109、110)。可编程结构(70)还包括具有一个或多个嵌入式端点(114)的交换机电路(116),交换机电路在不使用重置的情况下向裸金属模式主机服务器(102)动态地隐藏或暴露多个PCIe物理功能中的一个或多个。
Description
技术领域
本公开总体涉及裸金属服务器。更具体地,本公开涉及动态地提供和移除PCIe器件和器件类型。
背景技术
本部分旨在向读者介绍可能与在下面描述和/或要求保护的本公开的各个方面相关的技术的各个方面。相信该讨论有助于向读者提供背景信息,以便于更好地理解本公开的各个方面。因此,可以理解,这些陈述应从这个角度来阅读,而不是作为对现有技术的承认。
裸金属服务器是仅由一个消费者或租户使用的物理计算机服务器。与在多个租户的多个共享硬件中运行的虚拟服务器不同,各个服务器可以作为不同的物理硬件被提供用于租赁,该物理硬件就其本身而言是功能服务器。尽管虚拟服务器无处不在,但是单个租户的负载峰值可能消耗足够的机器资源而暂时影响其他租户。由于租户以其他方式隔离,因此难以管理/负载平衡这些峰值负载以避免这种“嘈杂邻居效应”。另外,与使用不同的机器相比,用于隔离租户的管理程序可能提供更弱的隔离并且更容易受到安全风险的影响。裸金属服务器很大程度上避免了这些问题。此外,随着服务器成本按所有权总成本的比例下降,裸金属服务器再次变得更加流行。然而,裸金属服务器具有不适用于虚拟服务器的限制。例如,裸金属服务器可能限于箱内(in-box)软件,诸如没有虚拟化软件的预加载的基本操作系统。因此,用于向虚拟服务器添加存储和从虚拟服务器移除存储的机制对于裸金属服务器不起作用。
附图说明
在阅读以下详细描述并参考附图之后,可以更好地理解本公开的各个方面,在附图中:
图1是根据本公开的实施例的用于对集成电路器件进行编程的系统的框图;
图2是根据本公开的实施例的图1的集成电路器件的框图;
图3是根据本公开的实施例的图1的集成电路器件的可编程结构的图;
图4是根据本公开的实施例的系统的框图,该系统包括在附加卡中的图3的可编程结构,其中多个器件对耦合到附加卡的裸金属模式主机服务器隐藏;
图5是根据本公开的实施例的图4的系统的框图,其中多个器件暴露于耦合到附加卡的裸金属模式主机服务器;
图6是根据本公开的实施例的图4的可编程结构中的寄存器的拓扑的框图;
图7是根据本公开的实施例的使用图4的可编程结构中的配置寄存器的器件提供的框图;
图8是根据本公开的实施例的用于暴露或隐藏图4的可编程结构中的器件的过程的框图;
图9是根据本公开的实施例的用于供应商定义的消息的数据分组的分组图,该消息暴露或隐藏图4的可编程结构中的器件;以及
图10是根据本公开的实施例的包括图1的集成电路的数据处理系统的框图。
具体实施方式
下面将描述一个或多个具体实施例。为了提供这些实施例的简明描述,在说明书中没有描述实际实施方式的所有特征。应当理解,在任何这种实际实施方式的开发中,如在任何工程或设计项目中,必须做出许多特定于实施方式的决策以实现开发者的特定目标,诸如符合系统相关和商业相关的约束,其可能因实施方式而异。而且,应当理解,这种开发努力可能复杂且耗时,但对于受益于本公开的普通技术人员而言,仍然是设计、制作和制造的例行任务。
当介绍本公开的各种实施例的元素时,冠词“一”、“一个”和“该”旨在意指存在一个或多个元素。术语“包括”、“包含”和“具有”旨在是包括性的,并且意指除了所列出的元素之外还可以存在另外的元素。另外,应当理解,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除也并入了所记载的特征的额外实施例的存在。
本系统和技术涉及用于实现裸金属服务器平台中的外围部件互连高速(PCIe)器件和/或器件类型的动态提供和移除的实施例。对于系统架构来说,在运行时间期间存储和联网器件/功能(PF)缩放和选择性功能类型的按需弹性数量的系统可重新配置性是至关重要的。这确保了在计算、云和现场可编程门阵列(FPGA)行业中不断增加的自适应使用情况。随着仅箱内软件可用的裸金属平台的快速采用,在虚拟化平台中用于添加或移除存储和联网器件的现有方法不起作用。
相反,当系统中不允许虚拟化软件时,PCIe器件物理功能(PF)提供方法可用于裸金属平台。该提供方法实现对被暴露/隐藏的多个PCIe物理功能(PF)以及各个PF的器件类型(存储/网络/加速器/其他)的运行时间弹性缩放。从系统用户的角度来看,PF提供立即生效。PF提供方法在过程中也不使用专有主机软件、系统或PCIe重置,因为避免这些是除了不允许虚拟化软件之外的裸金属平台的系统使用要求。这种支持动态添加或移除存储和块器件的能力对于一些采用裸金属平台日益增加的客户是关键的。尽管上文讨论了存储和网络器件,但是PF提供可以被推广以支持广泛的FPGA或其他可编程逻辑器件使用情况,诸如可以频繁地利用动态重新配置的通信或其他领域。
考虑到前述内容,图1例示了可以实施算术运算的系统10的框图。设计者可能期望在集成电路器件12(例如,可编程逻辑器件,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))上实施功能,诸如本公开的操作。在一些情况下,设计者可指定待实施的高级程序,诸如程序,其可使得设计者能够更高效且容易地提供编程指令以配置集成电路器件12的一组可编程逻辑单元,而无需低级硬件描述语言(例如,Verilog或VHDL)的特定知识。例如,由于/>与诸如C++的其它高级编程语言非常相似,因此熟悉这种编程语言的可编程逻辑的设计者可以具有比需要学习不熟悉的低级硬件描述语言以在集成电路器件12中实施新功能的设计者减少的学习曲线。
设计者可以使用设计软件14(诸如英特尔公司的的版本)来实施高级设计。设计软件14可以使用编译器16来将高级程序转换成低级描述。在一些实施例中,编译器16和设计软件14可以被封装到单个软件应用中。编译器16可以向主机18和集成电路器件12提供表示高级程序的机器可读指令。主机18可以接收可以由核心程序20实施的主机程序22。为了实施主机程序22,主机18可以经由通信链路24将指令从主机程序22传送到集成电路器件12,该通信链路可以是例如直接存储器访问(DMA)通信或外围部件互连高速(PCIe)通信。在一些实施例中,核心程序20和主机18可以实现集成电路器件12上的逻辑块26的配置。逻辑块26可以包括电路和/或其他逻辑元件,并且可以被配置为实施算术运算,诸如加法和乘法。
设计者可以使用设计软件14来生成和/或指定低级程序,诸如上述的低级硬件描述语言。进一步地,在一些实施例中,系统10可以在没有单独的主机程序22的情况下实施。而且,在一些实施例中,本文所述的技术可以在电路中实施为非可编程电路设计。由此,本文所述的实施例旨在是说明性的而非限制性的。
现在转到集成电路器件12的更详细讨论,图2是作为可编程逻辑器件(诸如现场可编程门阵列(FPGA))的集成电路器件12的示例的框图。进一步地,应当理解,集成电路器件12可以是任何其他合适类型的可编程逻辑器件(例如,ASIC和/或专用标准产品)。集成电路器件12可具有输入/输出电路42,其用于将信号驱动离开器件且用于经由输入/输出引脚44从其它器件接收信号。互连资源46(诸如全局和局部垂直和水平导线和总线)和/或配置资源(例如,硬接线耦合、不是由用户逻辑实施的逻辑耦合)可以用于在集成电路器件12上路由信号。另外,互连资源46可以包括固定互连(导线)和可编程互连(即,各个固定互连之间的可编程连接)。可编程逻辑48可以包括组合和时序逻辑电路。例如,可编程逻辑48可以包括查找表、寄存器和复用器。在各种实施例中,可编程逻辑48可被配置为执行定制逻辑功能。与互连资源相关联的可编程互连可以被认为是可编程逻辑48的一部分。
可编程逻辑器件(诸如集成电路器件12)可以包括具有可编程逻辑48的可编程元件50。在一些实施例中,至少一些可编程元件50可被分组为逻辑阵列块(LAB)。如上所述,设计者(例如,客户)可以(重新)编程(例如,(重新)配置)可编程逻辑48以执行一个或多个期望的功能。以示例的方式,一些可编程逻辑器件可以通过使用掩模编程布置配置可编程元件50来进行编程或重新编程,这在半导体制造期间执行。在半导体制造操作完成之后配置其它可编程逻辑器件,诸如通过使用电编程或激光编程来编程可编程元件50。通常,可编程元件50可以基于任何适当的可编程技术,诸如熔丝、反熔丝、电可编程只读存储器技术、随机存取存储器单元、掩模编程元件等。
许多可编程逻辑器件是电编程的。利用电编程布置,可编程元件50可由一个或多个存储器单元形成。例如,在编程期间,使用输入/输出引脚44和输入/输出电路42将配置数据加载到存储器单元中。在一个实施例中,存储器单元可以被实施为随机存取存储器(RAM)单元。如本文所述的基于RAM技术的存储器单元的使用仅旨在为一个示例。进一步地,由于这些RAM单元在编程期间加载有配置数据,因此其有时被称为配置RAM单元(CRAM)。这些存储器单元可以各自提供对应的静态控制输出信号,其控制可编程逻辑48中的相关联逻辑部件的状态。例如,在一些实施例中,输出信号可以被施加到可编程逻辑48内的金属氧化物半导体(MOS)晶体管的栅极。
集成电路器件12可包括任何可编程逻辑器件,诸如现场可编程门阵列(FPGA)70,如图3所示。出于该示例的目的,FPGA 70被称为FPGA,但应当理解,器件可为任何合适类型的可编程逻辑器件(例如,专用集成电路和/或专用标准产品)。在一个示例中,FPGA 70是美国专利公布第2016/0049941号“Programmable Circuit Having Multiple Sectors”中描述的类型的分区FPGA,该专利为了所有目的以引用的方式全文并入。FPGA70可以形成在单个平面上。另外或替代地,FPGA 70可以是具有基管芯和结构管芯的三维FPGA,基管芯和结构管芯的类型在美国专利第10,833,679号“Multi-Purpose Interface forConfiguration Data and User Fabric Data”中描述,该专利为了所有目的以引用的方式全文并入。
在图3的示例中,FPGA 70可以包括收发器72,其可以包括和/或使用输入/输出电路,诸如图2中的输入/输出电路42,用于将信号驱动离开FPGA 70并且用于从其他器件接收信号。互连资源46可用于将信号(诸如时钟或数据信号)路由通过FPGA 70。FPGA 70被分区,这意味着可编程逻辑资源可以分布在多个分立的可编程逻辑扇区74中。可编程逻辑扇区74可包括具有由配置存储器76(例如CRAM)定义的操作的多个可编程元件50。
电源78可以向将电力分配给FPGA 70的各个部件的配电网络(PDN)80提供电压源(例如,电源电压)和电流源。操作FPGA 70的电路使得从配电网络80汲取电力。
在FPGA 70上可以有任何适当数量的可编程逻辑扇区74。实际上,虽然这里示出了29个可编程逻辑扇区74,但是应当理解,在实际实施方式中可以出现更多或更少的扇区(例如,在一些情况下,大约50、100、500、1000、5000、10000、50000或100000个扇区或更多)。可编程逻辑扇区74可以包括控制可编程逻辑扇区74的操作的扇区控制器(SC)82。扇区控制器82可以与器件控制器(DC)84通信。
扇区控制器82可以从器件控制器84接受命令和数据,并且可以基于来自器件控制器84的控制信号从其配置存储器76读取数据和向其配置存储器写入数据。除了这些操作之外,扇区控制器82可以增加许多额外的能力。例如,这种能力可以包括本地排序读取和写入以实施配置存储器76上的错误检测和校正以及排序测试控制信号以实施各种测试模式。
扇区控制器82和器件控制器84可以实施为状态机和/或处理器。例如,扇区控制器82或器件控制器84的操作可实施为包含控制程序的存储器中的单独例程。该控制程序存储器可以固定在只读存储器(ROM)中,或者存储在可写存储器中,诸如随机存取存储器(RAM)。ROM可以具有比将用于存储各个例程的仅一个副本的大小更大的大小。这可以允许例程根据本地控制器可以被置于的“模式”而具有多种变型。当控制程序存储器被实施为RAM时,RAM可以被写入新的例程以实施可编程逻辑扇区74中的新的操作和功能。这可以以高效且容易理解的方式提供可用的可扩展性。这可以是有用的,因为新命令可以以器件控制器84与扇区控制器82之间的仅少量通信为代价而在扇区内引起大量本地活动。
由此,扇区控制器82可与器件控制器84通信,这可协调扇区控制器82的操作且传达从FPGA 70外部发起的命令。为了支持这种通信,互连资源46可以充当器件控制器84与扇区控制器82之间的网络。互连资源46可支持器件控制器84与扇区控制器82之间的各种信号。在一个示例中,这些信号可以作为通信分组来传送。
如本文所述的基于RAM技术的配置存储器76的使用仅旨在为一个示例。而且,配置存储器76可以分布(例如,作为RAM单元)在FPGA 70的各个可编程逻辑扇区74中。配置存储器76可提供对应的静态控制输出信号,该信号控制相关联的可编程元件50或互连资源46的可编程部件的状态。配置存储器76的输出信号可以被施加到金属氧化物半导体(MOS)晶体管的栅极,其控制可编程元件50或互连资源46的可编程部件的状态。
如前所述,FPGA 70可用于增加为裸金属模式主机服务器提供和移除器件/功能的灵活性。例如,图4示出了用于使用包括FPGA 70的外围部件互连高速(PCIe)附加卡104来为裸金属模式主机服务器102提供器件/功能的系统100。尽管PCIe附加卡104被讨论为附加卡104,但是在一些实施例中,其可以被实施为任何其他PCIe器件,诸如使用其他技术(例如,在制造期间结合到裸金属主机服务器的主板等)耦合到裸金属主机服务器的器件。
如前所述,裸金属模式主机服务器102是裸金属平台器件,其中,用户携带他们自己的操作系统。裸金属模式平台器件还不允许由提供裸金属模式主机服务器102的云服务提供商进行虚拟化。实际上,在裸金属模式主机服务器102中,针对物理功能(PF)仅存在标准箱内驱动器。此外,裸金属模式主机服务器102和/或其辅助部件可以不使用裸金属模式主机服务器102和/或部件的重置来进行改变。此外,裸金属模式主机服务器102可能不能使用专有主机软件。由于应用于裸金属平台器件的这些限制,裸金属模式主机服务器102可能不能利用单根I/O虚拟化(SR-IOV)或可扩展I/O虚拟化(SIOV)。
PCIe附加卡104可以是加速器卡、网络接口控制器(NIC)卡、或者任何其它PCIe卡,其可以经由PCIe端口106、经由具有一个或多个“导电指”的PCIe连接器107而被包括在裸金属模式主机服务器102中,导电指用于在PCIe附加卡104与裸金属模式主机服务器102之间传送数据。
PCIe附加卡104还包括多个(例如,0、1或更多个)在运行时间提供的器件。例如,器件108可以在系统100启动时提供,并且可以在系统100启动时默认地可见。换言之,器件108默认对用户OS/软件可见。另外或替代地,当系统100启动时,更多的器件可以是可见的,其中,用户OS/软件发现PCIe附加卡104中多于1个的PF。在系统100和/或PCIe附加卡104启动时,还可以存在多个(例如,0、1或更多个)隐藏器件,诸如器件109和110。多个器件108、109和110可以使用UI(例如,在设计软件15中)设置在FPGA 70中。另外,在启动时默认隐藏或暴露的多个器件108、109和110也可以使用UI设置在FPGA 70中。图5示出了具有暴露的器件109和110的系统100。如下所述,系统100可以暴露器件109和110以呈现图5所示的布置。此外,如图5例示,系统100可隐藏器件109和110以呈现图4所示的布置。换言之,系统100可以动态地隐藏或暴露PCIe附加卡104中的任何器件/PF。
器件108、109和110可以具有各种器件类型,诸如存储、通信和/或其他合适的类型。该器件类型可以通过提供器件108、109和/或110来指定。
PCIe附加卡104中的诸如器件108、109和110的器件/PF可以利用到PCIe连接器107的连接,以利用PCIe端口106。为了提供这种连接,PCIe附加卡104包括集成的交换机和嵌入式端点112。集成的交换机和嵌入式端点112可以包括用于PF的多个PCIe嵌入式端点114和PCIe交换机116。协调控制器片上系统(SoC)118可以用于控制PCIe交换机116和/或器件108、109和110。PCIe交换机116可以是和/或包括虚拟交换机。在一些实施例中,作为分立交换机的交换机可能是昂贵的,并且将利用物理上添加或移除的分立端点,这在PF要被立即添加/移除/更新时在数据中心中是不可能的。然而,单独具有虚拟集成PCIe交换机将缺乏在运行时间提供不同数量的PF和不同PF器件类型的能力。另外,服务器或图形芯片组可以具有虚拟交换机端口(VSP)以静态地附接多个端点,但是缺乏弹性地提供系统中的多个预先存在的PF,而且缺乏指定各个PF器件类型的能力。
该系统可以用于在运行时间提供器件109和110。如前所述,系统100将使得能够在不进行链路断开或链路重置的情况下添加和移除PCIPF/器件,因为如果器件被暴露为作为典型FPGA PCIe配置的多功能端点器件,则不支持链路断开或链路重置。此外,由于链路重置不可用,所以在没有PCIe附加卡104或系统100的重置的情况下,使用部分或全部配置的重新配置可能不可行。为了支持该提供,PCIe交换机116被定义为使得各个PCIe PF/器件可以被动态地添加/移除以连接到PCIe交换机116的下游端口。这允许客户在连接到PCIe交换机116的下游端口的各个功能上仿真热插拔,而不需要交换机与集成端点之间的PCIe物理链路。该热插拔可以作为PCIe端口106的默认PCI热插拔软件栈的一部分而被支持。协调控制器SoC 118可以与FPGA 70在PCIe附加卡104的相同板上,以执行用于FPGA应用的控制路径管理,从而在连接到PCIe交换机116的下游端口的PCI功能上仿真热插拔事件。这允许协调控制器SoC 118的软件栈能够控制与协调控制器SoC 118侧的软件栈对准的PCIe PF器件的添加/移除。换言之,可以在PCIe拓扑主机根端口、PCIe交换机层次结构和端点的顶部上执行提供,以便在系统中不允许虚拟化软件以及先前提到的其他要求时允许PF的数量和/或各个PF的器件类型(例如,存储、网络、加速器或其他类型)的运行时间弹性缩放。
在设计时间或运行时间库(RTL)的编码时,PCIe附加卡104被设计为具有针对系统器件提供允许的最大N个的PCIe器件物理功能(PF)。如上所述,为了暴露或隐藏在提供期间由最终用户支付的按需正确数量的器件,系统100将PCIe交换机116的下游端口的热插拔能力仿真为隐藏或示出PCIe交换机116的端口下的各个集成PCIe器件/PF的基本机制。通过这样使用PCIe热插拔特征,系统100使得弹性器件数量的PF提供能够利用用户OS(例如,Linux和Windows)中的现有PCIe热插拔箱内软件驱动器支持。这种使用还满足了无系统/PCIe重置以及无在裸金属模式主机服务器102中的主机CPU上运行的专有软件驱动器的要求。相反,主机CPU依赖于与PCIe附加卡104的通信。换言之,N个PCIe PF中的每一个可以根据PCIe规范(交换机拓扑)在逻辑上放置在PCIe交换机下游端口之下。
为了暴露隐藏器件(例如,器件109和110),FPGA 70可以用于通过如下方式暴露隐藏器件:1)使用协调控制器SoC 118来执行用于暴露/隐藏器件109和110的寄存器的后门寄存器编程、或者2)使用供应商定义的消息传递(VDM)来使得集成交换机和嵌入式端点在没有协调控制器SoC 118的情况下暴露/隐藏器件。
由于在协调控制器SoC 118上执行的软件可以知道在哪里触摸寄存器以隐藏/暴露器件,因此协调控制器SoC 118可以用于执行后门寄存器编程。软件还能够经由已知的寄存器位置访问/改变器件的器件类型。PCIe交换机116可以用于通过为协调控制器SoC 118提供挂钩来实施这种类型的隐藏/暴露,以管理控制计划来仿真虚拟热插拔事件(例如,PF器件的移除或添加)。PCIe交换机116还提供嵌入式端点器件报头,用于协调控制器SoC 118配置器件类型(例如,网络、存储、加速等)。使用这些提供,协调控制器SoC 118被使得能够向远程裸金属模式主机服务器102隐藏/暴露作为PCIe交换机116的一部分的嵌入式端点。
不管用于执行器件的暴露/隐藏的机制如何,系统100使得系统所有者能够在运行时间执行动态PCIe更新,包括1)隐藏/示出可变数量的PCIe PF/器件,2)更新各个PF中的器件类型,诸如非易失性存储器(NVMe)、virtIo-blk、virtio-net以及根据提供的其他类型。
图6是系统130的框图。系统130可以是系统100的子集。系统130包括裸金属模式主机服务器102的主机处理器131。主机处理器131包括主机PCIe根端口132,其用于经由PCIe端口106与FPGA 70的PCIe物理层连接134通信。而且,如系统130所述,FPGA 70可包括专用集成电路(ASIC)或由专用集成电路(ASIC)代替。PCIe物理层连接134耦合到作为PCIe交换机116的一部分的PCIe上游交换机端口136。PCIe上游交换机端口136可以用于通过PCIe端口106将数据路由到器件。通过FPGA 70的结构138,PCIe上游交换机端口136耦合到与相应的器件/PF/端点142a、142b、142c和142d相对应的PCIe下游交换机端口140a、140b、140c和140d。这些PCIe下游交换机端口140a、140b、140c和140d选通对相应器件/PF/端点142a、142b、142c和142d的访问。当进行改变以添加或移除相应的器件/PF/端点142a、142b、142c和142d时,可以如前所述地利用相应的热插拔控制器144a。
经由PCIe上游交换机端口136和PCIe下游交换机端口140a、140b、140c和140d从PCIe端口106对相应的器件/PF/端点142a、142b、142c和142d的访问经由PCIe上游交换机端口136和PCIe下游交换机端口140a、140b、140c和140d的寄存器来控制。器件提供实体146可以向PCIe上游交换机端口136和PCIe下游交换机端口140a、140b、140c和140d发送配置信号,以重新配置PCIe上游交换机端口136和PCIe下游交换机端口140a、140b、140c和140d,从而暴露/隐藏相应的器件/PF/端点142a、142b、142c和142d。器件提供实体146可以包括在FPGA 70中实施的逻辑和/或电路,以使得协调控制器SoC 118能够执行相应寄存器的重新配置。换言之,器件提供实体146可以以硬件、软件或硬件和软件的组合来实施。另外地或替代地,器件提供实体146可以包括使得主机处理器131能够解码/转换VDM以执行相应寄存器的重新配置的电路。由此,可以使用硬件、软件或其组合来执行相应器件/PF/端点142a、142b、142c和142d的隐藏和暴露。FPGA 70还可以实现用于诸如直接存储器访问(DMA)功能、加速器功能等的功能的端点应用逻辑的访问/使用。
图7是作为系统130的替代表示的系统150的框图,其示出了PCIe上游交换机端口136和PCIe下游交换机端口140a、140b、140c和140d的寄存器,以暴露/隐藏相应的器件/PF/端点142a、142b、142c和142d。系统150包括PCIe交换机拓扑仿真器152,其是PCIe交换机116的一部分。PCIe交换机拓扑仿真器152还包括PCIe上游交换机端口136和PCIe下游交换机端口140a、140b、140c和140d,其耦合到PCIe端点物理功能电路162的相应器件/PF/端点142a、142b、142c和142d。器件提供实体146通过改变PCIe上游交换机端口136和PCIe下游交换机端口140a、140b、140c和140d的行为方式,来配置用于隐藏/暴露相应器件/PF/端点142a、142b、142c和142d的交换机的配置寄存器154。
当要进行改变时,器件提供实体146向相应的中断控制器158(例如,热插拔控制器144)发送一个或多个中断156。作为改变的一部分,器件提供实体146还访问或重新配置端点PF配置寄存器160。端点PF配置寄存器160的改变可用于改变器件类型,而访问可用于在暴露特定器件类型时确定器件的器件类型。
图8是可用于暴露/隐藏PF/端点/器件的过程200的流程图。FPGA 70接收添加或移除器件的请求(方框202)。该请求可以基于用户将请求输入到裸金属模式主机服务器102中而从主机处理器131做出。该请求可以指示要添加多少器件、可以指示特定器件(例如,经由索引或命名)、指示器件类型、或其组合。协调控制器SoC 118和/或器件提供实体146确定哪些器件作为改变的一部分的目标(方框204)。例如,协调控制器SoC118和/或器件提供实体146可以执行针对后门寄存器编程实施例的确定,而器件提供实体146执行针对VDM的确定。另外,该确定可以至少部分地基于访问端点PF的配置寄存器160。该确定可以包括识别对应于交换机下游端口140的PCIe插槽数量。
然后,协调控制器SoC 118和/或器件提供实体146改变寄存器以向主机暴露或隐藏一个或多个器件(方框206)。协调控制器SoC 118和/或器件提供实体146可以更新各种报头作为改变的一部分。例如,器件的PCI报头配置寄存器反映器件类型。在一些实施例中,可以包括额外细节,诸如次级代码、供应商标识符、器件标识符。交换机下游端口140可以具有链路状态配置寄存器,其包括链路状态寄存器数据层链路有效位(例如,位13),该有效位可以设置为有效以添加器件,以及设置为无效以移除器件。交换机下游端口140可以具有插槽状态寄存器,其用于在添加或移除器件时触发对主处理器131的热插拔中断。例如,当添加或移除器件时,可以将插槽状态寄存器中的数据链路层状态改变位(例如,位8)改变为改变。另外,当进行/将进行改变时,可以将插槽状态寄存器中的存在检测状态位(例如,位3)从空切换为存在。
在执行改变之后,裸金属模式主机服务器102可利用FPGA 70来利用暴露的器件(方框208)。
图9是可以在基于VDM的通信中使用的数据分组220的图。数据分组220可以包括PCIe规范所要求的标准字段和大小。例如,它可以包括消息请求TLP类型、vendor_defined类型1、TC、按id路由、以及供应商消息编码字段。数据分组220还可以包括一个或多个可以用于隐藏/暴露器件的字段。例如,所例示的数据分组220包括应用编程接口(API)编码字段222。API编码字段222的所例示实施例包括四位,但是在一些实施例中,它可以包括更多或更少位。API编码字段222可以具有与添加器件动作相对应的第一图案(例如,0000)和与移除器件动作相对应的第二图案(例如,0001)。API编码字段222可以具有覆盖诸如替换器件的其它动作的额外编码图案。
数据分组220还包括用于由产品(例如,PCIe附加卡104)分配的各个上游端口的上游端口标识符字段224,如果该产品具有多个上游端口,则API将被应用到该产品。如果没有多个上游端口,则该字段可以被忽略。
数据分组220还可以包括PCIe交换机插槽数量字段226,以指示要在添加器件动作中添加的插槽或者在移除器件动作中移除的插槽。数据分组220还可以包括PF数量字段228,以指示要添加或移除多少器件。供应商标识符字段230可以用于确认VDM将被用于的供应商。类似地,器件标识符字段232可以用于确认以基于供应商的VDM为目标的器件。数据分组220还可以包括用于指定要访问/改变的寄存器级的级代码字段234。
集成电路器件12可以是数据处理系统或包括在数据处理系统中的部件。例如,集成电路器件12可为图10所示的数据处理系统280的部件。数据处理系统280可以包括主机处理器282(例如,中央处理单元(CPU))、存储器和/或存储电路284和网络接口286。数据处理系统280可以包括更多或更少的部件(例如,电子显示器、用户接口结构、专用集成电路(ASIC))。主机处理器282可以包括任何合适的处理器,诸如处理器或精简指令处理器(例如精简指令集计算机(RISC)、高级RISC机器(ARM)处理器),其可以管理对数据处理系统280的数据处理请求(例如,以执行调试、数据分析、加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式识别、空间导航等)。存储器和/或存储电路284可以包括随机存取存储器(RAM)、只读存储器(ROM)、一个或多个硬盘驱动器、闪存等。存储器和/或存储电路284可以保存将由数据处理系统280处理的数据。在一些情况下,存储器和/或存储电路284还可存储用于对集成电路器件12进行编程的配置程序(位流)。网络接口286可以允许数据处理系统280与其它电子器件通信。数据处理系统280可以包括若干不同的封装,或者可以包含在单个封装基板上的单个封装内。
在一个示例中,数据处理系统280可以是处理各种不同请求的数据中心的一部分。例如,数据处理系统280可以经由网络接口286接收数据处理请求,以执行加速、调试、错误检测、数据分析、加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式识别、空间导航、数字信号处理或一些其他专门任务。
虽然在本公开中阐述的实施例可以容许各种修改和替代形式,但是已经在附图中以示例的方式示出了具体实施例并且已经在本文中详细描述了具体实施例。然而,应当理解,本公开不旨在限于所公开的特定形式。本公开将覆盖落入由所附权利要求限定的本公开的精神和范围内的所有修改、等同物和替代。
本文提出和要求保护的技术被引用和应用到实际性质的材料对象和具体示例,其可证明地改进了本技术领域,因此不是抽象的、无形的或纯粹理论的。进一步地,如果本说明书所附的任何权利要求包含一个或多个指定为“用于[执行][功能]…的装置”或“用于[执行][功能]…的步骤”的元件,则这些元件旨在根据35U.S.C.112(f)来解释。然而,对于包含以任何其它方式指定的元件的任何权利要求,预期这样的元件不应根据35U.S.C.112(f)来解释。
示例实施例
示例实施例1.一种系统,包括:外围部件互连高速(PCIe)附加卡,其包括可编程结构,可编程结构包括:多个PCIe物理功能;以及具有一个或多个嵌入式端点的交换机电路,交换机电路在不使用重置的情况下向裸金属模式主机服务器动态地隐藏或暴露多个PCIe物理功能中的一个或多个PCIe物理功能。
示例实施例2.根据示例实施例1的系统,其中,可编程结构包括现场可编程门阵列。
示例实施例3.根据示例实施例1的系统,其中,可编程结构包括专用集成电路。
示例实施例4.根据示例实施例1的系统,包括经由PCIe端口连接耦合到PCIe附加卡的裸金属模式主机服务器。
示例实施例5.根据示例实施例4的系统,其中,隐藏或暴露多个PCIe物理功能中的一个或多个PCIe物理功能经由裸金属模式主机服务器来发起。
示例实施例6.根据示例实施例1的系统,其中,PCIe附加卡包括协调控制器片上系统(SoC)。
示例实施例7.根据示例实施例6的系统,其中,SoC执行后门寄存器重新编程以动态地暴露或隐藏多个PCIe物理功能中的一个或多个PCIe物理功能。
示例实施例8.根据示例实施例7的系统,其中,交换机电路包括PCIe上游交换机端口,并且后门寄存器编程包括SoC对与PCIe上游交换机端口相对应的上游寄存器进行重新编程。
示例实施例9.根据示例实施例8的系统,包括多个PCIe下游交换机端口,其中,多个PCIe下游交换机端口中的相应PCIe下游交换机端口对应于多个PCIe物理功能中的相应PCIe物理功能,并且后门寄存器编程包括SoC对与多个PCIe物理功能中的一个或多个PCIe物理功能相对应的多个PCIe下游交换机端口中的一个或多个PCIe下游交换机端口进行重新编程。
示例实施例10.根据示例实施例9的系统,其中,多个PCIe下游交换机端口中的相应PCIe下游交换机端口对应于多个热插拔控制器中的相应热插拔控制器。
示例实施例11.根据示例实施例7的系统,其中,后门寄存器编程包括访问或改变与多个PCIe物理功能中的一个或多个PCIe物理功能相对应的端点寄存器中的值。
示例实施例12.根据示例实施例11的系统,其中,改变端点寄存器中的值包括在端点寄存器的相应端点寄存器中设置用于多个PCIe物理功能中的一个或多个PCIe物理功能中的至少一个PCIe物理功能的器件类型。
示例实施例13.根据示例实施例1的系统,其中,PCIe附加卡根据供应商定义的消息中指定的字段来隐藏或暴露多个PCIe物理功能中的一个或多个PCIe物理功能。
示例实施例14.一种方法,包括:在外围部件互连高速(PCIe)附加卡处接收向耦合到PCIe附加卡的裸金属模式主机服务器暴露PCIe附加卡的可编程逻辑器件中的PCIe器件的请求;基于请求确定PCIe附加卡中的目标寄存器;以及改变PCIe附加卡中的寄存器,以向裸金属模式主机服务器暴露PCIe器件。
示例实施例15.根据示例实施例14的方法,其中,改变寄存器包括使用协调控制器片上系统执行寄存器的后门编程。
示例实施例16.根据示例实施例14的方法,其中,改变寄存器包括基于发送到PCIe附加卡的供应商定义的消息来改变寄存器。
示例实施例17.根据示例实施例14的方法,其中,接收请求包括接收基于PCIe器件之间的公共器件类型来暴露PCIe附加卡的所有PCIe器件的请求,并且改变寄存器包括改变多个寄存器以暴露PCIe附加卡的具有公共器件类型的所有PCIe器件。
示例实施例18.一种方法,包括:向耦合到外围部件互连高速(PCIe)附加卡的裸金属模式主机服务器暴露PCIe附加卡的可编程结构的多个PCIe器件中的PCIe器件;在PCIe附加卡处接收向耦合到PCIe附加卡的裸金属模式主机服务器隐藏PCIe器件的请求;以及改变PCIe附加卡中的寄存器,以向裸金属模式主机服务器隐藏PCIe器件。
示例实施例19.根据示例实施例18的方法,其中,暴露PCIe器件包括:暴露PCIe器件,作为是裸金属模式主机服务器的启动的一部分的默认暴露。
示例实施例20.根据示例实施例18的方法,其中,改变寄存器包括使用PCIe附加卡的片上系统(SoC)或者基于供应商定义的消息来改变寄存器以绕过SoC。
Claims (25)
1.一种系统,包括:
外围部件互连高速(PCIe)器件,其包括可编程结构,所述可编程结构包括:
多个PCIe物理功能;以及
具有一个或多个嵌入式端点的交换机电路,所述交换机电路在不使用重置的情况下向裸金属模式主机服务器动态地隐藏或暴露所述多个PCIe物理功能中的一个或多个PCIe物理功能。
2.根据权利要求1所述的系统,其中,所述可编程结构包括现场可编程门阵列。
3.根据权利要求1或2所述的系统,其中,所述可编程结构包括专用集成电路。
4.根据权利要求1或2所述的系统,包括经由PCIe端口连接耦合到所述PCIe器件的所述裸金属模式主机服务器。
5.根据权利要求4所述的系统,其中,所述PCIe器件包括PCIe附加卡。
6.根据权利要求1或2所述的系统,其中,所述PCIe附加卡包括协调控制器片上系统(SoC)。
7.根据权利要求6所述的系统,其中,所述SoC执行后门寄存器重新编程以动态地暴露或隐藏所述多个PCIe物理功能中的所述一个或多个PCIe物理功能。
8.根据权利要求7所述的系统,其中,所述交换机电路包括PCIe上游交换机端口,并且所述后门寄存器编程包括所述SoC对与所述PCIe上游交换机端口相对应的上游寄存器进行重新编程。
9.根据权利要求8所述的系统,包括多个PCIe下游交换机端口,其中,所述多个PCIe下游交换机端口中的相应PCIe下游交换机端口对应于所述多个PCIe物理功能中的相应PCIe物理功能,并且所述后门寄存器编程包括所述SoC对与所述多个PCIe物理功能中的所述一个或多个PCIe物理功能相对应的所述多个PCIe下游交换机端口中的一个或多个PCIe下游交换机端口的下游寄存器进行重新编程。
10.根据权利要求9所述的系统,其中,所述多个PCIe下游交换机端口中的相应PCIe下游交换机端口对应于多个热插拔控制器中的相应热插拔控制器。
11.根据权利要求7所述的系统,其中,所述后门寄存器编程包括访问或改变与所述多个PCIe物理功能中的所述一个或多个PCIe物理功能相对应的端点寄存器中的值。
12.根据权利要求11所述的系统,其中,改变所述端点寄存器中的所述值包括在所述端点寄存器的相应端点寄存器中设置用于所述多个PCIe物理功能中的所述一个或多个PCIe物理功能中的至少一个PCIe物理功能的器件类型。
13.根据权利要求1或2所述的系统,其中,所述PCIe附加卡根据供应商定义的消息中指定的字段来隐藏或暴露所述多个PCIe物理功能中的所述一个或多个PCIe物理功能。
14.一种方法,包括:
在外围部件互连高速(PCIe)器件处接收向耦合到所述PCIe器件的裸金属模式主机服务器暴露所述PCIe器件的可编程逻辑器件中的PCIe端点的请求;
基于所述请求确定所述PCIe器件中的目标寄存器;以及
改变所述PCIe器件中的所述寄存器,以向所述裸金属模式主机服务器暴露所述PCIe端点。
15.根据权利要求14所述的方法,其中,改变所述寄存器包括使用协调控制器片上系统执行所述寄存器的后门编程。
16.根据权利要求14或15所述的方法,其中,改变所述寄存器包括基于发送到所述PCIe器件的供应商定义的消息来改变所述寄存器。
17.根据权利要求14或15所述的方法,其中,接收所述请求包括接收基于所述PCIe端点之间的公共器件类型来暴露所述PCIe器件的所有PCIe端点的请求,并且改变寄存器包括改变多个寄存器以暴露所述PCIe器件的具有所述公共器件类型的所有所述PCIe端点。
18.一种方法,包括:
向耦合到外围部件互连高速(PCIe)器件的裸金属模式主机服务器暴露所述PCIe器件的可编程结构的多个PCIe端点中的PCIe端点;
在所述PCIe器件处接收向耦合到所述PCIe器件的所述裸金属模式主机服务器隐藏所述PCIe端点的请求;以及
改变所述PCIe器件中的寄存器,以向所述裸金属模式主机服务器隐藏所述PCIe端点。
19.根据权利要求18所述的方法,其中,暴露所述PCIe端点包括:暴露所述PCIe端点,作为是所述裸金属模式主机服务器的启动的一部分的默认暴露。
20.根据权利要求18或19所述的方法,其中,改变所述寄存器包括使用所述PCIe器件的片上系统(SoC)或者基于供应商定义的消息来改变所述寄存器以绕过所述SoC。
21.一种系统,包括:
用于接收向耦合到外围部件互连高速(PCIe)器件的裸金属模式主机服务器暴露所述PCIe器件的可编程逻辑器件中的PCIe端点的请求的装置;
用于基于所述请求确定所述PCIe器件中的目标寄存器的装置;以及
用于改变所述PCIe器件中的所述寄存器以向所述裸金属模式主机服务器暴露所述PCIe端点的装置。
22.根据权利要求21所述的系统,包括用于使用协调控制器片上系统来执行所述寄存器的后门编程的装置,或者改变所述寄存器包括基于发送到所述PCIe器件的供应商定义的消息来改变所述寄存器。
23.根据权利要求21或22所述的系统,其中,所述请求包括基于所述PCIe端点之间的公共器件类型来暴露所述PCIe器件的所有PCIe端点的请求,并且改变寄存器包括改变多个寄存器以暴露所述PCIe器件的具有所述公共器件类型的所有所述PCIe端点。
24.一种系统,包括:
外围部件互连高速(PCIe)器件,其包括可编程结构,所述可编程结构包括:
多个PCIe物理功能;以及
具有一个或多个嵌入式端点的交换机电路,所述交换机电路用于:
向耦合到所述PCIe器件的裸金属模式主机服务器暴露所述可编程结构的多个PCIe端点中的PCIe端点;
接收向耦合到所述PCIe器件的所述裸金属模式主机服务器隐藏所述PCIe端点的请求;以及
改变所述PCIe器件中的寄存器,以向所述裸金属模式主机服务器隐藏所述PCIe端点。
25.根据权利要求24所述的系统,其中,改变所述寄存器包括使用所述PCIe器件的片上系统(SoC)或者基于供应商定义的消息来改变所述寄存器以绕过所述SoC。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/559,427 | 2021-12-22 | ||
US17/559,427 US20220156211A1 (en) | 2021-12-22 | 2021-12-22 | Dynamic provisioning of pcie devices at run time for bare metal servers |
PCT/US2022/050731 WO2023121815A1 (en) | 2021-12-22 | 2022-11-22 | Dynamic provisioning of pcie devices at run time for bare metal servers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117480498A true CN117480498A (zh) | 2024-01-30 |
Family
ID=81586690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280042321.0A Pending CN117480498A (zh) | 2021-12-22 | 2022-11-22 | 在运行时间为裸金属服务器动态提供PCIe器件 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220156211A1 (zh) |
CN (1) | CN117480498A (zh) |
WO (1) | WO2023121815A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220156211A1 (en) * | 2021-12-22 | 2022-05-19 | Intel Corporation | Dynamic provisioning of pcie devices at run time for bare metal servers |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101874726B1 (ko) * | 2013-12-26 | 2018-07-04 | 인텔 코포레이션 | Pci 익스프레스 강화 |
WO2018031939A1 (en) * | 2016-08-12 | 2018-02-15 | Liqid Inc. | Disaggregated fabric-switched computing units |
US11449357B2 (en) * | 2018-11-13 | 2022-09-20 | SK Hynix Inc. | Configurable integrated circuit to support new capability |
US11190460B2 (en) * | 2019-03-29 | 2021-11-30 | Intel Corporation | System-in-package network processors |
US20210294772A1 (en) * | 2021-06-07 | 2021-09-23 | Intel Corporation | Systems, Apparatus And Methods For Rapid Peripheral Component Interconnect Express (PCIE) System Boot |
US20220156211A1 (en) * | 2021-12-22 | 2022-05-19 | Intel Corporation | Dynamic provisioning of pcie devices at run time for bare metal servers |
-
2021
- 2021-12-22 US US17/559,427 patent/US20220156211A1/en active Pending
-
2022
- 2022-11-22 CN CN202280042321.0A patent/CN117480498A/zh active Pending
- 2022-11-22 WO PCT/US2022/050731 patent/WO2023121815A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220156211A1 (en) | 2022-05-19 |
WO2023121815A1 (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11016906B2 (en) | GPU virtualisation | |
CN110063051B (zh) | 用于重新配置服务器的系统和方法以及服务器 | |
KR102610567B1 (ko) | 이종 시스템 온 칩에 대한 소프트웨어 정의 다중 도메인 생성 및 분리 | |
US10599599B2 (en) | Selectable peripheral logic in programmable apparatus | |
US20190042329A1 (en) | System with programmable multi-context accelerator circuitry | |
US9720704B2 (en) | Data driven hardware chips initialization via hardware procedure framework | |
US10289785B1 (en) | Platform architecture creation for a system-on-chip | |
CN107548488B (zh) | 具有dsp引擎及增强上下文切换能力的中央处理单元 | |
US11360925B2 (en) | Method and apparatus for host adaptation to a change of persona of a configurable integrated circuit die | |
CN101777005B (zh) | 重定向物理设备控制器的中断而提供多个虚拟设备控制器的装置和方法 | |
WO2014120113A1 (en) | Assigning processors to memory mapped configuration | |
US20080163331A1 (en) | Reconfiguring a secure system | |
CN117480498A (zh) | 在运行时间为裸金属服务器动态提供PCIe器件 | |
CN114691224A (zh) | 设备加载系统、方法及电子设备 | |
CN113392052B (zh) | 一种基于四路服务器的bios系统、方法及计算机可读存储介质 | |
CN112346390B (zh) | 光模块控制方法、装置、设备及计算机可读存储介质 | |
US20230289500A1 (en) | Method and system for building hardware images from heterogeneous designs for eletronic systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |