CN112035395A - 在使用加速部件的系统中处理租户要求 - Google Patents

在使用加速部件的系统中处理租户要求 Download PDF

Info

Publication number
CN112035395A
CN112035395A CN202010837323.1A CN202010837323A CN112035395A CN 112035395 A CN112035395 A CN 112035395A CN 202010837323 A CN202010837323 A CN 202010837323A CN 112035395 A CN112035395 A CN 112035395A
Authority
CN
China
Prior art keywords
component
service
local
acceleration
acceleration component
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
CN202010837323.1A
Other languages
English (en)
Inventor
D·T·邱
S·V·兰卡
D·C·伯格
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112035395A publication Critical patent/CN112035395A/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/768Gate array

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及在使用加速部件的系统中处理租户要求。本文中描述了一种服务映射部件(SMC),用于处理由在数据处理系统中的软件驱动的主机部件(或某些其他部件)上执行的租户功能实例进行的请求。SMC被配置为应用至少一个规则来确定由租户功能实例请求的服务是否要由以下中至少一个来满足:本地主机部件、本地耦合到本地主机部件的本地硬件加速部件和/或本地主机部件经由本地硬件加速部件可间接地访问的至少一个远程硬件加速部件。在执行其分析时,SMC可以考虑各种因素,诸如服务是否对应于线路速率服务、延迟相关考虑、安全相关考虑等。

Description

