CN115858442A - 远程分解式基础设施处理单元(ipus) - Google Patents

远程分解式基础设施处理单元(ipus) Download PDF

Info

Publication number
CN115858442A
CN115858442A CN202211019689.3A CN202211019689A CN115858442A CN 115858442 A CN115858442 A CN 115858442A CN 202211019689 A CN202211019689 A CN 202211019689A CN 115858442 A CN115858442 A CN 115858442A
Authority
CN
China
Prior art keywords
ipu
tlp
network interface
controller
pcie
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
Application number
CN202211019689.3A
Other languages
English (en)
Inventor
S·约翰逊
D·加尔比
B·伯瑞斯
J·尼尔
J·金
R·拉尔
A·贾亚库马尔
M·甘古利
T·威利斯
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 CN115858442A publication Critical patent/CN115858442A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Abstract

描述了用于远程分解式基础设施处理单元(IPU)的技术。本文中所描述的装置包括互连控制器,该互连控制器用于:从主机计算节点接收事务层分组(TLP);从TLP标识发送方和目的地;以及将从发送方和目的地确定的关键字发送至内容可寻址存储器(CAM)。如本文中所描述的装置可以进一步包括可通信地耦合至互连控制器的核心电路,该核心电路用于:基于关键字来确定CAM的输出,该输出包括被指派给主机计算节点的基础设施处理单元(IPU)的网络地址,其中,IPU通过网络从主机计算节点被分解;以及使用传输协议将TLP发送至IPU。

Description

远程分解式基础设施处理单元(IPUS)
背景技术
基础设施处理单元(Infrastructure Processing Unit,IPU)通过向数据中心运营商(诸如,云服务提供商(Cloud Service Provider,CSP))提供针对安全性、加速、遥测和服务编排的控制点而在数据中心发挥重要作用。IPU体系结构(architecture)在现有的SmartNIC(智能NIC)特征之上建立,并且是在分布式平台内和跨分布式平台控制安全性和数据加速的部分。它是受CSP控制的用于管理平台、向租户提供服务并且保障对数据中心网络的访问的安全域。通过迁移主机服务、可靠的传输并优化数据复制,IPU提高了针对分布式运行时的性能和可预测性,并且使得能够对多太比特(multi-terabit)吞吐量进行缩放。IPU与中央处理单元(central processing unit,CPU)及XPU(异构处理单元)组件物理地分开提供了若干益处,这些益处包括但不限于:通过与不可信租户应用的物理隔离而取得的减小的攻击面,逐服务器缩放以获得更简单的尺寸确定和减小的冲击半径,清晰的连接性抽象点和XPU供应商独立性,多租户和裸金属支持,状态的关联性以获得更好的表缩放和缓存,和/或针对连接性相关服务的XPU迁移的加速器工具箱。
这些IPU特性正在实现具有改善的安全性、优化的数据流和可编程加速的新的异构平台体系结构,从而改善分布式服务的性能。这些新的体系结构提供了可跨越云、企业、边缘和电信部署的优化且安全的蓝图,从而能够在任何位置实现一致且无缝的用户体验。
这些年来,开始于其目的是使分组进入主机并离开主机的基础网络接口卡(network interface card,NIC),IPU已在复杂性方面增长。随着联网软件迁移的添加,NIC演进为能够迁移功能的SmartNIC。远程分解式存储体系结构是快速演进的趋势,其中计算和存储不再是位于一起(co-located)的,而是大型计算集群可以通过网络连接至大型存储集群。网络速度的提升和接口协议的演进使得这成为可能。远程分解式存储相对于直接附接的存储提供的优势之一在于计算和存储器可以以不同的节拍来开发和更新。由此,附接至计算的存储器的量不再受限于硬驱动器的物理添加或移除,而是可以作为一种功能来进行热插拔。目前的技术使得IPU能够具有固件控制的交换机,并且使得PCIe交换机自身不受硬件实现方式限制。
IPU持续附接至主机系统,典型地通过PCIe并且在未来通过计算快速链路(compute express link,CXL)附接至主机系统。IPU提供丰富的特征集,诸如,除了现在具有IPU自身上的计算能力之外,还提供各种计算和存储迁移。然而,并非所有的主机系统都要求IPU现在提供的完整的特征集,从而导致所附接的IPU的利用不足。
附图说明
将参考附图来描述根据本公开的各实施例,其中:
图1是图示根据本文中描述的实施例的一个或多个方面的、被配置成用于实现远程分解式IPU的联网系统的框图。
图2是图示根据本文中描述的实施例的一个或多个方面的、被配置成用于远程分解式IPU的示例联网系统的框图。
图3是图示根据本文中描述的实施例的一个或多个方面的、用于将网络接口设备编程为用于与远程分解式IPU的通信的方法的流程图。
图4是图示根据本文中描述的实施例的一个或多个方面的、用于在联网系统中与远程分解式IPU进行通信的方法的流程图。
图5是图示根据本文中描述的实施例的一个或多个方面的、用于在联网系统中在远程分解式IPU处接收通信的方法的流程图。
图6图示根据本文中描述的实施例的一个或多个方面的示例系统的实施例。
图7图示可具有多于一个的核心、可具有集成存储器控制器、并且可具有集成图形器件的处理器的实施例的框图。
图8(A)是图示根据本文中描述的实施例的一个或多个方面的示例有序管线以及示例寄存器重命名、乱序发出/执行管线两者的框图。
图8(B)是图示根据本文中描述的实施例的一个或多个方面的要包括在处理器中的有序体系结构核心的示例实施例和示例寄存器重命名、乱序发出/执行体系结构核心两者的框图。
图9图示根据本文中描述的实施例的一个或多个方面的(一个或多个)执行单元电路的实施例。
图10是根据一些实施例的寄存器体系结构的框图。
图11图示根据本文中描述的实施例的一个或多个方面的、对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。
具体实施方式
本公开涉及用于远程分解式基础设施处理单元(infrastructure processingunit,IPU)的方法、装置、系统和非暂态计算机可读存储介质。
IPU可以通过为数据中心运营商(诸如,云服务提供商(Cloud Service Provider,CSP))提供针对安全性、加速、遥测和服务编排的控制点而在数据中心发挥重要作用。IPU体系结构可在现有的智能网络接口卡(Smart Network Interface Card,SmartNIC)特征之上建立,并且是在分布式平台内和跨分布式平台控制安全性和数据加速的部分。它是受CSP控制的用于管理平台、向租户提供服务并且保障对数据中心网络的访问的安全域。通过迁移主机服务、可靠的传输并优化数据复制,IPU提高了针对分布式运行时的性能和可预测性,并且使得能够对多太比特吞吐量进行缩放。
IPU与中央处理单元(central processing unit,CPU)及XPU(异构处理单元)组件物理地分开提供了若干益处,这些益处包括但不限于:通过与不可信租户应用的物理隔离而取得的减小的攻击面,逐服务器缩放以获得更简单的尺寸确定和减小的冲击半径,清晰的连接性抽象点和XPU供应商独立性,多租户和裸金属支持,状态的关联性以获得更好的表缩放和缓存,和/或针对连接性相关服务的XPU迁移的加速器工具箱。
这些IPU特性正在实现具有改善的安全性、优化的数据流和可编程加速的新的异构平台体系结构,从而改善分布式服务的性能。这些新的异构平台体系结构提供了可跨越云、企业、边缘和电信部署的优化且安全的蓝图,从而能够在任何位置实现一致且无缝的用户体验。
云计算正处于拐点,其中存在两个相辅相成的趋势:(A)CSP和更宽泛的软件生态系统正在驱动规模化的‘云原生’服务的开发,这些‘云原生’服务被组成为分布式事件驱动的微服务,对超出机架规模范围的不断增长的数据集进行操作。这些部署模型正在推动对数据中心的重新思考,这种重新思考将应用与基础设施之间的抽象提高到更高的水平,并对底层分布式系统设计提出要求。(B)为了满足这些规模化要求,CSP正在演进其硬件平台——演进为由通用处理器、异构加速器和特制的纵向集成的IPU(例如,当前示例为SmartNIC)组成的分解式元件。IPU形成用于CSP的、针对除基础设施迁移和通信之外的安全性和协调功能的宝贵的控制点。
现代数据中心使用直接附接至主机的SmartNIC/IPU来向CPU提供各种迁移。所提供的迁移可以是联网、存储、安全性等。这允许主机在没有管理程序的情况下运行,并且向CSP提供将数据中心中的整个主机租出给它们的关注安全性的客户的能力,或者避免与多租户主机相关联的串扰和其他问题。
近年来,开始于唯一的目的在于使分组进入主机或离开主机的基础NIC,IPU已经在复杂性方面增长。随着联网软件迁移的添加,NIC演进成为SmartNIC,其能够对诸如VSwitch、VIRTIO-Net、AVF等的功能进行迁移。远程分解式存储体系结构提供了进一步的演进,其中,计算和存储不再是位于一起的,而是大型计算集群通过网络连接至大型存储集群。网络速度的提高和协议的演进使得这成为可能。远程分解式存储相对于直接附接的存储提供的优势之一是计算和存储器可以以不同的节拍来开发和更新。附接至计算节点的存储器的量不再受限于硬驱动器的物理添加或移除,而是可以作为PF向PCIe交换机进行热插拔。诸如智能端点(Smart End Point)之类的技术使得IPU能够具有固件控制的交换机,并且使得PCIe交换机自身不受硬件实现方式限制。
然而,IPU持续附接至主机系统,典型地通过PCIe并且在未来通过CXL附接至主机系统。IPU提供丰富的特征集,诸如,除了现在具有IPU自身上的计算能力之外,还提供各种计算和存储迁移。然而,并非所有的主机系统都利用IPU现在提供的完整的特征集,从而导致所附接的IPU的利用不足。由此,IPU当前遭受分布式系统的经典问题,其中IPU要么是稀缺资源,要么是搁浅资源。类似于随后的分解式存储,能够附接具有灵活能力的IPU并支付由主机实际使用的迁移会提供技术优势。
这样做的一种方式由本公开的实施例提供,这些实施例描述了用于通过网络实现分解式IPU并连接至具有最小功能集的IPU的技术。更具体地,本公开的实施例提供用于在主机计算节点与一个或多个相关联的分解式IPU之间进行配置和通信的技术。
本文中所描述的实现方式提供相对于将IPU物理地连接至主机系统的常规数据中心方式的各种技术优势。允许IPU通过网络被分解允许主机访问其利用的IPU的特征并允许IPU跨主机被共享。在常规数据中心解决方案中,当前,IPU与计算被置于同一物理节点中。由于计算和IPU两者均为数据中心的最渴求功率的组件,因此使它们位于一起加剧了对于计算和IPU两者的功率要求。允许IPU和计算处于不同的物理位置(例如,被分解)可以缓和功率要求,并且允许IPU摆脱由计算施加的功率要求。这例如通过向IPU自身添加更高级的计算能力和FPGA而进一步允许IPU在复杂性方面增长。这为IPU带来了分布式计算的高效性。
而且,在常规数据中心解决方案中,IPU与计算的在物理上位于一起意味着:为了访问不同的IPU,PCIe卡应当在物理上被换出。这增加了数据中心总拥有成本。另外,为了满足所有种类的应用的请求,IPU可支持许多不同的特征和协议。这导致IPU的更高的复杂性高,进而意味着更高的验证成本以及更长的开发和部署时间。
在本文中的实施例中,对IPU进行分解允许IPU被计算远程地访问,并且不再有位于一起的要求。此种解决方案为IPU带来了远程分解式系统的优势。这允许IPU位于物理上与计算主机分离的空间中。这允许IPU可被各种计算节点通过网络远程地访问。这允许IPU成为共享资源,独立于计算进行开发,在没有物理干预的情况下是容易地可升级的。这减轻了对IPU的功率要求。这降低了数据中心的TCO。
此外,在本公开的实施例中,分解式IPU池可以包含具有不同能力的IPU池。计算节点可以选择其利用IPU的何种功能,并且可以升级或降级此种功能。这为IPU带来了与远程分解式存储一致的技术优势。
就安全性含义方面,通过使用可信执行环境(Trusted Execution Environments,TEE)来利用机密计算的安全性敏感应用对IPU施加了较高的安全性和隔离要求,这可能导致一些性能权衡。不具有机密计算需求的应用不想承担性能损失。利用如本文中所提供的IPU分解,并非所有应用均必须受影响以满足某个应用的较高的安全性需要。具有机密计算需要的应用可以使用支持TEE的分解式IPU,而具有较低安全性需要的应用可以选择可以提供较高的性能并且具有较少的安全性相关开销的IPU。
通过对IPU进行分解,可以建立专于某些特征和协议的更简单的IPU,由此降低开发和验证的成本。这还会允许IPU产品更快速地被发布,从而以更及时的方式来满足客户的需要。对于CSP,使用分解式IPU还提供了对抗IPU故障的改善的抗性,因为可能正在为计算集群服务的出故障的IPU可以用另一起作用的IPU无缝地代替,从而减少对计算集群的影响。
图1是图示根据本文中描述的实施例的一个或多个方面的、被配置成用于实现远程分解式IPU的联网系统的100框图。在一个实施例中,联网系统100可以是利用网络体系结构(“结构(fabric)”)的数据中心,该网络体系结构支持包括以太网和全向路径的多个其他网络体系结构。联网系统100的结构可包括例如经由光纤连接的交换机,这提供比典型的双绞线布线(例如,5类、5e类、6类等)更高的带宽和更低的等待时间。由于高带宽、低等待时间的互连和网络体系结构,联网系统100的数据中心在使用中可集中在物理上分解的诸如存储器、加速器(例如,图形处理单元(graphics processing unit,GPU)、图形加速器、FPGA、ASIC、神经网络和/或人工智能加速器等)和数据存储驱动器之类的资源,并且在被请求时将它们提供给计算资源(例如,处理器),从而使计算资源能够就好像它们是本地的那样访问这些被集中的资源。
在一个实施例中,联网系统100的资源可包括但不限于计算节点110、网络接口设备120、异构IPU节点130、存储节点140、和/或加速器接地点150,它们各自经由局域网或广域网(未示出)通信地耦合。如本文中所使用的节点可指代主控资源集合的一个或多个计算设备。要注意的是,贯穿本文档,可以可互换地使用如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算设备”、“计算机”、“计算系统”等之类的术语。
在一个实施例中,联网系统100通过将IPU 132、134、136的集合集中为异构IPU节点130(在本文中被称为“IPU节点230”)来实现远程分解式IPU,该异构IPU节点130在物理上与正在访问(一个或多个)IPU 132-136的计算节点110的主机112-118分离。由于IPU 132-136的集合可各自提供不同的能力(在计算能力、安全性能力等方面),因此IPU 132-136的集合被认为是异构的。支持若干种类别的IPU:类似于其中各种类别的SSD在网络上可用的远程分解式存储,若干种风格的IPU通过网络可用。
IPU节点130可以进一步与例如包括存储资源(诸如,固态驱动器(solid statedrive,SSD)142、144、146)的池的存储节点140通信地耦合,并且与包括加速器资源152、154、156(诸如,FPGA、GPU、ASIC等)的池的加速器节点150通信地耦合。IPU节点130可以实现分别由存储节点140和加速器节点150的资源提供的存储和/或加速器能力从由计算节点110提供的主机资源112-118的计算能力的迁移。由此,(一个或多个)IPU 132-136是不再附接至主机112-118但通过网络可用的远程分解式实体。在本文中的实施例中,主机112-118可以使用例如针对传输的外围组件互连快速(peripheral component interconnectexpress,PCIe)通过网络来访问(一个或多个)IPU 132-136。
在本文中的实施例中,提供用于实现远程分解式IPU的联网系统100中的计算节点110的主机112、114、116、118与IPU节点130的分解式IPU 132-136之间的安全通信的技术。为了启用安全通信,实施例提供网络接口设备120,诸如,基础网络接口卡(foundationalnetwork interface card,fNIC)122。(一个或多个)网络接口设备120(诸如,fNIC 122)提供对网络的访问,该网络诸如,LAN、广域网(wide area network,WAN)、城域网(metropolitan area network,MAN)、个域网(personal area network,PAN)、蓝牙、云网络、移动网络(例如,第3代(3rd Generation,3G)、第4代(4th Generation,4G)等)、内联网、因特网等。(一个或多个)网络接口可包括例如具有天线(其可表示一个或多个天线)的无线网络接口。(一个或多个)网络接口还可包括例如用于经由网络电缆与远程设备通信的有线网络接口,网络电缆可以是例如以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
根据一个实施例,fNIC 122提供针对传输的事务层分组(transaction layerpacket,TLP)能力。针对传输的TLP能力是指fNIC 122将PCIe TLP包裹在传输层协议中的能力,该传输层协议诸如传输控制协议(transmission control protocol,TCP)(例如,ExpEther)、远程直接存储器访问(remote direct memory access,RDMA)协议(例如,NetTLP)、网际广域RDAM协议(Internet Wide-area RDAM Protocol,iWARP)、针对汇聚以太网的RDMA(RDMA over Converged Ethernet,RoCE)、或任何定制的可靠传输协议。虽然本文中的描述可具体地引用RDAM或TCP,但本领域技术人员可以在本公开的实现方式中实现其他传输协议。类似地,在本文中的实施例中,每个分解式IPU 132-136可以提供针对传输的TLP能力,以使得IPU 132-136也能够通过选择的传输来发送和接收TLP。
图2是图示根据本文中描述的实施例的一个或多个方面的、被配置成用于远程分解式IPU的示例联网系统200的框图。在一个实施例中,联网系统200包括主机210、fNIC220、IPU 230、可选的主机240、以及中央IPU资源管理器250。在一个实施例中,主机210、240与参考图1所描述的主机112-118相同,fNIC 220与参考图1所描述的fNIC 122相同,并且IPU 230与参考图1所描述的IPU 132-136相同。虽然图示了fNIC 220,但在本文中的实施例中也可利用其他类型的联网接口设备并且这些其他类型的联网接口设备不仅限于fNIC实现方式。中央IPU资源管理器250可以是在服务器设备上操作以在联网系统200中管理和编排远程分解式IPU的池的集中式编排器组件。
虽然图2就实现PCIe传输来图示和描述,但在本公开的实施例中可实现和利用其他类型的传输,这些其他类型的传输包括例如,计算快速链路TM(Compute Express Link,CXLTM)互连或NVLinkTM互连,仅举数例。出于示例目的在图示和描述中使用PCIe传输,并且这不旨在限于本文中的实施例。
如在一个示例中所图示,fNIC 220包括PCIe PHY 222,其可以指代PCIe连接的物理(PHY)层,该PHY层包括数字逻辑和电气模拟接口,该数字逻辑将分组(例如,TLP)准备好用于在通信链路上的串行传输(并且针对入站分组反转该过程),该电气模拟接口连接至通信链路并且由用于每个通道的差分驱动器和接收器组成。PCIe PHY 222耦合至PCIe控制器224,该PCIe控制器224管理到主机210的PCIe接口以及主机210与任何连接的外部设备(诸如,IPU 230)之间的数据传输。在一个实施例中,PCIe控制器224在本文中可以被称为互连控制器,其可以例如与下文参照图7所描述的互连控制器单元716相同。互连控制器可以管理利用本文中所描述的各种传输协议的连接。fNIC 220进一步包括枚举控制器225,该枚举控制器225用于管理检测连接至主机210的外部设备(诸如,远程分解式IPU)的过程。fNIC220还包括具有计算功能、存储器、传输功能和密码学功能的fNIC核心226。在一个实施例中,fNIC核心226在本文中可以被称为核心电路。
在一个实施例中,PCIe控制器224支持配置绕过(Config Bypass)模式。配置绕过模式可以指代这样的模式:其中,所有的PCIe TLP(包括配置(config)TLP(在本文中也被称为配置分组或配置周期分组))被发送至fNIC核心226并且不在fNIC 220上的PCIe控制器224中终止。config TLP可以由枚举控制器225用来生成主机ID、总线设备功能、和/或映射到BAR的地址中的一者或多者向网络上的相关联的远程分解式IPU的映射。
在一些实施例中,中央IPU资源管理器250可以维护数据中心中可用的远程分解式IPU 230的储存库和它们的能力。主机210可以通过与中央IPU资源管理器250通信来发现可用的IPU 230,并且请求主机210想要利用的一个或多个IPU 230。中央IPU资源管理器250可以将具有所请求的特征的IPU 230指派给主机210。基于由中央IPU资源管理器250提供的信息,主机210可以例如经由枚举控制225利用与所选择/所指派的IPU 230有关的信息来配置fNIC 220。
在本文中的实施例中,fNIC 220包括设备安全性特征,诸如安全引导。另外,fNIC220包括附加的安全性特征,诸如能够使用标准证实协议(诸如,安全性协议数据模型(Security Protocol Data Model,SPDM)来证实远程IPU,以及能够使用诸如IPSeC之类的协议来以密码学方式保护与远程IPU的通信。在一个实施例中,在配置设置时,主机210或fNIC 220可以对IPU 230执行证实协议。在一个实施例中,fNIC核心226的密码学电路229可以对IPU 230管理证实过程。在成功证实时,共享秘密密钥被建立。这可以经由标准协议(诸如,Diffie Hellman或SPDM)来进行。
在一个实施例中,fNIC核心226可以包括将关键字(例如,主机ID、总线设备功能和/或映射到BAR的地址)与目的地远程分解式IPU 230相匹配的查找表,诸如内容可寻址存储器(content addressable memory,CAM)227。在一个示例中,PCIe{总线,设备,功能}或进程地址空间ID(process address space ID,PASID)被映射到CAM 227中的RDMA队列对(queue pair,QP)。fNIC核心226还可包括RDMA后端228,该RDMA后端228将PCIe TLP封装在传输中,并且通过RDMA传输将经封装的TLP发送至如基于CAM 227表查找所确定的目标IPU230。替代地,在一些实施例中,可以在任何类型的通信介质上使用诸如TCP之类的其他传输。
如上所述,fNIC 220可以对远程分解式IPU 230执行证实过程。在该证实过程期间,IPU 230可以向fNIC 220提供允许该fNIC 220验证IPU 230是真实IPU并且未经篡改的证实报告。除了提供设备真实性信息,IPU 230还提供在IPU 230上运行的固件的测量和/或版本号作为证实报告的部分。IPU 230还可以支持与fNIC 220的数据传输的密码学保护。
在一个实施例中,IPU 230可以包括RDMA前端(或任何传输前端,诸如例如,TCP前端),该RDMA前端可以对来自RDMA的接收到的TLP 260解封装,并将TLP发送至IPU 230的PCIe控制器234。在一个示例中,经解封装的TLP可以通过标准PCIe PIPE接口来发送。IPU230可以进一步包括密码学电路239,该密码学电路239用于使用在成功证实和/或认证过程后在IPU 230与fNIC 220之间建立的共享秘密密钥来对数据传输进行解密。
进一步地,可以在IPU 230中支持多个化身(incarnation)。例如,在一个实施例中,IPU 230可以在直接附接模式下操作,其中,PIPE接口连接至PCIe PHY 232,该PCIe PHY232与直接附接的主机240通信。在一个实施例中,如上文所描述,IPU 230可以在网络附接模式下操作,其中,PIPE接口连接至RDMA前端238。在一些实施例中,IPU 230可以在直接附接模式和网络附接模式的组合下操作,其中,直接附接的IPU可以被远程主机使用。IPU 230可以进一步包括用于处理所接收的分组的IPU核心236。
图3是图示根据本文中所描述的实施例的一个或多个方面、用于将网络接口设备编程为用于与远程分解式IPU的通信的方法300的流程图。方法300可由处理逻辑来执行,该处理逻辑可包括硬件(例如,电路、专用逻辑、可编程逻辑等)、软件(诸如,在处理设备上运行的指令)或其组合。更具体地,方法300可在一个或多个模块中被实现为一组逻辑指令,这些逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存等之类的机器或计算机可读存储介质中,被存储在诸如例如PLA、FPGA、CPLD之类的可配置逻辑中,被存储在使用诸如例如ASIC、CMOS之类的电路技术或TTL技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
为了呈现的简明和清楚起见,以线性序列图示方法300的过程;然而,构想了任何数量的过程可以并行地、异步地或以不同的次序执行。此外,为了简洁、清楚和易于理解,参照图1-图2所描述的组件和过程中的许多组件和过程可能不会在下文中重复或讨论。在一个实现方式中,诸如参照图2所描述的fNIC 220之类的网络接口设备可以执行方法300。
方法300开始于框310,在框310处,网络接口设备可以发现用于与该网络接口设备相关联的主机计算节点的可用远程分解式IPU。网络接口设备还可以发现该可用远程分解式IPU的相关联的能力。在一个实施例中,网络接口设备的枚举控制器对框310的发现过程进行编排。在一些实施例中,发现过程可基于由中央IPU资源管理器提供的信息。在框320处,网络接口设备可接收与被指派给主机计算节点的远程分解式IPU有关的配置分组(在本文中也被称为配置周期分组)。
随后,在框330处,网络接口设备可基于配置分组、利用与所指派的IPU有关的信息来对网络接口设备的内容可寻址存储器(content addressable memory,CAM)进行编程。在一个实施例中,网络接口设备的枚举控制器执行框330的编程。
在框340处,网络接口设备可执行证实协议,以验证所指派的IPU是真实且未经篡改的。最后,在框350处,网络接口设备可响应于经由证实协议的成功证实而与所指派的IPU建立共享秘密密钥以供进行密码学保护。
图4是图示根据本文中描述的实施例的一个或多个方面、用于在联网系统中与远程分解式IPU进行通信的方法400的流程图。方法400可由处理逻辑来执行,该处理逻辑可包括硬件(例如,电路、专用逻辑、可编程逻辑等)、软件(诸如,在处理设备上运行的指令)或其组合。更具体地,方法400可在一个或多个模块中被实现为一组逻辑指令,这些逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存等之类的机器或计算机可读存储介质中,被存储在诸如例如PLA、FPGA、CPLD之类的可配置逻辑中,被存储在使用诸如例如ASIC、CMOS之类的电路技术或TTL技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
为了呈现的简明和清楚起见,以线性序列图示方法400的过程;然而,构想了任何数量的过程可以并行地、异步地或以不同的次序执行。此外,为了简洁、清楚和易于理解,参照图1-图3所描述的组件和过程中的许多组件和过程可能不会在下文中重复或讨论。在一个实现方式中,诸如参照图2所描述的fNIC 220之类的网络接口设备可以执行方法400。
方法400开始于框410,在框410处,网络接口设备接收来自与该网络接口设备相关联的主机计算节点的TLP。在一个实施例中,网络接口设备是fNIC。随后,在框420处,网络接口设备可从所接收的TLP标识发送方和目的地。随后,在框430处,网络接口设备可利用关键字来引用网络接口设备的经编程的CAM。在一个实施例中,关键字基于所接收的TLP的所标识的发送方和目的地。
随后,在框440处,网络接口设备可基于关键字来确定CAM的输出。在一个实施例中,输出是主机计算节点正尝试访问的所指派的IPU的网络地址。在框450处,网络接口设备可使用在该网络接口设备与IPU之间建立的共享秘密密钥以密码学方式保护TLP。最后,在框460处,网络接口设备可使用传输协议将以密码学方式被保护的TLP发送至所标识的所指派的IPU。
图5是图示根据本文中描述的实施例的一个或多个方面的、用于在联网系统中在远程分解式IPU处接收通信的方法500的流程图。方法500可由处理逻辑来执行,该处理逻辑可包括硬件(例如,电路、专用逻辑、可编程逻辑等)、软件(诸如,在处理设备上运行的指令)或其组合。更具体地,方法500可在一个或多个模块中被实现为一组逻辑指令,这些逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存等之类的机器或计算机可读存储介质中,被存储在诸如例如PLA、FPGA、CPLD之类的可配置逻辑中,被存储在使用诸如例如ASIC、CMOS之类的电路技术或TTL技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
为了呈现的简明和清楚起见,以线性序列图示方法500的过程;然而,构想了任何数量的过程可以并行地、异步地或以不同的次序执行。此外,为了简洁、清楚和易于理解,参照图1-图4所描述的组件和过程中的许多组件和过程可能不会在下文中重复或讨论。在一个实现方式中,诸如参照图2所描述的IPU 230之类的远程分解式IPU可以执行方法500。
方法500开始于框510,在框510处,远程分解式IPU可向网络接口设备发送证实报告,以向该网络接口设备提供远程分解式IPU的真实性信息。在一个实施例中,在将远程分解式IPU指派给与网络接口设备相关联的主机计算节点时,将证实报告提供至网络接口设备。在框520处,在由网络接口设备对远程分解式IPU的成功证实之后,该远程分解式IPU可接收来自网络接口设备的TLP。在一个实施例中,TLP将主机计算节点标识为发送方。
随后,在框530处,远程分解式IPU可以使用在该远程分解式IPU与网络接口设备之间建立的共享秘密密钥来对TLP进行解密。随后,在框540处,远程分解式IPU可以通过用于将TLP发送至该远程分解式IPU的传输协议对经解密的TLP解封装。最后,在框550处,远程分解式IPU可以使用该远程分解式IPU的物理层接口将经解封装的TLP发送至该远程分解式IPU的互连控制器。
示例计算机体系结构
图6-图10是示例计算机体系结构的框图。本领域中已知的用于膝上型电脑、桌面型电脑、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(digital signal processor,DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备、以及大量各种其他电子设备的其他系统设计和配置也是适当的。总之,能够包含本文公开的处理器和/或其他执行逻辑的各种系统或电子设备一般都是适当的。
图6图示了示例系统的实施例。多处理器系统600是一种点对点互连系统,并包括多个处理器,其中包括经由点到点互连650耦合的第一处理器670和第二处理器680。在一些实施例中,第一处理器670和第二处理器680是同构的。在一些实施例中,第一处理器670和第二处理器680是异构的。在一个实施例中,参照图1和图2所描述的联网系统100、200的一个或多个组件(诸如,fNIC 122、220和/或IPU 132-136、230)可以包括多处理器系统600,以在如本文中所描述的联网系统中实现远程分解式IPU之间的通信。
处理器670和680被示为分别包括集成存储器控制器(integrated memorycontroller,IMC)单元电路672和682。处理器670还包括作为其互连控制器单元的部分的点到点(point-to-point,P-P)接口676和678;类似地,第二处理器680包括P-P接口686和688。处理器670、680可以利用点到点(P-P)接口电路678、688经由P-P互连650交换信息。IMC 672和682将处理器670、680耦合到各自的存储器,即存储器632和存储器634,这些存储器可以是在本地附接到各个处理器的主存储器的一部分。
处理器670、680可以各自利用点到点接口电路676、694、686、698,经由各个P-P接口652、654来与芯片组690交换信息。芯片组690可以可选地经由高性能接口692与协处理器638交换信息。在一些实施例中,协处理器638是专用处理器,例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器,等等。
共享缓存(未示出)可以被包括在任一处理器670、680中,或者在两个处理器之外但经由P-P互连与这些处理器相连接,从而使得:如果一处理器被置于低功率模式,任一个或两个处理器的本地缓存信息也可以被存储在该共享缓存中。
芯片组690可以经由接口696耦合到第一互连616。在一些实施例中,第一互连616可以是外围组件互连(Peripheral Component Interconnect,PCI)互连,或者是诸如PCI快速(PCI Express)互连或者另一I/O互连之类的互连。在一些实施例中,这些互连中的一个耦合到功率控制单元(power control unit,PCU)617,PCU 617可以包括电路、软件和/或固件来执行关于处理器670、680和/或协处理器638的功率管理操作。PCU 617向电压调节器提供控制信息,以使得电压调节器生成适当的调节电压。PCU 617还提供控制信息以控制所生成的操作电压。在各实施例中,PCU 617可以包括各种功率管理逻辑单元(电路)来执行基于硬件的功率管理。这种功率管理可以是完全由处理器控制的(例如,由各种处理器硬件控制,并且可以由工作负载和/或功率约束、热约束或其他处理器约束所触发),和/或功率管理可以响应于外部源而被执行(例如平台或功率管理源或系统软件)。
PCU 617被图示为作为与处理器670和/或处理器680分开的逻辑而存在。在其他情况下,PCU 617可以在处理器670或680的核心(未示出)中给定的一个或多个核心上执行。在一些情况下,PCU 617可以被实现为微控制器(专用的或通用的)或者其他控制逻辑,其被配置为执行其自己的专用功率管理代码(有时称为P代码)。在另外的其他实施例中,PCU 617要执行的功率管理操作可以被实现在处理器外部,例如借由单独的功率管理集成电路(power management integrated circuit,PMIC)或者在处理器外部的另一组件来实现。在另外的其他实施例中,PCU 617要执行的功率管理操作可被实现在BIOS或其他系统软件内。
各种I/O设备614以及互连(总线)桥618可以耦合到第一互连616,互连(总线)桥618将第一互连616耦合到第二互连620。在一些实施例中,一个或多个额外的处理器615被耦合到第一互连616,例如协处理器、高吞吐量MIC处理器、GPGPU、加速器(诸如例如图形加速器或数字信号处理(digital signal processing,DSP)单元)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、或者任何其他处理器。在一些实施例中,第二互连620可以是低引脚数(low pin count,LPC)互连。各种设备可以耦合到第二互连620,这些设备例如包括键盘和/或鼠标622、通信设备627、以及存储单元电路628。存储单元电路628可以是盘驱动器或者其他大容量存储设备,其在一些实施例中可包括指令/代码和数据630。另外,音频I/O 624可以耦合到第二互连620。注意,除了上述的点到点体系结构以外其他体系结构也是可能的。例如,诸如多处理器系统600之类的系统可以实现多点分支(multi-drop)互连或者其他这种体系结构,而不是点到点体系结构。
示例核心体系结构、处理器和计算机体系结构
处理器核心可以按不同的方式、为了不同的目的、在不同的处理器中实现。例如,这些核心的实现方式可以包括:1)通用有序核心,针对通用计算目的;2)高性能通用乱序核心,针对通用计算目的;3)专用核心,主要针对图形和/或科学(吞吐量)计算目的。不同处理器的实现方式可以包括:1)CPU,包括针对通用计算目的的一个或多个通用有序核心和/或针对通用计算目的的一个或多个通用乱序核心;以及2)协处理器,包括主要针对图形和/或科学(吞吐量)目的的一个或多个专用核心。这些不同处理器导致不同的计算机系统体系结构,这些体系结构可以包括:1)协处理器与CPU在分开的芯片上;2)协处理器与CPU在同一封装中分开的管芯上;3)协处理器与CPU在同一管芯上(在此情况下,这种协处理器有时被称为专用逻辑,例如集成图形和/或科学(吞吐量)逻辑,或者被称为专用核心);以及4)片上系统,其可以在与所描述的CPU(有时称为(一个或多个)应用核心或者(一个或多个)应用处理器)同一管芯上包括上述的协处理器以及另外的功能。接下来描述示例核心体系结构,然后是对示例处理器和计算机体系结构的描述。
图7图示了示例处理器700的实施例的框图,该处理器700可以具有多于一个的核心,可以具有集成存储器控制器,并且可以具有集成图形器件。实线框图示的处理器700具有单个核心702(A)、系统代理710和一组一个或多个互连控制器单元电路716,而可选地添加的虚线框将替代性处理器700图示为具有多个核心702(A)-(N)、系统代理单元电路710中的一组一个或多个集成存储器控制单元电路714、专用逻辑708以及一组一个或多个互连控制器单元电路716。注意,处理器700可以是图6的处理器670或680或者协处理器638或615之一。此外,在一个实施例中,参照图1和图2所描述的联网系统100、200的一个或多个组件(诸如,fNIC 122、220和/或IPU 132-136、230)可以包括处理器700,以在如本文中所描述的联网系统中实现远程分解式IPU之间的通信。
从而,处理器700的不同实现方式可以包括:1)CPU,其中专用逻辑708是集成图形和/或科学(吞吐量)逻辑(可以包括一个或多个核心,未示出),核心702(A)-(N)是一个或多个通用核心(例如,通用有序核心、通用乱序核心、或这两者的组合);2)协处理器,其中核心702(A)-(N)是主要针对图形和/或科学(吞吐量)目的的大量专用核心;以及3)协处理器,其中核心702(A)-(N)是大量的通用有序核心。从而,处理器700可以是通用处理器、协处理器或者专用处理器,例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元电路)、高吞吐量集成众核(many integrated core,MIC)协处理器(包括30个或更多个核心)、嵌入式处理器,等等。该处理器可被实现在一个或多个芯片上。处理器700可以是一个或多个衬底的一部分和/或可以使用多种工艺技术中的任何技术来实现在一个或多个衬底上,这些工艺技术例如BiCMOS、CMOS、或者NMOS。
存储器层次体系包括核心702(A)-(N)内的一级或多级缓存单元电路704(A)-(N)、一组一个或多个共享缓存单元电路706、以及耦合到该组集成存储器控制器单元电路714的外部存储器(未示出)。该组一个或多个共享缓存单元电路706可以包括一个或多个中间级别缓存,例如第2级(L2)、第3级(L3)、第4级(4)或者其他级别的缓存,例如最后一级缓存(last level cache,LLC),和/或这些的组合。虽然在一些实施例中基于环的互连网络电路712对专用逻辑708(例如,集成图形逻辑)、该组共享缓存单元电路706和系统代理单元电路710进行互连,但替代性实施例使用任何数目的公知技术来对这些单元进行互连。在一些实施例中,在共享缓存单元电路706中的一个或多个电路与核心702(A)-(N)之间维持一致性。
在一些实施例中,核心702(A)-(N)中的一个或多个具有多线程能力。系统代理单元电路710包括对核心702(A)-(N)进行协调和操作的那些组件。系统代理单元电路710可以包括例如功率控制单元(power control unit,PCU)电路和/或显示单元电路(未示出)。PCU可以是、或者可以包括被用来对核心702(A)-(N)和/或专用逻辑708(例如,集成图形逻辑)的功率状态进行调节的逻辑和组件。显示单元电路用于驱动一个或多个在外部连接的显示器。
核心702(A)-(N)就体系结构指令集而言可以是同构的或者异构的;也就是说,核心702(A)-(N)中的两个或更多个核心可能能够执行同一指令集,而其他核心可能能够执行该指令集的子集或者能够执行不同的ISA。
示例核心体系结构
有序和乱序核心框图
图8(A)的框图图示了根据本文中所描述的实施例的一个或多个方面的示例有序管线和示例寄存器重命名、乱序发出/执行管线两者。图8(B)的框图图示了根据本文中所描述的实施例的一个或多个方面的、要被包括在处理器中的有序体系结构核心的示例实施例和示例寄存器重命名、乱序发出/执行体系结构核心两者。图8(A)-(B)中的实线框图示了有序管线和有序核心,而可选地添加的虚线框图示了寄存器重命名、乱序发出/执行管线和核心。考虑到有序方面是乱序方面的子集,将描述乱序方面。此外,在一个实施例中,参照图1和图2所描述的联网系统100、200的一个或多个组件(诸如,fNIC 122、220和/或IPU 132-136、230)可以实现图8(A)和图8(B)的管线和/或体系结构核心示例,以在如本文中所描述的联网系统中实现远程分解式IPU之间的通信。
在图8(A)中,处理器管线800包括取得阶段802、可选的长度解码阶段804、解码阶段806、可选的分配阶段808、可选的重命名阶段810、调度(也称为调遣或发出)阶段812、可选的寄存器读取/存储器读取阶段814、执行阶段816、写回/存储器写入阶段818、可选的异常处置阶段822、以及可选的提交阶段824。在这些处理器管线阶段的每一者中可以执行一个或多个操作。例如,在取得阶段802期间,从指令存储器取得一个或多个指令,在解码阶段806期间,可以对取得的一个或多个指令进行解码,可以生成使用转发寄存器端口的地址(例如,加载存储单元(load store unit,LSU)地址),并且可以执行分支转发(例如,立即数偏移或者链接寄存器(link register,LR))。在一种实施例中,解码阶段806和寄存器读取/存储器读取阶段814可以被组合到一个管线阶段中。在一种实施例中,在执行阶段816期间,可以执行经解码的指令,可以执行到高级微控制器总线(Advanced Microcontroller Bus,AMB)接口的LSU地址/数据管线化,可以执行乘法和加法操作,可以执行具有分支结果的算术操作,等等。
作为示例,示例寄存器重命名、乱序发出/执行核心体系结构可以通过以下方式实现管线800:1)指令取得838执行取得和长度解码阶段802和804;2)解码单元电路840执行解码阶段806;3)重命名/分配器单元电路852执行分配阶段808和重命名阶段810;4)(一个或多个)调度器单元电路856执行调度阶段812;5)(一个或多个)物理寄存器堆单元电路858和存储器单元电路870执行寄存器读取/存储器读取阶段814;执行集群860执行执行阶段816;6)存储器单元电路870和(一个或多个)物理寄存器堆单元电路858执行写回/存储器写入阶段818;7)在异常处置阶段822中可能涉及各种单元(单元电路);并且8)引退单元电路854和(一个或多个)物理寄存器堆单元电路858执行提交阶段824。
图8(B)示出了处理器核心890包括耦合到执行引擎单元电路850的前端单元电路830,并且两者都耦合到存储器单元电路870。核心890可以是精简指令集计算(reducedinstruction set computing,RISC)核心、复杂指令集计算(complex instruction setcomputing,CISC)核心、超长指令字(very long instruction word,VLIW)核心、或者混合或替代性核心类型。作为另外一个选项,核心890可以是专用核心,例如网络或通信核心、压缩引擎、协处理器核心、通用计算图形处理单元(general purpose computing graphicsprocessing unit,GPGPU)核心、图形核心,等等。
前端单元电路830可以包括分支预测单元电路832,该分支预测单元电路耦合到指令缓存单元电路834,该指令缓存单元电路耦合到指令转译后备缓冲器(translationlookaside buffer,TLB)836,该指令TLB耦合到指令取得单元电路838,该指令取得单元电路耦合到解码单元电路840。在一种实施例中,指令缓存单元电路834被包括在存储器单元电路870中,而不是前端单元电路830中。解码单元电路840(或解码器)可以对指令解码,并且生成一个或多个微操作、微代码入口点、微指令、其他指令或其他控制信号作为输出,这些微操作、微代码入口点、微指令、其他指令或其他控制信号是从原始指令解码来的,或者以其他方式反映原始指令,或者是从原始指令得出的。解码单元电路840还可以包括地址生成单元电路(address generation unit,AGU,未示出)。在一种实施例中,AGU使用经转发的寄存器端口来生成LSU地址,并且可以进一步执行分支转发(例如,立即数偏移分支转发,LR寄存器分支转发,等等)。可以利用各种不同的机制来实现解码单元电路840。适当机制的示例包括但不限于查找表、硬件实现方式、可编程逻辑阵列(programmable logic array,PLA)、微代码只读存储器(read only memory,ROM),等等。在一种实施例中,核心890包括微代码ROM(未示出)或其他介质,其存储用于某些宏指令的微代码(例如,在解码单元电路840中或者以其他方式在前端单元电路830内)。在一种实施例中,解码单元电路840包括微操作(micro-op)或操作缓存(未示出),以保存/缓存在处理器管线800的解码或其他阶段期间生成的经解码的操作、微标记或微操作。解码单元电路840可以耦合到执行引擎单元电路850中的重命名/分配器单元电路852。
执行引擎电路850包括重命名/分配器单元电路852,其耦合到引退单元电路854和一组一个或多个调度器电路856。调度器电路856代表任意数目个不同调度器,包括预留站、中央指令窗口,等等。在一些实施例中,(一个或多个)调度器电路856可以包括算术逻辑单元(arithmetic logic unit,ALU)调度器/调度电路、ALU队列、地址生成单元(addressgeneration unit,AGU)调度器/调度电路、AGU队列,等等。(一个或多个)调度器电路856耦合到(一个或多个)物理寄存器堆电路858。(一个或多个)物理寄存器堆电路858的每一者代表一个或多个物理寄存器堆,这些物理寄存器堆中的不同物理寄存器堆存储一个或多个不同的数据类型,例如标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、状态(例如,指令指针,即要执行的下一指令的地址),等等。在一种实施例中,(一个或多个)物理寄存器堆单元电路858包括向量寄存器单元电路、写入掩码寄存器单元电路、以及标量寄存器单元电路。这些寄存器单元可以提供体系结构式向量寄存器、向量掩码寄存器、通用寄存器,等等。(一个或多个)物理寄存器单元堆电路858被引退单元电路854(也称为引退队列)重叠,以展示可以用来实现寄存器重命名和乱序执行的各种方式(例如,利用(一个或多个)重排序缓冲器(reorder buffer,ROB)和(一个或多个)引退寄存器堆;利用(一个或多个)未来的堆、(一个或多个)历史缓冲器、以及(一个或多个)引退寄存器堆;利用寄存器图谱和寄存器的池;等等)。引退单元电路854和(一个或多个)物理寄存器堆电路858耦合到(一个或多个)执行集群860。(一个或多个)执行集群860包括一组一个或多个执行单元电路862和一组一个或多个存储器访问电路864。执行单元电路862可以对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)执行各种算术、逻辑、浮点或其他类型的操作(例如,移位、加法、减法、乘法)。虽然一些实施例可以包括专用于特定功能或功能集合的若干个执行单元或执行单元电路,但其他实施例可以包括一个执行单元电路或者全部执行所有功能的多个执行单元/执行单元电路。(一个或多个)调度器电路856、(一个或多个)物理寄存器堆单元电路858以及(一个或多个)执行集群860被示为可能是多个,因为某些实施例为某些类型的数据/操作创建单独的管线(例如,标量整数管线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点管线和/或存储器访问管线,它们各自具有其自己的调度器电路、(一个或多个)物理寄存器堆单元电路和/或执行集群——并且在单独的存储器访问管线的情况下,所实现的某些实施例中该管线的执行集群具有(一个或多个)存储器访问单元电路864)。还应当理解,在使用分开的管线的情况下,这些管线中的一个或多个可以是乱序发出/执行,而其余是有序的。
在一些实施例中,执行引擎单元电路850可以执行到高级微控制器总线(AMB)接口(未示出)的加载存储单元(LSU)地址/数据管线化,以及地址阶段和写回、数据阶段加载、存储、以及分支。
一组存储器访问电路864耦合到存储器单元电路870,该存储器单元电路包括数据TLB单元电路872,该数据TLB电路耦合到数据缓存电路874,该数据缓存电路耦合到第2级(L2)缓存电路876。在一个示例实施例中,存储器访问单元电路864可以包括加载单元电路、存储地址单元电路、以及存储数据单元电路,它们中的每一者耦合到存储器单元电路870中的数据TLB电路872。指令缓存电路834进一步耦合到存储器单元电路870中的第2级(L2)缓存单元电路876。在一种实施例中,指令缓存834和数据缓存874被组合成L2缓存单元电路876、第3级(L3)缓存单元电路(未示出)和/或主存储器中的单个指令和数据缓存(未示出)。L2缓存单元电路876耦合到一个或多个其他级别的缓存并且最终耦合到主存储器。
核心890可以支持一个或多个指令集(例如,x86指令集(带有已随着更新版本添加的一些扩展);MIPS指令集;ARM指令集(带有可选的额外扩展,例如NEON)),该指令集包括本文描述的(一个或多个)指令。在一种实施例中,核心890包括支持紧缩数据指令集扩展(例如,AVX1、AVX2)的逻辑,从而允许利用紧缩数据来执行被许多多媒体应用使用的操作。
(一个或多个)示例执行单元电路
图9图示了(一个或多个)执行单元电路的实施例,例如图8(B)的(一个或多个)执行单元电路862。如图所示,(一个或多个)执行单元电路862可以包括一个或多个ALU电路901、向量/SIMD单元电路903、加载/存储单元电路905、和/或分支/跳转单元电路907。ALU电路901执行整数算术和/或布尔操作。向量/SIMD单元电路903对紧缩数据(例如SIMD/向量寄存器)执行向量/SIMD操作。加载/存储单元电路905执行加载和存储指令,以将数据从存储器加载到寄存器中,或者从寄存器存储到存储器。加载/存储单元电路905也可以生成地址。分支/跳转单元电路907取决于指令而引起到某个存储器地址的分支或跳转。FPU电路909执行浮点算术。(一个或多个)执行单元电路862的宽度取决于实施例而有所不同,并且可以在从16比特到1024比特的范围中。在一些实施例中,两个或更多个更小的执行单元被逻辑地组合以形成更大的执行单元(例如,两个128比特执行单元被逻辑组合以形成256比特执行单元)。
示例寄存器体系结构
图10是根据一些实施例的寄存器体系结构1000的框图。此外,在一个实施例中,参照图1和图2所描述的联网系统100、200的一个或多个组件(诸如,fNIC 122、220和/或IPU132-136、230)可以包括寄存器体系结构1000,以辅助在如本文中所描述的联网系统中实现远程分解式IPU之间的通信。如图所示,存在向量/SIMD寄存器1010,其宽度从128比特到1024比特不等。在一些实施例中,向量/SIMD寄存器1010在物理上是512比特的,并且取决于映射,一些低位比特被使用。例如,在一些实施例中,向量/SIMD寄存器1010是512比特的ZMM寄存器:低位256比特被用于YMM寄存器,并且低位128比特被用于XMM寄存器。因此,存在寄存器的覆盖。在一些实施例中,向量长度字段在最大长度和一个或多个其他更短的长度之间作出选择,其中每个这种更短长度是前一长度的一半长度。标量操作是对ZMM/YMM/XMM寄存器中的最低阶数据元素位置执行的操作;更高阶数据元素位置或者被保持为与其在该指令之前相同,或者被归零,这取决于实施例。
在一些实施例中,寄存器体系结构1000包括写入掩码/谓词(predicate)寄存器1015。例如,在一些实施例中,有8个写入掩码/谓词寄存器(有时称为k0至k7),它们各自的大小是16比特、32比特、64比特或128比特。写入掩码/谓词寄存器1015可以允许合并(例如,允许目的地中的任何元素集合在任何操作的执行期间被保护免于更新)和/或归零(例如,归零向量掩码允许目的地中的任何元素集合在任何操作的执行期间被归零)。在一些实施例中,给定的写入掩码/谓词寄存器1015中的每个数据元素位置对应于目的地的数据元素位置。在其他实施例中,写入掩码/谓词寄存器1015是可缩放的,并且由针对给定向量元素的设定数目个使能比特组成(例如,给每个64比特向量元素8个使能比特)。
寄存器体系结构1000包括多个通用寄存器1025。这些寄存器可以是16比特、32比特、64比特等等,并能够被用于标量操作。在一些实施例中,这些寄存器用名称RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP以及R8至R15来称呼。
在一些实施例中,寄存器体系结构1000包括标量浮点寄存器1045,它被用于使用x87指令集扩展对32/64/80比特浮点数据进行标量浮点操作,或者作为MMX寄存器,来对64比特紧缩整数数据执行操作,以及针对在MMX和XMM寄存器之间执行的一些操作保存操作对象。
一个或多个标志寄存器1040(例如,EFLAGS,RFLAGS,等等)存储状态和控制信息,用于算术、比较和系统操作。例如,一个或多个标志寄存器1040可以存储条件代码信息,例如进位、奇偶性、辅助进位、零、符号、以及溢出。在一些实施例中,一个或多个标志寄存器1040被称为程序状态和控制寄存器。
段寄存器1020包含用于访问存储器的段点。在一些实施例中,这些寄存器由名称CS、DS、SS、ES、FS和GS来称呼。
机器特定寄存器(machine-specific register,MSR)1035对处理器性能进行控制和报告。大多数MSR 1035处置与系统有关的功能,并且是应用程序不可访问的。机器检查寄存器1060由用于对硬件错误进行检测和报告的控制、状态和错误报告MSR组成。
一个或多个指令指针寄存器1030存储指令指针值。(一个或多个)控制寄存器1055(例如,CR0-CR4)确定处理器(例如,处理器670、680、638、618和/或700)的操作模式和当前在执行的任务的特性。调试寄存器1050控制并允许监视处理器或核心的调试操作。
存储器管理寄存器1065指定用于保护模式存储器管理中的数据结构的位置。这些寄存器可以包括GDTR、IDTR、任务寄存器、以及LDTR寄存器。
本公开的替代性实施例可以使用更宽或更窄的寄存器。此外,本公开的替代性实施例可以使用更多、更少或不同的寄存器堆和寄存器。
程序代码可被应用到输入指令以执行本文描述的功能并且生成输出信息。输出信息可以按已知的方式被应用到一个或多个输出设备。对于本申请而言,处理系统包括任何具有处理器的系统,处理器例如是数字信号处理器(digital signal processor,DSP)、微控制器、专用集成电路(application specific integrated circuit,ASIC)、或者微处理器。
可以用面向过程或面向对象的高级编程语言来实现程序代码以与处理系统进行通信。如果希望,也可以用汇编或机器语言来实现程序代码。实际上,本文描述的机制在范围上不限于任何特定的编程语言。在任何情况下,该语言可以是编译语言或者解释语言。
本文公开的机制的实施例可以用硬件、软件、固件或者这些实现途径的组合来实现。本公开的实施例可以被实现为计算机程序或程序代码,在包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备的可编程系统上执行。
至少一个实施例的一个或多个方面可以由被存储在机器可读介质上的代表性指令来实现,这些指令代表处理器内的各种逻辑,这些指令当被机器读取时,使得该机器制作用于执行本文所述技术的逻辑。这些表现形式被称为“IP核”,可以被存储在有形机器可读介质上并被提供给各种客户或制造设施,以加载到实际上制作该逻辑或处理器的制作机器中。
这些机器可读存储介质(也被称为计算机可读存储介质)可包括——但不限于——由机器或设备制造或形成的物品的非暂态有形布置形式,包括存储介质,例如:硬盘,任何其他类型的盘(包括软盘、光盘、致密盘只读存储器(compact disk read-onlymemory,CD-ROM)、可重写致密盘(compact disk rewritable,CD-RW)、以及磁光盘),半导体器件(例如,只读存储器(read-only memory,ROM),诸如动态随机访问存储器(dynamicrandom access memory,DRAM)、静态随机访问存储器(static random access memory,SRAM)之类的随机访问存储器(random access memory,RAM),可擦除可编程只读存储器(erasable programmable read-only memory,EPROM),闪速存储器,电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM),相变存储器(phase change memory,PCM)),磁卡或光卡,或者适合用于在其上存储电子指令的任何其他类型的介质。
因此,本公开的实施例还包括非暂态有形机器可读介质,这些介质包含指令或者包含定义本文描述的结构、电路、装置、处理器和/或系统特征的设计数据,例如硬件描述语言(Hardware Description Language,HDL)。这种实施例也可以被称为程序产品。
仿真(包括二进制转译、代码变形,等等)
在一些情况下,指令转换器可以被用于将指令从源指令集转换到目标指令集。例如,指令转换器可以将指令转译(例如,利用静态二进制转译、包括动态编译的动态二进制转译)、变形、仿真或者以其他方式转换到要被核心处理的一个或多个其他指令。可以用软件、硬件、固件或者其组合来实现指令转换器。指令转换器可以在处理器上、在处理器外、或者一部分在处理器上而一部分在处理器外。
图11图示根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。在一个实施例中,参照图1和图2所描述的联网系统100、200的一个或多个组件(诸如,fNIC 122、220和/或IPU 132-136、230)可以实现参照图11所描述的指令转换过程作为在如本文中所描述的联网系统中实现远程分解式IPU之间的通信的部分。
在图示的实施例中,指令转换器是软件指令转换器,但可替代地,可以用软件、固件、硬件或者其各种组合来实现指令转换器。图11示出了高级语言1102的程序可以被利用第一ISA编译器1104编译以生成第一ISA二进制代码1106,该代码可以由具有至少一个第一ISA指令集核心的处理器1116原生执行。具有至少一个第一ISA指令集核心的处理器1116代表任何这样的处理器:这种处理器能够通过兼容地执行或以其他方式处理(1)第一ISA指令集核心的指令集的实质部分或者(2)以在具有至少一个第一ISA指令集核心的
Figure BDA0003813793220000261
处理器上运行为目标的应用或其他软件的目标代码版本,来执行与具有至少一个第一ISA指令集核心的Intel处理器基本上相同的功能,以便实现与具有至少一个第一ISA指令集核心的处理器基本上相同的结果。第一ISA编译器1104代表可操作来生成第一ISA二进制代码1106(例如,目标代码)的编译器,该第一ISA二进制代码在进行或不进行额外的链接处理的情况下能够在具有至少一个第一ISA指令集核心的处理器1116上被执行。类似地,图11示出了高级语言1102的程序可以被利用替代性指令集编译器1108来编译以生成替代性指令集二进制代码1110,该代码可以由没有第一ISA核心的处理器1114原生执行。指令转换器1112被用来将第一ISA二进制代码1106转换成可以由没有第一ISA指令集核心的处理器1114原生执行的代码。这种转换后的代码可能不会与替代性指令集二进制代码1110相同,这是因为能够进行这一点的指令转换器难以制作;然而,转换后的代码将实现总的操作,并由来自该替代性指令集的指令构成。从而,指令转换器1112代表软件、固件、硬件或它们的组合,其通过仿真、模拟或任何其他过程,允许不具有第一ISA指令集处理器或核心的处理器或其他电子设备执行第一ISA二进制代码1106。
对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可包括特定的特征、结构或特性,但是每个实施例可以不包括该特定的特征、结构或特性。而且,此类短语可能不是指同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。
此外,在上文描述的各实施例中,除非另外专门指出,否则,诸如短语“A、B或C中的至少一个”之类的分隔语言旨在被理解为意味着A、B、或C、或其任何组合(例如,A、B、和/或C)。由此,分隔语言不旨在也不应当被理解为暗示给定的实施例利用各自都存在的A中的至少一个、B中的至少一个或C中的至少一个。
以下示例关于进一步的实施例。示例1是一种用于促成远程分解式基础设施处理单元(IPU)的装置。如示例1所述的装置包括:互连控制器,该互连控制器用于:从主机计算节点接收事务层分组(TLP),从TLP标识发送方和目的地,以及将从该发送方和目的地确定的关键字发送至内容可寻址存储器(CAM);以及核心电路,该核心电路通信地耦合至互连控制器,该核心电路用于:基于关键字来确定CAM的输出,该输出包括被指派给主机计算节点的基础设施处理单元(IPU)的网络地址,其中,IPU通过网络从主机计算节点被分解,以及使用传输协议将TLP发送至IPU。
在示例2中,如示例1所述的主题可以可选地包括:其中,核心电路进一步用于使用在装置与IPU之间建立的共享秘密密钥以密码学方式保护TLP。在示例3中,如示例1-2中任一项所述的主题可以可选地包括:其中,共享秘密密钥在利用装置对IPU的成功证实之后被建立。在示例4中,如示例1-3中任一项所述的主题可以可选地包括:其中,成功证实基于装置的枚举控制器从IPU接收提供该IPU的真正真实性的证实报告,该证实报告包括在IPU上运行的固件的测量和版本号。
在示例5中,如示例1-4中任一项所述的主题可以可选地包括:其中,IPU用于对从核心电路发送的TLP解封装,并且将经解封装的TLP提供至IPU的互连控制器。在示例6中,如示例1-5中任一项所述的主题可以可选地包括:其中,装置包括基础网络接口卡(fNIC),并且其中,传输协议包括远程直接存储器访问(RDMA)或传输控制协议(TCP)中的至少一者。在示例7中,如示例1-6中任一项所述的主题可以可选地包括:其中,互连控制器包括外围组件互连快速(PCIe)控制器,并且其中,关键字包括PCIe总线ID、PCIe设备ID、PCIe功能ID或进程地址空间标识符(PASID)中的至少一者。
在示例8中,如示例1-7中任一项所述的主题可以可选地包括:CAM的输出包括远程直接存储器访问(RDMA)队列对。在示例9中,如示例1-8中任一项所述的主题可以可选地包括:CAM使用从互连控制器接收的配置周期分组来编程。在示例10中,如示例1-9中任一项所述的主题可以可选地包括:其中,中央IPU资源管理器维护至少包括IPU和IPU的能力的可用IPU的储存库,其中,中央IPU资源管理器将IPU指派给主机计算节点,并且其中,CAM在IPU被指派给主机计算节点之后被编程。
示例11是一种用于促成远程分解式基础设施处理单元(IPU)的方法。如示例11所述的方法包括:由网络接口设备从主机计算节点接收事务层分组(TLP);由网络接口设备从该TLP标识发送方和目的地;由网络接口设备向内容可寻址存储器(CAM)提供从发送方和目的地确定的关键字;由网络接口设备基于该关键字来确定CAM的输出,该输出包括被指派给主机计算节点的基础设施处理单元(IPU)的网络地址,其中,IPU通过网络从主机计算节点被分解;以及由网络接口设备使用传输协议将TLP发送至IPU。
在示例12中,如示例11所述的主题可以可选地包括,该主题进一步包括:使用在网络接口设备与IPU之间建立的共享秘密密钥来以密码学方式保护TLP,其中,共享秘密密钥在利用网络接口设备对IPU的成功证实之后被建立。在示例13中,如示例11-12所述的主题可以可选地包括:其中,成功证实基于网络接口设备从IPU接收提供该IPU的真正真实性的证实报告,该证实报告包括在IPU上运行的固件的测量和版本号。
在示例14中,如示例11-13所述的主题可以可选地包括:其中,IPU用于对从网络接口设备发送的TLP解封装,并且将经解封装的TLP提供至IPU的互连控制器。在示例15中,如示例11-14所述的主题可以可选地包括:其中,网络接口设备包括外围组件互连快速(PCIe)控制器,并且其中,关键字包括PCIe总线ID、PCIe设备ID、PCIe功能ID或进程地址空间标识符PASID中的至少一者。
示例16是一种用于促成远程分解式基础设施处理单元(IPU)的非暂态计算机可读存储介质。如示例16所述的非暂态计算机可读存储介质具有存储于其上的可执行计算机程序指令,这些可执行计算机程序指令当由一个或多个处理器执行时,使这一个或多个处理器执行包括以下步骤的操作:由包括该一个或多个处理器的网络接口设备从主机计算节点接收事务层分组(TLP);由网络接口设备从该TLP标识发送方和目的地;由网络接口设备向内容可寻址存储器(CAM)提供从发送方和目的地确定的关键字;由网络接口设备基于该关键字来确定CAM的输出,该输出包括被指派给主机计算节点的基础设施处理单元(IPU)的网络地址,其中,IPU通过网络从主机计算节点被分解;以及由网络接口设备使用传输协议将TLP发送至IPU。
在示例17中,如示例16所述的主题可以可选地包括:其中,操作进一步包括使用在网络接口设备与IPU之间建立的共享秘密密钥来以密码学方式保护TLP,其中,共享秘密密钥在利用网络接口设备对IPU的成功证实之后被建立。在示例18中,如示例16-17所述的主题可以可选地包括:其中,成功证实基于网络接口设备从IPU接收提供该IPU的真正真实性的证实报告,该证实报告包括在IPU上运行的固件的测量和版本号。
在示例19中,如示例16-18所述的主题可以可选地包括:其中,IPU用于对从网络接口设备发送的TLP解封装,并且将经解封装的TLP提供至IPU的互连控制器。在示例20中,如示例16-19所述的主题可以可选地包括:其中,网络接口设备包括外围组件互连快速(PCIe)控制器,并且其中,关键字包括PCIe总线ID、PCIe设备ID、PCIe功能ID或进程地址空间标识符(PASID)中的至少一者。
示例21是一种用于促成远程分解式基础设施处理单元(IPU)的系统。如示例21所述的系统可以可选地包括:存储器,该存储器用于存储数据块;处理器,该处理器可通信地耦合至存储器,该处理器用于处理资源以使用多个线程来执行操作;以及互连控制器,该互连控制器用于:从主机计算节点接收事务层分组(TLP);从TLP标识发送方和目的地;以及将从发送方和目的地确定的关键字发送至内容可寻址存储器(CAM)。如示例21所述的处理器还包括核心电路,该核心电路可通信地耦合至互连控制器,该核心电路用于:基于关键字来确定CAM的输出,该输出包括被分派给主机计算节点的基础设施处理单元(IPU)的网络地址,其中,IPU通过网络从主机计算节点被分解;以及使用传输协议将TLP发送至IPU。
在示例22中,如示例21所述的主题可以可选地包括:其中,核心电路进一步用于使用在系统与IPU之间建立的共享秘密密钥以密码学方式保护TLP。在示例23中,如示例21-22中任一项所述的主题可以可选地包括:其中,共享秘密密钥在利用系统对IPU的成功证实之后被建立。在示例24中,如示例21-23中任一项所述的主题可以可选地包括:其中,成功证实基于系统的枚举控制器从IPU接收提供该IPU的真正真实性的证实报告,该证实报告包括在IPU上运行的固件的测量和版本号。
在示例25中,如示例21-24中任一项所述的主题可以可选地包括:其中,IPU用于对从核心电路发送的TLP解封装,并且将经解封装的TLP提供至IPU的互连控制器。在示例26中,如示例21-25中任一项所述的主题可以可选地包括:其中,系统包括基础网络接口卡(fNIC),并且其中,传输协议包括远程直接存储器访问(RDMA)或传输控制协议(TCP)中的至少一者。在示例27中,如示例21-26中任一项所述的主题可以可选地包括:其中,互连控制器包括外围组件互连快速(PCIe)控制器,并且其中,关键字包括PCIe总线ID、PCIe设备ID、PCIe功能ID或进程地址空间标识符(PASID)中的至少一者。
在示例28中,如示例21-27中任一项所述的主题可以可选地包括:CAM的输出包括远程直接存储器访问(RDMA)队列对。在示例29中,如示例21-28中任一项所述的主题可以可选地包括:CAM使用从互连控制器接收的配置周期分组来编程。在示例30中,如示例21-29中任一项所述的主题可以可选地包括:其中,中央IPU资源管理器维护至少包括IPU和IPU的能力的可用IPU的储存库,其中,中央IPU资源管理器将IPU指派给主机计算节点,并且其中,CAM在IPU被指派给主机计算节点之后被编程。
示例31是一种用于促成远程分解式基础设施处理单元(IPU)的设备,该设备包括用于以下步骤的装置:由网络接口设备从主机计算节点接收事务层分组(TLP);由网络接口设备从该TLP标识发送方和目的地;由网络接口设备向内容可寻址存储器(CAM)提供从发送方和目的地确定的关键字;由网络接口设备基于该关键字来确定CAM的输出,该输出包括被指派给主机计算节点的基础设施处理单元(IPU)的网络地址,其中,IPU通过网络从主机计算节点被分解;以及由网络接口设备使用传输协议将TLP发送至IPU。在示例32中,如示例31所述的主题可以可选地包括进一步被配置成用于执行如示例12至15中的任一项的方法的设备。
示例33是至少一种机器可读介质,包括多个指令,该多个指令响应于在计算设备上被执行而使该计算设备执行根据示例11-15中任一项所述的方法。示例34是一种用于促成远程分解式基础设施处理单元(IPU)的设备,被配置成用于执行如示例11-15中任一项所述的方法。示例35是一种用于促成远程分解式基础设施处理单元(IPU)的设备,包括用于执行如示例11至15中任一项所述的方法的装置。示例中的细节可以在一个或多个实施例中的任何地方使用。
因此,说明书和附图应被认为是说明性而非限制性意义的。然而,将显而易见的是,可对这些实现方式作出各种修改和改变,而不背离如权利要求中所述的本公开的更宽泛的精神和范围。

Claims (24)

1.一种装置,包括:
互连控制器,所述互连控制器用于:
从主机计算节点接收事务层分组TLP;
从所述TLP标识发送方和目的地;以及
向内容可寻址存储器CAM提供从所述发送方和所述目的地确定的关键字;以及
核心电路,所述核心电路通信地耦合至所述互连控制器,所述核心电路用于:
基于所述关键字来确定所述CAM的输出,所述输出包括被指派给所述主机计算节点的基础设施处理单元IPU的网络地址,其中,所述IPU通过网络从所述主机计算节点被分解;以及
使用传输协议将所述TLP发送至所述IPU。
2.如权利要求1所述的装置,其中,所述核心电路进一步用于使用在所述装置与所述IPU之间建立的共享秘密密钥以密码学方式保护所述TLP。
3.如权利要求2所述的装置,其中,所述共享秘密密钥在利用所述装置对所述IPU的成功证实之后被建立。
4.如权利要求3所述的装置,其中,所述成功证实基于所述装置的枚举控制器从所述IPU接收提供所述IPU的真正真实性的证实报告,所述证实报告包括在所述IPU上运行的固件的测量和版本号。
5.如权利要求1所述的装置,其中,所述IPU用于对从所述核心电路发送的所述TLP解封装,并且将经解封装的TLP提供至所述IPU的所述互连控制器。
6.如权利要求1所述的装置,其中,所述装置包括基础网络接口卡fNIC,并且其中,所述传输协议包括远程直接存储器访问RDMA或传输控制协议TCP中的至少一者。
7.如权利要求1所述的装置,其中,所述互连控制器包括外围组件互连快速PCIe控制器,并且其中,所述关键字包括PCIe总线ID、PCIe设备ID、PCIe功能ID或进程地址空间标识符PASID中的至少一者。
8.如权利要求1所述的装置,其中,所述CAM的所述输出包括远程直接存储器访问RDMA队列对。
9.如权利要求1所述的装置,其中,所述CAM使用从所述互连控制器接收的配置周期分组来编程。
10.如权利要求9所述的装置,其中,中央IPU资源管理器维护至少包括所述IPU和所述IPU的能力的可用IPU的储存库,其中,所述中央IPU资源管理器将所述IPU指派给所述主机计算节点,并且其中,所述CAM在所述IPU被指派给所述主机计算节点之后被编程。
11.一种方法,包括:
由网络接口设备从主机计算节点接收事务层分组TLP;
由所述网络接口设备从所述TLP标识发送方和目的地;
由所述网络接口设备向内容可寻址存储器CAM提供从所述发送方和所述目的地确定的关键字;
由所述网络接口设备基于所述关键字来确定所述CAM的输出,所述输出包括被指派给所述主机计算节点的基础设施处理单元IPU的网络地址,其中,所述IPU通过网络从所述主机计算节点被分解;以及
由所述网络接口设备使用传输协议将所述TLP发送至所述IPU。
12.如权利要求11所述的方法,进一步包括:使用在所述网络接口设备与所述IPU之间建立的共享秘密密钥来以密码学方式保护所述TLP,其中,所述共享秘密密钥在利用所述网络接口设备对所述IPU的成功证实之后被建立。
13.如权利要求12所述的方法,其中,所述成功证实基于所述网络接口设备从所述IPU接收提供所述IPU的真正真实性的证实报告,所述证实报告包括在所述IPU上运行的固件的测量和版本号。
14.如权利要求11所述的方法,其中,所述IPU用于对从所述网络接口设备发送的所述TLP解封装,并且将经解封装的TLP提供至所述IPU的互连控制器。
15.如权利要求11所述的方法,其中,所述网络接口设备包括外围组件互连快速PCIe控制器,并且其中,所述关键字包括PCIe总线ID、PCIe设备ID、PCIe功能ID或进程地址空间标识符PASID中的至少一者。
16.一种用于促成远程分解式基础设施处理单元IPU的系统,所述系统包括:
存储器,所述存储器用于存储数据块;
处理器,所述处理器通信地耦合至所述存储器,所述处理器用于处理资源以使用多个线程来执行操作;
互连控制器,所述互连控制器用于:
从主机计算节点接收事务层分组TLP;
从所述TLP标识发送方和目的地;以及
向内容可寻址存储器CAM提供从所述发送方和所述目的地确定的关键字;以及
核心电路,所述核心电路通信地耦合至所述互连控制器,所述核心电路用于:
基于所述关键字来确定所述CAM的输出,所述输出包括被指派给所述主机计算节点的基础设施处理单元IPU的网络地址,其中,所述IPU通过网络从所述主机计算节点被分解;以及
使用传输协议将所述TLP发送至所述IPU。
17.如权利要求16所述的系统,其中,所述核心电路进一步用于使用在所述系统与所述IPU之间建立的共享秘密密钥以密码学方式保护所述TLP。
18.如权利要求16-17中任一项所述的系统,其中,所述共享秘密密钥在利用所述系统对所述IPU的成功证实之后被建立。
19.如权利要求16-18中任一项所述的系统,其中,所述成功证实基于所述系统的枚举控制器从所述IPU接收提供所述IPU的真正真实性的证实报告,所述证实报告包括在所述IPU上运行的固件的测量和版本号。
20.如权利要求16-19中任一项所述的系统,其中,所述IPU用于对从所述核心电路发送的所述TLP解封装,并且将经解封装的TLP提供至所述IPU的所述互连控制器。
21.如权利要求16-20中任一项所述的系统,其中,所述系统包括基础网络接口卡fNIC,并且其中,所述传输协议包括远程直接存储器访问RDMA或传输控制协议TCP中的至少一者。
22.如权利要求16-20中任一项所述的系统,其中,所述互连控制器包括外围组件互连快速PCIe控制器,并且其中,所述关键字包括PCIe总线ID、PCIe设备ID、PCIe功能ID或进程地址空间标识符PASID中的至少一者。
23.至少一种机器可读介质,包括多个指令,所述多个指令响应于在计算设备上执行而使得所述计算设备执行根据权利要求11-15中的任一项所述的方法。
24.一种用于促成远程分解式基础设施处理单元IPU的设备,包括用于执行如权利要求11-15中任一项所述的方法的装置。
CN202211019689.3A 2021-09-24 2022-08-24 远程分解式基础设施处理单元(ipus) Pending CN115858442A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/484,193 2021-09-24
US17/484,193 US20230096451A1 (en) 2021-09-24 2021-09-24 Remote disaggregated infrastructure processing units (ipus)

Publications (1)

Publication Number Publication Date
CN115858442A true CN115858442A (zh) 2023-03-28

Family

ID=82898850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211019689.3A Pending CN115858442A (zh) 2021-09-24 2022-08-24 远程分解式基础设施处理单元(ipus)

Country Status (3)

Country Link
US (1) US20230096451A1 (zh)
EP (1) EP4155991A1 (zh)
CN (1) CN115858442A (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210117249A1 (en) * 2020-10-03 2021-04-22 Intel Corporation Infrastructure processing unit
US11755500B2 (en) * 2020-12-26 2023-09-12 Intel Corporation Cryptographic computing with disaggregated memory

Also Published As

Publication number Publication date
EP4155991A1 (en) 2023-03-29
US20230096451A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
US10761877B2 (en) Apparatuses, methods, and systems for blockchain transaction acceleration
US10990546B2 (en) Hardware-based virtual machine communication supporting direct memory access data transfer
JP6504679B2 (ja) セキュア暗号ハッシュラウンド機能を提供する命令およびロジック
CN106575215B (zh) 处理指令的系统、设备、方法、处理器、介质和电子设备
TWI570563B (zh) 後置中斷架構
US10089229B2 (en) Cache allocation with code and data prioritization
EP2831693B1 (en) Apparatus and method for accelerating operations in a processor which uses shared virtual memory
WO2018034681A1 (en) Apparatuses, methods, and systems for access synchronization in a shared memory
US9785436B2 (en) Apparatus and method for efficient gather and scatter operations
EP3734455A1 (en) Technology for providing out-of-band processor telemetry
US11003484B2 (en) Inter-processor interrupt virtualization with pass-through of local interrupt controller
CN111095252A (zh) 密码存储器所有权
EP3073370B1 (en) Apparatuses and methods to translate a logical thread identification to a physical thread identification
EP4202698A1 (en) Circuitry and methods for implementing input/output extensions for trust domains
US10394564B2 (en) Local closed loop efficiency control using IP metrics
US20230040226A1 (en) Method and apparatus for dynamically adjusting pipeline depth to improve execution latency
JP2023018655A (ja) マルチテナントスケーラブルアクセラレータの高性能ページフォールト処理のための方法および装置
EP4155991A1 (en) Remote disaggregated infrastructure processing units (ipus)
CN109643244B (zh) 映射安全策略组寄存器
WO2023115248A1 (en) Circuitry and methods for implementing a trusted execution environment security manager
WO2023184203A1 (en) Techniques to implement confidential computing with a remote device via use of trust domains
WO2023121700A1 (en) Computing architecture
CN111512309A (zh) 用于抵抗交叉特权线性探查的系统、方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication