首页 / 专利库 / 物理 / 加速 / 从解聚架构中的加速器装置提供有效率的结果转移的技术

从解聚架构中的加速器装置提供有效率的结果转移的技术

阅读:338发布:2023-01-28

专利汇可以提供从解聚架构中的加速器装置提供有效率的结果转移的技术专利检索,专利查询,专利分析的服务。并且用于从远程 加速 器装置提供有效率的结果转移的技术包含计算滑撬。计算滑撬发送利用加速器滑撬上的加速器装置的 请求 。该请求包含数据对象,数据对象由加速器装置进行处理来增加与数据对象关联的工作 载荷 的执行速度。计算滑撬还从加速器滑撬接收指示对数据对象的 修改 的修改图。另外,计算滑撬基于修改图确定对数据对象的修改,并在计算滑撬的 存储器 装置中应用对数据对象的修改。,下面是从解聚架构中的加速器装置提供有效率的结果转移的技术专利的具体信息内容。

1.一种计算滑撬,包括:
存储器装置;
网络接口控制器,所述网络接口控制器耦合到所述存储器装置,其中所述网络接口控制器包含修改逻辑单元以:
发送利用加速器滑撬上的加速器装置的请求,其中所述请求包含数据对象,所述数据对象要由所述加速器装置进行处理以增加与所述数据对象关联的工作载荷的执行速度;
从所述加速器滑撬接收修改图,其中所述修改图指示对所述数据对象的修改;
基于所述修改图确定对所述数据对象的所述修改;以及
在所述存储器装置中应用对所述数据对象的所述修改。
2.如权利要求1所述的计算滑撬,其中发送所述请求包括发送指示要由所述加速器装置对所述数据对象执行的功能的数据。
3.如权利要求2所述的计算滑撬,其中发送指示要执行的功能的所述数据包括发送定义所述要执行的功能的位流。
4.如权利要求2所述的计算滑撬,其中发送指示要执行的功能的所述数据包括发送要用于将所述加速器装置配置成执行所述功能的位流的标识符。
5.如权利要求2所述的计算滑撬,其中发送指示要执行的功能的所述数据包括发送指示以下功能中的一个或更多个的数据:加密功能、数据压缩功能、域变换功能或数据重新格式化功能。
6.如权利要求1所述的计算滑撬,其中接收修改图包括接收指示所述数据对象的已经被修改的部分的位图。
7.如权利要求6所述的计算滑撬,其中接收所述位图包括接收进一步指示对所述数据对象的每个修改部分进行的修改的类型的位图。
8.如权利要求6所述的计算滑撬,其中所述修改逻辑单元进一步按所述数据对象的大小的函数来确定每个部分的大小。
9.如权利要求1所述的计算滑撬,其中应用所述修改包括用由所述加速器滑撬提供的修改数据来改写所述数据对象的一部分。
10.如权利要求1所述的计算滑撬,其中应用所述修改包括在所述数据对象的一部分中插入由所述加速器滑撬提供的数据。
11.如权利要求1所述的计算滑撬,其中应用所述修改包括删除所述数据对象的一部分。
12.如权利要求1所述的计算滑撬,其中所述计算滑撬进一步包括非易失性存储器,并且所述修改逻辑单元进一步将所述修改图写到所述非易失性存储器。
13.一种计算滑轨,包括:
用于用计算滑撬的网络接口控制器来发送利用加速器滑撬上的加速器装置的请求的电路,其中所述请求包含数据对象,所述数据对象要由所述加速器装置进行处理来增加与所述数据对象关联的工作载荷的执行速度;
用于从所述加速器滑撬接收修改图的电路,其中所述修改图指示对所述数据对象的修改;
用于基于所述修改图确定对所述数据对象的所述修改的部件;以及
用于在所述计算滑撬的存储器装置中应用对所述数据对象的所述修改的部件。
14.如权利要求13所述的计算滑轨,其中用于发送所述请求的电路包括用于发送指示要由所述加速器装置对所述数据对象执行的功能的数据的电路。
15.如权利要求14所述的计算滑轨,其中用于发送指示要执行的功能的所述数据的电路包括用于发送定义要执行的所述功能的位流的电路。
16.如权利要求14所述的计算滑轨,其中用于发送指示要执行的功能的所述数据的电路包括用于发送要用于将所述加速器装置配置成执行所述功能的位流的标识符的电路。
17.如权利要求14所述的计算滑轨,其中用于发送指示要执行的功能的所述数据的电路包括用于发送指示以下功能中的一个或更多个的数据的电路:加密功能、数据压缩功能、域变换功能或数据重新格式化功能。
18.如权利要求13所述的计算滑轨,其中用于接收修改图的电路包括用于接收指示所述数据对象的已经被修改的部分的位图的电路。
19.如权利要求18所述的计算滑轨,其中用于接收所述位图的电路包括用于接收进一步指示对所述数据对象的每个修改部分进行的修改的类型的位图的电路。
20.如权利要求18所述的计算滑轨,进一步包括用于按所述数据对象的大小的函数来确定每个部分的大小的电路。
21.如权利要求13所述的计算滑轨,其中用于应用所述修改的部件包括用于用由所述加速器滑撬提供的修改数据来改写所述数据对象的一部分的电路。
22.如权利要求13所述的计算滑轨,其中用于应用所述修改的部件包括用于在所述数据对象的一部分中插入由所述加速器滑撬提供的数据的电路。
23.如权利要求13所述的计算滑轨,其中用于应用所述修改的部件包括用于删除所述数据对象的一部分的电路。
24.如权利要求13所述的计算滑轨,进一步包括用于将所述修改图写到非易失性存储器的电路。
25.一种方法,包括:
由计算滑撬的网络接口控制器的修改逻辑单元发送利用加速器滑撬上的加速器装置的请求,其中所述请求包含数据对象,所述数据对象要由所述加速器装置进行处理以增加与所述数据对象关联的工作载荷的执行速度;
由所述修改逻辑单元从所述加速器滑撬接收修改图,其中所述修改图指示对所述数据对象的修改;
由所述修改逻辑单元基于所述修改图确定对所述数据对象的所述修改;以及由所述修改逻辑单元在存储器装置中应用对所述数据对象的所述修改。

说明书全文

从解聚架构中的加速器装置提供有效率的结果转移的技术

[0001] 相关申请的交叉参考本申请要求2017年8月30日提交的印度临时专利申请No.201741030632和2017年11月
10日提交的美国临时专利申请No.62/584,401的权益。

背景技术

[0002] 在一些数据中心中,计算装置可通过网络将数据对象(例如要对其操作的数据集合)发送到加速器装置(例如能够比通用处理器更快地对数据集合执行功能的装置或电路),诸如现场可编程阵列(FPGA)。在对数据对象操作之后,加速器装置可通过网络将数据对象的处理过的版本发送回计算装置。虽然将与工作载荷(例如应用)关联的某些数据集合的处理从通用计算装置卸载到加速器装置一般可提供速度增加,但由通过网络发送相对大数据对象引起的延迟可减小速度增加,否则速度增加将从利用加速器装置中获得。附图说明
[0003] 本文描述的概念在附图中作为示例而不作为限制被示出。为了示出的简洁和清晰,在图中示出的元件不一定按比例绘制。视情况而定,引用标记已经在图之间被重复以指示对应的或类似的元件。
[0004] 图1是对于用解聚资源(disaggregated resource)执行工作载荷的数据中心的至少一个实施例的简化框图;图2是图1的数据中心的舱(pod)的至少一个实施例的简化框图;
图3是可被包含在图2的舱中的支架的至少一个实施例的透视图;
图4是图3的支架的侧平面正视图;
图5是其中安装了滑撬(sled)的图3支架的透视图;
图6是图5的滑撬的顶侧的至少一个实施例的简化框图;
图7是图6的滑撬的底侧的至少一个实施例的简化框图;
图8是可用在图1的数据中心中的计算滑撬的至少一个实施例的简化框图;
图9是图8的计算滑撬的至少一个实施例的顶透视图;
图10是可用在图1的数据中心中的加速器滑撬的至少一个实施例的简化框图;
图11是图10的加速器滑撬的至少一个实施例的顶透视图;
图12是可用在图1的数据中心中的存储装置滑撬的至少一个实施例的简化框图;
图13是图12的存储装置滑撬的至少一个实施例的顶透视图;
图14是可用在图1的数据中心中的存储器滑撬的至少一个实施例的简化框图;以及图15是可在图1的数据中心内建立的用于用由解聚资源构成的管理的节点来执行工作载荷的系统的简化框图;
图16是用于从加速器装置提供有效率的结果转移的系统的至少一个实施例的简化框图;
图17是图16的系统的计算滑撬的至少一个实施例的简化框图;
图18是图16的系统的加速器滑撬的至少一个实施例的简化框图;
图19是可由图16和17的计算滑撬建立的环境的至少一个实施例的简化框图;
图20是可由图16和18的加速器滑撬建立的环境的至少一个实施例的简化框图;
图21-23是可由图16和图17的计算滑撬执行的用于从加速器装置提供有效率的结果转移的方法的至少一个实施例的简化流程图;以及
图24-25是可由图16和图18的加速器滑撬执行的用于从远程加速器装置提供的有效率的结果转移的方法的至少一个实施例的简化流程图。

具体实施方式

[0005] 虽然本公开的概念易受各种修改和备选形式的影响,但其特定实施例已经在附图中作为示例被示出,并且将在本文中被详细描述。然而,应该理解到,没有意图将本公开的概念限制于所公开的具体形式,而是相反,本发明要涵盖与本公开和所附权利要求书一致的所有修改、等效和备选。
[0006] 在说明书中对“一个实施例”、“一实施例”、“说明性实施例”等的引用指示所描述的实施例可包含具体特征、结构或特性,但每一个实施例可包含或者可能不一定包含该具体特征、结构或特性。而且,此类短语不一定指的是同一实施例。另外,当具体特征、结构或特性结合一实施例进行描述时,不管是否被明确描述,结合其它实施例来实现此类特征、结构或特性被认为在本领域技术人员的知识范围内。此外,应该认识到,以“至少一个A、B和C”形式的列表中包含的项能意味着(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中至少一个”形式的列表中包含的项可意味着(A);(B);(C);(A和B);(A和C);(B和C);或(A, B和C)。
[0007] 所公开的实施例在一些情况下可以用硬件固件软件或它们的任何组合来实现。所公开的实施例也可实现为由易失性或非易失性机器可读(例如计算机可读)存储介质携带的或存储在所述易失性或非易失性机器可读存储介质上的指令,所述指令可由一个或更多个处理器读取和执行。机器可读存储介质可被实施为用于以由机器可读的形式对信息进行存储或传送的任何存储装置、机构或其它物理结构(例如易失性或非易失性存储器、媒体盘或其它媒体装置)。
[0008] 在附图中,一些结构性或方法特征可在特定布置和/或排序中示出。然而,应该认识到,此类特定布置和/或排序可以不是必需的。而是,在一些实施例中,此类特征可按与说明性图中示出的不同的方式和/或次序来布置。此外,在具体图中包含结构性或方法特征不意图暗示此类特征在所有实施例中都是必需的,并且在一些实施例中,此类特征可能不被包含,或者可与其它特征组合。
[0009] 现在参考图1,解聚资源可在其中合作执行一个或更多个工作载荷(例如代表顾客的应用)的数据中心100包含多个舱110、120、130、140,其中的每个舱都包含一行或更多行支架。如本文更详细描述的,每个支架容纳多个滑撬,每个滑撬可被实施为主要配备有具体类型的资源(例如存储器装置、数据存储装置、加速器装置、通用处理器)的计算装置(诸如服务器)。在说明性实施例中,每个舱110、120、130、140中的滑撬连接到多个舱交换机(例如将数据通信路由往和来于舱内的滑撬的交换机)。舱交换机进而与脊柱交换机150连接,脊柱交换机150交换在数据中心100中的舱(例如舱110、120、130、140)之中的通信。在一些实施例中,滑撬可使用英特尔全路径技术与结构连接。如本文更详细描述的,数据中心100中的滑撬内的资源可被分配给含有来自要在工作载荷的执行中共同利用的一个或更多个其它滑撬的资源的组(在本文称为“管理的节点”)。工作载荷能好像属于管理的节点的资源位于同一滑撬上那样被执行。管理的节点中的资源甚至可归于属于不同支架并且甚至属于不同舱110、120、130、140的滑撬。单个滑撬的某些资源可被分配给一个管理的节点,而同一滑撬的其它资源被分配给不同管理的节点(例如一个处理器指配给一个管理的节点和同一滑撬的另一处理器指配给不同管理的节点)。通过将资源解聚成主要由单个类型的资源构成的滑撬(例如主要包括计算资源的计算滑撬、主要含有存储器资源的存储器滑撬),并且选择性地分配和取消分配解聚的资源以形成被指配用于执行工作载荷的管理的节点,数据中心100在由含有计算、存储器、存储装置可能还有附加资源的超会聚服务器构成的典型数据中心上提供更有效率的资源使用。因此,数据中心100可比具有相同数量资源的典型数据中心提供更好的性能(例如吞吐量、每秒的操作、时延等)。
[0010] 现在参考图2,在说明性实施例中,舱110包含支架240的行200、210、220、230的集合。如本文更详细描述的,每个支架240可容纳多个滑撬(例如16个滑撬),并且向容纳的滑撬提供功率和数据连接。在说明性实施例中,每行200、210、220、230中的支架连接到多个舱交换机250、260。舱交换机250包含舱110的支架的滑撬连接到的一组端口252以及将舱110连接到脊柱交换机150以提供到数据中心100中其它舱的连接性的另一组端口254。类似地,舱交换机260包含舱110的支架的滑撬连接到的一组端口262以及将舱110连接到脊柱交换机150的另一组端口264。因此,该对交换机250、260的使用向舱110提供大量冗余。例如,如果交换机250、260中的任一个故障,则舱110中的滑撬仍可通过另一交换机250、260维持与数据中心100的剩余部分(例如其它舱的滑撬)的数据通信。另外,在说明性实施例中,交换机150、250、260可被实施为双模式光学交换机,能够经由光纤的光学信令介质将携带因特网协议(IP)分组的因特网协议通信和根据第二高性能链路层协议(例如英特尔的全路径架构,无限带)的通信两者进行路由。
[0011] 应该认识到,其它舱120、130、140中的每个舱(以及数据中心100的任何附加舱)可类似地被结构化为在图2中示出的并且关于图2描述的舱110,并且具有类似于舱110的组件(例如每个舱可具有如上所述容纳多个滑撬的支架的行)。此外,虽然示出了两个舱交换机250、260,但应该理解到,在其它实施例中,每个舱110、120、130、140可连接到不同数量的舱交换机(例如提供甚至更多故障转移(failover)能)。
[0012] 现在参考图3-5,数据中心100的每个说明性支架240包含两个延长的支柱302、304,它们垂直布置。例如,延长的支柱302、304当部署时可从数据中心100的地板向上延伸。
如下面所描述的,支架240还包含配置成支撑数据中心100滑撬的一对或更多对310平延长的支臂312(在图3中经由虚线椭圆标识)。该对延长的支臂312的一个延长的支臂312从延长的支柱302向外延伸,并且另一延长的支臂312从延长的支柱304向外延伸。
[0013] 在说明性实施例中,数据中心100的每个滑撬被示出为无底盘滑撬。也就是,每个滑撬具有其上安装了物理资源(例如处理器、存储器、加速器、存储装置等)的无底盘电路板衬底,如下面更详细论述的。因此,支架240配置成接收无底盘滑撬。例如,每对310延长的支臂312定义支架240的滑撬槽320,其配置成接收对应的无底盘滑撬。为了这么做,每个说明性延长的支臂312包含配置成接收滑撬的无底盘电路板衬底的电路板导轨330。每个电路板导轨330被固定到或以别的方式安装到对应延长的支臂312的顶侧332。例如,在说明性实施例中,每个电路板导轨330被安装在对应延长的支臂312的相对于对应延长的支柱302、304的远端。为了图的清晰起见,不是每一个电路板导轨330在每幅图中都可提及。
[0014] 每个电路板导轨330包含内壁,其定义配置成当滑撬400在支架240的对应滑撬槽320中被接收时接收滑撬400的无底盘电路板衬底的电路板槽380。为了这么做,如图4中所示,用户(或机器人)将说明性无底盘滑撬400的无底盘电路板衬底与滑撬槽320对齐。用户或机器人然后可将无底盘电路板衬底向前滑进到滑撬槽320中,使得无底盘电路板衬底的每个侧边414被接收在定义对应滑撬槽320的该对310延长的支臂312的电路板导轨330的对应电路板槽380中,如图4中所示。通过具有包括解聚资源的机器人可访问并且机器人可操纵的滑撬,每种类型的资源能独立于彼此并以它们自己的最优刷新率被升级。另外,滑撬配置成与每个支架240中的功率和数据通信线缆盲配对,增强它们的被快速移除、升级、重新安装和/或替代的能力。因此,在一些实施例中,数据中心100可在没有在数据中心层上的人工参与的情况下进行操作(例如执行工作载荷、经历维护和/或升级等)。在其它实施例中,人可以促进数据中心100中的一个或更多个维护或升级操作。
[0015] 应该认识到,每个电路板导轨330是双侧的。也就是,每个电路板导轨330包含在电路板导轨330的每侧上定义电路板槽380的内壁。用这种方式,每个电路板导轨330能在每一侧上支撑无底盘电路板衬底。因此,可向支架240增加单个附加的延长的支柱,以将支架240变成双支架解决方案,其能容下的滑撬槽320是图3中所示的滑撬槽320两倍。说明性支架240包含七对310延长的支臂312,它们定义对应的七个滑撬槽320,每个滑撬槽配置成接收并支撑对应的滑撬400,如上面所论述的。当然,在其它实施例中,支架240可包含附加或更少对310延长的支臂312(即附加或更少滑撬槽320)。应该认识到,因为滑撬400是无底盘的,因此滑撬400可具有不同于典型服务器的总高度。因此,在一些实施例中,每个滑撬槽320的高度可短于典型服务器的高度(例如短于单个排单元“1U”)。也就是,在每对310延长的支臂
312之间的垂直距离可小于标准支架单元“1U”。此外,由于滑撬槽320的高度中的相对减小,支架240的总高度在一些实施例中可比传统支架外壳的高度短。例如,在一些实施例中,每一个延长的支柱302、304可具有6英尺或更小的长度。再者,在其它实施例中,支架240可具有不同尺寸。另外,应该认识到,支架240不包含任何壁、外壳、或诸如此类。而且,支架240是对本地环境开放的无外壳支架。当然,在一些情况下,在支架240形成数据中心100中的行尾支架的那些情形下,端板可附连到延长的支柱302、304之一。
[0016] 在一些实施例中,各种互连可通过延长的支柱302、304向上或向下路由。为了促进此类路由,每个延长的支柱302、304包含定义其中可定位互连的内部腔室的内壁。通过延长的支柱302、304路由的互连可被实施为任何类型的互连,包含但不限于向每个滑撬槽320提供通信连接的数据或通信互连、向每个滑撬槽320提供功率的功率互连和/或其它类型互连。
[0017] 在说明性实施例中,支架240包含支撑平台,对应光学数据连接器(未示出)被安装所述支撑平台上。每个光学数据连接器与对应滑撬槽320关联,并且配置成当滑撬400被接收于对应滑撬槽320中时与对应滑撬400的光学数据连接器配对。在一些实施例中,数据中心100中的组件(例如滑撬、支架和交换机)之间的光学连接用盲配对光学连接进行。例如,每个线缆上的门可防止灰尘污染线缆内部的光纤。在连接到盲配对光学连接器机构的过程中,当线缆末端进入连接器机构时,门被推开。随后,线缆内部的光纤进入连接器机构内的凝胶,并且一个线缆的光纤开始与连接器机构内部的凝胶内的另一线缆的光纤接触
[0018] 说明性支架240还包含耦合到支架240的交叉支臂的扇阵列370。风扇阵列370包含一行或更多行冷却风扇372,它们在延长的支柱302、304之间的水平线中对齐。在说明性实施例中,风扇阵列370对于支架240的每个滑撬槽320都包含一行冷却风扇372。如上面所论述的,在说明性实施例中,每个滑撬400都不包含任何板载的冷却系统,并且因此,风扇阵列370为在支架240中接收的每个滑撬400提供冷却。在说明性实施例中,每个支架240还包含与每个滑撬槽320关联的电源。每个电源被固定到定义对应滑撬槽320的该对310延长的支臂312的其中一个延长的支臂312。例如,支架240可包含耦合到或固定到从延长的支柱302延伸的每个延长的支臂312的电源。每个电源包含配置成当滑撬400被接收于对应滑撬槽320中时与滑撬400的功率连接器配对的功率连接器。在说明性实施例中,滑撬400不包含任何板载的电源,并且因此,支架240中提供的电源当对应滑撬400被安装到支架240时向对应滑撬400供电。
[0019] 现在参考图6,在说明性实施例中,滑撬400配置成如上面所论述的被安装在数据中心100的对应支架240中。在一些实施例中,每个滑撬400可被优化或以别的方式配置用于执行具体任务,诸如计算任务、加速任务、数据存储任务等。例如,滑撬400可被实施为下面关于图8-9所论述的计算滑撬800、下面关于图10-11所论述的加速器滑撬1000、下面关于图12-13所论述的存储装置滑撬1200、或者被优化或以别的方式配置成执行其它专门任务的滑撬(诸如存储器滑撬1400)(下面关于图14被论述)。
[0020] 如上面所论述的,说明性滑撬400包含无底盘电路板衬底602,其支撑安装在其上的各种物理资源(例如电气组件)。应该认识到,电路板衬底602是“无底盘的”,在于滑撬400不包含机壳或外壳。而是,无底盘电路板衬底602对本地环境开放。无底盘电路板衬底602可由能够支撑安装在其上的各种电气组件的任何材料形成。例如,在说明性实施例中,无底盘电路板衬底602由FR-4玻璃增强环树脂层压材料形成。当然,在其它实施例中,可使用其它材料形成无底盘电路板衬底602。
[0021] 如下面更详细论述的,无底盘电路板衬底602包含改进安装在无底盘电路板衬底602上的各种电器组件的热冷却特性的多个部件。如所论述的,无底盘电路板衬底602不包含机壳或外壳,这可通过减少可能抑制空气流动的那些结构来改进滑撬400的电气组件上的空气流动。例如,因为无底盘电路板衬底602未定位在单独机壳或外壳中,所以没有到无底盘电路板衬底602的背板(例如底盘的背板),所述背板可能抑制电气组件上的空气流动。
此外,无底盘电路板衬底602具有配置成减少跨安装到无底盘电路板衬底602的电气组件上的空气流动路径的长度的几何形状。例如,说明性无底盘电路板衬底602具有大于无底盘电路板衬底602的深度606的宽度604。在一个具体实施例中,例如,无底盘电路板衬底602具有大约21英寸的宽度和大约9英寸的深度,与具有大约17英寸的宽度和大约39英寸的深度的典型服务器形成对比。因此,从无底盘电路板衬底602的前缘610延伸向后缘612的空气流动路径608相对于典型服务器具有更短距离,这可改进滑撬400的热冷却特性。更进一步,尽管在图6中未示出,但安装到无底盘电路板衬底602的各种物理资源被安装在对应位置,使得没有两个实质上发热的电气组件彼此遮蔽(如下面更详细论述的)。也就是,没有两个在操作期间产生可观热量(即充分大于标称热量足以负面影响另一电气组件冷却)的电气组件沿气流流动路径608的方向(即沿从无底盘电路板衬底602的前缘610延伸向后缘612的方向)彼此线性成行地被安装到无底盘电路板衬底602。
[0022] 如上面所论述的,说明性滑撬400包含安装到无底盘电路板衬底602的顶侧650的一个或更多个物理资源620。尽管在图6中示出了两个物理资源620,但应该认识到,在其它实施例中,滑撬400可包含一个、两个或更多个物理资源620。物理资源620可被实施为任何类型的处理器、控制器或能够执行各种任务(诸如计算功能和/或例如取决于滑撬400的类型或预计功能性来控制滑撬400的功能)的其它计算电路。例如,如下面更详细论述的,物理资源620在滑撬400被实施为计算滑撬的实施例中可被实施为高性能处理器,在滑撬400被实施为加速器滑撬的实施例中可被实施为加速器协处理器或电路,在滑撬400被实施为存储装置滑撬的实施例中被实施为存储装置控制器、或者在滑撬400被实施为存储器滑撬的实施例中被实施为存储器装置的集合。
[0023] 滑撬400还包含安装到无底盘电路板衬底602的顶侧650的一个或更多个附加物理资源630。在说明性实施例中,附加物理资源包含如下面更详细论述的网络接口控制器(NIC)。当然,取决于滑撬400的类型和功能性,在其它实施例中,物理资源630可包含附加或其它电气组件、电路和/或装置。
[0024] 物理资源620经由输入/输出(I/O)子系统622通信地耦合到物理资源630。I/O子系统622可被实施为用于促进与滑撬400的物理资源620、物理资源630和/或其它组件的输入/输出操作的电路和/或组件。例如,I/O子系统622可被实施为或以别的方式包含用于促进输入/输出操作的存储器控制器中枢、输入/输出控制中枢、集成传感器中枢、固件装置、通信链路(例如点对点链路、总线链路、导线、线缆、光导、印刷电路板迹线等)、和/或其它组件和子系统。在说明性实施例中,I/O子系统622被示出为或以别的方式包含双倍数据率4(DDR4)数据总线或DDR5数据总线。
[0025] 在一些实施例中,滑撬400还可包含资源对资源互连624。资源对资源互连624可被实施为能够促进资源对资源通信的任何类型的通信互连。在说明性实施例中,资源对资源互连624被实施为高速点对点互连(例如比I/O子系统622快)。例如,资源对资源互连624可被实施为快速路径互连(QPI)、超路径互连(UPI)或者专用于资源对资源通信的其它高速点对点互连。
[0026] 滑撬400还包含配置成当滑撬400被安装在对应支架240中时与支架240的对应功率连接器配对的功率连接器640。滑撬400经由功率连接器640从支架240的电源接收功率以向滑撬400的各种电气组件供电。也就是,滑撬400不包含用于向滑撬400的电气组件提供功率的任何本地电源(即板载的电源)。本地或板载的电源的排除促进了无底盘电路板衬底602的总占用面积(footprint)的减少,这如上面所论述的可增加安装在无底盘电路板衬底
602上的各种电气组件的热冷却特性。在一些实施例中,功率通过直接在处理器820下面的通孔(例如通过无底盘电路板衬底602的底侧750)被提供给处理器820,提供增加的热预算、附加的电流和/或电压、以及在典型电路板之上的更好的电压控制。
[0027] 在一些实施例中,滑撬400还可包含配置成与机器人的安装臂或其它结构配对以促进机器人将滑撬600放置在支架240中的安装部件642。安装部件642可被实施为允许机器人抓住滑撬400而不破坏无底盘电路板衬底602或安装到其上的电气组件的任何类型的物理结构。例如,在一些实施例中,安装部件642可被实施为附连到无底盘电路板衬底602的不导电焊盘。在其它实施例中,安装部件可被实施为附连到无底盘电路板衬底602的托架、夹子或其它类似结构。安装部件642的具体数量、形状、大小、和/或组成可取决于配置成管理滑撬400的机器人的设计。
[0028] 现在参考图7,除了安装在无底盘电路板衬底602的顶侧650上的物理资源630之外,滑撬400还包含安装到无底盘电路板衬底602的底侧750的一个或更多个存储器装置720。也就是,无底盘电路板衬底602被实施为双侧电路板。物理资源620经由I/O子系统622通信地耦合到存储器装置720。例如,物理资源620和存储器装置720可由延伸穿过无底盘电路板衬底602的一个或更多个通孔来通信地耦合。在一些实施例中,每个物理资源620可以通信地耦合到一个或更多个存储器装置720的不同集合。备选地,在其它实施例中,每个物理资源620可以通信地耦合到每个存储器装置720。
[0029] 存储器装置720可被实施为能够在滑撬400的操作期间存储用于物理资源620的数据的任何类型的存储器装置,诸如任何类型的易失性存储器(例如动态随机存取存储器(DRAM)等)或非易失性存储器。易失性存储器可以是需要功率来维持由介质存储的数据的状态的存储介质。易失性存储器的非限制示例可包含各种类型的随机存取存储器(RAM),诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。可用在存储器模中的一个具体类型的DRAM是同步动态随机存取存储器(SDRAM)。在具体实施例中,存储器组件的DRAM可符合由JEDEC颁布的标准,诸如对于DDR SDRAM的JESD79F、对于DDR2 SDRAM的JESD79-2F、对于DDR3 SDRAM的JESD79-3F、对于DDR4 SDRAM的JESD79-4A、对于低功率DDR(LPDDR)的JESD209、对于LPDDR2的JESD209-2、对于LPDDR3的JESD209-3、以及对于LPDDR4的JESD209-4(这些标准可在www.jedec.org得到)。此类标准(以及类似标准)可被称为基于DDR的标准,并且实现此类标准的存储装置的通信接口可被称为基于DDR的接口。
[0030] 在一个实施例中,存储器装置是块可寻址存储器装置,诸如基于NAND或NOR技术的那些存储器装置。存储器装置还可包含下一代非易失性装置,诸如英特尔3D XPointTM存储器或其它字节可寻址原地写(write-in-place)的非易失性存储器装置。在一个实施例中,存储器装置可以是或者可包含使用硫属玻璃的存储器装置、多阈级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、阻性存储器、纳米线存储器、电晶体管随机存取存储器(FeTRAM)、反铁电存储器、结合了忆阻器技术的磁阻随机存取存储器(MRAM)存储器、包含金属氧化物基、氧空缺基和导电桥随机存取存储器(CB-RAM)的阻性存储器、或者自旋转移扭矩(STT)-MRAM、基于电子自旋磁结存储器的装置、基于磁遂穿结(MTJ)的装置、基于DW(畴壁)和SOT(自旋轨道转移)的装置、基于晶闸管的存储器装置、或者上面任何的组合、或者其它存储器。存储器装置可指的是管芯本身和/或指的是封装的存储器产品。在一些实施例中,存储器装置可包括无晶体管可堆叠交叉点架构,其中存储器单元位于字线和位线的交点处,并且是单独可寻址的,并且其中位存储基于体积电阻的改变。
[0031] 现在参考图8,在一些实施例中,滑撬400可被实施为计算滑撬800。计算滑撬800被优化或以别的方式配置成执行计算任务。当然,如上面所论述的,计算滑撬800可依赖于其它滑撬(诸如加速滑撬和/或存储装置滑撬)来执行此类计算任务。计算滑撬800包含类似于滑撬400的物理资源的各种物理资源(例如电气组件),它们在图8中已经使用相同引用号码标识了。上面关于图6和图7提供的此类组件的描述适用于计算滑撬800的对应组件,并且为了计算滑撬800描述的清晰起见,在本文不被重复。
[0032] 在说明性计算滑撬800中,物理资源620被实施为处理器820。尽管在图8中仅示出了两个处理器820,但应该认识到,在其它实施例中,计算滑撬800可包含附加处理器820。说明性地,处理器820被实施为高性能处理器820,并且可配置成以相对高的额定功率进行操作。尽管以比典型处理器(其以大约155-230W操作)大的额定功率进行操作的处理器820生成附加热量,但上面论述的无底盘电路板衬底602的增强热冷却特性促进较高功率操作。例如,在说明性实施例中,处理器820配置成以至少250W的额定功率进行操作。在一些实施例中,处理器820可配置成以至少350 W的额定功率进行操作。
[0033] 在一些实施例中,计算滑撬800还可包含处理器对处理器互连842。类似于上面论述的滑撬400的资源对资源互连624,处理器对处理器互连842可被实施为能够促进处理器对处理器互连842通信的任何类型的通信互连。在说明性实施例中,处理器对处理器互连842被实施为高速点对点互连(例如比I/O子系统622快)。例如,处理器对处理器互连842可被实施为快速路径互连(QPI)、超路径互连(UPI)或者专用于处理器对处理器通信的其它高速点对点互连。
[0034] 计算滑撬800还包含通信电路830。说明性通信电路830包含网络接口控制器(NIC)832,其也可被称为主机结构接口(HFI)。NIC 832可被实施为或者以别的方式包含任何类型的集成电路、离散电路、控制器芯片、芯片集、内插板、子卡、网络接口卡、可由计算滑撬800用于与另一计算装置(例如与其它滑撬400)连接的其它装置。在一些实施例中,NIC 832可被实施为包含一个或更多个处理器的片上系统(SoC)的一部分,或者包含在也含有一个或更多个处理器的多芯片封装上。在一些实施例中,NIC 832可包含本地处理器(未示出)和/或本地存储器(未示出),它们对NCI 832都是本地的。在此类实施例中,NIC 832的本地处理器可以能够执行处理器820的功能中的一个或更多个功能。附加地或备选地,在此类实施例中,NIC 832的本地存储器可在板级、插口(socket)级、芯片级和/或其它级集成到计算滑撬的一个或更多个组件中。
[0035] 通信电路830通信地耦合到光学数据连接器834。光学数据连接器834配置成当计算滑撬800被安装在支架240中时与支架240的对应光学数据连接器配对。说明性地,光学数据连接器834包含多个光纤,其从光学数据连接器834的配对表面引到光学收发器836。光学收发器836配置成将来自支架侧光学数据连接器的传入的光学信号转换成电气信号,和将电气信号转换成向支架侧光学数据连接器的传出的光学信号。尽管在说明性实施例中示出为形成光学数据连接器834的一部分,但在其它实施例中光学收发器836可形成通信电路830的一部分。
[0036] 在一些实施例中,计算滑撬800还可包含扩充连接器840。在此类实施例中,扩充连接器840配置成与扩充无底盘电路板衬底的对应连接器配对,以向计算滑撬800提供附加物理资源。附加物理资源可例如由处理器820在计算滑撬800操作期间使用。扩充无底盘电路板衬底可基本上类似于上面论述的无底盘电路板衬底602,并且可包含安装到其上的各种电气组件。安装到扩充无底盘电路板衬底的具体电气组件可取决于扩充无底盘电路板衬底的预计功能性。例如,扩充无底盘电路板衬底可提供附加计算资源、存储器资源、和/或存储装置资源。因此,扩充无底盘电路板衬底的附加物理资源可包含但不限于处理器、存储器装置、存储装置、和/或加速器电路,包含例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、安全性协处理器、图形处理单元(GPU)、机器学习电路、或者其它专门处理器、控制器、装置、和/或电路。
[0037] 现在参考图9,示出了计算滑撬800的说明性实施例。如所示,处理器820、通信电路830和光学数据连接器834被安装到无底盘电路板衬底602的顶侧650。可使用任何适合的附连或安装技术将计算滑撬800的物理资源安装到无底盘电路板衬底602。例如,各种物理资源可被安装在对应插口(例如处理器插口)、支托或托架中。在一些情况下,其中一些电气组件可经由焊接或类似技术直接安装到无底盘电路板衬底602。
[0038] 如上面所论述的,各个处理器820和通信电路830被安装到无底盘电路板衬底602的顶侧650,使得没有两个发热的电气组件彼此遮蔽。在说明性实施例中,处理器820和通信电路830被安装在无底盘电路板衬底602的顶侧650上的对应位置,使得那些物理资源中的没有两个沿空气流动路径608的方向与其它的物理资源线性成行。应该认识到,尽管光学数据连接器834与通信电路830成行,但光学数据连接器834在操作期间不产生热量或者产生标称热量。
[0039] 计算滑撬800的存储器装置720被安装到上面关于滑撬400所论述的无底盘电路板衬底602的底侧750。尽管安装到底侧750,但存储器装置720经由I/O子系统622通信地耦合到位于顶侧650上的处理器820。因为无底盘电路板衬底602被实施为双侧电路板,因此存储器装置720和处理器820可以通信地由一个或更多个通孔、连接器或延伸穿过无底盘电路板衬底602的其它机构耦合。当然,在一些实施例中,每个处理器820可以通信地耦合到一个或更多个存储器装置720的不同集合。备选地,在其它实施例中,每个处理器820可以通信地耦合到每个存储器装置720。在一些实施例中,存储器装置720可被安装到无底盘电路板衬底602的底侧上的一个或更多个存储器夹层,并且可通过球栅阵列与对应处理器820互连。
[0040] 每一个处理器820都包含固定到其上的散热器(heatsink)850。由于存储器装置720安装到无底盘电路板衬底602的底侧750(以及对应支架240中的滑撬400的垂直间距),无底盘电路板衬底602的顶侧650包含促进相对典型服务器中使用的传统散热器具有较大大小的散热器850的使用的附加“自由”区域或空间。此外,由于无底盘电路板衬底602的改进的热冷却特性,处理器散热器850都不包含附连到其上的冷却风扇。也就是,每一个散热器850都被实施为无风扇散热器。
[0041] 现在参考图10,在一些实施例中,滑撬400可被实施为加速器滑撬1000。加速器滑撬1000被优化或以别的方式配置成执行专门计算任务,诸如机器学习、加密、散列或其它计算密集任务。在一些实施例中,例如,计算滑撬800可在操作期间将任务卸载到加速器滑撬1000。加速器滑撬1000包含类似于滑撬400和/或计算滑撬800的各种组件,它们在图10中已经使用相同引用号码标识了。上面关于图6、7和8提供的此类组件的描述适用于加速器滑撬
1000的对应组件,并且为了加速器滑撬1000描述的清晰起见,在本文不被重复。
[0042] 在说明性加速器滑撬1000中,物理资源620被实施为加速器电路1020。尽管在图10中仅示出了两个加速器电路1020,但应该认识到,在其它实施例中,加速器滑撬1000可包含附加加速器电路1020。例如,如图11中所示,在一些实施例中,加速器滑撬1000可包含4个加速器电路1020。加速器电路1020可被实施为任何类型的处理器、协处理器、计算电路、或能够执行计算或处理操作的其它装置。例如,加速器电路1020可被实施为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、安全性协处理器、图形处理单元(GPU)、机器学习电路、或者其它专门处理器、控制器、装置、和/或电路。
[0043] 在一些实施例中,加速器滑撬1000还可包含加速器对加速器互连1042。类似于上面论述的滑撬600的资源对资源互连624,加速器对加速器互连1042可被实施为能够促进加速器对加速器通信的任何类型的通信互连。在说明性实施例中,加速器对加速器互连1042被实施为高速点对点互连(例如比I/O子系统622快)。例如,加速器对加速器互连1042可被实施为快速路径互连(QPI)、超路径互连(UPI)或者专用于处理器对处理器通信的其它高速点对点互连。在一些实施例中,加速器电路1020可与通过I/O子系统622连接到NIC 832和存储器720的初级加速器电路1020和通过初级加速器电路1020连接到NIC 832和存储器720的次级加速器电路1020菊花式链接。
[0044] 现在参考图11,示出了加速器滑撬1000的说明性实施例。如上面所论述的,加速器电路1020、通信电路830和光学数据连接器834被安装到无底盘电路板衬底602的顶侧650。再者,各个加速器电路1020和通信电路830被安装到无底盘电路板衬底602的顶侧650,使得没有两个发热的电气组件彼此遮蔽,如上面所论述的。加速器滑撬1000的存储器装置720如上面关于滑撬600所论述的被安装到无底盘电路板衬底602的底侧750。尽管安装到底侧
750,但存储器装置720经由I/O子系统622(例如通过通孔)通信地耦合到位于顶侧650上的加速器电路1020。另外,每一个加速器电路1020可包含比在服务器中使用的传统散热器大的散热器1070。如上面参考散热器870所论述的,散热器1070可比传统散热器大,因为由存储器装置750提供的“自由”区域位于无底盘电路板衬底602的底侧750上,而不是顶侧650上。
[0045] 现在参考图12,在一些实施例中,滑撬400可被实施为存储装置滑撬1200。存储装置滑撬1200被优化或以别的方式配置成将数据存储在对存储装置滑撬1200本地的数据存储装置1250中。例如,在操作期间,计算滑撬800或加速器滑撬1000可存储数据,和从存储装置滑撬1200的数据存储装置1250中检索数据。存储装置滑撬1200包含类似于滑撬400和/或计算滑撬800的各种组件,它们在图12中已经使用相同引用号码标识了。上面关于图6、7和8提供的此类组件的描述适用于存储装置滑撬1200的对应组件,并且为了存储装置滑撬1200描述的清晰起见,在本文不被重复。
[0046] 在说明性存储装置滑撬1200中,物理资源620被实施为存储装置控制器1220。尽管在图12中仅示出两个存储装置控制器1220,但应该认识到,在其它实施例中,存储装置滑撬1200可包含附加存储装置控制器1220。存储装置控制器1220可被实施为任何类型的处理器、控制器或能够基于经由通信电路830接收的请求来控制到数据存储装置1250中的数据存储和检索的控制电路。在说明性实施例中,存储装置控制器1220被实施为相对低功率的处理器或控制器。例如,在一些实施例中,存储装置控制器1220可配置成以大约75瓦特的额定功率进行操作。
[0047] 在一些实施例中,存储装置滑撬1200还可包含控制器对控制器互连1242。类似于上面论述的滑撬400的资源对资源互连624,控制器对控制器互连1242可被实施为能够促进控制器对控制器通信的任何类型的通信互连。在说明性实施例中,控制器对控制器互连1242被实施为高速点对点互连(例如比I/O子系统622快)。例如,控制器对控制器互连1242可被实施为快速路径互连(QPI)、超路径互连(UPI)或者专用于处理器对处理器通信的其它高速点对点互连。
[0048] 现在参考图13,示出了存储装置滑撬1200的说明性实施例。在说明性实施例中,数据存储装置1250被实施为或以别的方式包含配置成容纳一个或更多个固态驱动器(SSD)1254的存储装置笼1252。为了这么做,存储装置笼1252包含若干安装槽1256,每一个安装槽配置成接收对应固态驱动器1254。每一个安装槽1256包含合作以定义对应安装槽1256的接入开口1260的多个驱动器导轨1258。存储装置笼1252被固定到无底盘电路板衬底602,使得接入开口面向远离无底盘电路板衬底602(即朝无底盘电路板衬底602的前面)。因此,当存储装置滑撬1200被安装在对应支架204中时,固态驱动器1254是可接入的。例如,当存储装置滑撬1200保持安装在对应支架240中时,固态驱动器1254可从支架240被换掉(例如经由机器人)。
[0049] 存储装置笼1252说明性地包含16个安装槽1256,并且能够安装并存储16个固态驱动器1254。当然,在其它实施例中,存储装置笼1252可配置成存储附加或更少的固态驱动器1254。此外,在说明性实施例中,固态驱动器被垂直安装在存储装置笼1252中,但在其它实施例中可能以不同方位安装在存储装置笼1252中。每个固态驱动器1254可被实施为能够存储长期数据的任何类型的数据存储装置。为了这么做,固态驱动器1254可包含上面论述的易失性和非易失性存储器装置。
[0050] 如图13中所示,存储装置控制器1220、通信电路830和光学数据连接器834说明性地安装到无底盘电路板衬底602的顶侧650。再者,如上面所论述的,可使用任何适合的附连或安装技术将存储装置滑撬1200的电气组件安装到无底盘电路板衬底602,包含例如插口(例如处理器插口)、支托、托架、焊接连接和/或其它安装或固定技术。
[0051] 如上面所论述的,各个存储装置控制器1220和通信电路830被安装到无底盘电路板衬底602的顶侧650,使得没有两个发热的电气组件彼此遮蔽。例如,存储装置控制器1220和通信电路830被安装在无底盘电路板衬底602的顶侧650上的对应位置,使得那些电气组件中的没有两个电气组件沿空气流动路径608的方向与其它的线性成行。
[0052] 存储装置滑撬1200的存储器装置720如上面关于滑撬400所论述的被安装到无底盘电路板衬底602的底侧750。尽管安装到底侧750,但存储器装置720经由I/O子系统622通信地耦合到位于顶侧650上的存储装置控制器1220。再者,因为无底盘电路板衬底602被实施为双侧电路板,因此存储器装置720和存储装置控制器1220可以通信地由一个或更多个通孔、连接器或延伸穿过无底盘电路板衬底602的其它机构耦合。每一个存储装置控制器1220都包含固定到其上的散热器1270。如上面所论述的,由于存储装置滑撬1200的无底盘电路板衬底602的改进的热冷却特性,没有散热器1270包含附连到其上的冷却风扇。也就是,每一个散热器1270都被实施为无风扇散热器。
[0053] 现在参考图14,在一些实施例中,滑撬400可被实施为存储器滑撬1400。存储装置滑撬1400被优化或以别的方式配置成给其它滑撬400(例如计算滑撬800、加速器滑撬1000等)提供到对存储器滑撬1200本地的存储器池(例如存储器装置720的两个或更多个集合1430、1432中)的访问。例如,在操作期间,计算滑撬800和加速器滑撬1000可使用映射到存储器集合1430、1432中的物理地址的逻辑地址空间来远程写入到和/或读取自存储器滑撬
1200的存储器集合1430、1432中的一个或更多个集合。存储器滑撬1400包含类似于滑撬400和/或计算滑撬800的各种组件,它们在图14中已经使用相同引用号码标识了。上面关于图
6、7和8提供的此类组件的描述适用于存储器滑撬1400的对应组件,并且为了存储器滑撬
1400描述的清晰起见,在本文不被重复。
[0054] 在说明性存储器滑撬1400中,物理资源620被实施为存储器控制器1420。尽管在图14中仅示出两个存储器控制器1420,但应该认识到,在其它实施例中,存储器滑撬1400可包含附加存储器控制器1420。存储器控制器1420可被实施为任何类型的处理器、控制器或能够基于经由通信电路830接收的请求来控制存储器集合1430、1432中的数据读取和写入的控制电路。在说明性实施例中,每个存储装置控制器1220连接到对应存储器集合1430、1432以写入到和读取自对应存储器集合1430、1432内的存储器装置720,并且强制执行与已经向存储器滑撬1400发送请求以执行存储器访问操作(例如读取或写入)的滑撬400关联的任何准许(例如读取、写入等)。
[0055] 在一些实施例中,存储器滑撬1400还可包含控制器对控制器互连1442。类似于上面论述的滑撬400的资源对资源互连624,控制器对控制器互连1442可被实施为能够促进控制器对控制器通信的任何类型的通信互连。在说明性实施例中,控制器对控制器互连1442被实施为高速点对点互连(例如比I/O子系统622快)。例如,控制器对控制器互连1442可被实施为快速路径互连(QPI)、超路径互连(UPI)或者专用于处理器对处理器通信的其它高速点对点互连。因此,在一些实施例中,存储器控制器1420可通过控制器对控制器互连1442访问在与另一存储器控制器1420关联的存储器集合1432内的存储器。在一些实施例中,可缩放存储器控制器由存储器滑撬(例如存储器滑撬1400)上的多个较小存储器控制器(本文中称为“小芯片(chiplet)”)构成。小芯片可被互连(例如使用EMIB(嵌入式多管芯互连桥))。组合的小芯片存储器控制器可放大到相当大数量的存储器控制器和I/O端口(例如高达16个存储器信道)。在一些实施例中,存储器控制器1420可实现存储器交织(例如,一个存储器地址被映射到存储器集合1430,下一存储器地址被映射到存储器集合1432,并且第三地址被映射到存储器集合1430等)。交织可在存储器控制器1420内或者从CPU插口(例如计算滑撬800的)跨到存储器集合1430、1432的网络链路被管理,并且与从同一存储器装置访问毗连的存储器地址相比较,可改进与执行存储器访问操作关联的时延。
[0056] 另外,在一些实施例中,存储器滑撬1400可使用波导连接器1480通过波导连接到一个或更多个其它滑撬400(例如相同支架240或邻近支架240中的)。在说明性实施例中,波导是提供16个Rx(即接收)道和16个Rt(即传送)道的64毫米波导。在说明性实施例中,每条道都是16 Ghz或32 Ghz。在其它实施例中,频率可以不同。使用波导可向另一滑撬(例如在与存储器滑撬1400相同的支架240或邻近支架240中的滑撬400)提供对存储器池(例如存储器集合1430、1432)的高吞吐量访问,而不在光学数据连接器834上增加载荷。
[0057] 现在参考图15,可按照数据中心100实现用于执行一个或更多个工作载荷(例如应用)的系统。在说明性实施例中,系统1510包含编排器(orchestrator)服务器1520,其可被实施为管理的节点,管理的节点包括执行管理软件(例如云操作环境,诸如OpenStack)的计算装置(例如计算滑撬800),其通信地耦合到多个滑撬400,包含大量计算滑撬1530(例如每个类似于计算滑撬800)、存储器滑撬1540(例如每个类似于存储器滑撬1400)、加速器滑撬1550(例如每个类似于存储器滑撬1000)以及存储装置滑撬1560(例如每个类似于存储装置滑撬1200)。滑撬1520、1540、1550、1560中的一个或更多个滑撬诸如可由编排器服务器1520分组成管理的节点1570,以共同执行工作载荷(例如在虚拟机中或容器中执行的应用
1232)。管理的节点1570可被实施为来自相同或不同滑撬400的物理资源620的装配,物理资源620诸如处理器820、存储器资源720、加速器电路1020或数据存储装置1250。另外,管理的节点可在工作载荷被指配给管理的节点的时候或者在任何其它时间由编排器服务器1520建立、定义或“纺成(spin up)”,并且可以不管目前是否有任何工作载荷被指配给管理的节点而存在。在说明性实施例中,编排器服务器1520可按与对于工作载荷(例如应用1532)的服务级协定关联的服务质量(QoS)目标(例如与吞吐量、时延、每秒指令等关联的性能目标)的功能,从滑撬400有选择地分配和/或取消分配物理资源620和/或从管理的节点1570添加和/或移除一个或更多个滑撬400。在这么做时,编排器服务器1520可接收指示管理的节点
1570的每个滑撬400中的性能条件(例如吞吐量、时延、每秒指令等)的遥测数据,并将遥测数据与服务质量目标相比较以确定是否服务质量目标正被满足。如果满足,则编排器服务器1520可以附加地确定是否可从管理的节点1570取消分配一个或更多个物理资源,同时仍满足QoS目标,由此释放那些物理资源以便用于另一管理的节点(例如执行不同的工作载荷)。备选地,如果QoS目标目前未被满足,则编排器服务器1520可以确定动态分配附加物理资源以在工作载荷正在执行时辅助工作载荷(例如应用1532)的执行。
[0058] 此外,在一些实施例中,编排器服务器1520可标识工作载荷(例如应用1532)的资源利用中的趋势,诸如通过标识工作载荷(例如应用1532)的执行阶段(例如执行不同操作的时间段,每个操作具有不同的资源利用特性),并且抢先标识数据中心100中的可用资源,并将它们分配给管理的节点1570(例如在关联的阶段开始的预定时间段内)。在一些实施例中,编排器服务器1520可基于各种时延和分布方案对性能建模,以将工作载荷放置在数据中心100中的计算滑撬和其它资源(例如加速器滑撬、存储器滑撬、存储装置滑撬)之中。例如,编排器服务器1520可利用考虑到滑撬400上的资源性能(例如FPGA性能、存储器访问时延等)和通过网络到资源(例如FPGA)的路径的性能(例如拥塞、时延、带宽)的模型。因此,编排器服务器1520可基于与在数据中心100中可用的每个潜在资源关联的总时延(例如与资源本身的性能关联的时延,还有与通过网络的在执行工作载荷的计算滑撬与资源位于其上的滑撬400之间的路径关联的时延)来确定哪个(哪些)资源应被用于哪些工作载荷。
[0059] 在一些实施例中,编排器服务器1520可使用从滑撬400报告的遥测数据(例如温度、风扇速度等)生成数据中心100中的热生成图,并按热生成图和与不同工作载荷关联的预测的热生成的功能向管理的节点分配资源,以维持数据中心100中的目标温度和热分布。附加地或备选地,在一些实施例中,编排器服务器1520可将接收的遥测数据组织成层级模型,其指示管理的节点之间的关系(例如空间关系,诸如数据中心100内的管理的节点的资源的物理位置,和/或功能关系,诸如由管理的节点为其提供服务的顾客对管理的节点的分组、通常由管理的节点执行的功能类型、通常在彼此之间共享或交换工作载荷的管理的节点等)。基于管理的节点中的物理位置和资源的差异,给定工作载荷可跨不同管理的节点的资源来建立不同的资源利用(例如,引起不同内部温度,使用不同百分比的处理器或存储器容量)。编排器服务器1520可基于存储在层级模型中的遥测数据来确定差异,并将差异表示为预测工作载荷的未来资源利用的因子(如果工作载荷从一个管理的节点重新指配给另一管理的节点)以准确地平衡数据中心100中的资源利用。
[0060] 为了减少编排器服务器1520上的计算载荷和网络上的数据转移载荷,在一些实施例中,编排器服务器1520可向滑撬400发送自测试信息,以使每个滑撬400能够在本地(例如在滑撬400上)确定由滑撬400生成的遥测数据是否满足一个或更多个条件(例如,满足预先定义的阈值的可用容量、满足预先定义的阈值的温度等)。每个滑撬400然后可将简化的结果(例如是或否)报告回编排器服务器1520,编排器服务器1520可利用该结果确定到管理的节点的资源分配。
[0061] 现在参考图16,可按照上面参考图1-15所描述的数据中心100实现用于从解聚的(disaggregated)架构中的加速器装置提供有效率的结果转移的系统1600。从加速器装置提供有效率的结果转移可被实施为或包含减少通过网络被发送的数据的量,所述数据用于在加速器装置已经对被提供给加速器装置(例如从计算滑撬)的数据对象进行操作(例如执行功能,诸如数学域变换、加密或解密、重新格式化等)之后传递所得到的数据对象。例如,系统1600中的计算滑撬可执行工作载荷,并且可将数据对象发送到远程加速器滑撬以访问加速器装置来增加与该数据对象关联的工作载荷的执行速度。加速器滑撬可用修改图来跟踪对该对象进行的改变,并将修改图与修改数据一起发送到计算滑撬,而不是发送整个修改的数据对象。从修改图和修改数据,计算滑撬可标识对数据对象的改变发生所在的部分,并产生数据对象的修改版本。这么做可增加工作载荷的执行速度,并释放网络以便由系统1600中的其它滑撬使用。
[0062] 在说明性实施例中,系统1600包含与计算滑撬1604和加速器滑撬1606通信的舱管理器1602。尽管仅示出一个计算滑撬和一个加速器滑撬,但是在系统1600中可利用任何数量的计算滑撬和/或加速器滑撬。滑撬1604、1606中的一个或更多个滑撬可被分组成管理的节点(诸如由舱管理器1602)以共同执行工作载荷(例如应用)。管理的节点可被实施为来自相同或不同滑撬或支架的资源的装配,所述资源诸如计算资源、存储器资源、存储装置资源或者其它资源。另外,管理的节点可在工作载荷被指配给管理的节点的时候或者在任何其它时间由舱管理器1602建立、定义或“纺成”,并且可不管目前是否有任何工作载荷被指配给管理的节点而存在。系统1600可位于数据中心中,并且向通过网络1640与系统1600通信的客户端装置1630提供存储和计算服务(例如云服务)。舱管理器1602可支持云操作环境(诸如OpenStack),并且由舱管理器1602建立的管理的节点可代表客户端装置1630的用户执行一个或更多个应用或过程(即工作载荷)(诸如在虚拟机或容器中)。在说明性实施例中,计算滑撬1604利用中央处理单元(CPU)1608执行工作载荷1610(例如应用)和包含数据融合器逻辑单元1614的网络接口控制器(NIC)1612,数据融合器逻辑单元1614可被实施为能够将对数据对象进行的改变与数据对象的原始版本融合以更新数据对象的原始版本的任何装置或电路。在这么做时,并且如本文更详细描述的,数据融合器逻辑单元1614利用由对数据对象的原始版本进行操作的加速器滑撬(例如加速器滑撬1606)提供的修改图。加速器滑撬1606包含网络接口控制器(NIC)1616和修改跟踪器逻辑单元1618,其可被实施为能够用修改图跟踪或记录对数据对象的改变的任何装置或电路。加速器滑撬1606还包含加速器装置1620。加速器装置1620可被实施为现场可编程门阵列(FPGA)或能够加速工作载荷执行的其它装置或电路,诸如专用集成电路(ASCI)、协处理器等。
[0063] 在操作中,系统1600可开始于用计算滑撬1604的CPU 1608执行工作载荷1610。在操作中时,计算滑撬1604可向加速器滑撬1606发送请求以利用加速器装置1620执行一个或更多个加速功能(例如加密功能或其它功能)。发送到加速器滑撬1606的请求可包含与工作载荷1610关联的数据对象以及指示要对数据对象执行的一个或更多个加速功能的数据。在接收到数据对象以及指示要执行的一个或更多个功能的数据之后,加速器滑撬1606可执行功能以处理数据对象,并通过修改跟踪器逻辑单元1618跟踪对数据对象的改变。修改跟踪器逻辑单元1618使用修改图记录改变,修改图可被实施为指示数据已经从其原始形式被修改所在的数据对象的部分的任何数据(例如位图)。加速器滑撬1606随后向计算滑撬1604发送修改数据和修改图,而不是整个修改的数据对象,计算滑撬1604进而在存储器中重构修改的数据对象,如上面所论述的。
[0064] 现在参考图17,计算滑撬1604可被实施为能够执行本文描述的功能的任何类型的计算装置,所述功能包含向加速器滑撬1606发送数据对象和从加速器滑撬1606接收对应修改图和修改数据。在一些实施例中,计算滑撬1604可接收可支持对原始数据对象(其被发送以由加速器滑撬1606处理)的改变的存储的任何数据。如图17中所示,说明性计算滑撬1604包含计算引擎1702、输入/输出(I/O)子系统1704和通信电路1706。在一些实施例中,计算滑撬1604可进一步包含一个或更多个存储装置1708和/或一个或更多个外围装置1710。当然,在其它实施例中,计算滑撬1604可包含其它或附加组件,诸如通常在计算滑撬中发现的那些组件。此外,在一些实施例中,说明性组件中的一个或更多个组件可被结合在另一组件中,或以别的方式形成另一组件的一部分。
[0065] 计算引擎1702可被实施为能够执行下面描述的各种计算功能的任何类型的装置或装置集合。在一些实施例中,计算引擎1702可被实施为单个装置,诸如集成电路、嵌入式系统、现场可编程门阵列(FPGA)、片上系统(SOC)或者其它集成系统或装置。此外,在一些实施例中,计算引擎1702包含或被实施为处理器1712和存储器1714。处理器1712可被实施为能够执行本文描述的功能的任何类型的处理器。例如,处理器1712可被实施为单核或多核处理器微控制器或者其它处理器或处理/控制电路。在一些实施例中,处理器1712可被实施为、包含或者耦合到FPGA、专用集成电路(ASIC)、可重配置硬件或硬件电路、或者促进本文描述的功能性能的其它专门硬件。
[0066] 存储器1714可被实施为能够执行本文描述的功能的任何类型的易失性(例如动态随机存取存储器(DRAM)等)或非易失性存储器或数据存储装置。易失性存储器可以是需要电力来维持由介质存储的数据的状态的存储介质。易失性存储器的非限制示例可包含各种类型的随机存取存储器(RAM),诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。可用在存储器模块中的一个具体类型的DRAM是同步动态随机存取存储器(SDRAM)。在具体实施例中,存储器组件的DRAM可符合由JEDEC颁布的标准,诸如对于DDR SDRAM的JESD79F、对于DDR2 SDRAM的JESD79-2F、对于DDR3 SDRAM的JESD79-3F、对于DDR4 SDRAM的JESD79-4A、对于低功率DDR(LPDDR)的JESD209、对于LPDDR2的JESD209-2、对于LPDDR3的JESD209-3以及对于LPDDR4的JESD209-4(这些标准可在www.jedec.org得到)。此类标准(以及类似标准)可被称为基于DDR的标准,并且实现此类标准的存储装置的通信接口可被称为基于DDR的接口。
[0067] 在一个实施例中,存储器装置是块可寻址存储器装置,诸如基于NAND或NOR技术的那些存储器装置。存储器装置还可包含未来世代的非易失性装置,诸如三维交叉点存储器装置或其它字节可寻址原地写的非易失性存储器装置。在一个实施例中,存储器装置可以是或者可包含使用硫属玻璃的存储器装置、多阈级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、阻性存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、结合了忆阻器技术的磁阻随机存取存储器(MRAM)存储器、包含金属氧化物基、氧空缺基和导电桥随机存取存储器(CB-RAM)的阻性存储器、或者自旋转移扭矩(STT)-MRAM、基于电子自旋磁结存储器的装置、基于磁遂穿结(MTJ)的装置、基于DW(畴壁)和SOT(自旋轨道转移)的装置、基于晶闸管的存储器装置、或者上面任何的组合、或者其它存储器。存储器装置可指的是管芯本身和/或封装的存储器产品。
[0068] 在一些实施例中,3D交叉点存储器可包括无晶体管可堆叠交叉点架构,其中存储器单元位于字线和位线的交点处,并且是单独可寻址的,并且其中位存储基于体电阻的改变。在操作中,存储器1714可存储在操作期间使用的各种软件和数据,诸如应用、程序、库和驱动。
[0069] I/O子系统1704可实施为或以别的方式包含存储器控制器中枢、输入/输出控制中枢、传感器中枢、主机控制器、固件装置、通信链路(即,点对点链路、总线链路、导线、线缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其它组件和子系统。此外,在一些实施例中,I/O子系统1704可形成片上系统(SoC)的一部分,并与计算滑撬1604的处理器1712、存储器1714和其它组件一起结合在单个集成电路芯片上。
[0070] 通信电路1706可包含网络接口控制器(NIC)1612,其也可被称为主机结构接口(HFI)。NIC 1612可被实施为一个或更多个内插板、子卡、网络接口卡、控制器芯片、芯片集或可由计算滑撬1604用于与另一计算装置(例如加速器滑撬1606、POD管理器1602等)连接的其它装置。在一些实施例中,NIC 1612可被实施为包含一个或更多个处理器的片上系统(SoC)的一部分,或者包含在也含有一个或更多个处理器的多芯片封装上。在一些实施例中,NIC 1612可包含本地处理器(未示出)和/或本地存储器(未示出),它们对NCI 1612都是本地的。在此类实施例中,NIC 1612的本地处理器可能能够执行本文描述的计算引擎1702的功能中的一个或更多个。附加地或备选地,在此类实施例中,NIC 1612的本地存储器可在板级、插口级、芯片级和/或其它级集成到计算滑撬1604的一个或更多个组件中。数据融合器逻辑单元1614可被实施为能够将对数据对象的改变与存储在存储器1714中的数据对象的较早版本组合的装置、电路或它们的集合。
[0071] 一个或更多个说明性数据存储装置1708可被实施为配置用于数据的短期存储或长期存储的任何类型的装置,诸如例如存储器装置和电路、存储卡、硬盘驱动器、固态驱动器或者其它数据存储装置。每个数据存储装置1708都可包含存储用于数据存储装置1708的数据和固件代码的系统分区。每个数据存储装置1708还可包含存储数据文件的并对于操作系统可执行的一个或更多个操作系统分区。
[0072] 现在参考图18,加速器滑撬1606可被实施为能够执行本文描述的功能的任何类型的计算装置,所述功能包含对数据对象执行一个或更多个加速功能以及跟踪作为执行的功能的结果的对数据对象的改变。如图18中所示,说明性加速器滑撬包含计算引擎1802、I/O子系统1803、通信电路1804、和一个或更多个加速器装置1620、以及修改跟踪器逻辑单元1618。在一些实施例中,加速器滑撬1606此外可包含一个或更多个存储装置1810。当然,在其它实施例中,加速器滑撬1606可包含其它或附加组件,诸如通常在计算装置中发现的那些组件。此外,在一些实施例中,说明性组件中的一个或更多个组件可被结合在另一组件中,或以别的方式形成另一组件的一部分。
[0073] 计算引擎1802可被实施为能够执行下面描述的各种计算功能的任何类型的装置或装置集合。在一些实施例中,计算引擎1802可被实施为单个装置,诸如集成电路、嵌入式系统、现场可编程门阵列(FPGA)、片上系统(SOC)或者其它集成系统或装置。此外,在一些实施例中,计算引擎1802包含或被实施为处理器1812和存储器1814。处理器1812可被实施为能够执行本文描述的功能的任何类型的处理器。例如,处理器1812可被实施为单核或多核处理器、微控制器或者其它处理器或处理/控制电路。在一些实施例中,处理器1812可被实施为、包含或者耦合到FPGA、专用集成电路(ASIC)、可重配置硬件或硬件电路、或者用于促进本文描述的功能性能的其它专门硬件。
[0074] I/O子系统1803可实施为或以别的方式包含存储器控制器中枢、输入/输出控制中枢、传感器中枢、主机控制器、固件装置、通信链路(即,点对点链路、总线链路、导线、线缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其它组件和子系统。此外,在一些实施例中,I/O子系统1803可形成片上系统(SoC)的一部分,并与加速器滑撬1606的处理器1812、存储器1814和其它组件一起结合在单个集成电路芯片上。
[0075] 存储器1814可被实施为能够执行本文描述的功能的任何类型的易失性(例如动态随机存取存储器(DRAM)等)或非易失性存储器或数据存储装置,类似于存储器1714。通信电路1804可包含网络接口控制器(NIC)1616,其也可被称为主机结构接口(HFI)。NIC 1616可被实施为一个或更多个内插板、子卡、网络接口卡、控制器芯片、芯片集或可由加速器滑撬1606用于与另一计算装置(例如计算滑撬1604、POD管理器1602等)连接的其它装置。在一些实施例中,NIC 1616可被实施为包含一个或更多个处理器的片上系统(SoC)的一部分,或者包含在也含有一个或更多个处理器的多芯片封装上。在一些实施例中,NIC 1616可包含本地处理器(未示出)和/或本地存储器(未示出),它们对NCI 1616都是本地的。在此类实施例中,NIC 1616的本地处理器可能能够执行本文描述的计算引擎1802的功能中的一个或更多个。附加地或备选地,在此类实施例中,NIC 1616的本地存储器可在板级、插口级、芯片级和/或其它级集成到加速器滑撬1606的一个或更多个组件中。
[0076] 每个加速器装置1620可被实施为能够加速一个或更多个功能执行的任何类型的装置或装置集合。因此。每个加速器装置1620可被实施为FPGA、专用集成电路(ASIC)、可重配置硬件或硬件电路、或者用于促进本文描述的功能执行的其它专门硬件。修改跟踪器逻辑单元1618可被实施为能够跟踪对由加速器装置1620处理的对象的改变的电路、装置或它们的集合。例如,在一个实施例中,计算滑撬1604可生成要加密的数据对象(例如数据集合),并将具有指示加密功能的数据(例如,实施加密功能的位流、对加速器滑撬1606用于实现该功能可用的位流的参考等)的数据对象发送到加速器1606以对数据进行加密。修改跟踪器逻辑单元1618可以创建指示已经作为对数据对象执行加密功能的结果被改变的数据对象的部分的修改图。在一些实施例中,修改跟踪器逻辑单元1618被结合到加速器装置1620中的一个或更多个中。数据存储装置1810可被实施为配置用于数据的短期存储或长期存储的任何类型的装置或多个装置,诸如例如存储器装置和电路、存储卡、硬盘驱动器、固态驱动器、非易失性闪速存储器或其它数据存储装置。
[0077] 舱管理器1602和客户端装置1630可具有类似于在图17和18中描述的那些组件的组件。计算滑撬1604和加速器滑撬1606的那些组件的描述同样适用于舱管理器1602和客户端装置1630的组件的描述,并且为了描述的简洁起见在本文中不重复。另外,应该认识到,舱管理器1602和客户端装置1630可包含通常在计算装置中发现的其它组件、子组件和装置,它们未在上面参考计算滑撬1604和加速器滑撬1606进行论述,并且为了描述的简洁起见在本文中不论述。
[0078] 如上面所描述的,舱管理器1602和滑撬1604、1606说明性地经由网络1640通信,网络1640可被实施为任何类型的有线或无线通信网络,包含全球网络(例如因特网)、局域网(LAN)或广域网(WAN)、蜂窝网络(例如全球移动通信系统(GSM)、3G、长期演进(LTE)、全球互通微波接入(WiMAX)等)、数字订户线(DSL)网络、线缆网络(例如同轴网络、光纤网络等)、或者它们的任何组合。
[0079] 现在参考图19,计算滑撬1604可在操作期间建立环境1900。说明性环境1900包含网络通信器1902和修改管理器1904。环境1900的每一个组件可被实施为硬件、固件、软件、或它们的组合。因此,在一些实施例中,环境1900的组件中的一个或更多个组件可被实施为电气装置的集合或电路(例如网络通信器电路1902、修改管理器电路1904等)。应该认识到,在此类实施例中,网络通信器电路1902或修改管理器电路1904中的一个或更多个可形成计算引擎1702(例如处理器1712、存储器1714)、I/O子系统1704、通信电路1706、数据存储装置1708、和/或计算滑撬1604的任何其它组件中的一个或更多个组件的一部分。在说明性实施例中,环境1900包含对象数据库1912,该对象数据库1912可被实施为由计算滑撬1604在由计算滑撬1604的一个或更多个工作载荷的执行期间建立的任何数据。具体地说,对象数据库1912可包含由计算滑撬1604在一个或更多个工作载荷的执行期间创建的数据对象(例如,数据集合,诸如文件、图像等)。在一些实施例中,对象数据库1912可包含要发送到加速器滑撬1606的原始数据对象以及与该数据对象关联的修改数据(例如,已经由加速器滑撬
1606改变的数据对象的部分)。此外,说明性环境1900包含指示已经在处理一个或更多个功能期间由加速器滑撬1606修改的数据对象部分的修改图数据1914,诸如位于对象数据库
1912中的数据对象。修改图数据1914可基于对象的大小将要处理的对象划分成多个部分。
例如,1兆字节(MB)的对象可被划分成1千字节(KB)数据增量的部分,而1千兆字节(GB)的对象可被划分成1MB数据增量的部分。在一些实施例中,修改图数据1514可包含从加速器滑撬
1606接收的修改数据。
[0080] 在说明性环境1900中,网络通信器1902(其可被实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或它们的组合,如上面所论述的)配置成分别促进往和来于计算滑撬1604的入站和出站网络通信(例如网络业务、网络分组、网络流等)。为了这么做,网络通信器1902配置成接收并处理来自一个系统或计算装置(例如加速器滑撬1606和/或舱管理器
1620)的数据分组,并且准备数据分组和将其发送到另一计算装置或系统(例如加速器滑撬
1606和/或舱管理器1602)。相应地,在一些实施例中,网络通信器1902的至少部分功能性可由通信电路1706执行,并且在说明性实施例中由NIC 1612执行。
[0081] 修改管理器1904(其可被实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或它们的组合)配置成处理来自工作载荷(例如应用1610)的请求以加速对数据对象的一个或更多个功能的执行,向加速器滑撬1606提供数据对象,标识来自由加速器滑撬1606处理的对数据对象的修改,并将对数据对象的改变/修改保存在存储器装置(例如存储器1714)中。为了这么做,在说明性实施例中,修改管理器1904包含请求处理器1906、修改标识器1908和修改融合器1910。在说明性实施例中,请求处理器1906配置成从在计算滑撬1604上执行的工作载荷获得请求,并向加速器滑撬1606发送包含要在其上操作的对应数据对象的请求以及指示要用于对数据对象进行操作的一个或更多个加速功能的数据。在这么做时,请求处理器1906配置成存取对象数据库1912以获得与产生请求的工作载荷关联的数据对象。
[0082] 修改标识器1908在说明性实施例中配置成从加速器滑撬1606接收修改图和修改数据,并根据接收的修改图确定改变位于数据对象中的何处。修改标识器1908可将接收的修改图和/或修改数据存储在修改图数据1914中。修改图数据1914指示已经作为由加速器滑撬1606处理的结果而改变的数据对象的部分,如上面所论述的。因此,修改标识器1908通过使用修改图数据1914确定已经被改变的数据对象部分以及与每个部分关联的修改数据。
[0083] 修改融合器1910在说明性实施例中配置成将从加速器滑撬1606接收的改变融合到数据对象,以本地重构计算滑撬1604的存储器1714中的数据对象的修改版本。为了这么做,修改融合器1910与修改标识器1908通信以确定经历了改变的数据对象部分的位置,并将修改数据与对应于修改数据的数据对象部分融合。修改融合器1910可将修改的数据对象存储在对象数据库1912中以用于随后功能。
[0084] 应该认识到,请求处理器1906、修改标识器1908和修改融合器1910中的每个都可被单独实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或它们的组合。例如,请求处理器1906可被实施为硬件组件,而修改标识器1908和修改融合器1910被实施为虚拟化硬件组件,或者实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或它们的组合的某种其它组合。
[0085] 现在参考图20,加速器滑撬1606可在操作期间建立环境2000。说明性环境2000包含网络通信器2002和对象管理器2004。环境2000的每一个组件可被实施为硬件、固件、软件或它们的组合。因此,在一些实施例中,环境2000的组件中的一个或更多个组件可被实施为电气装置的集合或电路(例如网络通信器电路2002、对象管理器电路2004等)。应该认识到,在此类实施例中,网络通信器电路2002或对象管理器电路2004中的一个或更多个电路可形成计算引擎1802、修改跟踪器逻辑单元1808、加速器装置1620、通信电路1804、一个或更多个数据存储装置1810和/或加速器滑撬1606的任何其它组件中的一部分。在说明性实施例中,环境2000包含对象数据库2012,类似于上面描述的对象数据库1912,其可被实施为从计算滑撬1604或系统1600中的其它滑撬接收的一个或更多个数据对象、和源自于用加速器装置1620处理数据对象的数据对象的任何修改数据。此外,说明性环境2000包含修改图数据2014,类似于上面描述的修改图数据1914,其可被实施为指示在加速器滑撬1606执行功能期间已经被修改的每个数据对象内的位置的数据。在一些实施例中,修改图数据2014可包含修改数据对象的修改数据。例如,修改图数据1914可被实施为具有0和1的位图以及修改数据是什么的指示(例如,修改数据位于的对象数据库中的索引或者修改数据本身),0指示尚未对数据对象的对应部分进行修改,并且1指示已经对数据对象的对应部分进行修改。在其它实施例中,修改图数据1914可用标记语言(诸如可扩展标记语言(XML))或另一种格式进行格式化。
[0086] 在说明性环境2000中,网络通信器2002(其可被实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或它们的组合,如上面所论述的)配置成分别促进往和来于加速器滑撬1606的入站和出站网络通信(例如网络业务、网络分组、网络流等)。为了这么做,网络通信器2002配置成接收和处理来自一个系统或计算装置(例如计算滑撬1604和/或舱管理器
1602)的数据分组,并且准备数据分组和将其发送到计算装置或系统(例如计算滑撬1604和/或舱管理器1602等)。相应地,在一些实施例中,网络通信器2002的至少部分功能性可由通信电路1804执行,并且在说明性实施例中由NIC 1616执行。
[0087] 对象管理器2004(其可被实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或它们的组合)配置成处理请求以对加速器滑撬1606(例如用加速器装置1620)执行功能、处理接收的数据对象(例如来自计算滑撬1604)并标识作为对接收的数据对象执行功能的结果对数据对象进行的改变。为了这么做,在说明性实施例中,对象管理器2004包含请求处理器2006、加速功能处理器2008和修改跟踪器2010。在说明性实施例中,请求处理器2006配置成从计算滑撬1604接收请求,并将数据发送回计算滑撬1604。该请求可包含要处理的数据对象以及指示一个或更多个加速功能的数据。在一些实施例中,该请求可包含对于存储在数据库(未示出)中的要用于处理数据对象的加速功能的标识符。此外,请求处理器2006进一步配置成将数据对象存储在对象数据库2012中,和/或访问对象数据库2012以将数据(例如对数据对象进行的修改)发送到计算滑撬1604。
[0088] 加速功能处理器2008在说明性实施例中配置成接收用于处理接收的数据对象的加速功能并用加速器装置1620处理数据对象以增加工作载荷(例如应用1610)的执行速度。例如,加速功能处理器2008可接收用于处理接收的数据对象的加密功能并处理数据对象(例如对数据对象中的数据执行加密功能)。修改跟踪器2010在说明性实施例中配置成跟踪作为对接收的对象执行加速功能的结果的对数据对象的改变。在这么做时,修改跟踪器
2010可将修改记录以及它们在数据对象中的位置写到修改图(例如在修改图数据2014中)。
请求处理器2006随后可将由修改跟踪器2010产生的数据发送到计算滑撬1604。
[0089] 现在参考图21,在使用时,计算滑撬1604可执行用于从远程加速器装置(例如加速器滑撬1606上的加速器装置1620)提供有效率的结果转移的方法2100。方法2100开始于框2102,其中计算滑撬1604确定是否向另一滑撬(例如加速器滑撬1606)发送加速工作载荷(例如应用1610)的执行的请求。在说明性实施例中,关于是否发送请求的确定可基于在计算滑撬1604上执行的工作载荷是否已经请求利用不位于计算滑撬1604上的加速器装置来被做出。如果计算滑撬1604确定要向加速器滑撬1606发送请求,则方法2100前进到框2104,其中计算滑撬1604发送利用加速器滑撬1606上的加速器装置的请求。否则,方法2100循环回到框2102,以再次确定是否向加速器滑撬1606发送请求(例如在继续执行应用1610之后)。在框2104中,在向加速器滑撬1606发送请求时,计算滑撬1604在说明性实施例中可发送要由加速器装置1620处理的数据对象,如在框2106中所指示的。此外,在一些实施例中,在框2108中,计算滑撬1604可发送指示用于加速器装置1620在数据对象上执行的功能的数据。在这么做时,计算滑撬1604可发送与要执行的功能关联的位流(例如,包含由加速器装置1620可用于将它自己配置成执行对应功能(诸如在内核中)的代码的任何数据),如在框
2110中所指示的。备选地,计算滑撬1604可发送要执行的位流的标识符,如在框2112中所指示的。标识符可以是与已经存在于加速器滑撬1604的板载的存储器(例如存储器1814)中的位流关联的数字或者其它独特码,或者可以标识对从另一计算装置(例如从舱管理器1602)接收可用的位流。另外,如在框2114中所指示的,计算滑撬1604可发送指示要对数据对象执行的加密功能的数据。备选地,计算滑撬1604可发送指示要对数据对象执行的压缩功能的数据,如在框2116中所指示的。在一些实施例中,计算滑撬1604可发送指示要对数据对象执行的数学域变换功能(例如傅里叶变换、离散余弦变换等)的数据,如在框2118中所指示的。
备选地,计算滑撬1604可发送指示要对数据对象执行的数据重新格式化功能的数据,如在框2120中所指示的。在其它实施例中,该功能可不同于上面描述的功能的类型。另外,在说明性实施例中,要执行的功能可以仅改变数据对象的子集,而不是改变整个数据对象。例如,功能可分析数据对象中的所有数据,然后基于分析来改变或增加数据对象中的报头部分。在框2122中,计算滑撬1604也可发送修改图部分大小数据,其可被实施为指示数据对象要划分成的部分大小的任何数据(为了跟踪对数据对象的改变的目的)。例如,所述部分可具有预先定义的大小(例如1千字节、1兆字节等),或按数据对象的特性的函数被确定(例如数据对象的总大小的百分比)。
[0090] 随后,在框2124中,计算滑撬1604可从加速器滑撬1606接收指示对数据对象进行的修改的数据。在一些实施例中,计算滑撬1604可通过暂停工作载荷的执行直到从加速器滑撬1606接收到数据为止而同步操作,而在其它实施例中,计算滑撬1604可通过继续工作载荷的执行并且对于数据定期轮询加速器滑撬1606来异步操作。不管怎样,在接收到指示对数据对象进行的修改的数据时,计算滑撬1604可接收修改图,如在框2126中所指示的。在这么做时,计算滑撬1604可接收位图,其包含在位图中的不同位置的值,如在框2128中所指示的。位图中的每个位置可对应于数据对象的一部分,并且在所述位置的每个值可指示是否进行了修改,并且在一些实施例中,还有修改类型(例如改写、插入、删除)。备选地,计算滑撬1604可接收以另一种格式(诸如使用由计算滑撬1604可解析的标签的集合来指示修改的部分和类型的标记语言文件)的修改图,如在框2130中所指示的。此外,在说明性实施例中,计算滑撬1604接收被修改的实际数据,如在框2132中所指示的。修改数据可以根据修改图中的修改被指示所在位置被索引(例如,在修改数据中的第三位置的数据对应于在修改图中指示的第三修改)。在一些实施例中,修改数据可被包含在修改图中,而在其它实施例中,修改数据可作为单独数据集合被接收。在计算滑撬1604包含非易失性存储器(例如数据存储装置1708)的实施例中,如果计算滑撬1604非故意地重置或掉电,则计算滑撬1604可将接收的数据写到非易失性存储器以用于在恢复过程中使用,如在框2134中所指示的。随后,方法2100前进到图22的框2136,其中计算滑撬1604按是否从加速器滑撬1606接收到修改数据的功能来确定动作的随后过程。
[0091] 现在参考图22,如果计算滑撬1604未接收到修改数据,则方法2100循环回到框2124,其中计算滑撬1604继续等待修改数据。否则,方法2100前进到框2138,其中计算滑撬
1604确定在修改图中表示的数据对象的部分的大小。在这么做时,并且如在框2140中所指示的,计算滑撬1604可基于发送到加速器滑撬1606的修改图部分大小数据来确定所述部分的大小(例如在框2122中)。如在框2142中所指示的,计算滑撬1604可按数据对象大小的函数来确定所述部分的大小,如上面所描述的。备选地,计算滑撬1604可基于预先定义的部分大小(例如1兆字节)来确定所述部分的大小,不管数据对象的大小如何,如在框2144中所指示的。
[0092] 随后,在框2146中,计算滑撬1604确定由加速器滑撬1606对数据对象进行的修改。在这么做时,计算滑撬1604基于修改图来确定修改,如在框2148中所指示的。在说明性实施例中,计算滑撬1604将在修改图中表示的修改部分的索引与数据对象的一部分相关(例如通过将每个部分的大小乘以在修改图中表示的修改部分的索引),如在框2150中所指示的。
另外,计算滑撬1604在说明性实施例中标识与修改部分关联的修改数据(例如通过使用参考框2132描述的索引方案),如在框2152中所指示的。在说明性实施例中,在框2154中,计算滑撬1604确定要对数据对象的部分进行的修改类型(例如按在位图中对应位置的值的函数)。在这么做时,计算滑撬1604可以确定修改是否是该部分的改写(例如,如果所在位置的值是1的话),如在框2156中所指示的。附加地或备选地,在框2158中,计算滑撬1604可确定修改是否是在该位置的数据的插入(例如,如果在该位置的值是2的话),或者在框2160中,可确定修改是否是数据的删除(例如,如果在该位置的值是3的话)。在一位置预先定义的值(例如0)可指示未对数据对象的对应部分进行修改。随后,方法2100前进到图23的框2162,其中计算滑撬1604将修改应用到计算滑撬1604的板载存储器(例如存储器1714)中的数据对象。
[0093] 现在参考图23,在应用修改时,计算滑撬1604可用对应的修改数据改写数据对象的一个或更多个部分,如在框2164中所指示的。附加地或备选地,计算滑撬1604可在数据对象的一部分执行数据的插入,并将数据对象的剩余部分移位以容纳插入,如在框2166中所指示的。附加地或备选地,计算滑撬1604可执行数据对象的一部分的删除,并由于删除而将数据对象的剩余部分移位,如在框2168中所指示的。另外,计算滑撬1604在说明性实施例中可将数据写到非易失性存储器(例如数据存储装置1708)。随后,计算滑撬1604继续工作载荷(例如应用1610)的执行,并循环回到图21的框2102以再次确定是否请求功能加速。
[0094] 现在参考图24,在使用时,加速器滑撬1606可执行用于从加速器装置(例如加速器装置1620)向另一滑撬(例如计算滑撬1604)提供有效率的结果转移的方法2400。在说明性实施例中,方法2400开始于框2402,其中加速器滑撬1606从计算滑撬1604接收对数据对象执行功能的请求。在这么做时,加速器滑撬1606可接收要处理的数据对象,如在框2404中所指示的。此外,如在框2406中所指示的,加速器滑撬1606可以接收指示用加速器装置1620对数据对象执行的功能的数据。另外,加速器滑撬1604可以接收修改图部分大小数据(例如在图21的框2122中发送的修改图部分大小数据),如在框2408中所指示的。
[0095] 在框2410中,加速器滑撬1606按在框2402中是否接收到请求的函数来确定要执行的动作的随后过程。如果否,则方法2400循环回到框2402以继续等待请求。否则,方法2400前进到框2412,其中加速器滑撬1606用增加工作载荷(例如应用1610)的执行速度的功能来处理数据对象。在框2414中,加速器滑撬1606在说明性实施例中用与要执行的功能关联的位流配置加速器装置(例如加速器装置1620),如在框2414中所指示的。在这么做时,加速器滑撬1606可从远程计算装置获得位流(例如,请求并接收来自舱管理器1602的位流),如在框2416中所指示的。
[0096] 在框2418中,加速器滑撬1606用修改图跟踪源自于功能执行的对数据对象的修改。在这么做时,加速器滑撬1606可拦截在功能的执行中由加速器装置1620进行的对加速器滑撬1606的板载存储器(例如存储器1814)的写,如在框2420所指示的。另外,如在框2422中所指示的,加速器滑撬1606在说明性实施例中将对板载存储器中的数据对象的写操作的位置与修改图中的对应部分相关。如在框2424中所指示的,加速器滑撬1606指示修改图中的对应部分中的修改。在这么做时,加速器滑撬1606可指示数据的改写,如在框2426中所指示的。附加地或备选地,加速器滑撬1606可指示数据的插入,如在框2428中所指示的,和/或可指示数据的删除,如在框2430中所指示的。在框2432中,加速器滑撬1606可将按位图来格式化修改图。备选地,加速器滑撬1606可按标记语言文件来格式化修改图,如在框2434所指示的。在其它实施例中,加速器滑撬1606可产生不同格式的修改图。不管怎样,在说明性实施例中,方法2400随后前进到图25的框2436,其中加速器滑撬1606向计算滑撬1604发送修改图。
[0097] 现在参考图25,在向计算滑撬1604发送修改图时,加速器滑撬1606还向计算滑撬1604发送数据对象的修改数据,如在框2438中所指示的。另外,如在框2440中所指示的,加速器滑撬1606可发送指示修改数据的哪项对应于在修改图中表示的哪个修改部分的数据,以便由计算滑撬1604用于重构数据对象的修改版本。
[0098] 示例下面提供了本文公开的技术的说明性示例。技术的实施例可包含下面描述的示例中的任一个或更多个以及它们的任何组合。
[0099] 示例1包含一种计算滑撬,包括:存储器装置;耦合到存储器装置的网络接口控制器,其中网络接口控制器包含修改逻辑单元以发送利用加速器滑撬上的加速器装置的请求,其中请求包含要由加速器装置进行处理来增加与数据对象关联的工作载荷的执行速度的数据对象;从加速器滑撬接收修改图,其中修改图指示对数据对象的修改;基于修改图确定对数据对象的修改;以及在存储器装置中应用对数据对象的修改。
[0100] 示例2包含示例1的主题,并且其中发送请求包括发送指示要由加速器装置对数据对象执行的功能的数据。
[0101] 示例3包含示例1和2中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送定义要执行的功能的位流。
[0102] 示例4包含示例1-3中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送要用于将加速器装置配置成执行功能的位流的标识符。
[0103] 示例5包含示例1-4中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送指示以下功能中一个或更多个功能的数据:加密功能、数据压缩功能、域变换功能或数据重新格式化功能。
[0104] 示例6包含示例1-5中任一示例的主题,并且其中接收修改图包括接收指示数据对象的已经被修改的部分的位图。
[0105] 示例7包含示例1-6中任一示例的主题,并且其中接收位图包括接收进一步指示对数据对象的每个修改部分进行的修改的类型的位图。
[0106] 示例8包含示例1-7中任一示例的主题,并且其中修改逻辑单元进一步按数据对象的大小的函数来确定每个部分的大小。
[0107] 示例9包含示例1-8中任一示例的主题,并且其中应用修改包括用由加速器滑撬提供的修改数据改写数据对象的一部分。
[0108] 示例10包含示例1-9中任一示例的主题,并且其中应用修改包括在数据对象的一部分中插入由加速器滑撬提供的数据。
[0109] 示例11包含示例1-10中任一示例的主题,并且其中应用修改包括删除数据对象的一部分。
[0110] 示例12包含示例1-11中任一示例的主题,并且其中计算滑撬进一步包括非易失性存储器,并且修改逻辑单元进一步将修改图写到非易失性存储器。
[0111] 示例13包含示例1-12中任一示例的主题,并且其中确定对数据对象的修改包括将在修改图中表示的修改部分的索引与数据对象的一部分相关。
[0112] 示例14包含一种方法,包括:由计算滑撬的网络接口控制器的修改逻辑单元发送利用加速器滑撬上的加速器装置的请求,其中请求包含要由加速器装置进行处理来增加与数据对象关联的工作载荷的执行速度的数据对象;由修改逻辑单元从加速器滑撬接收修改图,其中修改图指示对数据对象的修改;由修改逻辑单元基于修改图确定对数据对象的修改;以及由修改逻辑单元在计算滑撬的存储器装置中应用对数据对象的修改。
[0113] 示例15包含示例14的主题,并且其中发送请求包括发送指示要由加速器装置对数据对象执行的功能的数据。
[0114] 示例16包含示例14和15中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送定义要执行的功能的位流。
[0115] 示例17包含示例14-16中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送要用于将加速器装置配置成执行功能的位流的标识符。
[0116] 示例18包含示例14-17中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送指示以下功能中的一个或更多个功能的数据:加密功能、数据压缩功能、域变换功能或数据重新格式化功能。
[0117] 示例19包含示例14-18中任一示例的主题,并且其中接收修改图包括接收指示数据对象的已经被修改的部分的位图。
[0118] 示例20包含示例14-19中任一示例的主题,并且其中接收位图包括接收进一步指示对数据对象的每个修改部分进行的修改的类型的位图。
[0119] 示例21包含示例14-20中任一示例的主题,并且进一步包含:由修改逻辑单元按数据对象的大小的函数来确定每个部分的大小。
[0120] 示例22包含示例14-21中任一示例的主题,并且其中应用修改包括用由加速器滑撬提供的修改数据改写数据对象的一部分。
[0121] 示例23包含示例14-22中任一示例的主题,并且其中应用修改包括在数据对象的一部分中插入由加速器滑撬提供的数据。
[0122] 示例24包含示例14-23中任一示例的主题,并且其中应用修改包括删除数据对象的一部分。
[0123] 示例25包含示例14-24中任一示例的主题,并且进一步包含:将修改图写到非易失性存储器。
[0124] 示例26包含示例14-25中任一示例的主题,并且其中确定对数据对象的修改包括将在修改图中表示的修改部分的索引与数据对象的一部分相关。
[0125] 示例27包含包括用于执行示例14-26中任一示例的方法的部件的计算滑撬。
[0126] 示例28包含一个或更多个机器可读存储介质,其包括存储在其上的多个指令,指令响应于被执行而促使计算滑撬执行示例14-26中任一示例的方法。
[0127] 示例29包含一种计算滑撬,包括:存储器装置;耦合到存储器装置的网络接口控制器,其中网络接口控制器包含修改管理器电路以发送利用加速器滑撬上的加速器装置的请求,其中请求包含要由加速器装置进行处理来增加与数据对象关联的工作载荷的执行速度的数据对象;从加速器滑撬接收修改图,其中修改图指示对数据对象的修改;基于修改图确定对数据对象的修改;以及在存储器装置中应用对数据对象的修改。
[0128] 示例30包含示例29的主题,并且其中发送请求包括发送指示要由加速器装置对数据对象执行的功能的数据。
[0129] 示例31包含示例29和30中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送定义要执行的功能的位流。
[0130] 示例32包含示例29-31中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送要用于将加速器装置配置成执行功能的位流的标识符。
[0131] 示例33包含示例29-32中任一示例的主题,并且其中发送指示要执行的功能的数据包括发送指示以下功能中一个或更多个功能的数据:加密功能、数据压缩功能、域变换功能或数据重新格式化功能。
[0132] 示例34包含示例29-33中任一示例的主题,并且其中接收修改图包括接收指示数据对象的已经被修改的部分的位图。
[0133] 示例35包含示例29-34中任一示例的主题,并且其中接收位图包括接收进一步指示对数据对象的每个修改部分进行的修改的类型的位图。
[0134] 示例36包含示例29-35中任一示例的主题,并且其中修改管理器电路进一步按数据对象的大小的函数来确定每个部分的大小。
[0135] 示例37包含示例29-36中任一示例的主题,并且其中应用修改包括用由加速器滑撬提供的修改数据改写数据对象的一部分。
[0136] 示例38包含示例29-37中任一示例的主题,并且其中应用修改包括在数据对象的一部分中插入由加速器滑撬提供的数据。
[0137] 示例39包含示例29-38中任一示例的主题,并且其中应用修改包括删除数据对象的一部分。
[0138] 示例40包含示例29-39中任一示例的主题,并且其中计算滑撬进一步包括非易失性存储器,并且修改管理器电路进一步将修改图写到非易失性存储器。
[0139] 示例41包含示例29-40中任一示例的主题,并且其中确定对数据对象的修改包括将在修改图中表示的修改部分的索引与数据对象的一部分相关。
[0140] 示例42包含一种计算滑撬,包括:用于用计算滑撬的网络接口控制发送利用加速器滑撬上的加速器装置的请求的电路,其中请求包含要由加速器装置进行处理来增加与数据对象关联的工作载荷的执行速度的数据对象;用于从加速器滑撬接收修改图的电路,其中修改图指示对数据对象的修改;用于基于修改图确定对数据对象的修改的部件;以及用于在计算滑撬的存储器装置中应用对数据对象的修改的部件。
[0141] 示例43包含示例42的主题,并且其中用于发送请求的电路包括用于发送指示要由加速器装置对数据对象执行的功能的数据的电路。
[0142] 示例44包含示例42和43中任一示例的主题,并且其中用于发送指示要执行的功能的数据的电路包括用于发送定义要执行的功能的位流的电路。
[0143] 示例45包含示例42-44中任一示例的主题,并且其中用于发送指示要执行的功能的数据的电路包括用于发送要用于将加速器装置配置成执行功能的位流的标识符的电路。
[0144] 示例46包含示例42-45中任一示例的主题,并且其中用于发送指示要执行的功能的数据的电路包括用于发送指示以下功能中的一个或更多个功能的数据的电路:加密功能、数据压缩功能、域变换功能或数据重新格式化功能。
[0145] 示例47包含示例42-46中任一示例的主题,并且其中用于接收修改图的电路包括用于接收指示数据对象的已经被修改的部分的位图的电路。
[0146] 示例48包含示例42-47中任一示例的主题,并且其中用于接收位图的电路包括用于接收进一步指示对数据对象的每个修改部分进行的修改的类型的位图的电路。
[0147] 示例49包含示例42-48中任一示例的主题,并且进一步包含:用于按数据对象的大小的函数来确定每个部分的大小的电路。
[0148] 示例50包含示例42-49中任一示例的主题,并且其中用于应用修改的部件包括用于用由加速器滑撬提供的修改数据改写数据对象的一部分的电路。
[0149] 示例51包含示例42-50中任一示例的主题,并且其中用于应用修改的部件包括用于在数据对象的一部分中插入由加速器滑撬提供的数据的电路。
[0150] 示例52包含示例42-51中任一示例的主题,并且其中用于应用修改的部件包括用于删除数据对象的一部分的电路。
[0151] 示例53包含示例42-52中任一示例的主题,并且进一步包含:用于向非易失性存储器写修改图的电路。
[0152] 示例54包含示例42-53中任一示例的主题,并且其中用于确定对数据对象的修改的部件包括用于将在修改图中表示的修改部分的索引与数据对象的一部分相关的电路。
[0153] 示例55包含一种加速器滑撬,包括:加速器装置;以及修改跟踪器逻辑单元,修改跟踪器逻辑单元用于接收来自计算滑撬的请求,其中请求包含数据对象;用加速器装置通过用于增加与数据对象关联的工作载荷的执行速度的功能来处理数据对象;跟踪从功能的执行中进行的对数据对象的修改;以及向计算滑撬发送指示被修改的数据对象的一部分的修改图,其中修改图可由计算滑撬用于重构修改的数据对象。
[0154] 示例56包含示例55的主题,并且其中接收请求包括接收指示用于处理数据对象的功能的数据。
[0155] 示例57包含示例55和56中任一示例的主题,并且其中处理数据对象包括用定义用于处理数据对象的功能的位流来配置加速器装置。
[0156] 示例58包含示例55-57中任一示例的主题,并且其中配置加速器装置包括从远程计算装置获得位流。
[0157] 示例59包含示例55-58中任一示例的主题,并且其中加速器滑撬进一步包括存储器,并且其中跟踪对数据对象的修改包括拦截对存储器的写操作。
[0158] 示例60包含示例55-59中任一示例的主题,并且其中加速器滑撬进一步包括存储器,并且其中跟踪对数据对象的修改包括将写操作的位置与修改位图的一部分相关。
[0159] 示例61包含示例55-60中任一示例的主题,并且其中跟踪修改包括在修改图的对应部分中指示修改。
[0160] 示例62包含示例55-61中任一示例的主题,并且其中指示修改包括指示数据的改写。
[0161] 示例63包含示例55-62中任一示例的主题,并且其中指示修改包括指示数据的插入。
[0162] 示例64包含示例55-63中任一示例的主题,并且其中指示修改包括指示数据的删除。
[0163] 示例65包含示例55-64中任一示例的主题,并且其中修改跟踪器逻辑单元进一步将修改图格式化为位图。
[0164] 示例66包含示例55-65中任一示例的主题,并且其中加速器装置包括现场可编程门阵列(FPGA),并且修改跟踪器逻辑单元被结合到FPGA中。
[0165] 示例67包含一种方法,包括:由加速器滑撬的修改跟踪器逻辑单元从计算滑撬接收请求,其中请求包含数据对象;用加速器滑撬的加速器装置通过用于增加与数据对象关联的工作载荷的执行速度的功能来处理数据对象;用修改跟踪器逻辑单元跟踪从功能的执行中进行的对数据对象的修改;以及由加速器滑撬发送指示被修改的数据对象的一部分的修改图,其中修改图可由计算滑撬用于重构修改的数据对象。
[0166] 示例68包含示例67的主题,并且其中接收请求包括接收指示用于处理数据对象的功能的数据。
[0167] 示例69包含示例67和68中任一示例的主题,并且其中处理数据对象包括用定义用于处理数据对象的功能的位流来配置加速器装置。
[0168] 示例70包含示例67-69中任一示例的主题,并且其中配置加速器装置包括从远程计算装置获得位流。
[0169] 示例71包含示例67-70中任一示例的主题,并且其中跟踪对数据对象的修改包括拦截对加速器滑撬的存储器的写操作。
[0170] 示例72包含示例67-71中任一示例的主题,并且其中跟踪对数据对象的修改包括将写操作的位置与修改图的一部分相关。
[0171] 示例73包含示例67-72中任一示例的主题,并且其中跟踪修改包括在修改图的对应部分中指示修改。
[0172] 示例74包含示例67-73中任一示例的主题,并且其中指示修改包括指示数据的改写。
[0173] 示例75包含示例67-74中任一示例的主题,并且其中指示修改包括指示数据的插入。
[0174] 示例76包含示例67-75中任一示例的主题,并且其中指示修改包括指示数据的删除。
[0175] 示例77包含示例67-76中任一示例的主题,并且进一步包含:由加速器滑撬将修改图格式化为位图。
[0176] 示例78包含包括用于执行示例67-77中任一示例的方法的部件的加速器滑撬。
[0177] 示例79包含一个或更多个机器可读存储介质,包括存储在其上的多个指令,指令响应于被执行而促使加速器滑撬执行示例67-77中任一示例的方法。
[0178] 示例80包含一种加速器滑撬,其包括:加速器装置;以及对象管理器电路,对象管理器电路用于接收来自计算滑撬的请求,其中请求包含数据对象;用加速器装置通过用于增加与数据对象关联的工作载荷的执行速度的功能来处理数据对象;跟踪从功能的执行中进行的对数据对象的修改;以及向计算滑撬发送指示被修改的数据对象的一部分的修改图,其中修改图可由计算滑撬用于重构修改的数据对象。
[0179] 示例81包含示例80的主题,并且其中接收请求包括接收指示用于处理数据对象的功能的数据。
[0180] 示例82包含示例80和81中任一示例的主题,并且其中处理数据对象包括用定义用于处理数据对象的功能的位流来配置加速器装置。
[0181] 示例83包含示例80-82中任一示例的主题,并且其中配置加速器装置包括从远程计算装置获得位流。
[0182] 示例84包含示例80-83中任一示例的主题,并且其中加速器滑撬进一步包括存储器,并且其中跟踪对数据对象的修改包括拦截对存储器的写操作。
[0183] 示例85包含示例80-84中任一示例的主题,并且其中加速器滑撬进一步包括存储器,并且其中跟踪对数据对象的修改包括将写操作的位置与修改位图的一部分相关。
[0184] 示例86包含示例80-85中任一示例的主题,并且其中跟踪修改包括在修改图的对应部分中指示修改。
[0185] 示例87包含示例80-86中任一示例的主题,并且其中指示修改包括指示数据的改写。
[0186] 示例88包含示例80-87中任一示例的主题,并且其中指示修改包括指示数据的插入。
[0187] 示例89包含示例80-88中任一示例的主题,并且其中指示修改包括指示数据的删除。
[0188] 示例90包含示例80-89中任一示例的主题,并且其中对象管理器电路进一步将修改图格式化为位图。
[0189] 示例91包含示例80-90中任一示例的主题,并且其中加速器装置包括现场可编程门阵列(FPGA),并且对象管理器电路被结合到FPGA中。
[0190] 示例92包含一种加速器滑撬,包括:接收来自计算滑撬的请求的电路,其中请求包含数据对象;用于用加速器滑撬的加速器装置通过用于增加与数据对象关联的工作载荷的执行速度的功能来处理数据对象的电路;用于跟踪从功能的执行中进行的对数据对象的修改的部件;以及用于发送指示被修改的数据对象的一部分的修改图的电路,其中修改图可由计算滑撬用于重构修改的数据对象。
[0191] 示例93包含示例92的主题,并且其中用于接收请求的电路包括用于接收指示用于处理数据对象的功能的数据的电路。
[0192] 示例94包含示例92和93中任一示例的主题,并且其中用于处理数据对象的电路包括用于用定义用于处理数据对象的功能的位流来配置加速器装置的电路。
[0193] 示例95包含示例92-94中任一示例的主题,并且其中用于配置加速器装置的电路包括用于从远程计算装置获得位流的电路。
[0194] 示例96包含示例92-95中任一示例的主题,并且其中用于跟踪对数据对象的修改的部件包括用于拦截对加速器滑撬的存储器的写操作的电路。
[0195] 示例97包含示例92-96中任一示例的主题,并且其中用于跟踪对数据对象的修改的部件包括用于将写操作的位置与修改图的一部分相关的电路。
[0196] 示例98包含示例92-97中任一示例的主题,并且其中用于跟踪修改的部件包括用于在修改图的对应部分中指示修改的电路。
[0197] 示例99包含示例92-98中任一示例的主题,并且其中用于指示修改的电路包括用于指示数据的改写的电路。
[0198] 示例100包含示例92-99中任一示例的主题,并且其中用于指示修改的电路包括用于指示数据的插入的电路。
[0199] 示例101包含示例92-100中任一示例的主题,并且其中用于指示修改的电路包括用于指示数据的删除的电路。
[0200] 示例102包含示例92-101中任一示例的主题,并且进一步包含用于将修改图格式化为位图的电路。
[0201] 本发明还提供以下的技术方案:1. 一种计算滑撬,包括:
存储器装置;
网络接口控制器,所述网络接口控制器耦合到所述存储器装置,其中所述网络接口控制器包含修改逻辑单元以:
发送利用加速器滑撬上的加速器装置的请求,其中所述请求包含数据对象,所述数据对象要由所述加速器装置进行处理以增加与所述数据对象关联的工作载荷的执行速度;
从所述加速器滑撬接收修改图,其中所述修改图指示对所述数据对象的修改;
基于所述修改图确定对所述数据对象的所述修改;以及
在所述存储器装置中应用对所述数据对象的所述修改。
[0202] 如技术方案1所述的计算滑撬,其中发送所述请求包括发送指示要由所述加速器装置对所述数据对象执行的功能的数据。
[0203] 如技术方案2所述的计算滑撬,其中发送指示要执行的功能的所述数据包括发送定义要执行的所述功能的位流。
[0204] 如技术方案2所述的计算滑撬,其中发送指示要执行的功能的所述数据包括发送要用于将所述加速器装置配置成执行所述功能的位流的标识符。
[0205] 如技术方案2所述的计算滑撬,其中发送指示要执行的功能的所述数据包括发送指示以下功能中的一个或更多个的数据:加密功能、数据压缩功能、域变换功能或数据重新格式化功能。
[0206] 如技术方案1所述的计算滑撬,其中接收修改图包括接收指示所述数据对象的已经被修改的部分的位图。
[0207] 如技术方案6所述的计算滑撬,其中接收所述位图包括接收进一步指示对所述数据对象的每个修改部分进行的修改的类型的位图。
[0208] 如技术方案6所述的计算滑撬,其中所述修改逻辑单元进一步按所述数据对象的大小的函数来确定每个部分的大小。
[0209] 如技术方案1所述的计算滑撬,其中应用所述修改包括用由所述加速器滑撬提供的修改数据来改写所述数据对象的一部分。
[0210] 如技术方案1所述的计算滑撬,其中应用所述修改包括在所述数据对象的一部分中插入由所述加速器滑撬提供的数据。
[0211] 如技术方案1所述的计算滑撬,其中应用所述修改包括删除所述数据对象的一部分。
[0212] 如技术方案1所述的计算滑撬,其中所述计算滑撬进一步包括非易失性存储器,并且所述修改逻辑单元进一步将所述修改图写到所述非易失性存储器。
[0213] 一个或更多个机器可读存储介质,包括存储在所述一个或更多个机器可读存储介质上的多个指令,所述多个指令响应于被执行而促使计算滑撬:用所述计算滑撬的网络接口控制器的修改逻辑单元来发送利用加速器滑撬上的加速器装置的请求,其中所述请求包含数据对象,所述数据对象要由所述加速器装置进行处理来增加与所述数据对象关联的工作载荷的执行速度;
用所述修改逻辑单元从所述加速器滑撬接收修改图,其中所述修改图指示对所述数据对象的修改;
用所述修改逻辑单元基于所述修改图确定对所述数据对象的所述修改;以及
用所述修改逻辑单元在所述计算滑撬的存储器装置中应用对所述数据对象的所述修改。
[0214] 如技术方案13所述的一个或更多个机器可读存储介质,其中发送所述请求包括发送指示要由所述加速器装置对所述数据对象执行的功能的数据。
[0215] 如技术方案14所述的一个或更多个机器可读存储介质,其中发送指示要执行的功能的数据包括发送定义要执行的所述功能的位流。
[0216] 如技术方案14所述的一个或更多个机器可读存储介质,其中发送指示要执行的功能的数据包括发送要用于将所述加速器装置配置成执行所述功能的位流的标识符。
[0217] 如技术方案14所述的一个或更多个机器可读存储介质,其中发送指示要执行的功能的数据包括发送指示以下功能中的一个或更多个的数据:加密功能、数据压缩功能、域变换功能或数据重新格式化功能。
[0218] 如技术方案13所述的一个或更多个机器可读存储介质,其中接收修改图包括接收指示所述数据对象的已经被修改的部分的位图。
[0219] 如技术方案18所述的一个或更多个机器可读存储介质,其中接收所述位图包括接收进一步指示对所述数据对象的每个修改部分进行的修改的类型的位图。
[0220] 如技术方案18所述的一个或更多个机器可读存储介质,其中所述多个指令进一步促使所述计算滑撬用所述修改逻辑单元按所述数据对象的大小的函数来确定每个部分的大小。
[0221] 如技术方案13所述的一个或更多个机器可读存储介质,其中应用所述修改包括用由所述加速器滑撬提供的修改数据来改写所述数据对象的一部分。
[0222] 如技术方案13所述的一个或更多个机器可读存储介质,其中应用所述修改包括在所述数据对象的一部分中插入由所述加速器滑撬提供的数据。
[0223] 如技术方案13所述的一个或更多个机器可读存储介质,其中应用所述修改包括删除所述数据对象的一部分。
[0224] 如技术方案13所述的一个或更多个机器可读存储介质,其中所述多个指令进一步促使所述计算滑撬将所述修改图写到非易失性存储器。
[0225] 一种计算滑撬,包括:存储器装置;
网络接口控制器,所述网络接口控制器耦合到所述存储器装置,其中所述网络接口控制器包含修改管理器电路以:
发送利用加速器滑撬上的加速器装置的请求,其中所述请求包含数据对象,所述数据对象要由所述加速器装置进行处理以增加与所述数据对象关联的工作载荷的执行速度;
从所述加速器滑撬接收修改图,其中所述修改图指示对所述数据对象的修改;
基于所述修改图确定对所述数据对象的所述修改;以及
在所述存储器装置中应用对所述数据对象的所述修改。
[0226] 一种方法,包括:由计算滑撬的网络接口控制器的修改逻辑单元发送利用加速器滑撬上的加速器装置的请求,其中所述请求包含数据对象,所述数据对象要由所述加速器装置进行处理以增加与所述数据对象关联的工作载荷的执行速度;
由所述修改逻辑单元从所述加速器滑撬接收修改图,其中所述修改图指示对所述数据对象的修改;
由所述修改逻辑单元基于所述修改图确定对所述数据对象的所述修改;以及
由所述修改逻辑单元在存储器装置中应用对所述数据对象的所述修改。
[0227] 如技术方案26所述的方法,其中发送所述请求包括发送指示要由所述加速器装置对所述数据对象执行的功能的数据。
[0228] 如技术方案27所述的方法,其中发送指示要执行的功能的数据包括发送定义要执行的所述功能的位流。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