在使用加速部件的系统中处理租户要求
相关申请引用
本申请是国际申请号为PCT/US2016/026287、国际申请日为2016年4月7日、进入中国国家阶段日期为2017年10月17日、中国国家申请号为201680022845.8、发明名称为“在使用加速部件的系统中处理租户要求”的发明专利申请的分案申请。
技术领域
本申请涉及在使用加速部件的系统中处理租户要求。
背景技术
例如由于功率限制和其他因素,计算机行业在其提高软件驱动的计算设备的速度和效率的努力中面临越来越多的挑战。软件驱动的计算设备采用一个或多个中央处理单元(CPU),其以传统时间方式处理机器可读指令。为了解决这个问题,计算行业提出了使用硬件加速部件(诸如现场可编程门阵列(FPGA))来补充由软件驱动的计算设备执行的处理。然而,软件驱动的计算设备和硬件加速部件是不同类型的设备,其具有根本不同的架构、性能特性、功率需求、程序配置范例、接口特征等。因此,以满足特定数据处理环境的各种设计要求的方式将这两种类型的设备集成在一起是具有挑战性的任务。
发明内容
本文中描述了一种服务映射部件(SMC),用于处理由数据处理系统中的软件驱动的主机部件(或某些其他部件)上执行的租户功能实例进行的请求。SMC被配置为应用至少一个规则来确定由租户功能实例请求的服务是否要被以下中至少一个满足:本地软件驱动的主机部件、本地耦合到本地主机部件的本地硬件加速部件和/或本地主机部件经由本地硬件加速部件可间接地访问的至少一个远程硬件加速部件。
在一个说明性操作方式中,SMC可以首先确定是否适合在本地硬件加速部件上执行服务。如果是,则SMC指令本地主机部件使用本地硬件加速部件来执行服务。否则,SMC确定远程硬件加速部件是否适合执行服务。如果是,则SMC指令本地主机部件使用远程硬件加速部件来执行服务。如果适合不由硬件加速部件来执行,则在可能的情况下,SMC可以指令本地主机部件自己以软件来执行服务。在一个实现中,SMC由多个本地管理部件结合全局管理部件来实现。
在执行其分析时,SMC可以考虑到各种因素,诸如服务是否对应于线路速率服务、延迟相关考虑、功率相关考虑、安全相关考虑等。
以上总结的功能可以表现在各种类型的系统、设备、部件、方法、计算机可读存储介质、数据结构、图形用户接口呈现、制品等中。
提供本发明内容部分以便以简化的形式介绍概念的选择;这些概念在下面的具体实施例部分中进一步描述。本发明内容部分不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
图1示出了包括软件平面和硬件加速平面的数据处理系统的概述。
图2示出了图1的数据处理系统的操作的第一示例。
图3示出了图1的数据处理系统的操作的第二示例。
图4示出了对应于数据中心的图1的数据处理系统的一个实现。
图5是图4的数据中心实现的更具包含性的描绘。
图6示出了与图4所示的相比实现服务器单元部件的备选方式。
图7示出了与图4所示的相比实现服务器单元部件的另一方式。
图8示出了与图1所示的相比的备选数据处理系统,其例如使用与图1所示的相比不同的网络基础设施。
图9是示出图1的数据处理系统的一种操作方式的流程图。
图10示出了用于管理图1的数据处理系统的管理功能的一个实现的概述。
图11提供了作为图10的管理功能的部件的服务映射部件(SMC)的一个请求驱动的操作方式的概述。
图12到图15示出了用于处理对于服务的请求的不同的相应选项,该请求由驻留在主机部件上的租户功能实例做出。
图16提供了图10的SMC的另一后台相关的操作方式的概述。
图17到图20示出了用于在物理上实现图10的管理功能的各个不同的架构。
图21到图24示出了用于配置图1的数据处理系统中的硬件加速部件的各个不同的策略。
图25提供了与图10的SMC的一种操作方式有关的附加信息。
图26是如下流程图,其示出了在请求驱动的操作模式下图10的管理功能的一种操作方式的概述。
图27是如下流程图,其示出了从本地管理部件的角度来看的图10的管理功能的一种操作方式。
图28到图30是如下流程图,其示出管理功能的操作的附加的决定相关的和管理相关的方面。
图31示出了实现图1的硬件加速部件的一种方式。
图32示出了包括分离的可配置域的硬件加速部件。
图33示出了用于在本地主机部件与相关联的本地硬件加速部件之间执行数据传输的功能。
图34示出了在图31中介绍的路由器的一个实现。
图35示出了在图31中介绍的传输部件的一个实现。
图36示出了在图31中介绍的3端口交换机的一个实现。
图37示出了图1所示的主机部件的一个实现。
在整个公开内容和附图中使用相同的附图标记来指代相同的部件和特征。100系列数字是指最先在图1中出现的特征,200系列数字是指最先在图2中出现的特征,300系列数字是指最先在图3中出现的特征,等等。
具体实施方式
本公开如下组织。A部分描述包括硬件加速平面和软件平面的说明性数据处理系统。B部分描述用于管理A部分的数据处理系统的管理功能。C部分阐述硬件加速平面中的说明性硬件加速部件的一个实现。
作为引文,一些附图描述在一个或多个结构部件的上下文中的概念,这些结构部件以各种不同的方式被称为功能、模块、特征、元件等。附图中所示的各种部件可以通过任何物理和有形机制以任何方式来实现,例如通过在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等、和/或其任何组合。在一种情况下,附图中的各种部件到不同单元的所示出的分割可以反映在实际实现中相应的不同物理和有形部件的使用。备选地或附加地,附图中所示的任何单个部件可以由多个实际物理部件来实现。备选地或另外,附图中的任何两个或更多个分离部件的描绘可以反映由单个实际物理部件执行的不同功能。
其他附图以流程图形式描述概念。以这种形式,某些操作被描述为构成以特定顺序执行的不同块。这样的实现是说明性的而非限制性的。本文中描述的某些块可以被分组在一起并且在单个操作中执行,某些块可以分解成多个部件块,并且某些块可以与本文中所示的顺序不同的顺序来执行(包括并行的执行块的方式)。流程图中所示的框可以通过任何物理和有形机制以任何方式来实现,例如通过在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等、和/或其任何组合。
关于术语,短语“被配置为”包括任何种类的物理和有形功能可以被构造为执行所标识的操作的任何方式。该功能可以被配置为例如使用在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等、和/或其任何组合来执行操作。
术语“逻辑”包括用于执行任务的任何物理和有形功能。例如,流程图中所示的每个操作对应于用于执行该操作的逻辑部件。操作可以例如使用在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等、和/或其任何组合来执行。当由计算设备实现时,逻辑部件表示作为计算系统的物理部分的电气部件,然而实现。
本文中描述的任何存储资源、或存储资源的任何组合可以被认为是计算机可读介质。在很多情况下,计算机可读介质表示某种形式的物理和有形实体。术语计算机可读介质还包括例如经由物理管道和/或空中或其他无线介质等发送或接收的传播信号。然而,特定术语“计算机可读存储介质”和“计算机可读介质设备”明确地排除传播信号本身,同时包括所有其他形式的计算机可读介质。
以下说明可能将一个或多个特征标识为“可选”。这种类型的语句不应当被解释为可以被认为是可选的特征的穷举指示;也就是说,其他特征可以被认为是可选的,虽然在文本中没有明确标识。此外,对单个实体的任何描述并不旨在排除使用多个这样的实体;类似地,对多个实体的描述并不旨在排除使用单个实体。另外,虽然描述可以将某些特征解释为执行所标识的功能或实现所标识的机制的备选方式,但是也可以任何组合将特征组合在一起。最后,术语“示例性”或“说明性”是指潜在的很多实现中的一个实现。
A.概述
图1示出了包括软件平面104和硬件加速平面106的数据处理系统102的概述。软件平面104包括软件驱动部件(每个由图1中的符号“S”表示)的集合,而硬件平面包括硬件加速部件(每个由图1中的符号“H”表示)的集合。例如,每个主机部件可以对应于使用一个或多个中央处理单元(CPU)执行机器可读指令的服务器计算机。进而,每个CPU可以执行一个或多个硬件线程上的指令。另一方面,每个硬件加速部件可以对应于用于实现功能的硬件逻辑,诸如现场可编程门阵列(FPGA)设备、大规模并行处理器阵列(MPPA)设备、图形处理单元(GPU)、专用集成电路(ASIC)、多处理器片上系统(MPSoC)等。
术语“硬件”加速部件还旨在广泛地包括利用硬件设备来执行功能的不同方式,例如至少包括:a)其中至少一些任务用硬ASIC逻辑等来实现的情况;b)其中至少一些任务用软(可配置)FPGA逻辑等来实现的情况;c)其中至少一些任务作为FPGA软件处理器覆盖上的软件等来运行的情况;d)其中至少一些任务在软处理器的MPPA等上运行的情况;e)其中至少一些任务作为硬ASIC处理器上的软件等来运行的情况,等等,或其任何组合。类似地,数据处理系统102可以适应软件驱动设备在软件平面104中的不同表现。
为了简化对硬件加速部件的重复参考,以下说明将因此这些设备简单地称为“加速部件”。此外,以下说明将提出其中加速部件对应于FPGA器件的主要示例,但是,如上所述,数据处理系统102可以使用其他类型的加速部件来构造。另外,硬件加速平面106可以使用加速部件的异构集合来构造,包括不同类型的、具有不同的相应处理能力和架构的FPGA器件、FPGA器件和其他器件的混合等。
主机部件通常使用时间执行范例,例如通过使用其每个CPU硬件线程逐一执行机器可读指令来执行操作。相反,加速部件可以使用空间范例,例如通过使用大量并行逻辑元件执行计算任务来执行操作。因此,与软件驱动的主机部件相比,加速部件可以在更短的时间内执行一些操作。在数据处理系统102的上下文中,与术语“加速部件”相关联的“加速”修饰语反映其加速由主机部件执行的功能的可能性。
在一个示例中,数据处理系统102对应于包括多个计算机服务器的数据中心环境。计算机服务器对应于图1所示的软件平面104中的主机部件。在其他情况下,数据处理系统102对应于企业系统。在其他情况下,数据处理系统102对应于使用能够访问两个或更多个加速部件的至少一个主机部件的用户设备或器具。这些示例以举例而不是限制的方式引用;其他应用是可行的。
在一个实现中,数据处理系统102中的每个主机部件通过本地链路耦合到至少一个加速部件。处理设备的基本单元在本文中被称为“服务器单元部件”,因为该设备可以被分组在一起并且作为数据处理系统102内的单个可服务单元(尽管不一定如此)被维护。服务器单元部件中的主机部件称为“本地”主机部件,以将其和与其他服务器单元部件关联的其他主机部件区分开。同样地,服务器单元部件的加速部件称为“本地”加速部件,以将它们与与其他服务器单元部件相关联的其他加速部件区分开。
例如,图1示出了通过本地链路112(诸如下面将描述的外围部件快速互连(PCIe)链路)耦合到本地加速部件110的说明性本地主机部件108。本地主机部件108和本地加速部件110的这种配对形成单个服务器单元部件的至少一部分。更一般地,图1示出了软件平面104通过很多个体本地链路耦合到硬件加速平面,图1统称为本地H到本地S耦合114。
本地主机部件108还可以间接地与硬件加速平面106中的任何其他远程加速部件通信。例如,本地主机部件108能够经由本地加速部件110访问远程加速部件116。更具体地,本地加速部件110经由链路118与远程加速部件116通信。
在一个实现中,公共网络120用于将软件平面104中的主机部件耦合到其他主机部件,并且将硬件加速平面106中的加速部件耦合到其他加速部件。也就是说,两个主机部件可以像两个加速部件那样使用相同的网络120彼此通信。作为另一特征,软件平面104中的主机部件之间的交互独立于硬件加速平面106中的加速部件之间的交互。这表示,例如,从软件平面104中的主机部件的角度来看,在主机部件的方向之外,两个或更多个加速部件可以透明的方式彼此通信,而主机部件不“知道”在硬件加速平面106中进行的特定交互。然而,通过发出对于由硬件加速平面106托管的服务的请求,主机部件可以启动在硬件加速平面106中进行的交互。
根据一个非限制性实现,数据处理系统102使用以太网协议来通过公共网络120发送IP分组。在一个实现中,服务器单元部件中的每个本地主机部件被给定单个物理IP地址。同一服务器单元部件中的本地加速部件可以采用相同的IP地址。服务器单元部件可以不同的方式确定传入分组是否以本地主机部件而不是本地加速部件为目的地。例如,以本地加速部件为目的地的分组可以被公式化为指定特定端口的用户数据报协议(UDP)分组;另一方面,以主机为目的地的分组不以这种方式被公式化。在另一种情况下,属于加速平面106的分组可以基于每个分组中(例如,分组的报头或主体中)的状态标志的值而与属于软件平面104的分组区分开。
鉴于上述特性,数据处理系统102可以被概念化为形成共享相同物理通信链路的两个逻辑网络。与两个逻辑网络相关联的分组可以通过它们的个体业务类别以上述方式彼此区分开。但是在其他实现中(例如,如下面关于图8所述),数据处理系统102可以分别使用两个不同的物理网络来处理主机到主机业务和硬件到硬件业务。此外,在使用公共网络120的实现中,主机到主机网络基础设施不需要与硬件到硬件网络基础设施完全相同;也就是说,这两个基础设施在它们的大多数网络资源被共享的意义上是共有的,但是不一定其所有的网络资源都是共享的。
最后,管理功能122用于管理数据处理系统102的操作。如将在B部分(下面)中更详细地阐述的,管理功能122可以在物理上使用不同的控制架构实现。例如,在一个控制架构中,管理功能122可以包括耦合到一个或多个全局管理部件的多个本地管理部件。
通过对B部分的介绍,管理功能122可以包括多个子部件,其执行不同的相应逻辑功能(其可以在物理上以不同的方式实现)。例如,位置确定部件124基于存储在数据存储设备126中的当前分配信息来标识数据处理系统102内的服务的当前位置。如本文中使用的,服务是指由数据处理系统102执行的任何功能。例如,一个服务可以对应于加密功能。另一服务可以对应于文档排序功能。另一服务可以对应于数据压缩功能,等等。
在操作中,位置确定部件124可以接收对于服务的请求。作为响应,位置确定部件124返回与服务相关联的地址,如果该地址存在于数据存储设备126中。地址可以标识托管所请求的服务的特定加速部件。
服务映射部件(SMC)128将服务映射到特定的加速部件。SMC128可以根据其接收到的调用其操作的触发事件的类型来以至少两种模式进行操作。在第一种情况下,SMC 128处理由租户功能实例做出的对于服务的请求。租户功能实例可以对应于在特定本地主机部件上运行的软件程序,或者更具体地对应于在虚拟机上执行的程序,其又与特定本地主机部件相关联。该软件程序可以在其执行过程中请求服务。SMC 128通过确定数据处理系统102中用以提供服务的适当部件来处理该请求。供考虑的可能部件包括:本地加速部件(与发起请求的本地主机部件相关联);远程加速部件;和/或本地主机部件本身(从而本地主机部件将以软件来实现服务)。SMC 128基于诸如所请求的服务是否属于线路速率服务等一个或多个映射考虑来做出其确定。
在另一种操作方式中,SMC 128通常在后台和全局模式下操作,以基于数据处理系统102中的全局条件(而不是或除了处理来自租户功能实例的个体请求)来向加速部件分配服务。例如,SMC 128可以响应于影响一个或多个服务的需求的变化来调用其分配功能。在这种模式下,SMC 128再次基于诸如与服务相关联的历史需求等一个或多个映射考虑来做出其确定。
在执行其功能时,SMC 128可以与位置确定部件124交互。例如,在试图确定由加速部件提供的已经分配的服务的地址时,SMC 128可以咨询数据存储设备126。在例如通过与服务相关地存储加速部件的地址来将服务映射到一个或多个加速部件时,SMC 128还可以更新数据存储设备126。
虽然在图1中未示出,但是SMC 128的子部件也管理多部件服务。多部件服务是由多个部分组成的服务。多个相应的加速部件执行相应的部分。
注意,为了方便起见,图1示出了管理功能122与软件平面104和硬件平面106中的部件分离。但是如将在B部分中阐明的,可以使用软件平面104和/或硬件平面106的资源来实现管理功能122的任何方面。当由硬件平面106实现时,可以像任何服务一样加速管理功能。
图2示出了图1的数据处理系统102的操作的第一示例,其对应于单个事务或单个事务的一部分。在操作(1)中,第一主机部件202在执行单个计算任务的过程中与第二主机部件204通信。然后,第二主机部件204请求使用在硬件加速平面106中实现的服务(但是第二主机部件204除了服务可以在指定地址处被访问之外可能不“知道”实现服务的位置)。
在很多情况下,所请求的服务在单个加速部件上实现(但是可以有多个冗余的这样的加速部件可供从中选择)。但是在图2的特定示例中,所请求的服务对应于分散在加速部件的集合(或集群)上的多部件服务,每个加速部件执行服务的分配部分。图形结构可以指定各个加速部件在集合中被耦合在一起的方式。在一些实现中,图形结构还标识至少一个头部部件。头部部件对应于数据处理系统102中的实体可以与硬件加速平面106中的多部件服务交互的接触点。头部部件也可以用作由图形结构定义的处理管线中的初始处理阶段。
在图2的特定情况下,假定加速部件206对应于本地链接到本地主机部件204的本地加速部件,并且加速部件208是多部件服务的头部部件。在操作(2)和(3)中,请求主机部件204经由其本地加速部件206访问加速部件208。然后,加速部件208执行其部分的多部件服务以生成中间输出结果。在操作(4)中,加速部件208然后调用执行另一相应部分的多部件服务的另一加速部件210以生成最终结果。在操作(5)、(6)和(7)中,硬件加速平面106通过上述相同的部件链但是沿相反方向顺序地将最终结果转发回请求主机部件204。注意,上述数据流操作(包括定义返回路径的流操作)仅作为示例而非限制来被引用;其他多部件服务可以使用指定任何其他流路径的其他图形结构。例如,加速部件210可以将最终结果直接转发到本地加速部件206。
首先,注意,在硬件加速平面106中进行的操作与在软件平面104中执行的操作独立的方式来执行。换言之,软件平面104中的主机部件不管理硬件加速平面106中的操作。然而,主机部件可以通过发出对于由硬件加速平面106托管的服务的请求来调用硬件加速平面106中的操作。
其次,注意,硬件加速平面106以对于请求主机部件而言透明的方式来执行其事务。例如,本地主机部件204可能“不知道”其请求如何在硬件加速平面中被处理,包括服务对应于多部件服务这一事实。
再次,注意,在该实现中,软件平面104中的通信(例如,对应于操作(1))使用与硬件加速平面106中的通信(例如,对应于操作(3)-(6))相同的公共网络120来进行。操作(2)和(7)可以通过与图1所示的本地H到本地S耦合114相对应的本地链路来进行。
图2所示的多部件服务类似于环,因为一系列加速部件在第一方向上被遍历以获得最终结果;该最终结果然后在与头部部件相反的方向通过相同系列的加速部件被传播回来。但是如上所述,其他多部件服务可以使用加速部件的不同集合,其具有不同相应流结构。
例如,图3示出了与图1的示例相比采用不同流结构的图1的数据处理系统102的操作的第二示例。更具体地,在操作(1)中,本地主机部件(未示出)向其本地加速部件302发送请求。在这种情况下,假定本地加速部件也是服务的头部部件。在操作(2)中,头部部件然后可以将多个消息转发到多个相应的加速部件。接收消息的每个加速部件可以与其他加速部件并行地执行多部件服务的一部分。(注意,图3可以仅表示更完整的事务的一部分。)
此外,多部件服务不一定需要采用单个头部部件或任何头部部件。例如,多部件服务可以采用所有执行相同功能的加速部件的集群。数据处理系统102可以被配置为通过联系集群中的任意成员来调用这种多部件服务。该加速部件可以被称为头部部件,因为要访问的是第一部件,但是除此之外其没有特殊状态。在其他情况下,主机部件可以最初将多个请求分发到加速部件的集合的多个成员。
图4示出了表示图1的数据处理系统102的一个实现的数据中心402的一部分。特别地,图4示出了该数据中心402中的一个机架。机架包括多个服务器单元部件(404,406,...,408),每个部件耦合到架顶式(TOR)交换机410。架顶式交换机是指将机架中的部件耦合到数据中心的其他部分的交换机。尽管未示出,但是其他机架可以呈现类似的架构。机架是用于容纳多个处理部件或除此之外对多个处理部件分组的物理结构。
图4还示出了一个代表性服务器单元部件404的说明性组合。它包括本地主机部件412和本地加速部件418,本地主机部件412包括一个或多个中央处理单元(CPU)(414,416,...)。本地加速部件418经由本地链路420直接耦合到主机部件412。本地链路420例如可以被实现为PCIe链路。本地加速部件418还通过网络接口控制器(NIC)422间接耦合到主机部件412。
最后,注意,本地加速部件418耦合到TOR交换机410。因此,在该特定实现中,本地加速部件418表示主机部件412与数据中心402中的其他部件(包括其他主机部件和其他加速部件)交互的唯一路径。除了其他效果之外,图4的架构允许本地加速部件418对从TOR交换机410接收(和/或发送到TOR交换机410)(例如,通过执行加密、压缩等)的分组执行处理,而不需要负担由主机部件412执行的基于CPU的操作。
注意,本地主机部件412可以通过本地链路420或经由NIC 422与本地加速部件418通信。不同的实体可以在不同的相应情况下利用这两个路径。例如,假定在主机部件412上运行的程序请求服务。在一个实现中,假定主机部件412提供位置确定部件124和数据存储设备126的本地实例化。或者,全局管理部件可以提供位置确定部件124及其数据存储设备126。在任一情况下,主机部件412可以咨询数据存储设备126以确定服务的地址。然后,主机部件412可以使用所标识的地址经由NIC 422和TOR交换机410来访问服务。
在另一实现中,假定本地加速部件418提供位置确定部件124和数据存储设备126的本地实例化。主机部件412可以经由本地链路420访问本地加速部件418。本地加速部件418然后可以咨询本地数据存储设备126以确定服务的地址,之后其经由TOR交换机410来访问服务。其他访问服务的方式也是可能的。
图5是图4所示的数据中心402的更具包含性的描绘。数据中心402包括多个机架(502-512,...)。每个机架包括多个服务器单元部件。每个服务器单元部件又可以具有以上图4中所述的架构。例如,代表性服务器单元部件514包括本地主机部件(S)516、网络接口控制器(N)518和本地加速部件(S)520。
图5所示的路由基础设施对应于上面参考图1所描述的公共网络120的一个实现。路由基础设施包括多个架顶式(TOR)交换机522和高级交换基础设施524。高级交换架构524将TOR交换机522连接在一起。高级交换基础设施524可以具有任何架构,并且可以由任何路由协议来驱动。在图5所示的示例中,高级交换基础设施524至少包括聚合交换机526、核心交换机528等的集合。通过所示基础设施路由的业务可以对应于以太网IP分组。
图5所示的数据中心402可以对应于在单个地理位置处提供的资源集合、或者分布在多个地理位置(例如,位于世界上的不同地方的多个个体贡献数据中心)的分布式资源集合。在分布式上下文中,管理功能122可以基于任何映射考虑从第一贡献数据中心向第二贡献数据中心发送工作,映射考虑诸如:(1)确定加速部件在第二贡献数据中心可用;(2)确定加速部件被配置为在第二贡献数据中心执行期望的一个或多个服务;和/或(3)确定加速部件不仅被配置为执行期望的一个或多个服务,而且它们立即(例如,“在线”)可用以执行这些服务,等等。可以在服务分配中发挥作用的其他映射考虑在下面在B部分中给出。如本文中使用的,术语“全局”通常是指比与单个服务器单元部件相关联的本地域更具包含性的任何范围。
通常,注意,尽管图4和图5关注使用相对广泛的数据处理系统(对应于数据中心),但是本文中阐述的一些原理可以应用于较小的系统,包括其中单个本地主机部件(或其他类型的部件)耦合到多个加速部件的情况,包括本地加速部件和一个或多个远程加速部件。这样的较小的系统甚至可以在用户设备或器具等中实施。用户设备可以具有使用本地加速资源和/或远程加速资源的选项。
图6示出了与图4所示的架构相比实现服务器单元部件602的备选方式。与图4的情况相似,图6的服务器单元部件602包括由一个或多个CPU(606,608,...)组成的本地主机部件604、本地加速部件610、和用于将本地主机部件604与本地加速部件610耦合的本地链路612。与图4的情况不同,服务器单元部件602将网络接口控制器(NIC)614实现为本地加速部件610的内部部件,而不是分离的部件。
图7示出了与图4所示的架构相比实现服务器单元部件702的另一备选方式。在图7的情况下,服务器单元部件702包括任何数目n个本地主机部件(704,...,706)以及任何数目m个本地加速部件(708,...,710)。(图中省略了服务器单元部件702的其他部件以便于说明。)例如,服务器单元部件702可以包括耦合到两个本地加速部件的单个主机部件。两个加速部件可以执行不同的相应的任务。例如,一个加速部件可以用于处理到其本地TOR交换机的传出业务,而另一加速部件可以用于处理来自TOR交换机的传入业务。此外,服务器单元部件702可以加载任何本地加速部件(708,...,710)上的任何服务。
还注意,在上述示例中,服务器单元部件可以是指例如通过在数据中心的机架内形成单个可服务单元的部件的物理分组。在其他情况下,服务器单元部件可以包括一个或多个主机部件和一个或多个加速部件,这些部件并不是必须一起容纳在单个物理单元中。在这种情况下,本地加速部件可以在逻辑上而不是在物理上与其相应的本地主机部件相关联被考虑。
备选地或另外,本地主机部件和一个或多个远程加速部件可以在诸如单个MPSoC-FPGA管芯等单个物理部件上实现。网络交换机也可以并入该单个部件中。
图8示出了与图1所示的相比的备选数据处理系统802。与图1的数据处理系统102类似,数据处理系统802包括软件平面104和硬件加速平面106、以及用于将本地主机部件连接到相应的本地加速部件的本地H到本地S耦合114。但是与图1的数据处理系统102不同,数据处理系统802包括用于将主机部件耦合在一起的第一网络804和用于将硬件部件耦合在一起的第二网络806,其中第一网络804与第二网络806至少部分不同。例如,第一网络804可以对应于图5所示的类型的数据中心交换基础设施。第二网络806可以对应于用于将具有任何网络拓扑的加速部件连接在一起的专用链路。例如,第二网络806可以对应于p×r环面网络。环面网络中的每个加速部件经由适当的电缆链路等耦合到东、西、北和南相邻加速部件。可以备选地使用具有任何相应尺寸和规模的其他类型的环面网络。
在其他情况下,由单个处理部件提供(例如,在单个管芯上实现)的本地硬CPU和/或软CPU和/或加速逻辑可以经由不同网络耦合到其他处理部件上的(例如,在其他管芯、板、机架等上实现的)其他元件。个体服务本身可以利用一个或多个递归本地互连网络。
还注意,以上描述以发出由加速部件满足的服务请求的主机部件的上下文为框架。但是,备选地或另外,任何加速部件还可以做出对于可以由任何其他部件(例如,另一加速部件和/或甚至主机部件)满足的服务的请求。SMC 102可以与上述类似的方式来解决这样的请求。实际上,本文中描述的某些特征可以在硬件加速平面本身上实现,而不需要软件平面。
更一般地说,某些特征可以由请求服务的任何第一部件来实现,第一部件可以满足该服务,和/或由相对于第一部件的一个或多个本地部件来实现,和/或由相对于第一部件的一个或多个远程部件来实现。然而,为了便于说明,下面的描述将继续主要以做出请求的实体对应于本地主机部件的上下文为框架。
最后,其他实现可以采用不同的策略来将主机部件耦合到硬件部件,例如除了图14所示的本地H到本地S耦合114以外的硬件部件。
图9示出了表示图1的数据处理系统102的一个说明性操作方式的过程902。在框904,本地主机部件发出对于服务的请求。在框906,本地主机部件接收对于请求的应答,应答可以标识服务的地址。在备选实现中,相关联的本地加速部件可以在从本地主机部件接收到请求之后执行框904和906。换言之,本地主机部件或本地加速部件可以执行地址查找功能。
在框908,相关联的本地加速部件可以本地执行服务,假定已经标识的地址属于由本地加速部件本地实现的功能。备选地或另外,在框910,本地加速部件将请求路由到远程加速部件。如上所述,本地加速部件被配置为执行到远程加速部件的路由而不涉及本地主机部件。此外,多个主机部件在数据处理系统102中通过与多个加速部件相同的物理网络彼此通信。
总之,在A部分,数据处理系统102具有很多有用的特征。首先,数据处理系统102使用公共网络120(除了图8的示例),这避免了与用于将加速部件耦合在一起的定制网络相关联的花销。第二,公共网络120使得可以向诸如数据中心等现有数据处理环境添加加速平面。并且在安装之后,所得到的数据处理系统102可以被有效地维护,因为它利用在现有数据处理环境中发现的现有物理链路。第三,数据处理系统102集成加速平面106而不施加大的附加功率要求,例如,鉴于上述的本地加速部件可以与现有服务器单元部件集成的方式。第四,数据处理系统102提供了一种有效和灵活的机制,用于允许主机部件访问由硬件加速平面106提供的任何加速资源,而例如不将主机部件与特定的固定加速资源进行窄配对,并且不会使主机部件负担管理硬件加速平面106本身。第五,数据处理系统102通过智能地将这些资源分散在硬件平面106中来提供用于管理加速资源的有效机制,从而:(a)减少了资源的过度利用和利用不足(例如,对应于“滞留能力”问题);(b)促进了这些服务的消费方对这些服务的快速访问;(c)适应了由一些消费方和/或服务指定的提高的加工处理要求等等。上述效果是说明性的,而不是穷举性的;数据处理系统102提供其他有用的效果。
B.管理功能
图10示出了用于管理图1的数据处理系统102的管理功能122的一个实现的概述。更具体地,图10描绘了由管理功能122、包括其主引擎、服务映射部件(SMC)128执行的功能的逻辑视图。不同的子部件对应于由管理功能122执行的不同的主要功能。下面描述的图17到图20示出了逻辑功能的各种可能的物理实现。
如介绍A部分中所述,位置确定部件124基于存储在数据存储设备126中的当前分配信息来标识数据处理系统102内的服务的当前位置。在操作中,位置确定部件124接收对于服务的请求。作为响应,它返回服务的地址,如果存在于数据存储设备126内。地址可以标识实现服务的特定加速部件。
数据存储设备126可以维持将服务映射到地址的任何类型的信息。在图10所示的摘录中,数据存储设备126将少量服务(服务w、服务x、服务y和服务z)映射到当前被配置为提供这些服务的加速部件。例如,数据存储设备126指示用于服务w的配置映像当前安装在具有地址a1、a6和a8的设备上。地址信息可以任何方式来表达。这里,地址信息以高级符号形式来表示以便于说明。
在一些实现中,数据存储设备126可以可选地还存储以任何方式表征每个当前服务到部件分配的状态信息。通常,用于服务到部件分配的状态信息指定在数据处理系统102内处理在其分配的部件上实现的分配的服务的方式,诸如通过指定其持久性级别,指定其访问权限(例如,“所有权”)等。在一个非限制性实现中,例如,服务到部件分配可以被指定为保留的或非保留的。当执行配置操作时,SMC128可以在确定是否适合改变分配时将与分配相关联的保留/非保留状态信息考虑在内,例如,以满足对于服务的当前请求、对于一个或多个服务的需求的变化等。例如,数据存储设备126指示具有地址a1、a6和a8的加速部件当前被配置为执行服务w,但是仅到加速部件a1和a8的分配被考虑保留。因此,与其他两个加速部件相比,SMC 128将到加速部件a6的分配视为用于重新指配(重新配置)的更合适的候选。
另外或备选地,数据存储设备126可以提供指示服务到部件分配要由所有租户功能实例共享还是专用于一个或多个特定租户功能实例(或服务的某个(些)其他指示的消费方)的信息。在前者(完全共享)的情况下,所有租户功能实例竞争由加速部件提供的相同资源。在后者(专用)情况下,仅允许与服务分配关联的那些客户端使用所分配的加速部件。图10以高级方式示出了在具有地址a3的加速部件上运行的服务x和y被保留用于由一个或多个指定的租户功能实例来使用,而任何租户功能实例可以使用其他服务到部件分配。
SMC 128还可以与提供可用性信息的数据存储设备1002交互。可用性信息标识具有用于实现一个或多个服务的可用容量的加速部件池。例如,在一种使用方式中,SMC 128可以确定将一个或多个加速部件指配为功能的提供者是适当的。为此,SMC 128在数据存储设备1002上进行汲取(draw)以寻找具有用于实现该功能的空闲容量的加速部件。然后,SMC128将功能指配给这些空闲加速部件中的一个或多个。这样做会改变所选择的加速部件的可用性相关状态。
SMC 128还管理可用性信息并且在数据存储设备1002中维护该信息。在这样做时,SMC 128可以使用不同的规则来确定加速部件是可用还是不可用。在一种方法中,SMC 128可以认为当前正在使用的加速部件不可用,而认为当前未使用的加速部件可用。在其他情况下,加速部件可以具有不同的可配置域(例如,瓦片),其中一些当前正在使用,而其他的当前未使用。这里,SMC 128可以通过表达其处理资源当前未使用的部分来指定加速部件的可用性。例如,图10指示具有地址a1的加速部件的50%的处理资源可用于使用。另一方面,具有地址a2的加速部件完全可用,而具有地址a3的加速部件完全不可用。个体加速部件可以不同的方式通知SMC 128它们的相对利用水平,如下面将更详细地描述的。
在其他情况下,SMC 128可以在注册时考虑对于加速部件的未决请求,而不管其可用还是不可用。例如,SMC 128可以指示加速部件不可用,因为它被调度为将服务递送到一个或多个租户功能实例,尽管它可能不会在当前时间参与提供该服务。
在其他情况下,SMC 128还可以注册可用的每个加速部件的类型。例如,数据处理系统102可以对应于支持具有不同物理特性的加速部件的异构环境。这种情况下的可用性信息不仅可以指示可用的处理资源的身份,还可以指示这些资源的类型。
在其他情况下,当将加速部件注册为可用或不可用时,SMC 128还可以考虑服务到部件分配的状态。例如,假定特定加速部件当前被配置为执行某个服务,并且此外,假定分配已经被指定为保留而不是非保留。仅鉴于其保留状态,SMC 128可以将加速部件指定为不可用(或将其某些部分指定为不可用),而不管服务当前是否正活动地被用于在当前时间执行功能。实际上,加速部件的保留状态至少在某些情况下用作防止SMC 128重新配置加速部件的锁。
现在参考SMC 128本身的核心映射操作,SMC 128响应于触发事件来将服务分配或映射到加速部件。更具体地,SMC 128取决于已经接收到的触发事件的类型以不同的模式操作。在请求驱动模式下,SMC 128通过租户功能来处理对于服务的请求。这里,每个触发事件对应于至少部分驻留在特定本地主机部件上的租户功能实例的请求。响应于本地主机部件的每个请求,SMC 128确定用于实现服务的适当部件。例如,SMC 128可以从以下各项中选择:本地加速部件(与做出请求的本地主机部件相关联)、远程加速部件或本地主机部件本身(从而本地主机部件将以软件实现服务)或其某种组合。
在第二后台模式下,SMC 128通过将服务全局地分配给数据处理系统102内的加速部件以满足数据处理系统102中的总体预期需求和/或满足其他系统范围目标和其他因素(而不是狭义地关注主机部件的各个请求)来操作。这里,接收到的每个触发事件对应于数据处理系统102中的一些条件,其作为整体保证服务的分配(或重新分配),诸如对于服务的需求的变化。
然而,注意,上述模式不是分析的互斥域。例如,在请求驱动模式下,SMC 128可以尝试实现至少两个目的。作为第一主要目的,SMC 128将尝试寻找满足对于服务的未解决的请求的加速部件,同时整体满足与数据处理系统102相关的一个或多个性能目标。作为第二目的,SMC 128还可以可选地考虑其对服务的分配关于由其他租户功能实例对该服务的未来使用的长期影响。换言之,第二目的有关于恰好由特定租户功能实例所做出的请求触发的后台考虑。
例如,考虑以下简化情况。租户功能实例可以做出对于服务的请求,其中租户功能实例与本地主机部件相关联。SMC 128可以通过配置本地加速部件执行该服务来对请求进行响应。在做出这个决定时,SMC 128首先尝试寻找满足租户功能实例所做出的请求的分配。但是,SMC 128还可以基于如下确定来做出其分配,该确定为:很多其他主机部件已经请求相同服务并且这些主机部件大多位于与已经生成对于服务的当前请求的租户功能实例相同的机架中。换言之,这个补充寻找进一步支持将服务置于机架内加速部件的决定。
图10描绘了可选地包括执行不同的相应分析的多个逻辑部件的SMC 128。作为第一可选的分析部件,SMC 128可以使用状态确定逻辑1004来定义其正在进行的分配的状态,例如,作为保留的或非保留的、专用的或完全共享的等。例如,假定SMC 128从租户功能实例接收到对于服务的请求。作为响应,SMC 128可以决定配置本地加速部件来提供服务,并且在该过程中,将该分配指定为非保留的,例如,在请求可以是对于服务的“一次性”请求的这一初始假定下。在另一种情形下,假定SMC 128进行附加确定,即相同的租户功能实例在短时间内已经重复地做出了对于同一服务的请求。在这种情形下,SMC 128可以做出如上所述的相同的分配决定,但是这次SMC128可以将其指定为保留。SMC 128还可以可选地将服务指定为仅专用于正做出请求的租户功能。通过这样做,SMC 128可以使得数据处理系统102能够通过租户功能实例来更有效地满足对于该服务的未来请求。换言之,保留状态可能降低SMC 128稍后将服务从本地加速部件移动的机会,在这种状态下其被本地主机部件大量使用。
此外,租户功能实例(或本地主机部件)可以具体地请求被授权对本地加速部件的保留和专用的使用。状态确定逻辑1004可以在确定是否准许该请求时使用不同的环境特定的规则。例如,状态确定逻辑1004可以决定准许请求,前提是没有接收到保证覆盖该请求的其他触发事件。状态确定逻辑1004可以覆盖该请求,例如,当它试图完成基于任何环境特定的原因而被确定为比租户功能的请求更紧迫的另一请求时。
在一些实现中,注意,租户功能实例(或本地主机部件或服务的某个其他消费方)可以独立地控制其本地资源的使用。例如,本地主机部件可以向管理功能122传递指示其本地加速部件不可用或不完全可用的利用信息,而不管本地加速部件在此刻实际上是否忙碌。这样做时,本地主机部件可以防止SMC 128“窃取”其本地资源。不同的实现可以使用不同的环境特定的规则来确定实体是否被允许以上述方式限制对其本地资源的访问以及如果是则确定是在何种情况。
在另一示例中,假定SMC 128确定存在对于特定服务的需求的普遍增加。作为响应,SMC 128可以寻找与加速部件“池”相对应的指定数目的空闲加速部件,并且然后将加速部件池指定为用于提供特定服务的保留(但完全共享)的资源。之后,SMC 128可以检测对于特定服务的需求的普遍降低。作为响应,SMC 128可以减少保留的加速部件池,例如通过将先前注册为“保留”的一个或多个加速部件的状态改变为“未保留”。
注意,上述状态的特定维度(保留与非保留、专用与完全共享)是通过说明而不是限制来引用的。其他实现可以采用任何其他状态相关维度,或者可以仅容纳单个状态指定(并且因此省略了使用状态确定逻辑1004的功能)。
作为第二分析部件,SMC 128可以使用尺寸确定逻辑1006来确定适合于提供服务的加速部件的数目。SMC 128可以基于与服务相关联的处理需求的考虑以及可用于满足这些处理需求的资源一起来做出这样的确定。
作为第三分析部件,SMC 128可以使用类型确定逻辑1008来确定适合于提供服务的加速部件的类型。例如,考虑其中数据处理系统102具有不同的相应能力的加速部件的异构集合的情况。类型确定逻辑1008可以确定适于提供服务的特定种类的加速部件中的一个或多个。
作为第四分析部件,SMC 128可以使用放置确定逻辑1010来确定适合于解决特定触发事件的(一个或多个)特定加速部件。这一确定又可以具有一个或多个方面。例如,作为其分析的部分,放置确定逻辑1010可以确定是否适合配置加速部件来执行服务,其中该部件当前未被配置为执行服务。
上述分析方面通过说明而不是限制来引用。在其他实现中,SMC128可以提供附加的分析阶段。
通常,SMC 128基于一个或多个映射考虑来执行其各种分配确定。例如,一个映射考虑可以涉及在数据存储设备1012中提供的历史需求信息。(下面的)说明将提供不同映射考虑的附加描述,因为它们应用于放置确定逻辑1010的操作。
然而,注意,在所有情况下,SMC 128不需要执行多因素分析。在一些情况下,例如,主机部件可以做出对于与单个固定位置相关联(例如,对应于本地加速部件或远程加速部件)的服务的请求。在那些情况下,SMC 128可以简单地推迟位置确定部件124将服务请求映射到服务的地址,而不是评估以不同的方式执行服务的成本和益处。在其他情况下,数据存储设备126可以将多个地址与单个服务相关联,每个地址与可以执行服务的加速部件相关联。SMC 128可以在向特定地址分配对于服务的请求中使用下面要描述的任何映射考虑,诸如负载平衡考虑。
作为其操作的结果,SMC 128可以利用将服务映射到可以找到那些服务的地址的信息来更新数据存储设备126(假定该信息已经被SMC 128改变)。SMC 128还可以存储涉及新的服务到部件分配的状态信息。
为了配置一个或多个加速部件以执行功能(如果尚未这样配置),SMC 128可以调用配置部件1014。在一个实现中,配置部件1014通过向加速部件发送配置流来配置加速部件。配置流指定要被“编程”到接收方加速部件中的逻辑。配置部件1014可以使用不同的策略来配置加速部件,其中的几个在下面阐述。
故障监测部件1016确定加速部件是否已经发生故障。SMC 128可以通过将故障加速部件替换为备用加速部件来对故障通知进行响应。
B.1SMC在请求驱动模式下的操作
图11提供在应用于处理在主机部件上运行的租户功能实例的请求这一任务时SMC128的一种操作方式的概述。在所示场景中,假定主机部件1102实现多个租户功能实例(T1,T2,...,Tn)。每个租户功能实例可以对应于至少部分在主机部件1102上,例如在使用(除了其他可能的主机部件之外的)主机部件1102的物理资源运行的虚拟机中执行的软件程序。还假定一个租户功能实例通过生成对于特定服务的请求来启动图11所示的事务。例如,租户功能可以执行照片编辑功能,并且可以作为其整体操作的一部分来调用压缩服务。或者租户功能可以执行搜索算法,并且可以作为其整体操作的一部分来调用排序服务。
在操作(1)中,本地主机部件1102可以向SMC 128发送其对于服务的请求。在操作(2)中,除其他分析之外,SMC 128可以确定用于实现服务的至少一个适当的部件。在这种情况下,假定SMC 128确定远程加速部件1104是用于实现服务的最适当的部件。SMC 128可以从位置确定部件124获得该加速部件1104的地址。在操作(3)中,SMC 128可以将其答案传送给本地主机部件1102,例如以与服务相关联的地址的形式。在操作(4)中,本地主机部件1102可以经由其本地加速部件1106来调用远程加速部件1104。处理租户功能的请求的其他方式是可能的。例如,代替或除了本地主机部件102之外,本地加速部件1106可以查询SMC128。
路径1108表示其中代表性的加速部件1110(和/或其相关联的本地主机部件)向SMC 128传送利用信息的示例。利用信息可以标识加速部件1110可用还是不可用于使用,全部还是部分。利用信息还可以可选地还指定加速部件1110拥有的可用于使用的处理资源的类型。如上所述,还可以选择利用信息来有目的地防止SMC 128稍后利用加速部件1110的资源,例如通过整体或部分地指示资源不可用。
尽管未示出,但是任何加速部件也可以向SMC 128做出对于特定资源的定向请求。例如,主机部件1102可以具体请求使用其本地加速部件1106作为保留和专用资源。如上所述,SMC 128可以在确定是否准许这样的请求时使用不同的环境特定的规则。
此外,尽管未示出,但是除了主机部件之外的其他部件可以做出请求。例如,硬件加速部件可以运行发出对于自己、(一个或多个)另外的硬件加速部件、(一个或多个)主机部件等或任何其组合可以满足的服务的请求的租户功能实例。
图12到图15示出了用于处理由驻留在主机部件上的租户功能做出的对于服务的请求的不同的相应选项。从图12开始,假定本地主机部件1202包括至少两个租户功能实例T1(1204)和T2(1206),两者都同时运行(但是实际上,本地主机部件1202可以托管更多的租户功能实例)。第一租户功能实例T1需要加速服务A1来执行其操作,而第二租户功能实例T2需要加速服务A2来执行其操作。
还假定本地加速部件1208例如经由PCIe本地链路等耦合到本地主机部件1202。在当前时刻,本地加速部件1208托管用于执行加速服务A1的A1逻辑1210和用于执行加速服务A2的A2逻辑1212。
根据一个管理决定,SMC 128将T1分配给A1逻辑1210,并且将T2分配给A2逻辑1212。然而,SMC 128的这个决定不是固定的规则;如将要描述的,SMC 128可以基于多个因素做出其决定,其中一些可以反映相冲突的考虑。因此,基于其他因素(在此未描述),SMC128可以选择以与图12所示的不同的方式将工作指配给加速逻辑。
在图13的场景中,主机部件1302具有与上述相同的服务需求的相同的租户功能实例(1304,1306)。但是在这种情况下,本地加速部件1308仅包括用于执行服务A1的A1逻辑1310。也就是说,它不再托管用于执行服务A2的A2逻辑。
响应于上述情况,SMC 128可以选择将T1指配给加速部件1308的A1逻辑1310。然后,SMC 128可以将T2指配给远程加速部件1314的A2逻辑1312,其已经被配置为执行该服务。再次,所示的指配在此是以说明而非限制的精神来阐述的;SMC 128可以基于输入考虑的另一组合来选择不同的分配。在一个实现中,本地主机部件1302和远程加速部件1314可以可选地压缩它们向彼此发送的信息,例如以减少带宽的消耗。
注意,主机部件1302经由本地加速部件1308访问A2逻辑1312。但是在另一种情况(未示出)下,主机部件1302可以经由与加速部件1314相关联的本地主机部件(未示出)访问A2逻辑1312。
图14示出了其中主机部件1402具有与上述相同的服务需求的相同的租户功能实例(1404,1406)的另一场景。在这种情况下,本地加速部件1408包括用于执行服务A1的A1逻辑1410和用于执行服务A3的A3逻辑1412。还假定数据存储设备1002中的可用性信息指示A3逻辑1412当前未被任何租户功能实例使用。响应于上述情况,SMC 128可以使用(图10的)配置部件1014来重新配置加速部件1408,使得它包括A2逻辑1414而不是A3逻辑1412(如图14的底部所示)。然后,SMC 128可以将T2指配给A2逻辑1414。虽然未示出,但是SMC 128可以备选地或另外决定重新配置任何远程加速部件来执行A2服务。
通常,SMC 128可以完全或部分方式执行配置,以满足租户功能实例的任何请求。SMC通过重新配置由加速部件提供的所有应用逻辑来执行整个配置。SMC 128可以通过重新配置由加速部件提供的应用逻辑的一部分(例如,一个或多个瓦片)来执行部分配置,在重新配置期间保持其他部分(例如,一个或多个其他瓦片)完整且可操作。对于以下描述SMC128在其后台操作模式下的操作也是如此。另外注意,附加因素可以在确定A3逻辑1412是否是重新配置的有效候选(诸如服务是否被认为被保留,无论是否存在该服务的未决请求等)时发挥作用。
图15呈现了其中主机部件1502具有与上述相同的服务需求的相同的租户功能实例(1504,1506)的另一场景。在这种情况下,本地加速部件1508仅包括用于执行服务A1的A1逻辑1510。响应于上述场景,SMC 128可以向A1逻辑1510指配T1。此外,假定SMC 128确定任何加速部件执行A2服务是不可行的。作为响应,如果实际上本地A2软件逻辑1512在主机部件1502处可用,则SMC 128可以指令本地主机部件1502将T2指配给本地A2软件逻辑1512。SMC 128可以基于各种理由做出图15的决定。例如,SMC 128可以得出结论,硬件加速是不可能的,因为对于该服务当前不存在配置映像。或者可以存在配置映像,但是SMC 128得出结论,任何加速设备上的容量都不足以加载和/或运行这样的配置。
最后,以上示例在主机部件上运行的租户功能实例的上下文中描述。但是如上所述,租户功能实例可以更一般地对应于服务请求方,并且那些服务请求方可以在任何部件(包括加速部件)上运行。因此,例如,在加速部件上运行的请求方可以生成对于要由一个或多个其他加速部件和/或由其本身和/或由一个或多个主机部件执行的服务的请求。SMC102可以上述任何方式来处理请求方的请求。
B.2SMC在后台模式下的操作
图16提供了当在后台模式下操作时SMC 128的一种操作方式的概述。在操作(1)中,SMC 128可以接收启动SMC 128的操作的某种类型的触发事件。例如,触发事件可以对应于影响服务的需求的变化等。在操作(2)中,响应于触发事件,SMC 128基于一个或多个映射考虑和数据存储设备1002中的可用性信息来确定一个或多个服务到加速部件的分配,例如通过将服务分配给一个或多个更多可用加速部件的集合。在操作(3)中,SMC 128执行其分配决定。作为这个过程的部分,SMC 128可以调用配置部件1014来配置已经被分配为执行服务的加速部件,假定这些部件尚未被配置为执行服务。SMC 128还更新数据存储设备126中的服务位置信息,并且如果合适则更新数据存储设备1002中的可用性信息。
在图16的特定示例中,SMC 102分配第一组加速部件1602以执行第一服务(“服务y”),并且分配第二组加速部件1604以执行第二服务(“服务z”)。在实际实践中,所分配的一组加速部件可以具有任意数目的成员,并且这些成员可以任何方式跨硬件加速平面106而分布。然而,SMC 128可以尝试以特定方式对与服务相关联的加速部件进行分组以实现令人满意的带宽和延迟性能(除了其他因素之外),如将在下面更详细地描述的。SMC 128还可以在分配与单个多部件服务相关联的加速部件时应用其他分析。
SMC 128还可以在后台模式下操作,以将实现特定服务的一个或多个加速部件分配给至少一个租户功能实例,而不必要求租户功能每次都做出对于该特定服务的请求。例如,假定租户功能实例定期使用对应于图16中的“服务z”的压缩功能。SMC 128可以主动地将一个或多个专用加速部件1604分配给至少该租户功能实例。当租户功能需要使用服务时,它可以从与已经被分配给它的加速部件1604相关联的可用地址池中汲取。关于一组租户功能实例(而不是单个实例),可以执行相同的专用映射操作。
B.3管理功能的物理实现
图17示出了图10的管理功能122的第一物理实现。在这种情况下,管理功能122被提供在单个全局管理部件(MG)1702上或多个全局管理部件(1702,...,1704)上。多个全局管理部件(1702,...,1704)(如果使用)可以提供冗余逻辑和信息以实现期望的负载平衡和故障管理性能。在一种情况下,每个全局管理部件可以在可以对应于主机部件之一的计算机服务器设备上或者在专用管理计算设备上实现。在操作中,任何单独的主机部件(S)或加速部件(H)可以经由图1所示的公共网络120与全局管理部件交互。
图18示出了图10的管理功能122的第二物理实现。在这种情况下,每个服务器单元部件(诸如代表性的服务器单元部件1802)提供至少一个本地管理部件(ML)1804。例如,本地主机部件1806可以实现本地管理部件1804(例如,作为其管理者功能的一部分),或者本地加速部件1808可以实现本地管理部件1804,或者服务器单元部件1802内的某个其他部件可以实现本地管理部件1804(或其某种组合)。数据处理系统102还包括一个或多个全局管理部件(1810,...,1812)。每个全局管理部件可以上面关于图17描述的方式来提供冗余逻辑和信息。如上所述,管理功能122共同地呈现数据处理系统102中的所有本地和全局管理部件。
图18的架构可以例如以下列方式来实现SMC 128的请求驱动的方面。本地管理部件1804可以首先确定本地加速部件1808是否可以执行租户功能请求的服务。在本地加速部件1808不能执行该任务的情况下,全局管理部件(MG)可以执行其他决定,诸如标识用于执行服务的远程加速部件。另一方面,在图17的架构中,单个全局管理部件可以执行与将请求映射到加速部件有关的所有决定。
此外,本地管理部件1804可以在诸如周期性基础和/或事件驱动基础(例如,响应于利用率的改变)等任何基础上向全局管理部件发送利用信息。全局管理部件可以使用利用信息来更新其在数据存储设备1002中的可用性信息的主记录。
图19示出了图10的管理功能122的第三物理实现。在这种情况下,每个服务器单元部件存储其自己的专用本地管理部件(ML)(其可以由作为其管理者功能的一部分的本地主机部件、本地加速部件、某个其他本地部件或其某种组合实现)。例如,服务器单元部件1902与本地主机部件1906和本地加速部件1908一起提供本地管理部件1904。同样地,服务器单元部件1910与本地主机部件1914和本地加速部件1916一起提供本地管理部件1912。本地管理部件的每个实例存储关于相同部件的其他实例的冗余逻辑和信息。已知的分布式系统工具可以用于确保这个部件的所有分布式版本都包含相同的逻辑和信息,诸如由Marryand的Forest Hill的Apache Software Foundation提供的ZOOKEEPER工具。(除此之外,注意,可以使用相同的技术来维护本小节中描述的其他示例中的冗余逻辑和信息。)管理功能122集中呈现数据处理系统102中的所有本地管理部件,如上所述。也就是说,在这个实现中没有中央全局管理部件。
图20示出了图10的管理功能122的第四物理实现。在这种情况下,管理功能122实施个体管理部件的层级结构。例如,在一个仅代表性的结构中,每个服务器单元部件包括低级本地管理部件(ML3)(其可以由本地主机部件、本地加速部件、某个其他本地部件或其某种组合来实现)。例如,服务器单元部件2002与本地主机部件2006和本地加速部件2008一起提供低级本地管理部件2004。同样地,服务器单元部件2010与本地主机部件2014和加速部件2016一起提供低级本地管理部件2012。结构的下一管理层至少包括中级管理部件2018和中级管理部件2020。结构的顶层包括单个全局管理部件2022(或多个冗余的这样的全局管理部件)。因此,所示出的控制架构形成具有三个级别的结构,但是架构可以具有任何数目的级别。
在操作中,低级管理部件(2004,2012,...)处理直接影响与个体服务器单元部件相关联的资源的某些低级管理决定。中级管理部件(2018,2020)可以做出影响数据处理系统102的相关部分的决定,诸如个体机架或一组机架。顶级管理部件(2022)可以做出广泛地应用于整个数据处理系统102的全局决定。
B.4配置部件
图21到图24示出了与实现图10的配置部件1014的不同方式相对应的用于配置加速部件的不同的相应策略。从图21开始,全局管理部件2102能够访问提供一个或多个配置映像的数据存储设备2104。每个配置映像包含可以用于实现相应服务的逻辑。全局管理部件2102可以通过将配置流(对应于配置映像)转发到加速部件来配置加速部件。例如,在一种方法中,全局管理部件2102可以将配置流发送到与特定服务器单元部件2108相关联的本地管理部件2106。然后,本地管理部件2106可以基于接收到的配置流来协调本地加速部件2110的配置。备选地,代替或除了本地管理部件2106之外,本地主机部件2112可以执行上述操作。
图22示出了用于配置加速部件的另一策略。在这种情况下,全局管理部件2202向服务器单元部件2206的本地管理部件2204发送指令。作为响应,本地管理部件2204访问本地数据存储设备2208中的配置映像,并且然后使用它来配置本地加速部件2210。备选地,代替或除了本地管理部件2204之外,本地主机部件2212可以执行上述操作。
图23示出了用于配置本地加速部件2302的另一技术。在该方法中,假定加速部件2302包括应用逻辑2304,应用逻辑2304又由当前模型2306来管控(其中模型对应于以特定方式执行功能的逻辑)。还假定加速部件2302能够访问本地存储器2308。本地存储器2308存储与一个或多个其他模型(模型1,...,模型n)相关联的配置映像。在被触发时,本地模型加载部件2310可以将与当前模型2306相关联的配置和与本地存储器2308中的另一模型相关联的配置置换。模型加载部件2310可以由加速部件2302本身、本地主机部件、本地管理部件等、或其组合来实现。在一个实现中,图23所示的配置操作可以在比整个应用逻辑2304的整体重新配置更少的时间内执行,因为它引起替换由应用逻辑2304使用的某个逻辑,而不是以批量方式替换整个应用逻辑2304。
最后,图24示出了具有支持部分配置的应用逻辑2402的加速部件。管理功能122可以通过将应用1(2404)与应用2(2406)分开配置来利用该功能,反之亦然。
B.5SMC的说明性操作
图25提供了服务映射部件(SMC)128的一种操作方式的概述。如上所述,SMC 128可以在接收到一个或多个触发事件时执行其决定过程。在请求驱动模式下,触发事件可以对应于来自租户功能实例或者请求加速服务的某个其他实体的请求。在后台模式下,一种类型的触发事件对应于对于一个或多个服务的需求的变化。另一种后台模式触发事件对应于用于执行服务的加速资源的可用性的变化。另一种后台模式触发事件对应于引入和/或去除一个或多个服务。另一种后台模式触发事件可以对应于数据处理系统102的性能的变化,特别是在处理负载问题、带宽问题等方面。另外或备选地,SMC 128可以在后台模式下通过基于任何指定的频率周期性地分析数据处理中心的现行情况来操作。通过在响应于租户功能实例的个体请求时将其分配的一般后台相关影响考虑在内,SMC 128还可以上述方式将请求驱动分析与后台分析组合。
如上所述,SMC 128可以执行不同的分析阶段,诸如:(1)由状态确定逻辑1004执行的确定与服务到部件分配相关联的状态(例如,保留与非保留、专用与完全共享等);(2)由尺寸确定逻辑1006执行的确定要使用的加速部件的数目;(3)由类型确定逻辑1008执行的确定要使用的加速部件的类型;和/或(4)由放置确定逻辑1010执行的确定要在数据处理系统102内使用的个体加速部件,等。
为了便于说明,主要关于由放置确定逻辑1010执行的第四确定来说明SMC 102的操作。为了进一步简化说明,以下说明将首先在将单个服务分配给一个或多个加速部件的上下文中来阐述,其中多个消费方尚未争用相同的资源。
通常,在请求驱动模式下,SMC 128的放置确定逻辑1004可以通过关于其能够在哪里访问所请求的服务而对正进行请求的租户功能实例进行指令来满足请求。在这样做时,如果这些部件尚未被配置为执行服务,则SMC 128可以可选地调用配置部件1014以配置(一个或多个)加速部件来执行所请求的服务。备选地或另外,SMC 128可以在所标识的加速部件上向已经配置的服务指配请求。类似地,在后台模式下,SMC 128的放置确定逻辑1006可以通过调用配置部件1014以配置一个或多个加速部件来提供服务来满足对于数据处理系统102中的服务的总体需求,和/或从一个或多个已经配置的加速部件中汲取。
在调用后,SMC 128可以基于若干因素(下面称为“映射考虑”)来做出决定。SMC128可以从各种来源来获得与这些映射考虑有关的输入信息,诸如数据处理系统102内的主机部件和加速部件、提供关于性能参数值等的信息的外部实体(其可以经由诸如因特网等一个或多个网络连接被访问)等。
一些映射考虑例如通过强调分配决定满足由在本地主机部件上运行的租户功能实例生成的特定请求的程度,而关注点相对较窄。其他映射考虑例如通过强调分配决定整体上对于数据处理系统102将具有的影响而关注点更具全局性。其他映射考虑将特定和全局因素都考虑在内。以下说明标识出代表性的而非穷举性的映射考虑列表。
a.消费方的位置
一个映射考虑有关于已经请求所考虑的服务的实体的位置、或者将来可能消费该服务的实体的位置。例如,当在后台模式下执行分配时,SMC 128可以确定所考虑的服务是否仅具有少数主要消费方。如果是,则SMC 128可以尝试将一个或多个加速部件“贴近”那些消费方放置。更具体地,在一个非限制性情况下,SMC 128可以将服务加载到与定期请求服务的相应主机部件相关联的一个或多个本地加速部件上。另一方面,如果服务具有分散在数据处理系统102上的很多随机消费方,则SMC 128可以认为将服务放置在任何一个消费方附近的重要性较小。
b.当前映射考虑
另一映射考虑有关于什么服务当前被加载到硬件加速平面106中的加速部件上,例如,如在数据存储设备126中提供的当前分配信息中所反映的。例如,假定SMC 128寻求完成由与本地主机部件相关联的租户功能实例做出的对于服务的请求。当该本地加速部件已经被配置为执行该服务时,SMC 128可以有利于将所请求的服务分配给本地加速部件(其与本地主机部件相关联)。类似地,当在后台模式下操作以选择用于执行服务的保留的加速部件池时,SMC 128可以在加速部件已经被配置为执行该服务时,有利于将服务分配给该加速部件。这个因素也与下面描述的迁移成本考虑相关。
c.映像可用性考虑
另一相关考虑有关于是否存在所请求的服务的配置映像。并不是所有的服务都是用于硬件加速的良好候选,所以并非所有请求的软件服务都具有对应的配置映像。通过立即指令主机部件以软件来执行服务,SMC 128可以在请求驱动模式下利用该考虑,其中该服务不能以硬件来实现。
d.加速益处考虑
另一映射考虑有关于是否可以预期通过在加速硬件上部署服务而不是由主机部件以软件执行功能来实现性能提升。如果性能益处有可能可忽略,则SMC 128可以指令本地主机部件以软件来实现所请求的服务。在后台模式下,如果可以预期加速益处可忽略,则SMC 128可以拒绝创建专用于特定服务的加速部件池。
e.当前可用性考虑
另一映射考虑有关于所考虑的每个加速部件关于其处理所标识的服务的能力的可用容量(例如,如在提供可用性信息的数据存储设备1002中反映的)。如上所述,加速部件的可用性可以被指定为二进制是/否信息、百分位数信息等。加速部件的可用性还可以考虑对于加速部件等的未决请求,例如,其中加速部件被调度以在未来执行所标识的处理。SMC128可以利用这一考虑来确定将所考虑的给定加速部件配置为执行服务是否可行。
F.SLA考虑
另一映射考虑有关于与服务相关联的服务水平协定(SLA)。例如,与服务相关联的SLA可以指定一个或多个参数值,这些参数值反映服务将被递送给最终用户的所请求的速度,诸如通过指定将被允许的最坏情况的延迟性能、和/或其他最坏情况的性能参数值。SMC128可以选择一个或多个加速部件来满足服务的SLA要求,这可能需要选择一定数目的加速部件和/或选择某些类型的加速部件和/或选择那些加速部件的位置等。
g.需求类型考虑
另一映射考虑有关于与服务相关联的流量模式的性质。例如,一些服务的特征在于相对稳态的业务流。其他服务表现出高度“突发”的业务,这表示它们的业务经受巨大或可能不可预测的高峰。在一个非限制性策略中,SMC 128可以设法避免将单个突发服务专用于单个加速部件(或多个部件),因为突发服务通常可能无法有效地利用专用部件的资源(例如,由于利用不足)。相反,SMC 128可以选择将多个突发服务分配给加速部件池。这样的分配策略基于以下前提:与多个服务相关联的间歇性突发将不相关,并且可以合理地预测和考虑与这些突发服务中的若干突发服务相关联的平均需求,从而允许更有效地利用所分配的加速部件的资源。
h.历史需求考虑
另一映射考虑有关于与服务相关联的历史需求。在后台模式下,SMC 128将尝试分配足够数目的加速部件来满足对于服务的预期需求,其可以在一天、一周等内发生变化。SMC 128也可以考虑到服务的需求变化的方式,例如,通常是突发性还是相对稳定(如上所述),不可预测的还是可预测的,趋势向上还是趋势向下等。
当处理特定请求时,SMC 128可以不同的方式考虑需求信息。在一种情况下,当决定是否使用该加速部件来满足对于服务的当前请求时,SMC 128可以考虑与特定候选加速部件相关联的历史需求信息。例如,即将过载的加速部件可能不是能够满足请求的良好候选。SMC 128还可以利用这样的已知的需求模式来确定与当前请求相关联的可能的资源需求(其中这些需求未预先指定),并且继而将该信息用作确定如何最有效地处理请求的另一因素。
i.线路速率服务考虑
另一映射考虑有关于所考虑的服务是否为线路速率服务。线路速率服务是对以指定的速率在链路上(或通过某个其他分析点)流动的信息执行的服务,优选地没有延迟该信息的传输。SMC 128可以选择将线路速率服务靠近其相应的消费方放置,以确保满足与这些服务相关联的增高的处理需求。例如,当该服务远离线路服务的消费方时,例如由于与远程加速部件的接触所引起的延迟和/或由于与远程加速部件的交互导致的带宽过载等,可能致使线路速率服务可能不可操作。
j.负载平衡考虑
另一映射考虑涉及负载平衡。当处理对于服务的特定请求时,SMC 128将寻求以不会使数据处理系统102中的任何加速部件(和/或其他处理部件)负担过重的方式来向加速部件分配请求。这可以通过使用任何负载平衡策略将请求分散到提供服务的多个加速部件上来实现。类似地,当执行更一般的后台分配时,SMC 128将寻求以如下方式来在加速部件上分发服务:该方式使得没有一个加速部件(和/或与数据处理系统102相关联的其他计算资源)负担过重。
k.带宽考虑
另一映射考虑与数据处理系统102中的带宽有感。当处理对于服务的特定请求时,SMC 128将寻求以如下方式来将请求指配给加速部件:该方式不会使得数据处理系统102中的链路负担过重。类似地,当执行更一般的后台分配时,SMC 128将寻求以如下方式来分发服务:该方式不会使得数据处理系统102中的链路负担过重。
l.延迟考虑
另一映射考虑与访问服务时发生的延迟有关。SMC 128将寻求以如下方式来提供服务:该方式使得访问服务所涉及的延迟在可接受的范围内。如上所述,如果服务距离服务的预期消费方太“远”,则实际上可能致使线路速率服务可能不可操作。一般而言,注意,在很多情况下,SMC 128可以通过将服务放置在与其预期的消费方相同的机架上并且优选地在与预期的消费方相同的服务器单元部件上来满足若干分配约束(诸如延迟、带宽等)。
m.CPU性能考虑
另一映射考虑有关于被放置在软件平面104中的主机部件上的负载。当处理特定请求时,SMC 128可以避免在本地主机部件上以软件来执行所请求的服务,如果这样做将使那个部件的CPU负担过重的话。类似地,当在后台模式下操作时,SMC 128可以尝试标识造成CPU过载的任何软件相关服务,并且然后将该处理中的一些卸载到一个或多个加速部件。
n.迁移成本考虑
另一映射考虑有关于在以所考虑的特定方式重新配置硬件加速平面106时将引入的成本。这里,SMC 128将生成对执行重新配置所需要的时间量和/或其他资源的评估(例如,基于已知和预存储的配置数据)。基于该知识,SMC 128然后将确定重新配置过程对于由数据处理系统102执行的其他功能将产生的影响。例如,当预计重新配置过程干扰由数据处理系统102执行的关键过程时,SMC 128可以禁止重新配置过程。
o.功率和热考虑
另一映射考虑与功率和/或热效应有关。SMC 128可以查阅参考表等来确定当在一个或多个特定候选加速部件上运行服务时将消耗的功率量和将生成的热量。SMC 128可以使用该信息来选择满足适当功率和/或热约束的分配选项。SMC 128还可以在做出其决定时查阅实时温度和功率测量。例如,如果在单个机架上执行服务将超过该机架的热极限,则SMC 128可以寻求在多个机架上分发服务。
p.金融考虑
另一映射考虑有关于金融考虑。在某些情况下,服务提供已知的金融益处(例如,如用广告收入、产品销售收入等度量的)。此外,在一个或多个加速部件上运行的服务可以具有已知的成本,诸如设备本身(或其用于运行服务的部分设备)的成本、向部件供电的成本、利用计算资源的成本(例如,由数据中心管理员评估)、放弃一个或多个其他服务的机会成本等。SMC 128可以计算不同分配选项的金融益处和成本,并且在确定如何以及向何处分配服务时使用这个信息。在一种场景下,SMC 128可以利用这个考虑来最大化由数据中心提供的总体利润。
q.安全考虑
另一映射考虑有关于将服务分配给一个或多个所提出的加速部件的安全隐患。例如,安全考虑可以禁止将某一类型的两个服务放置在相同的加速部件上。备选地或另外,安全考虑可以禁止将服务相对于其消费方(例如,相对于消费服务的本地主机部件)放置在远程加速部件上。当确定如何在硬件加速平面106中分配服务时,SMC 128可以考虑这些因素。
r.协同定位考虑
另一考虑有关于两个或更多服务通常在同一计算设备或其他平台上一起被托管或使用的方式。例如,考虑假定环境,其中很多用户结合加密服务来使用文档压缩服务,例如,通过首先使用文档压缩服务来压缩文档,并且然后使用加密服务来加密已压缩文档。在这样的协同定位信息可用的情况下,SMC 128可以将共同分组的服务分配给相同的加速部件或者相同的机架等。这样做可以是有利的,例如,以便于在硬件加速平面106中的对服务的管理。可以通过检查数据处理系统102内的实际使用模式和/或通过查阅关于使用习惯的更一般的统计信息来获得协同定位信息。
s.接收到的请求考虑
另一考虑有关于实体(诸如本地加速部件、本地主机部件、本地管理部件、租户功能实例等)是否已经做出对于特定种类的分配的请求。例如,租户功能实例可以要求SMC128授权其对在其本地加速部件上运行的服务的专用使用。SMC 128可以将这个请求与上述所有其他因素进行平衡。
以上考虑通过举例而不是限制的方式来引用。其他实现可以考虑附加考虑,和/或可以省略上述一个或多个考虑。
注意,以上描述有时假定SMC 128使用单个加速部件来实现服务的整个实例。然而,在多部件服务中,加速部件的集合实现单个服务。也就是说,集合中的每个加速部件实现多部件服务的一部分。在将多部件服务分配给加速部件时,SMC 128可以应用特殊考虑。
例如,SMC 128可以考虑多部件的加速部件在数据处理系统102中分布的方式,因为该因素可能影响多部件服务(和数据处理系统102作为整体)在延迟、带宽、负载平衡等方面的性能。例如,SMC 128可以选择将与多部件服务相关联的加速部件的集合分配给单个机架或机架组,以减少延迟和带宽瓶颈。通过这样做,例如,SMC 128可以减少交换结构的较高节点中的带宽。
还注意,以上描述以整个服务的分配的上下文为框架。但是,代替或除了向单个处理元件分配整个服务,SMC 128还可以动态方式向各种硬件和/或软件处理元件分配和重新分配任何尺寸的任何服务的分段。
SMC 128可以使用不同的算法来处理上述所有映射考虑以得出最终结论。在一种技术中,一旦被调用,SMC 128可以应用基于规则的过程来确定如何在可用加速部件池之间分配服务。在一个实现中,规则可以被构造为IF-THEN决定的图。通常,基于与这些系统相关联的环境特定的考虑,不同的规则可以适用于不同的数据处理系统。
为了引用一个代表性情况,SMC 128可以通过首先确定所请求的服务是否已经存在于与本地主机部件相关联的本地加速部件上来处理由本地主机部件上运行的租户功能实例进行的请求。如果是,则SMC 128将确定服务是线路速率服务还是具有相对较高处理需求的其他服务。如果是,则SMC 128将使用本地加速部件来完成租户功能的请求,除非存在使该分配不适当安全约束。另一方面,如果服务是不影响租户功能操作的关键性能指标的相对非关键的任务,则SMC128可以选择使用远程加速部件来完成租户功能的请求,从而使本地加速部件空闲以处理更紧急的工作。当在后台模式下为加速部件分配服务时,SMC 128可以执行类似的多因素分析。
在其他算法的方式中,在遇到触发事件后,SMC 128可以枚举当前时间用于服务的可能的分配选项。每个选项反映服务到数据处理系统102内的特定可行的加速部件集合(其中该集合包括一个或多个加速部件)的分配。然后,SMC 128可以向每个选项分配反映上述考虑的加权组合的得分。与这些得分相关联的权重可以凭经验针对特定处理环境来生成。然后,SMC 128可以选择并且应用具有最高(最有利)得分的分配选项。
在其他方式中,SMC 128可以采用由机器学习过程产生的模型来做出分配决定。基于反映管理功能122的先前评估的性能的训练集合来训练该模型。也就是说,训练集合可以指定在数据处理系统102中遇到的不同的映射考虑、以及被认为是(如由人类评估者和/或其他标记技术评估的)期望的和不期望的所得到的分配决定。所学习的模型反映输入映射考虑与期望的(和不期望的)分配决定之间的关系。
在其他方式中,SMC 128可以将分配任务视为在受制于指定约束的情况下在搜索空间内寻找最优解的问题。在当前情况下,约束对应于上述映射考虑、或其某个子集。SMC128可以使用各种技术来快速地搜索空间(诸如最佳拟合搜索技术)以寻找最优解或至少令人满意的解,即使不是最优的。
还注意,与SMC 128相关联的处理可以与任何现有的调度、资源分配和/或预测算法“叠置”或以其他方式集成。例如,假定本地主机部件具有已经发出多个相应服务请求的多个租户功能实例。可以使用任何传统的资源算法来确定用于处理请求的顺序。例如,传统的资源算法可以基于先进先出规则、任何类型的公平演算、任何基于优先级的请求排序(例如,其中某些租户功能实例可能由于其任务的紧迫性、它们的一般的特权状态和/或其他因素而优先于其他实例)等来处理请求。一旦传统的资源算法选择了要处理的请求,则SMC128然后可以应用上述考虑来确定用于处理请求的(多个)适当资源。当更一般地考虑在其后台操作模式下的多个服务之间的竞争需求时,SMC 128可以执行类似的分配功能。
在另一种情况下,SMC 128可以通过(例如,基于历史需求模式)对何时需要服务进行预计来将预测分析集成到上述逻辑中。然后,SMC 128可以在适当的时间自动且主动地将这些服务加载到加速平面106中。
在任何上述场景下,SMC 128还可以基于在任何给定时间待决(和/或预期)的请求的整体来做出分配决定(这与孤立地考虑每个请求相反)。例如,假定SMC 128观察到存在对于特定服务的很多待决请求。作为响应,SMC 128可以保留加速部件池来处理这些请求。在另一种情况下,SMC 128可以在做出其分配决定时考虑与待决请求相关联的消费方的相应位置,例如通过促进选择在很多未决消费方附近的部件。当更普遍地考虑对于不同服务的主要需求时,SMC 128可以在后台模式下执行类似的分析
最后,以上描述以放置确定逻辑1008的说明性上下文为框架,放置确定逻辑1008确定所分配的部件在数据处理系统102内的放置。与上述类似的分析可以应用于SMC 102的操作的其他方面。例如,状态确定逻辑1004可以得出结论,基于以下方式将服务到部件分配标记为保留(相对于非保留)是恰当的:(a)确定存在对于服务的显著的历史需求;和/或(b)确定该服务相对重要(例如,由于金融考虑和/或其他因素);和/或(c)确定消费方本身出于任何原因是重要的(例如,因为它们出于任何环境特定的原因而在数据处理系统102中具有特权);和/或(d)确定服务施加相对严格的要求(由于SLA考虑、线路速率考虑等),等等。
状态确定逻辑1004还可以基于上述相同的分析来确定服务是否应该专用于一个或多个特定消费方(而不是完全共享),但是以特定消费方的上下文为框架。例如,状态确定逻辑1004可以基于确定该特定消费方在短时间段内经常请求服务来决定授权该特定消费方对于在加速部件上运行的服务的专用访问。
前进到图26,该图对应于过程2602,过程2602示出了图10的SMC 128在请求驱动模式下的一种操作方式的概述,而不涉及用于实现这个部件的控制架构并且特别地涉及放置确定逻辑1010的操作。在框2604,SMC 128确定其是否已经从在本地主机部件(或更一般地,以任何方式实现的任何第一本地部件)上运行的租户功能实例接收到对于服务的请求。在框2606,SMC 128确定是否适合使用本地加速部件来执行所请求的服务。如果是,则在框2608,SMC 128指令本地主机部件使用本地加速部件来执行服务。在框2610,SMC 128确定是否适合使用一个或多个远程加速部件来执行所请求的服务。如果是,则在框2612,SMC 128指令本地主机部件使用(多个)远程加速部件来执行所请求的服务。主机部件可以经由其本地加速部件以上述方式来访问这些远程加速部件。在框2614,SMC 128指令本地主机部件自己以软件来执行所请求的服务,前提是上述选项都不适合。
图27是示出实现图27的过程的一种方式的过程2702。特别地,过程2702从与全局管理部件(MG)交互的本地管理部件(ML)的角度来表达,尽管其他架构也可以用于执行图27所示的决定过程。
在框2704,本地管理部件确定是否已经从在本地主机部件上运行的租户功能实例接收到对于服务的请求。在框2706,本地管理部件确定是否适合使用本地加速部件执行所请求的服务。如果是,则在框2708,本地管理部件指令本地加速部件使用本地加速部件来执行服务。备选地,在框2710,本地管理部件联系全局管理部件以确定远程加速部件执行所请求的服务是否适合。如果是,则全局管理部件返回与该服务相关联的地址。在框2712,本地管理部件确定地址是否已经被标识。如果是,则在框2714,本地管理部件指令本地主机部件使用已经提供的地址来联系所标识的远程加速部件。如果没有提供地址,则在框2716,本地管理部件(或全局管理部件)指令本地主机部件自己以软件来执行服务。
尽管图26和27中未示出,但是每个加速部件(或与其相关联的本地管理部件)可以在任何基础上(例如,周期性地和/或在事件驱动的基础上)向管理功能122(例如,向全局管理部件)报告其可用容量。可用容量可以任何方式来指定,诸如指示加速部件是否可用的二进制信息、或者反映加速部件的总的可用处理资源的一部分的百分比信息。在其他情况下,加速部件可以按照逐服务的方式来报告其容量。此外,本地实体(诸如租户功能实例)可以具体地请求特定种类的分配,例如通过询问在其本地加速部件上运行服务。
图28到图30是示出图10的SMC 128的操作的决定和管理方面的过程(2802,3002),例如从全局管理部件(MG)或其他实现的角度来看。
在图28的框2804,SMC 102确定是否已经接收到请求(例如,从本地管理部件),该请求询问可以找到所标识的服务的地址。换言之,框2804确定当SMC 128在其请求驱动模式下操作时,何时接收到触发SMC 128的操作的事件。此外,在一个实现中,框2804补充图27的框2710,在框2804中,本地管理部件对全局管理部件做出这样的查询。
在框2806,SMC 102确定其是否已经接收到通常需要在硬件加速平面106中重新分配一个或多个服务的触发事件。换言之,框2806询问当SMC 128在其后台模式中操作时是否已经发生触发SMC 128操作的事件。但是如上所述,框2804中的请求驱动调用也可能引起后台分析,以作为其部件。
在框2808,SMC 128直接或间接地响应于已经接收到任何触发事件来确定一个或多个加速指配。SMC 128可以间接地对触发事件进行响应,例如通过缓冲它并且在稍后的时间对其执行动作。在框2810,如果实际上分配引起这样的配置,则SMC 128可以可选地调用配置部件1014来配置一个或多个加速部件。在框2812,SMC 128将信息和/或指令传送到将具有执行分配的效果的适当的接收者实体。例如,SMC 128可以将地址传送到本地主机部件,这允许其访问远程加速部件。
图29详细说明了框2808中可能涉及的分析的不同部分。在框2902,SMC 102可以确定其分配的状态(例如,保留与非保留、专用与完全共享等)。在框2904,SMC 102可以确定要分配以满足触发事件的部件的数目(其中触发事件对应于特定请求或需求的一般变化等)。虽然未示出,但是SMC 102还可以确定要选择的加速部件的类型。在框2906,SMC 102确定数据处理系统102内的加速部件的放置,例如通过选择数据处理系统102内的特定加速部件。
在图30的框3004,SMC 128确定是否已经接收到与至少一个加速部件在数据处理系统102中的使用有关的更新。例如,框3004可能引起确定是否已经从加速部件(或通过本地管理部件)接收到利用信息,利用信息以上述方式报告加速部件的当前备用容量。在框3006,SMC 128确定其自己是否刚刚发出了影响一个或多个加速部件的分配决定。例如,在框3006,SMC 128可以已经做出一个或多个服务到部件分配,并且还可以进一步定义这些相应分配的状态(例如,保留与非保留、专用与完全共享等)。在框3008,SMC 128更新资源利用信息以反映框3004和3006的事件。例如,SMC 128可以更新存储在图10的数据存储设备1002中的可用性信息。
C.硬件加速部件的说明性实现
图31示出了实现图1的数据处理系统中的加速部件3102的一种方式,其可以在物理上实现为FPGA器件。注意,下面给出的细节是以说明而非限制的精神来阐述的;其他数据处理系统可以使用具有与图31所示相比以一种或多种方式变化的架构的加速部件。此外,其他数据处理系统可以采用包括具有不同类型的加速部件的异构设计。
从高级角度来看,加速部件3102可以被实现为具有不同功能层的层级结构。在最低级别,加速部件3102提供“外壳”,其提供跨大多数应用场景通常保持相同的基本接口相关部件。位于外壳内部的核心部件3104可以包括“内壳”和应用逻辑3106。内壳对应于核心部件3104中除了应用逻辑3106之外的所有资源,并且表示在某个应用场景集合内保持相同的第二级别资源。应用逻辑3106本身表示最容易受到改变的最高级别的资源。但是注意,加速部件3102的任何部件在技术上可以重新配置。
在操作中,应用逻辑3106以与软件实现的应用与其底层操作系统资源交互的方式类似的方式来与外壳资源和内壳资源交互。从应用开发的角度来看,使用公共的外壳资源和内壳资源可以使开发人员不必为他或她创建的每个应用重新创建这些公共部件。这种策略还降低了开发人员可能会以在整个数据处理系统102内导致问题的方式改变核心内外壳功能的风险。
首先参考外壳,加速部件3102包括用于将加速部件3102耦合到网络接口控制器(经由NIC接口3110)和本地架顶式交换机(经由TOR接口3112)的桥接器3108。桥接器3108支持两种模式。在第一模式下,桥接器3108提供允许来自NIC或TOR的业务流入加速部件3102并且允许来自加速部件3102的业务流出到NIC或TOR的数据路径。加速部件3102可以对其“拦截”的业务执行任何处理,诸如压缩、加密等。在第二模式下,桥接器3108支持允许业务在NIC与TOR之间流动而不会由加速部件3102进一步处理的数据路径。在内部,桥接器可以由缓冲所接收的分组的各种FIFO(3114,3116)、以及将分组路由到其期望的目的地的各种选择器和仲裁逻辑组成。旁路控制部件3118控制桥接器3108在第一模式还是第二模式下操作。
存储器控制器3120管控加速部件3102与本地存储器3122(诸如DRAM存储器)之间的交互。存储器控制器3120可以执行纠错以作为其服务的一部分。
主机接口3124提供使得加速部件能够与本地主机部件(图31中未示出)交互的功能。在一个实现中,主机接口3124可以结合直接存储器访问(DMA)使用外围部件快速互连(PCIe)来与本地主机部件交换信息。
最后,壳可以包括各种其他特征3126,诸如时钟信号发生器、状态LED、纠错功能等。
在一个实现中,内壳可以包括用于在加速部件3102的各个内部部件之间以及在加速部件3102与外部实体之间(经由传输部件3130)路由消息的路由器3128。每个这样的端点与相应的端口相关联。例如,路由器3128耦合到存储器控制器3120、主机接口1120、应用逻辑3106和传输部件3130。
传输部件3130对分组进行公式化以用于传输到远程实体(诸如远程加速部件),并且从远程加速部件(诸如远程加速部件)接收分组。
3端口交换机3132在被激活时通过在NIC与TOR之间以及在NIC或TOR和与加速部件3102本身相关联的本地端口之间路由分组来接管桥接器3108的功能。
最后,可选的诊断记录器3134将与路由器3128、传输部件3130和3端口交换机3132执行的操作有关的事务信息存储在循环缓冲器中。例如,事务信息可以包括关于分组的来源和目的地IP地址的数据、主机特定的数据、时间戳等。技术人员可以研究事务信息的日志以尝试诊断加速部件3102中的故障或次优性能的原因。
图32示出了包括单独的可配置域(3204,3206,...)的加速部件3202。配置部件(例如,图10的配置部件1014)可以配置每个可配置域而不影响其他可配置域。因此,配置部件1014可以配置一个或多个可配置域,而其他可配置域正在基于它们各自的配置执行操作,这些配置不受干扰。
在一些实现中,图1的数据处理系统102可以动态地重新配置其加速部件以解决在B部分中描述的任何映射考虑。该重新配置可以在部分和/或全服务的基础上进行,并且可以在周期性和/或事件驱动的基础上进行。实际上,在一些情况下,数据处理系统102似乎可以通过重新配置其加速逻辑来连续地适应数据处理系统102中的变化的条件。
C.1本地链路
图33示出了本地主机部件3302可以经由图31所示的主机接口3124向其本地加速部件3304转发信息(例如,结合DMA存储器传输使用PCIe)的功能。在一个非限制性协议中,在操作(1)中,主机逻辑3306将要处理的数据放置到与主机逻辑3306相关联的主存储器中的内核固定输入缓冲器3308中。在操作(2)中,主机逻辑3306指令加速部件3304检索数据并且开始处理它。主机逻辑的线程然后被置于睡眠状态,直到其从加速部件3304接收到通知事件,或者它继续异步地处理其他数据。在操作(3)中,加速部件3304从主机逻辑的存储器传送数据,并且将其放在加速部件输入缓冲器3310中。
在操作(4)和(5)中,应用逻辑3312从输入缓冲器3310获取数据,处理它以生成输出结果,并且将输出结果放置在输出缓冲器3314中。在操作(6)中,加速部件3304将输出缓冲器3314的内容复制到主机逻辑的存储器中的输出缓冲器中。在操作(7)中,加速部件通知主机逻辑3306该数据准备好被其获取。在操作(8)中,主机逻辑线程唤醒并且消耗输出缓冲器3316中的数据。然后,主机逻辑3306可以丢弃输出缓冲器3316的内容,这使得加速部件3304能够在下一事务中重用它。
C.2路由器
图34示出了图31中介绍的路由器3128的一个实现。路由器包括用于从相应端口接收消息的任何数目的输入单元(这里为4个,3402、3404、3406、3408)和用于将消息转发到相应端口的输出单元(这里为4个,3410、3412、3414、3414)。如上所述,与端口相关联的端点包括存储器控制器3120、主机接口3124、应用逻辑3106和传输部件3130。交叉开关部件3418基于与消息相关联的地址信息来将消息从输入端口转发到输出端口。更具体地,消息由多个“飞跃(flit)”组成,并且路由器3128以逐个飞跃flit的方式发送消息。
在一个非限制性实现中,路由器3128支持多个虚拟信道(诸如8个),用于在同一物理链路上传输不同类别的业务。也就是说,路由器3128可以为其中由应用逻辑3106实现多个服务的那些场景支持多个业务类别,并且那些业务需要在分离的业务类别上传送。
路由器3128可以使用基于信用的流技术来管控对路由器的资源(例如,其可用的缓冲器空间)的访问。在该技术中,输入单元(3402-3408)向上游实体提供与其缓冲器中可用的flit的确切数目相对应的信用。信用授权上游实体将其数据传输到输入单元(3402-3408)。更具体地,在一个实现中,路由器3128支持可以在多个虚拟信道之间共享的“弹性”输入缓冲器。输出单元(3410-3416)负责跟踪其下游接收器中的可用信用,并且向正在请求向给定输出端口发送flit的任何输入单元(3402-3408)提供授权。
C.3传输部件
图35示出了在图31中介绍的传输部件3130的一个实现。传输部件3130可以提供寄存器接口来在节点之间建立连接。也就是说,每个这样的连接是单向的,并且将源部件上的发送队列链接到目的地部件上的接收队列。软件过程可以通过在传输部件3130可以传输或接收数据之前静态地分配它们来建立连接。数据存储设备3502存储控制连接状态的两个表:发送连接表和接收连接表。
分组处理部件3504处理从路由器3128到达的以远程端点(例如,另一加速部件)为目的地的消息。它通过缓冲和打包消息来实现。分组处理部件3504还处理从某个远程端点接收并且以路由器3128为目的地的分组。
对于从路由器3128到达的消息,分组处理部件3504将每个消息请求与发送连接表中的发送连接表条目相匹配,例如,使用与消息相关联的报头信息和虚拟信道(VC)信息作为查询项,如由路由器3128提供的。分组处理部件3504使用从发送连接表条目获取的信息(诸如序列号、地址信息等)来构建其发送到远程实体的分组。
更具体地,在一个非限制性方式中,分组处理部件3504将分组封装在UDP/IP以太网帧中,并且将它们发送到远程加速部件。在一个实现中,分组可以包括以太网报头,随后是IPv4报头,随后是UDP报头,随后是传输报头(具体地与传输部件3130相关联),随后是有效载荷。
对于从网络到达的分组(例如,如在3端口交换机3132的本地端口上接收到的),分组处理部件3504将每个分组与在分组报头中提供的接收可连接表条目相匹配。如果存在匹配,则分组处理部件获取条目的虚拟信道字段,并且使用该信息将接收到的消息转发到路由器3128(根据由路由器3128使用的信用流技术)。
故障处理部件3506缓冲所有发送的分组,直到它从接收节点(例如,远程加速部件)接收到确认(ACK)。如果用于连接的ACK在指定的超时期间内没有到达,则故障处理部件3506可以重传该分组。故障处理部件3506将对这样的重传重复指定次数(例如,128次)。如果在所有这样的尝试之后分组保持未确认,则故障处理部件3506可以丢弃它并且释放其缓冲器。
C.4 3端口交换机
图36示出了3端口交换机3132的一个实现。3端口交换机3132操作以将加速部件生成的网络分组安全地插入(和去除)到数据中心网络上,而不会危及主机到TOR网络业务。
3端口交换机3132连接到NIC接口3110(对应于主机接口)、TOR接口3112、和与本地加速部件3102本身相关联的本地接口。3端口交换机3132可以被概念化为包括用于分别从主机部件和TOR交换机接收分组并且用于在本地加速部件处接收分组的接收接口(3602,3604,3606)。3端口交换机3132还包括用于分别向TOR交换机和主机部件提供分组并且接收由本地加速部件传输的分组的传输接口(3608,3610,3612)。
分组分类器(3614,3616)例如基于由分组指定的状态信息来确定从主机部件或TOR交换机接收的分组的类别。在一个实现中,每个分组被分类为属于无损流(例如,远程直接存储器访问(RDMA)业务)或有损流(例如,传输控制协议/因特网协议(TCP/IP)业务))。属于无损流的业务不容忍分组丢失,而属于有损流的业务可以容忍一些分组丢失。
分组缓冲器(3618,3620)根据它们所属的业务类别将传入分组存储在不同的相应缓冲器中。如果缓冲器中没有备用空间,则分组将被丢弃。(在一个实现中,3端口交换机3132不为由本地加速部件(经由本地端口)提供的分组提供分组缓冲,因为应用逻辑3106可以通过使用“反向按压”来调节分组流。)仲裁逻辑3622在可用分组中进行选择并且传输所选择的分组。
如上所述,目的地为本地加速部件的业务被封装在固定端口号上的UDP/IP分组中。3端口交换机3132检查传入分组(例如,如从TOR接收的)以确定它们是否为正确端口号上的UDP分组。如果是,则3端口交换机3132在本地RX端口接口3606上输出分组。在一个实现中,到达本地TX端口接口3612的所有业务都从TOR TX端口接口3608被发送出去,但是也可以被发送到主机TX端口接口3610。还注意,图36指示加速部件3102拦截来自TOR而非来自主机部件的业务;但是它也可以被配置为拦截来自主机部件的业务。
PFC处理逻辑3624允许3端口交换机3132将优先级流控制帧插入被传输到TOR或主机部件的业务流中。也就是说,对于无损业务类别,如果分组缓冲器填满,则PFC处理逻辑3624向链路伙伴发送PFC消息,以请求暂停该类别上的业务。如果在主机RX端口接口3602或TOR RX端口接口3604上接收到用于无损业务类别的PFC控制帧,则3端口交换机3132将停止在接收到控制消息的端口上发送分组。
C.5说明性主机部件
图37示出了对应于图1所示的任何主机部件(S)的主机部件3702的一个实现。主机部件3702可以包括一个或多个处理设备3704(诸如一个或多个中央处理单元(CPU)),每个处理设备3704可以实现一个或多个硬件线程。主机部件3702还可以包括用于存储诸如代码、设置、数据等任何种类的信息的任何存储资源3706。在非限制的意义上,例如,存储资源3706可以包括以下中的任一项:任何类型的RAM、任何类型的ROM、闪存设备、硬盘、光盘等。更一般地,任何存储资源都可以使用任何技术来存储信息。此外,任何存储资源可以提供对信息的易失性或非易失性保留。此外,任何存储资源可以表示主机部件3702的固定或可移动部件。在一种情况下,当处理设备3704执行存储在任何存储资源或存储资源组合中的相关联的指令时,主机部件3702可以执行与本地租户功能相关联的任何操作。主机部件3702还包括用于与诸如硬盘驱动机构、光盘驱动机构等任何存储资源交互的一个或多个驱动机构3708。
主机部件3702还包括用于(经由输入设备3712)接收各种输入和用于(经由输出设备3714)提供各种输出的输入/输出模块3710。一个特定的输出机制可以包括呈现设备3716和相关联的图形用户接口(GUI)3718。主机部件3702还可以包括用于经由一个或多个通信管道3722与其他设备交换数据的一个或多个网络接口3720。一个或多个通信总线3724将上述部件在通信上耦合在一起。
通信管道3722可以任何方式实现,例如通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信管道3722可以包括由任何协议或协议组合管控的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
以下概述提供了本文中阐述的技术的说明性方面的非穷举列表。
根据第一方面,描述了一种数据处理系统,其包括:包括请求服务的至少一个租户功能实例的第一本地部件;本地硬件加速部件;用于将第一本地部件与本地硬件加速部件耦合的本地链路;第一本地部件间接可访问的至少一个远程硬件加速部件;以及被配置为应用至少一个规则来确定服务是否将由以下中的至少一项满足的服务映射部件:第一本地部件、本地硬件加速部件、和/或远程硬件加速部件中的一个或多个远程硬件加速部件。
根据第二方面,第一本地部件是使用一个或多个中央处理单元来执行机器可读指令的第一本地主机部件。
根据第三方面,服务映射部件被配置为在确定本地硬件加速部件已经被配置为提供服务时选择使用本地硬件加速部件。
根据第四方面,服务映射部件被配置为当确定服务为线路速率服务时选择使用本地硬件加速部件。
根据第五方面,服务映射部件被配置为基于与在与服务交互时引入的延迟量有关的延迟相关考虑来选择使用本地硬件加速部件。
根据第六方面,服务映射部件被配置为基于与服务相关联的服务水平要求(SLA)来在候选硬件加速部件之间进行选择。
根据第七方面,服务映射部件被配置为基于服务的特征为间歇性业务还是稳定业务的考虑来在候选硬件加速部件之间进行选择。
根据第八方面,服务映射部件被配置为基于安全相关考虑来在候选硬件加速部件之间进行选择。
根据第九方面,服务映射部件被配置为当确定本地硬件加速部件和远程硬件加速部件都无法可行地执行服务时选择使用第一本地部件来执行服务。
根据第十方面,数据处理系统还包括配置部件,其中服务映射部件被配置为在确定上述至少一个硬件加速部件尚未被配置为执行服务时使用配置部件来将至少一个硬件加速部件配置为执行服务。
根据第十一方面,服务映射部件被配置为使用配置部件来执行上述至少一个硬件加速部件的部分配置,使得对每个硬件加速部件的一部分进行同时保持每个硬件加速部件的其他部分不变。
根据第十二方面,服务映射部件被配置为:从由第一本地部件提供的租户功能实例接收对于服务的请求;确定服务是否适合由本地硬件加速部件来执行;如果做出服务适合由本地硬件加速部件来执行的确定,则指令第一本地部件使用本地硬件加速部件来执行服务;如果确定本地硬件加速部件不适合执行服务,则确定远程硬件加速部件是否适合执行服务;以及如果确定远程硬件加速部件适合执行服务,则指令第一本地部件经由本地硬件加速部件与远程硬件加速部件交互。
根据第十三方面,服务映射部件还被配置为在确定远程加速部件不适合执行服务的情况下指令第一本地部件自己执行服务。
根据第十四方面,服务映射部件包括本地管理部件和全局管理部件。上述确定服务是否适合由本地硬件加速部件来执行是由本地管理部件执行的。上述确定远程硬件加速部件是否适合执行服务是由全局管理部件执行的。另外,在确定远程硬件加速部件适合执行服务后,全局管理部件向第一本地部件转发与远程硬件加速部件相关联的地址。然后,第一本地部件经由本地硬件加速部件使用地址来访问服务。
根据第十五方面,本文中描述了一种在数据处理系统中执行的方法,其涉及从由本地主机部件实现的租户功能接收对于服务的请求,本地主机部件使用一个或多个中央处理单元来执行机器可读指令。该方法还包括确定服务是否适合由本地硬件加速部件来执行,本地硬件加速部件经由本地链路耦合到本地主机部件。该方法还包括在做出服务适合由本地硬件加速部件来执行的的确定的情况下指令本地主机部件使用本地硬件加速部件来执行服务。该方法还包括在确定本地硬件加速部件不适合执行服务的情况下确定远程硬件加速部件是否适合执行服务,其中远程硬件加速部件是本地主机部件经由本地硬件加速部件可访问的。该方法还包括在确定远程硬件加速部件适合执行服务的情况下指令本地主机部件经由本地硬件加速部件来与远程硬件加速部件交互。
根据第十六方面,该方法还包括在确定远程加速部件不适合执行服务的情况下指令本地主机部件自己执行服务。
根据第十七方面,服务映射部件包括本地管理部件和全局管理部件。服务是否适合由本地硬件加速部件执行的上述确定由本地管理部件执行,并且远程硬件加速部件是否适合执行服务的上述确定由全局管理部件执行。另外,在确定远程硬件加速部件适合执行服务后,全局管理部件向本地主机部件转发与远程硬件加速部件相关联的地址。另外,本地主机部件经由本地硬件加速部件使用该地址来访问服务。
根据第十八方面,服务是否适合由本地硬件加速部件执行的上述确定被配置为当确定本地硬件加速部件已经被配置为提供服务时,选择使用本地硬件加速部件。
根据第十九方面,服务是否适合由本地硬件加速部件来执行的上述确定被配置为当确定服务为线路速率服务时,选择使用本地硬件加速部件。
根据第二十方面,本文中描述了实现服务映射部件的至少一个设备,其包括被配置为从由本地主机部件实现的租户功能接收对于服务的请求的逻辑,本地主机部件使用一个或多个中央处理单元来执行机器可读指令。该(多个)设备还包括被配置为确定服务是否适合由本地硬件加速部件执行的逻辑,本地硬件加速部件经由本地链路耦合到本地主机部件。该(多个)设备还包括被配置为在做出服务适合由本地硬件加速部件执行的确定的情况下指令本地主机部件使用本地硬件加速部件来执行服务的逻辑。该(多个)设备还包括被配置为在确定本地硬件加速部件不适合执行服务的情况下确定远程硬件加速部件是否适合执行服务的逻辑,远程硬件加速部件是本地主机部件经由本地硬件加速部件可访问的。该(多个)设备还包括被配置为在确定远程硬件加速部件适合执行服务的情况下指令本地主机部件经由本地硬件加速部件来与远程硬件加速部件交互的逻辑。该(多个)设备还包括被配置为在确定远程硬件加速部件不适合执行服务的情况下指令本地主机部件自己执行服务的逻辑。
第二十一方面对应于上述第一至第二十方面的任何组合(例如,任何排列或子集)。
第二十二方面对应于与第一到二十一方面相关联的任何方法对应物(counterpart)、设备对应物、系统对应物、装置对应物、计算机可读存储介质对应物、数据结构对应物、制品对应物、图形用户接口呈现对应物等。
最后,虽然已经以结构特征和/或方法动作特有的语言描述了主题,但是应当理解,所附权利要求中限定的主题不必限于上述的特定特征或动作。相反,上述特定特征和动作作为实现权利要求的示例形式而被公开。

Claims (20)

1.一种数据处理系统,包括:
第一服务器单元,所述第一服务器单元包括第一处理单元、第一硬件加速部件和第一本地链路,所述第一处理单元被配置为执行租户功能,所述第一本地链路被配置为将所述第一处理单元与所述第一硬件加速部件耦合;
第二服务器单元,所述第二服务器单元包括第二处理单元、第二硬件加速部件和第二本地链路,所述第二本地链路被配置为将所述第二处理单元与所述第二硬件加速部件耦合;以及
服务映射部件,所述服务映射部件被提供在所述数据处理系统中的所述第一服务器单元、所述第二服务器单元或者第三服务器单元上,所述服务映射部件被配置为在不同的实例中使得由在所述第一处理单元上的所述租户功能所请求的不同服务由所述第一处理单元、所述第一硬件加速部件、所述第二处理单元和所述第二硬件加速部件满足。
2.根据权利要求1所述的数据处理系统,其中所述第一处理单元和所述第二处理单元是被配置为执行机器可读指令的中央处理单元。
3.根据权利要求1所述的数据处理系统,其中所述服务映射部件被配置为:
维护可用性信息,所述可用性信息指示所述第一硬件加速部件和所述第二硬件加速部件是否可用;以及
至少基于所述可用性信息,选择所述第一硬件加速部件或所述第二硬件加速部件来执行特定服务。
4.根据权利要求1所述的数据处理系统,其中所述服务映射部件被配置为:
确定特定服务被调度为将来在所述第一硬件加速部件上运行;以及
至少基于被调度为将来在所述第一硬件加速部件上运行的所述特定服务,分配另一服务以在所述第二硬件加速部件上执行。
5.根据权利要求1所述的数据处理系统,其中所述服务映射部件被配置为:
保留所述第一硬件加速部件以执行特定服务;以及
在所述第一硬件加速部件被保留的同时,将其他服务分配给所述第二硬件加速部件。
6.根据权利要求1所述的数据处理系统,其中所述服务映射部件被配置为:
监测所述数据处理系统中对服务的总体需求;以及
至少基于检测到所述总体需求的变化,将个体服务重新分配给所述第一硬件加速部件或所述第二硬件加速部件。
7.根据权利要求1所述的数据处理系统,其中所述服务映射部件被提供在所述数据处理系统的所述第一处理单元、所述第二处理单元或第三处理单元上。
8.根据权利要求1所述的数据处理系统,其中所述第一硬件加速部件和所述第二硬件加速部件包括现场可编程门阵列、大规模并行处理器阵列、图形处理单元、专用集成电路或多处理器片上系统设备。
9.一种方法,包括:
接收用以在数据处理系统中执行不同服务的请求,所述数据处理系统包括多个处理单元和多个硬件加速器;
响应于所述请求,分配个体硬件加速器以执行个体服务;
监测所述数据处理系统中对所述不同服务的总体需求;
在所述数据处理系统中检测对特定服务的所述总体需求的变化;以及
响应于检测到所述总体需求的所述变化,通过调整如何将所述个体服务分配给所述个体硬件加速器来重新分配所述个体硬件加速器。
10.根据权利要求9所述的方法,还包括:
从特定处理单元接收运行特定服务的特定请求;
响应于所述特定请求,标识同样已请求所述特定服务的其他处理单元;以及
至少基于特定硬件加速器、发出所述特定请求的所述特定处理单元和同样已请求所述特定服务的所述数据处理系统中的所述其他处理单元的相应位置,来确定运行所述特定服务的所述特定硬件加速器。
11.根据权利要求9所述的方法,还包括:
标识在一段时间内已重复请求特定服务的特定处理单元;以及
响应于所述标识,将特定硬件加速器指定为被保留以用于执行所述特定服务。
12.根据权利要求11所述的方法,所述特定硬件加速器经由硬件总线而本地连接到所述特定处理单元。
13.一种系统,包括:
多个处理单元,被配置为执行租户功能,所述租户功能请求服务;
多个硬件加速器,包括并行逻辑元件,所述并行逻辑元件被配置为执行计算任务以实现所述服务;以及
公共网络,由所述多个处理单元和所述多个硬件加速器共享,
个体处理单元,被配置为:
使不同服务在不同处理单元和不同硬件加速器上的不同实例中被执行。
14.根据权利要求13所述的系统,其中所述个体处理单元还被配置为:
标识在一段时间内已重复请求特定服务的特定处理单元;以及
将特定硬件加速器指定为被保留以用于执行所述特定服务。
15.根据权利要求14所述的系统,其中所述特定硬件加速器经由硬件总线而本地连接至所述特定处理单元。
16.根据权利要求14所述的系统,其中所述多个处理单元和所述多个硬件加速器共享公共网络。
17.根据权利要求16所述的系统,所述特定处理单元和所述特定硬件加速器在所述公共网络上共享物理网络地址。
18.根据权利要求17所述的系统,所述多个处理单元和所述多个硬件加速器使用不同网络协议来通过所述公共网络进行通信。
19.根据权利要求17所述的系统,所述多个处理单元和所述多个硬件加速器使用不同网络端口来通过所述公共网络进行通信。
20.根据权利要求17所述的系统,所述多个处理单元和所述多个硬件加速器使用通过所述公共网络通信的分组中的状态标志的不同值。
CN202010837323.1A 2015-04-17 2016-04-07 在使用加速部件的系统中处理租户要求 Pending CN112035395A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562149488P 2015-04-17 2015-04-17
US62/149,488 2015-04-17
US14/717,752 US10198294B2 (en) 2015-04-17 2015-05-20 Handling tenant requests in a system that uses hardware acceleration components
US14/717,752 2015-05-20
CN201680022845.8A CN107533538B (zh) 2015-04-17 2016-04-07 在使用加速部件的系统中处理租户要求

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680022845.8A Division CN107533538B (zh) 2015-04-17 2016-04-07 在使用加速部件的系统中处理租户要求

Publications (1)

Publication Number Publication Date
CN112035395A true CN112035395A (zh) 2020-12-04

Family

ID=55861167

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680022845.8A Active CN107533538B (zh) 2015-04-17 2016-04-07 在使用加速部件的系统中处理租户要求
CN202010837323.1A Pending CN112035395A (zh) 2015-04-17 2016-04-07 在使用加速部件的系统中处理租户要求

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201680022845.8A Active CN107533538B (zh) 2015-04-17 2016-04-07 在使用加速部件的系统中处理租户要求

Country Status (4)

Country Link
US (2) US10198294B2 (zh)
EP (1) EP3283956A1 (zh)
CN (2) CN107533538B (zh)
WO (1) WO2016168031A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10250572B2 (en) * 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
CN109726004B (zh) * 2017-10-27 2021-12-03 中移(苏州)软件技术有限公司 一种数据处理方法及装置
US11144357B2 (en) * 2018-05-25 2021-10-12 International Business Machines Corporation Selecting hardware accelerators based on score
US10892944B2 (en) 2018-11-29 2021-01-12 International Business Machines Corporation Selecting and using a cloud-based hardware accelerator
US11169853B2 (en) * 2018-12-28 2021-11-09 Intel Corporation Technologies for providing dynamic selection of edge and local accelerator resources
CN109814998A (zh) * 2019-01-22 2019-05-28 中国联合网络通信集团有限公司 一种多进程任务调度的方法及装置
US11334382B2 (en) 2019-04-30 2022-05-17 Intel Corporation Technologies for batching requests in an edge infrastructure
US11711268B2 (en) 2019-04-30 2023-07-25 Intel Corporation Methods and apparatus to execute a workload in an edge environment
WO2022098356A1 (en) * 2020-11-05 2022-05-12 Google Llc Memory-request priority up-leveling

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080279167A1 (en) * 2004-06-18 2008-11-13 Honeywell International Inc. Resource management for ad hoc wireless networks with cluster organizations
US20100042870A1 (en) * 2008-08-12 2010-02-18 Kabushiki Kaisha Toshiba Multicore processor and method of controlling multicore processor
CN103034536A (zh) * 2011-12-12 2013-04-10 微软公司 提高有状态应用的可用性
CN103718201A (zh) * 2011-05-26 2014-04-09 英特尔公司 由多租户服务提供方执行动态平台重新配置
US20140101299A1 (en) * 2012-10-06 2014-04-10 International Business Machines Corporation Techniques for implementing information services with tentant specific service level agreements
US8713574B2 (en) * 2006-06-05 2014-04-29 International Business Machines Corporation Soft co-processors to provide a software service function off-load architecture in a multi-core processing environment
CN104395886A (zh) * 2012-06-19 2015-03-04 微软公司 多租户中间件云服务技术

Family Cites Families (253)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684980A (en) 1992-07-29 1997-11-04 Virtual Computer Corporation FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5600845A (en) 1994-07-27 1997-02-04 Metalithic Systems Incorporated Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5748979A (en) 1995-04-05 1998-05-05 Xilinx Inc Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table
US5774668A (en) 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5828858A (en) 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
US5915123A (en) 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6096091A (en) 1998-02-24 2000-08-01 Advanced Micro Devices, Inc. Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip
US6104211A (en) 1998-09-11 2000-08-15 Xilinx, Inc. System for preventing radiation failures in programmable logic devices
US6256758B1 (en) 1999-03-03 2001-07-03 Agere Systems Guardian Corp. Fault tolerant operation of field programmable gate arrays
US6496971B1 (en) 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US6326806B1 (en) 2000-03-29 2001-12-04 Xilinx, Inc. FPGA-based communications access point and system for reconfiguration
US8195823B2 (en) 2000-04-17 2012-06-05 Circadence Corporation Dynamic network link acceleration
US7340596B1 (en) 2000-06-12 2008-03-04 Altera Corporation Embedded processor with watchdog timer for programmable logic
US6530049B1 (en) 2000-07-06 2003-03-04 Lattice Semiconductor Corporation On-line fault tolerant operation via incremental reconfiguration of field programmable gate arrays
IL137296A (en) 2000-07-13 2009-09-01 Nds Ltd Configurable hardware system
US20030033450A1 (en) 2000-07-20 2003-02-13 John Appleby-Alis System, method, and article of manufacture for remote updating of hardware
US6526557B1 (en) 2000-07-25 2003-02-25 Xilinx, Inc. Architecture and method for partially reconfiguring an FPGA
US6804193B1 (en) 2000-07-28 2004-10-12 Marconi Intellectual Property (Ringfence) Inc. Protected Ethernet backplane communication
US6915338B1 (en) 2000-10-24 2005-07-05 Microsoft Corporation System and method providing automatic policy enforcement in a multi-computer service application
US7036059B1 (en) 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
US7111224B1 (en) 2001-02-28 2006-09-19 Xilinx, Inc. FPGA configuration memory with built-in error correction mechanism
US7035928B2 (en) 2001-04-25 2006-04-25 Hewlett-Packard Development Company, L.P. Allocating computer resources for efficient use by a program
US6462579B1 (en) 2001-04-26 2002-10-08 Xilinx, Inc. Partial reconfiguration of a programmable gate array using a bus macro
SE0102199D0 (sv) 2001-06-20 2001-06-20 Ericsson Telefon Ab L M Upgrading field programmable gate arrays over datacommunication networks
US6973608B1 (en) 2001-07-06 2005-12-06 Agere Systems Inc. Fault tolerant operation of field programmable gate arrays
US6874108B1 (en) 2001-08-27 2005-03-29 Agere Systems Inc. Fault tolerant operation of reconfigurable devices utilizing an adjustable system clock
US6573748B1 (en) 2001-11-06 2003-06-03 Xilinx, Inc. Programmable logic device with output register for specifying memory space during reconfiguration
US6754881B2 (en) 2001-12-10 2004-06-22 International Business Machines Corporation Field programmable network processor and method for customizing a network processor
US6996443B2 (en) 2002-01-11 2006-02-07 Bae Systems Information And Electronic Systems Integration Inc. Reconfigurable digital processing system for space
GB0304628D0 (en) 2003-02-28 2003-04-02 Imec Inter Uni Micro Electr Method for hardware-software multitasking on a reconfigurable computing platform
US20040081104A1 (en) 2002-10-29 2004-04-29 Weimin Pan Method and system for network switch configuration
US7533256B2 (en) 2002-10-31 2009-05-12 Brocade Communications Systems, Inc. Method and apparatus for encryption of data on storage units using devices inside a storage area network fabric
US7146598B2 (en) 2002-11-07 2006-12-05 Computer Network Technoloy Corp. Method and apparatus for configuring a programmable logic device
US7444551B1 (en) 2002-12-16 2008-10-28 Nvidia Corporation Method and apparatus for system status monitoring, testing and restoration
US7430652B2 (en) 2003-03-28 2008-09-30 Tarari, Inc. Devices for performing multiple independent hardware acceleration operations and methods for performing same
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7590736B2 (en) 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
BRPI0415219B1 (pt) 2003-10-10 2019-08-13 Ericsson Telefon Ab L M sistema de plataforma de terminal móvel, e, método de criação de um sistema de plataforma de terminal móvel
US7584345B2 (en) 2003-10-30 2009-09-01 International Business Machines Corporation System for using FPGA technology with a microprocessor for reconfigurable, instruction level hardware acceleration
GB2407730A (en) 2003-10-30 2005-05-04 Agilent Technologies Inc Programmable network monitoring element
US7380039B2 (en) 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
JP2005235074A (ja) 2004-02-23 2005-09-02 Fujitsu Ltd Fpgaのソフトエラー補正方法
US7020860B1 (en) 2004-03-24 2006-03-28 Xilinx, Inc. Method for monitoring and improving integrated circuit fabrication using FPGAs
US7444454B2 (en) 2004-05-11 2008-10-28 L-3 Communications Integrated Systems L.P. Systems and methods for interconnection of multiple FPGA devices
US7720063B2 (en) 2004-07-02 2010-05-18 Vt Idirect, Inc. Method apparatus and system for accelerated communication
US20060015866A1 (en) 2004-07-16 2006-01-19 Ang Boon S System installer for a reconfigurable data center
US7263631B2 (en) 2004-08-13 2007-08-28 Seakr Engineering, Incorporated Soft error detection and recovery
US20060101250A1 (en) 2004-10-01 2006-05-11 Lockheed Martin Corporation Configurable computing machine and related systems and methods
US7224184B1 (en) 2004-11-05 2007-05-29 Xilinx, Inc. High bandwidth reconfigurable on-chip network for reconfigurable systems
US7734895B1 (en) 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
US8167722B2 (en) 2005-05-11 2012-05-01 Qualcomm Atheros, Inc Distributed processing system and method
US20070038560A1 (en) 2005-08-12 2007-02-15 Carl Ansley Transaction payment system and processing
US7500083B2 (en) 2005-08-15 2009-03-03 Silicon Informatics Accelerated processing with scheduling to configured coprocessor for molecular data type by service and control coprocessor upon analysis of software code
US7676554B1 (en) 2005-09-15 2010-03-09 Juniper Networks, Inc. Network acceleration device having persistent in-memory cache
JP4940464B2 (ja) 2005-09-16 2012-05-30 独立行政法人産業技術総合研究所 ネットワーク機器試験装置
US7546572B1 (en) 2005-09-20 2009-06-09 Xilinx, Inc. Shared memory interface in a programmable logic device using partial reconfiguration
US7286020B1 (en) 2005-09-21 2007-10-23 Altera Corporation Techniques for monitoring and replacing circuits to maintain high performance
US7382154B2 (en) 2005-10-03 2008-06-03 Honeywell International Inc. Reconfigurable network on a chip
US7617470B1 (en) 2005-10-11 2009-11-10 California Institute Of Technology Reconfigurable integrated circuit and method for increasing performance of a reconfigurable integrated circuit
US7899864B2 (en) 2005-11-01 2011-03-01 Microsoft Corporation Multi-user terminal services accelerator
US7389460B1 (en) 2005-11-14 2008-06-17 University Of Central Florida Research Foundation, Inc. Runtime-competitive fault handling for reconfigurable logic devices
US7694011B2 (en) 2006-01-17 2010-04-06 Cisco Technology, Inc. Techniques for load balancing over a cluster of subscriber-aware application servers
US7822958B1 (en) 2006-03-10 2010-10-26 Altera Corporation Booting mechanism for FPGA-based embedded system
US20090187733A1 (en) 2006-03-13 2009-07-23 Tarek El-Ghazawi Virtual Configuration Management for Effiicient Use of Reconfigurable Hardwware
US20070283311A1 (en) 2006-05-30 2007-12-06 Theodore Karoubalis Method and system for dynamic reconfiguration of field programmable gate arrays
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7856546B2 (en) 2006-07-28 2010-12-21 Drc Computer Corporation Configurable processor module accelerator using a programmable logic device
US8312120B2 (en) 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
US8244718B2 (en) 2006-08-25 2012-08-14 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries
US7685464B2 (en) 2006-11-20 2010-03-23 Honeywell International Inc. Alternating fault tolerant reconfigurable computing architecture
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US7598766B2 (en) 2007-01-09 2009-10-06 University Of Washington Customized silicon chips produced using dynamically configurable polymorphic network
US7925900B2 (en) 2007-01-26 2011-04-12 Microsoft Corporation I/O co-processor coupled hybrid computing device
US8286196B2 (en) 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
US8117137B2 (en) 2007-04-19 2012-02-14 Microsoft Corporation Field-programmable gate array based accelerator system
US8024396B2 (en) 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US7797587B2 (en) 2007-06-06 2010-09-14 Dell Products L.P. System and method of recovering from failures in a virtual machine
US8159259B1 (en) 2007-08-06 2012-04-17 Lewis James M Self-modifying FPGA for anti-tamper applications
US7895463B2 (en) 2007-08-28 2011-02-22 Cisco Technology, Inc. Redundant application network appliances using a low latency lossless interconnect link
US8046727B2 (en) 2007-09-12 2011-10-25 Neal Solomon IP cores in reconfigurable three dimensional integrated circuits
EP2188894B1 (en) 2007-09-13 2017-10-18 Friedrich-Alexander-Universität Erlangen-Nürnberg Logic chip, logic system and method for designing a logic chip
US7971051B2 (en) 2007-09-27 2011-06-28 Fujitsu Limited FPGA configuration protection and control using hardware watchdog timer
WO2009052529A1 (en) * 2007-10-20 2009-04-23 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphical data
WO2009067675A1 (en) 2007-11-23 2009-05-28 Mercury Computer Systems, Inc. Client-server visualization system with hybrid data processing
US9866370B2 (en) 2007-12-05 2018-01-09 Itt Manufacturing Enterprises, Llc Configurable ASIC-embedded cryptographic processing engine
KR100901858B1 (ko) 2007-12-18 2009-06-09 한국전자통신연구원 설정 재구성 및 신호 수집 장치
US8527590B2 (en) 2008-01-16 2013-09-03 Janos Tapolcai Solving mixed integer programs with peer-to-peer applications
WO2009094673A2 (en) 2008-01-27 2009-07-30 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
FR2927212B1 (fr) 2008-02-01 2010-07-30 Centre Nat Rech Scient Procede de reconfiguration d'un ensemble de composants d'un circuit electronique, systeme de reconfiguration et protocole de transmission de donnees correspondants.
US8166289B2 (en) 2008-02-05 2012-04-24 Viasat, Inc. Trusted boot
DK2249707T3 (da) 2008-02-06 2022-07-04 Capis Sprl Indretning til automatiseret screening for medfødte hjertesygdomme
US8117512B2 (en) 2008-02-06 2012-02-14 Westinghouse Electric Company Llc Failure detection and mitigation in logic circuits
US8250578B2 (en) 2008-02-22 2012-08-21 International Business Machines Corporation Pipelining hardware accelerators to computer systems
US8145894B1 (en) 2008-02-25 2012-03-27 Drc Computer Corporation Reconfiguration of an accelerator module having a programmable logic device
US7906984B1 (en) 2008-02-26 2011-03-15 The United States Of America As Represented By The Secretary Of The Air Force Relocatable field programmable gate array bitstreams for fault tolerance
CN101276298B (zh) 2008-04-01 2010-06-02 中国科学院计算技术研究所 一种fpga电路故障检测装置
US8131660B2 (en) 2008-04-08 2012-03-06 Microsoft Corporation Reconfigurable hardware accelerator for boolean satisfiability solver
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
US8453013B1 (en) 2008-07-09 2013-05-28 Google Inc System-hang recovery mechanisms for distributed systems
US8018866B1 (en) 2008-08-26 2011-09-13 Juniper Networks, Inc. Adaptively applying network acceleration services with an intermediate network device
US8434087B2 (en) 2008-08-29 2013-04-30 International Business Machines Corporation Distributed acceleration devices management for streams processing
US20100057647A1 (en) 2008-09-04 2010-03-04 Microsoft Corporation Accommodating learned clauses in reconfigurable hardware accelerator for boolean satisfiability solver
US8131659B2 (en) 2008-09-25 2012-03-06 Microsoft Corporation Field-programmable gate array based accelerator system
US8041976B2 (en) 2008-10-01 2011-10-18 International Business Machines Corporation Power management for clusters of computers
US7979844B2 (en) 2008-10-14 2011-07-12 Edss, Inc. TICC-paradigm to build formally verified parallel software for multi-core chips
US8040808B1 (en) 2008-10-20 2011-10-18 Juniper Networks, Inc. Service aware path selection with a network acceleration device
US8443062B2 (en) 2008-10-23 2013-05-14 Microsoft Corporation Quorum based transactionally consistent membership management in distributed storage systems
US8117497B1 (en) 2008-11-17 2012-02-14 Xilinx, Inc. Method and apparatus for error upset detection and correction
US8874701B2 (en) 2008-12-22 2014-10-28 Sap Se On-demand provisioning of services running on embedded devices
US8209272B2 (en) 2009-02-27 2012-06-26 Red Hat, Inc. Dynamic computation of optimal placement for services in a distributed computing system
US8776088B2 (en) 2009-03-30 2014-07-08 Microsoft Corporation Operating system distributed over heterogeneous platforms
US8706901B2 (en) 2009-04-13 2014-04-22 International Business Machines Corporation Protocols for high performance computing visualization, computational steering and forward progress
CN101545933B (zh) 2009-04-28 2012-01-11 国网电力科学研究院 用于雷电探测的远程智能升级装置及其实现方法
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8508367B2 (en) 2009-09-21 2013-08-13 Checkpoint Systems, Inc. Configurable monitoring device
US8786440B2 (en) 2009-10-02 2014-07-22 Checkpoint Systems, Inc. Calibration of beamforming nodes in a configurable monitoring device system
US8856794B2 (en) 2009-10-13 2014-10-07 Empire Technology Development Llc Multicore runtime management using process affinity graphs
KR101259133B1 (ko) 2009-11-11 2013-04-30 삼성중공업 주식회사 동작 중 재구성이 가능한 제어 시스템 및 그 방법
CN101783812A (zh) 2009-12-01 2010-07-21 深圳市蓝韵实业有限公司 一种基于网络的fpga配置系统及配置方法
US8656019B2 (en) 2009-12-17 2014-02-18 International Business Machines Corporation Data processing workload administration in a cloud computing environment
US8368423B2 (en) 2009-12-23 2013-02-05 L-3 Communications Integrated Systems, L.P. Heterogeneous computer architecture based on partial reconfiguration
US8869160B2 (en) 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
US20110161495A1 (en) 2009-12-26 2011-06-30 Ralf Ratering Accelerating opencl applications by utilizing a virtual opencl device as interface to compute clouds
CN101794222A (zh) * 2010-01-13 2010-08-04 腾讯科技(深圳)有限公司 软件版本搜集方法、管理系统及软件升级检测方法和系统
US9141580B2 (en) 2010-03-23 2015-09-22 Citrix Systems, Inc. Systems and methods for monitoring and maintaining consistency of a configuration
US8938510B2 (en) 2010-04-26 2015-01-20 Bittan Inc. On-demand mailbox synchronization and migration system
KR101475584B1 (ko) 2010-04-30 2014-12-22 인터디지탈 패튼 홀딩스, 인크 네트워크 통신에서의 경량 프로토콜 및 에이전트
EP2387270A1 (en) 2010-05-12 2011-11-16 Nokia Siemens Networks Oy Radio link failure recovery control in communication network having relay nodes
WO2011150346A2 (en) 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
US8803892B2 (en) 2010-06-10 2014-08-12 Otoy, Inc. Allocation of GPU resources across multiple clients
US20120324068A1 (en) 2011-06-17 2012-12-20 Microsoft Corporation Direct networking for multi-server units
US8812627B2 (en) 2010-08-20 2014-08-19 Adobe Systems Incorporated System and method for installation and management of cloud-independent multi-tenant applications
US8516268B2 (en) 2010-08-23 2013-08-20 Raytheon Company Secure field-programmable gate array (FPGA) architecture
US8739171B2 (en) 2010-08-31 2014-05-27 International Business Machines Corporation High-throughput-computing in a hybrid computing environment
WO2012031362A1 (en) 2010-09-07 2012-03-15 Corporation De L ' Ecole Polytechnique De Montreal Methods, apparatus and system to support large-scale micro- systems including embedded and distributed power supply, thermal regulation, multi-distributed-sensors and electrical signal propagation
WO2012047735A2 (en) 2010-09-29 2012-04-12 The Regents Of The University Of California In-place resynthesis and remapping techniques for soft error mitigation in fpga
US8473692B2 (en) 2010-10-27 2013-06-25 International Business Machines Corporation Operating system image management
CN101986305B (zh) 2010-11-01 2013-04-17 华为技术有限公司 一种文件系统的操作方法及一种通信装置
US9329886B2 (en) 2010-12-10 2016-05-03 Amazon Technologies, Inc. Virtual machine morphing for heterogeneous migration environments
US20120150592A1 (en) 2010-12-10 2012-06-14 Endre Govrik Systems and methods for user marketing and endorsement on social networks
WO2012079825A1 (en) 2010-12-15 2012-06-21 International Business Machines Corporation Hardware accelerated graphics for network enabled applications
CN102024048B (zh) * 2010-12-15 2014-04-09 中兴通讯股份有限公司 一种移动终端及其浏览器的实现方法
CN102117197B (zh) 2011-03-04 2012-08-15 中国电子科技集团公司第三十八研究所 高性能通用信号处理器指令分配装置
US8885334B1 (en) 2011-03-10 2014-11-11 Xilinx, Inc. Computing system with network attached processors
US8990548B2 (en) 2011-04-11 2015-03-24 Intel Corporation Apparatuses for configuring programmable logic devices from BIOS PROM
US8998076B2 (en) 2011-06-03 2015-04-07 Arthur Chang Establishing connections among electronic devices
US8656389B2 (en) 2011-08-22 2014-02-18 Vmware, Inc. Virtual port command processing during migration of virtual machine
US20130249947A1 (en) * 2011-08-26 2013-09-26 Reincloud Corporation Communication using augmented reality
KR101861742B1 (ko) 2011-08-30 2018-05-30 삼성전자주식회사 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
JP2013062566A (ja) 2011-09-12 2013-04-04 Ricoh Co Ltd 情報処理装置、演算方法およびプログラム
WO2013042271A1 (ja) 2011-09-22 2013-03-28 富士通株式会社 電子計算機システム及び仮想マシン配置方法
WO2013049079A2 (en) 2011-09-26 2013-04-04 Limelight Networks, Inc. Dynamic request handling using cloud-computing capabilities
CN102377778A (zh) 2011-10-17 2012-03-14 中国人民解放军国防科学技术大学 一种基于以太网的远程非对称端通信方法
US9647731B2 (en) 2011-10-20 2017-05-09 Microelectronics Research & Development Corp. Reconfigurable network on a chip (NoC) radio through reduced instruction set computer (RISC) agents by overwriting program store for different phases of demodulation
JP5948806B2 (ja) 2011-11-16 2016-07-06 富士通株式会社 プラグインカード収容装置及びプラグインカード制御方法
EP2783281B1 (en) 2011-11-22 2020-05-13 Intel Corporation A microprocessor accelerated code optimizer
WO2013081629A1 (en) 2011-12-02 2013-06-06 Empire Technology Development. Llc Integrated circuits as a service
US20130159452A1 (en) 2011-12-06 2013-06-20 Manuel Alejandro Saldana De Fuentes Memory Server Architecture
US9448846B2 (en) 2011-12-13 2016-09-20 International Business Machines Corporation Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US20130177293A1 (en) 2012-01-06 2013-07-11 Nokia Corporation Method and apparatus for the assignment of roles for image capturing devices
CN103220371B (zh) 2012-01-18 2016-03-02 中国移动通信集团公司 内容适配方法及系统
US9088516B2 (en) 2012-01-18 2015-07-21 F5 Networks, Inc. Virtual network services
US8751830B2 (en) 2012-01-23 2014-06-10 International Business Machines Corporation Memory address translation-based data encryption/compression
US9465632B2 (en) 2012-02-04 2016-10-11 Global Supercomputing Corporation Parallel hardware hypervisor for virtualizing application-specific supercomputers
CN103246582B (zh) 2012-02-07 2017-03-08 鼎桥通信技术有限公司 一种fpga故障检测方法和装置
US9443269B2 (en) 2012-02-16 2016-09-13 Novasparks, Inc. FPGA matrix architecture
US9081750B2 (en) 2012-02-29 2015-07-14 Red Hat, Inc. Recovery escalation of cloud deployments
CN102662628B (zh) 2012-03-23 2015-03-04 山东大学 Rsa加密算法的指令优化处理器
KR101893982B1 (ko) 2012-04-09 2018-10-05 삼성전자 주식회사 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
US8775576B2 (en) 2012-04-17 2014-07-08 Nimbix, Inc. Reconfigurable cloud computing
US8943352B1 (en) 2012-05-07 2015-01-27 Dust Networks, Inc. Low power timing, configuring, and scheduling
EP2663007A1 (en) 2012-05-08 2013-11-13 Alcatel Lucent A method for transmission of ACK/NACK messages, and a network device therefor
KR101695251B1 (ko) 2012-05-22 2017-01-12 한화테크윈 주식회사 원격으로 카메라 fpga 배열을 변경하기 위한 시스템 및 카메라 제어 방법
WO2013177310A2 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
US20140165196A1 (en) 2012-05-22 2014-06-12 Xockets IP, LLC Efficient packet handling, redirection, and inspection using offload processors
CN102724478B (zh) 2012-05-25 2015-03-04 张亮 面向公共安全服务的嵌入式移动智能监控系统
US9519506B2 (en) 2012-06-29 2016-12-13 Nokia Technologies Oy Method and apparatus for enabling remote service task based access to functionality provided by one or more remote services
CN103577266B (zh) 2012-07-31 2017-06-23 国际商业机器公司 用于对现场可编程门阵列资源进行分配的方法及系统
US9912517B1 (en) 2012-08-23 2018-03-06 Amazon Technologies, Inc. Optimized deployment and execution of programs in a distributed computing environment
US9304730B2 (en) 2012-08-23 2016-04-05 Microsoft Technology Licensing, Llc Direct communication between GPU and FPGA components
US8977637B2 (en) 2012-08-30 2015-03-10 International Business Machines Corporation Facilitating field programmable gate array accelerations of database functions
US8867545B2 (en) 2012-09-25 2014-10-21 Accedian Networks Inc. Modified Ethernet preamble for inter line card communications in a modular communication chassis
US9160617B2 (en) 2012-09-28 2015-10-13 International Business Machines Corporation Faulty core recovery mechanisms for a three-dimensional network on a processor array
JP6011210B2 (ja) 2012-09-28 2016-10-19 富士通株式会社 ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
US20140115151A1 (en) 2012-10-14 2014-04-24 Empire Technology Development Llc Error-capturing service replacement in datacenter environment for simplified application restructuring
US9317482B2 (en) 2012-10-14 2016-04-19 Microsoft Technology Licensing, Llc Universal FPGA/ASIC matrix-vector multiplication architecture
EP2722767B1 (en) 2012-10-16 2018-03-21 Solarflare Communications Inc Encapsulated accelerator
US8635571B1 (en) 2012-10-19 2014-01-21 Altera Corporation Integrating multiple FPGA designs by merging configuration settings
US9673824B2 (en) 2012-10-26 2017-06-06 Altera Corporation Techniques and circuitry for configuring and calibrating an integrated circuit
EP2918043A1 (en) 2012-11-06 2015-09-16 Alcatel Lucent Network resource allocation in communication networks
US9191993B2 (en) 2012-11-20 2015-11-17 Adc Telecommunications, Inc. Distributed antenna system with uplink bandwidth for signal analysis
US9419859B2 (en) 2012-12-04 2016-08-16 Microsoft Technology Licensing, Llc Service allocation in a distributed computing platform
EP2932648B1 (en) 2012-12-17 2017-02-08 ABB Schweiz AG Method for automatically deploying a network-device configuration
CN103034295B (zh) 2012-12-26 2015-08-12 无锡江南计算技术研究所 输入输出能力增强的可重构微服务器
WO2014116206A1 (en) 2013-01-23 2014-07-31 Empire Technology Development Llc Management of hardware accelerator configurations in a processor chip
US9361416B2 (en) 2013-01-30 2016-06-07 Empire Technology Development Llc Dynamic reconfiguration of programmable hardware
US9990212B2 (en) 2013-02-19 2018-06-05 Empire Technology Development Llc Testing and repair of a hardware accelerator image in a programmable logic circuit
JP5500282B1 (ja) 2013-02-28 2014-05-21 日本電気株式会社 障害修復装置、障害修復方法、及び、障害修復プログラム
US9298484B2 (en) 2013-03-14 2016-03-29 International Business Machines Corporation Encapsulation of an application for virtualization
US9612900B2 (en) 2013-03-15 2017-04-04 SEAKR Engineering, Inc. Centralized configuration control of reconfigurable computing devices
US9477500B2 (en) 2013-03-15 2016-10-25 Avi Networks Managing and controlling a distributed network service platform
US9361393B2 (en) 2013-03-15 2016-06-07 Paypal, Inc. User interface overlay application
US9378065B2 (en) 2013-03-15 2016-06-28 Advanced Elemental Technologies, Inc. Purposeful computing
US10049423B2 (en) 2013-03-18 2018-08-14 Vmware, Inc. Graphics processing unit failure recovery
US9256500B2 (en) 2013-04-12 2016-02-09 Oracle International Corporation Physical domain error isolation and recovery in a multi-domain system
JP6102511B2 (ja) 2013-05-23 2017-03-29 富士通株式会社 集積回路、制御装置、制御方法、および制御プログラム
WO2014189529A1 (en) 2013-05-24 2014-11-27 Empire Technology Development, Llc Datacenter application packages with hardware accelerators
US9497079B2 (en) 2013-06-13 2016-11-15 Sap Se Method and system for establishing, by an upgrading acceleration node, a bypass link to another acceleration node
US8863072B1 (en) 2013-06-19 2014-10-14 Altera Corporation FPGA and OS image build tool
US9195470B2 (en) 2013-07-22 2015-11-24 Globalfoundries Inc. Dynamic data dimensioning by partial reconfiguration of single or multiple field-programmable gate arrays using bootstraps
US8910109B1 (en) 2013-08-12 2014-12-09 Altera Corporation System level tools to support FPGA partial reconfiguration
NL2011315C2 (en) 2013-08-19 2015-02-23 Topic Embedded Systems B V A computing platform, a reconfigurable hardware device and a method for simultaneously executing processes on dynamically reconfigurable hardware device, such as an fpga, as well as instruction set processors, such as a cpu, and a related computer readable medium.
US10140639B2 (en) 2013-08-23 2018-11-27 Empire Technology Development Llc Datacenter-based hardware accelerator integration
US10019260B2 (en) 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
CN105579959B (zh) 2013-09-24 2019-06-07 渥太华大学 硬件加速器虚拟化
US9313134B2 (en) 2013-10-15 2016-04-12 Cisco Technology, Inc. Leveraging hardware accelerators for scalable distributed stream processing in a network environment
US9294097B1 (en) 2013-11-15 2016-03-22 Scientific Concepts International Corporation Device array topology configuration and source code partitioning for device arrays
US8924907B1 (en) 2013-11-25 2014-12-30 Altera Corporation Bitstream verification on embedded processor—FPGA platform
CN103677916A (zh) 2013-12-10 2014-03-26 中国航空工业集团公司第六三一研究所 一种基于fpga的在线重配置系统及方法
CN103645950B (zh) 2013-12-13 2018-05-04 北京奇虎科技有限公司 一种计算机的加速方法和装置
US9286084B2 (en) 2013-12-30 2016-03-15 Qualcomm Incorporated Adaptive hardware reconfiguration of configurable co-processor cores for hardware optimization of functionality blocks based on use case prediction, and related methods, circuits, and computer-readable media
KR20150084098A (ko) * 2014-01-13 2015-07-22 한국전자통신연구원 스트림 데이터 분산 처리 시스템 및 그 방법
US8997033B1 (en) 2014-03-05 2015-03-31 Altera Corporation Techniques for generating a single configuration file for multiple partial reconfiguration regions
JP6308821B2 (ja) 2014-03-13 2018-04-11 キヤノン株式会社 画像処理装置
CN104951353B (zh) 2014-03-28 2018-09-21 华为技术有限公司 一种对vnf实现加速处理的方法及装置
US9576332B1 (en) 2014-06-02 2017-02-21 VCE IP Holding Company LLC Systems and methods for remote graphics processing unit service
US9898795B2 (en) * 2014-06-19 2018-02-20 Vmware, Inc. Host-based heterogeneous multi-GPU assignment
JP6598432B2 (ja) 2014-06-24 2019-10-30 キヤノン株式会社 画像処理装置、その制御方法およびプログラム
US9529882B2 (en) 2014-06-26 2016-12-27 Amazon Technologies, Inc. Coordinated suspension of replication groups
US9619544B2 (en) 2014-06-26 2017-04-11 Amazon Technologies, Inc. Distributed state management using dynamic replication graphs
CN104038570B (zh) 2014-06-27 2018-07-24 曙光信息产业(北京)有限公司 一种数据处理方法及装置
CN105306241B (zh) 2014-07-11 2018-11-06 华为技术有限公司 一种业务部署方法及网络功能加速平台
US20160087849A1 (en) 2014-09-24 2016-03-24 Infinera Corporation Planning and reconfiguring a multilayer network
CN104299466A (zh) 2014-09-25 2015-01-21 浪潮(北京)电子信息产业有限公司 一种基于云计算平台的远程硬件实验方法及系统
US10303644B2 (en) 2014-11-21 2019-05-28 International Business Machines Corporation Providing remote, reliant and high performance PCI express device in cloud computing environments
US9483291B1 (en) 2015-01-29 2016-11-01 Altera Corporation Hierarchical accelerator registry for optimal performance predictability in network function virtualization
CN104699508B (zh) 2015-03-25 2017-08-22 南京大学 云计算平台中快速部署和更新虚拟环境系统及其方法
CN104778083B (zh) * 2015-03-27 2018-07-03 华为技术有限公司 异构多核可重构计算平台上任务调度的方法和装置
US10027543B2 (en) 2015-04-17 2018-07-17 Microsoft Technology Licensing, Llc Reconfiguring an acceleration component among interconnected acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US9983938B2 (en) 2015-04-17 2018-05-29 Microsoft Technology Licensing, Llc Locally restoring functionality at acceleration components
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US9652327B2 (en) 2015-04-17 2017-05-16 Microsoft Technology Licensing, Llc Restoring service acceleration
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US20160308649A1 (en) 2015-04-17 2016-10-20 Microsoft Technology Licensing, Llc Providing Services in a System having a Hardware Acceleration Plane and a Software Plane
US10101981B2 (en) 2015-05-08 2018-10-16 Citrix Systems, Inc. Auto discovery and configuration of services in a load balancing appliance
US9819542B2 (en) 2015-06-26 2017-11-14 Microsoft Technology Licensing, Llc Configuring acceleration components over a network
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
CN105824706B (zh) 2015-12-31 2020-11-06 华为技术有限公司 一种配置加速器的方法和装置
CN107426138A (zh) * 2016-05-23 2017-12-01 杭州仙宇网络科技有限公司 一种加速数据远程访问的方法,服务器设备
US10666507B2 (en) 2017-06-30 2020-05-26 Microsoft Technology Licensing, Llc Automatic reconfiguration of dependency graph for coordination of device configuration

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080279167A1 (en) * 2004-06-18 2008-11-13 Honeywell International Inc. Resource management for ad hoc wireless networks with cluster organizations
US8713574B2 (en) * 2006-06-05 2014-04-29 International Business Machines Corporation Soft co-processors to provide a software service function off-load architecture in a multi-core processing environment
US20100042870A1 (en) * 2008-08-12 2010-02-18 Kabushiki Kaisha Toshiba Multicore processor and method of controlling multicore processor
CN103718201A (zh) * 2011-05-26 2014-04-09 英特尔公司 由多租户服务提供方执行动态平台重新配置
CN103034536A (zh) * 2011-12-12 2013-04-10 微软公司 提高有状态应用的可用性
CN104395886A (zh) * 2012-06-19 2015-03-04 微软公司 多租户中间件云服务技术
US20140101299A1 (en) * 2012-10-06 2014-04-10 International Business Machines Corporation Techniques for implementing information services with tentant specific service level agreements

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
林海略;韩燕波;: "多租户应用的性能管理关键问题研究", 计算机学报, no. 10 *

Also Published As

Publication number Publication date
WO2016168031A1 (en) 2016-10-20
US20190012209A1 (en) 2019-01-10
US20160306674A1 (en) 2016-10-20
CN107533538B (zh) 2020-09-08
US11099906B2 (en) 2021-08-24
CN107533538A (zh) 2018-01-02
US10198294B2 (en) 2019-02-05
EP3283956A1 (en) 2018-02-21

Similar Documents

Publication Publication Date Title
CN107533538B (zh) 在使用加速部件的系统中处理租户要求
US11010198B2 (en) Data processing system having a hardware acceleration plane and a software plane
US11200486B2 (en) Convolutional neural networks on hardware accelerators
US20180349196A1 (en) Implementing a Service Using Plural Acceleration Components
CN107636637B (zh) 用于使用软处理器执行软件线程的系统和方法
EP3283953B1 (en) Providing services in a system having a hardware acceleration plane and a software plane
US10452971B2 (en) Deep neural network partitioning on servers
US11595315B2 (en) Quality of service in virtual service networks
Sedaghat et al. R2T-DSDN: reliable real-time distributed controller-based SDN
GB2578453A (en) Software defined networks
Alam et al. Pro-Edge: A Programmable Edge Network Architecture for Industrial Internet of Things
Ahmed et al. Pro-Edge: A Programmable Edge Network Architecture for Industrial Internet of Things

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination