用于增加自愈机制的弹性的方法和装置与流程

文档序号:33641614发布日期:2023-03-29 02:15阅读:32来源:国知局
用于增加自愈机制的弹性的方法和装置与流程

1.本公开总体上涉及自愈机制,更具体地说,涉及增加自愈机制的 弹性(resiliency)。


背景技术:

2.近年来,云计算环境的使用增加已经使得更多地强调环境的弹性 或可靠执行的能力。环境的弹性依赖于计算环境内的每个机制的弹性。 通过治愈使机制成为更弹性的,在治愈期间应用对小的且可纠正的错 误的修复。针对小的错误的机制治愈有助于防止更大和更严重的错误, 这些错误有更大的机会不利地影响云计算环境的性能。
附图说明
3.图1示出用于边缘计算的边缘云配置的概览。
4.图2示出端点、边缘云和云计算环境之间的操作层。
5.图3示出用于边缘计算系统中的联网和服务的示例方法。
6.图4是示例计算环境的说明性示例。
7.图5是图1的主机电路的示例实现的框图。
8.图6是使用先前解决方案的通信和使用图4的主机1电路的通信 的说明性示例。
9.图7是图5的示例主分段和辅分段的示例实现的框图。
10.图8是图1的示例分区电路的示例实现的框图。
11.图9是表示可以由图4的弹性主机电路执行以自愈的示例机器可 读指令的流程图。
12.图10是表示可以执行以实现对于图9的正常通信的准备的示例机 器可读指令的流程图。
13.图11是表示可以执行以实现图9的正常通信的示例机器可读指令 的流程图。
14.图12是表示可以执行以实现图9的弹性通信的示例机器可读指令 的流程图。
15.图13是包括被构造为执行图9-图12的示例机器可读指令以实现 图4的弹性自愈机制的处理器电路的示例处理平台的框图。
16.图14是图13的处理器电路的示例实现的框图。
17.图15是图13的处理器电路的另一示例实现的框图。
18.图16是用于将软件(例如,对应于图9-图12的示例机器可读指 令的软件)分发到与端用户和/或消费者(例如,用于许可、销售和/ 或使用)、零售商(例如,用于销售、转售、许可和/或分许可)和/ 或原始设备制造商(oem)(例如,用于包括于待分发到例如零售商 和/或其他端用户(例如,直接购买客户)的产品中)关联的客户端设 备的示例软件分发平台(例如,一个或多个服务器)的框图。
19.附图并非是按比例的。通常,附图和随附的书面描述通篇将使用 相同的附图标记以指代相同或相似的部分。
20.除非另有明确说明,否则本文使用例如“第一”、“第二”、“第 三”等的描述词,而并非归于或以其他方式指示优先级、物理顺序、 列表中的排列和/或以任何方式排序,而是仅用作标签和/或任意名称以 区分要素以用于易于理解所公开的示例。在一些示例中,在具体实施 方式中可以使用描述词“第一”以指代要素,而在权利要求中可以用 不同的描述词(例如,“第二”或“第三”)指代同一要素。在这样 的实例中,应理解,这些描述词仅用于清楚地识别可能例如以其他方 式共享相同名称的那些要素。
21.如本文所使用的那样,短语“通信”(包括其变型)涵盖直接通 信和/或通过一个或多个中间组件的间接通信,并且不需要直接实体(例 如,有线)通信和/或持续通信,而是反而附加地包括以周期性间隔、 受调度的间隔、非周期性间隔和/或一次性事件的选择性通信。
22.如本文所使用的那样,“处理器电路”定义为包括:(i)一个或 多个专用电路,其被构造为执行特定操作并且包括一个或多个基于半 导体的逻辑器件(例如,由一个或多个晶体管实现的电硬件);和/或 (ii)一个或多个通用的基于半导体的电路,其编程有指令以执行特定 操作并且包括一个或多个基于半导体的逻辑器件(例如,由一个或多 个晶体管实现的电硬件)。处理器电路的示例包括编程的微处理器、 可以实例化指令的现场可编程门阵列(fpga)、中央处理器单元 (cpu)、图形处理器单元(gpu)、数字信号处理器(dsp)、xpu、 或微控制器和集成电路(例如,专用集成电路(asic))。例如,xpu 可以由以下实现:异构计算系统,其包括多种类型的处理器电路(例 如,一个或多个fpga、一个或多个cpu、一个或多个gpu、一个或 多个dsp等和/或其组合);和应用编程接口(api),其可以将计算 任务指派给多种类型的处理电路中最适合于执行计算任务的任何处理 器电路。
具体实施方式
23.许多云计算环境可以利用自愈机制以增加效率。自愈机制是可以 在无需人工输入的情况下对自身应用修复的云计算环境内的设备。如 本文所使用的那样,修复是改变和/或用于应用改变以用于纠正设备内 的问题、错误或缺陷的指令。自愈机制可以识别修复自身或从云计算 环境内的不同设备接收修复。
24.常常,自愈机制可以识别或接收所提议的修复。针对问题所提议 的修复是并未得以保证在纠正问题方面成功的修复(例如,改变和/或 用于应用改变的指令)。这些所提议的修复可能在执行具有各种依赖 关系的许多多租户应用的云计算环境中是常见的。
25.如果修复不成功,则应用所提议的修复的自愈机制可能经历不利 影响。除了遗留未解决的原始问题之外,所提议的修复可以使自愈机 制变得比应用所提议的修复之前的自愈机制的状态更不稳定。这种不 稳定性可能负面影响由自愈机制执行的一个或多个任务的性能。设备 变得较不稳定的示例包括但不限于:设备上运行的一个或多个应用或 服务冻结、崩溃和/或通常并非恰当地运作。附加地或替代地,不稳定 性可能导致自愈机制重新启动一次或多次,和/或失去与外围设备(例 如,云计算环境中的外围设备)的连接。
26.本文描述的示例详述即使当所提议的修复本应产生使用先前解决 方案的自愈机制中的不稳定性时在应用所提议的修复期间保持连接到 云计算环境并执行任务的自愈机制。在这样做时,本文描述的示例增 加自愈机制的弹性。
27.图1是示出包括许多以下示例中称为“边缘云”的处理层的用于 边缘计算的配置
的概览的框图100。如所示,边缘云110共同定位于边 缘位置(例如,接入点或基站140、本地处理中枢150或中心局120) 处,并且因此可以包括多个实体、设备和装备实例。边缘云110比云 数据中心130更靠近端点(消费者和生产者)数据源160(例如,自主 车辆161、用户设备162、商业和工业设备163、视频捕获设备164、 无人机165、智慧城市和建筑设备166、传感器和iot设备167等)得 多。在边缘云110中的边缘处提供的计算、存储器和存储资源对于提 供端点数据源160所使用的服务和功能的超低时延响应时间以及减少 从边缘云110朝向云数据中心130的网络回传业务(由此改进能耗和 总体网络使用等益处)是关键的。
28.计算、存储器和存储是稀缺资源,并且通常取决于边缘位置而降 低(例如,消费者端点设备处可用的处理资源比基站处或中心局处更 少)。然而,边缘位置离端点(例如,用户设备(ue))越靠近,空 间和功率一般受约束就越多。因此,边缘计算尝试通过既在地理上又 在网络接入时间方面定位得更靠近的更多资源的分布减少网络服务所 需的资源的量。以此方式,边缘计算尝试在适当的情况下将计算资源 带到工作负载数据,或者将工作负载数据带到计算资源。
29.以下描述涵盖多个潜在部署并且解决一些网络运营商或服务提供 商可能在其自身基础设施中具有的限制的云架构的方面。它们包括: 基于边缘位置的配置的变化(因为基站等级处的边缘例如在多租户场 景中可能具有更受约束的性能和能力);基于对边缘位置、位置的层 或位置的群组可用的计算、存储器、存储、组构、加速或类似资源的 类型的配置;服务、安全性以及管理和编排能力;和针对实现端服务 的可用性和性能的有关目标。取决于时延、距离和时序特性,这些部 署可以在可以看作“近边缘”、“靠近边缘”、“本地边缘”、“中 间边缘”或“远边缘”层的网络层中完成处理。
30.边缘计算是一种发展中的范例,其中,典型地通过使用基站、网 关、网络路由器或远更靠近生产和消费数据的端点设备的其他设备处 所实现的计算平台(例如,x86或arm计算硬件架构),在网络的“边 缘”处或更靠近网络的“边缘”执行计算。例如,边缘网关服务器可 以配备有存储器和存储资源的池,以对于用于已连接的客户端设备的 低时延用例(例如,自动驾驶或视频监控)实时执行计算。或者作为 示例,可以用计算和加速资源增强基站,以直接处理用于已连接的用 户设备的服务工作负载,而无需经由回传网络进一步传递数据。或者 作为另一示例,可以用执行虚拟化网络功能并供给用于执行用于已连 接的设备的服务和消费者功能的计算资源的标准化计算硬件替代中心 局网络管理硬件。在边缘计算网络内,服务中可能存在计算资源将“移 动”到数据的场景以及数据将“移动”到计算资源的场景。或者作为 示例,基站计算、加速和网络资源可以提供服务,以通过激活休眠容 量(订购、按需容量)根据需要与工作负载需求成比例,以管理困境 情况、紧急情况或在显著更长的所实现的生命周期上提供用于所部署 的资源的长寿命。
31.图2示出端点、边缘云和云计算环境之间的操作层。具体而言, 图2描绘在网络计算的多个说明性层之间利用边缘云110的计算用例 205的示例。层开始于端点(设备和事物)层200处,其访问边缘云 110以进行数据创建、分析和数据消费活动。边缘云110可以跨度多个 网络层,例如:边缘设备层210,其具有位于实体上接近边缘系统的网 关、驻地服务器或网络设备(节点215);网络接入层220,其包括基 站、无线电处理单元、网络中枢、区域数据中心或本地网络设备(设 备225);和位于其间的任何设备、设备或节点(在层212中,未详细 示出)。边缘云110内的以及各个层之间的网络通信可以经由任何数 量的有线或无线
介质(包括:经由未描绘的连接性架构和技术)发生。
32.源自网络通信距离和处理时间约束的时延的示例可以范围从当在 端点层200之间时小于1毫秒(ms)、在边缘设备层210处小于5ms、 到甚至当与网络接入层220处的节点进行通信时的10至40ms之间。 超出边缘云110的是核心网230和云数据中心240层,其均具有增加 的时延(例如,在核心网层230处的50-60ms之间、到云数据中心层 处的100或更多ms)。因此,具有至少50至100ms或更多的时延的 核心网数据中心235或云数据中心245处的操作将不能够完成用例205 的许多时间关键功能。为了说明和对比的目的提供这些时延值中的每 一个;应理解,使用其他接入网络介质和技术可以进一步减少时延。 在一些示例中,相对于网络源和目的地,网络的各个部分可以分类为
ꢀ“
靠近边缘”、“本地边缘”、“近边缘”、“中间边缘”或“远边 缘”层。例如,从核心网数据中心235或云数据中心245的角度来看, 中心局或内容数据网络可以看作位于“近边缘”层内(“近”于云, 当与用例205的设备和端点进行通信时具有高时延值),而接入点、 基站、驻地服务器或网络网关可以看作位于“远边缘”层内(“远
”ꢀ
离开云,当与用例205的设备和端点进行通信时具有低时延值)。应 理解,构成“靠近”、“本地”、“近”、“中间”或“远”边缘的 特定网络层的其他分类可以基于从任何网络层200-240中的源测量的 时延、距离、网络跳转的数量或其他可测量的特性。
33.归因于多个服务利用边缘云,各种用例205可以在来自传入流的 使用压力下接入资源。为了实现具有低时延的结果,在边缘云110内 执行的服务鉴于以下方面平衡变化的要求:(a)优先级(吞吐量或时 延)和服务质量(qos)(例如,用于自动驾驶汽车的业务鉴于响应时 间要求可以具有比温度传感器更高的优先级;或者,取决于应用,性 能敏感性/瓶颈可以存在于计算/加速器、存储器、存储或网络资源处); (b)可靠性和弹性(例如,取决于应用,需要对一些输入流采取行动, 并以任务关键可靠性路由业务,而一些其他输入流可以容忍偶尔故 障);和(c)实体约束(例如,电力、冷却和形数)。
34.用于这些用例的端到端服务视图涉及服务流的概念并且与事务关 联。事务详述对于消费服务的实体的整体服务要求以及用于资源、工 作负载、工作流程以及商业功能和商业等级要求的关联服务。可以在 服务的生命周期期间以确保关于事务的实时和运行时合同合规性的方 式在每个层处管理用所描述的“条款”执行的服务。当事务中的组件 错过其对服务等级协议(sla)的协定时,系统作为整体(事务中的 组件)可以提供以下能力:(1)理解sla违反的影响;和(2)增强 系统中的其他组件以复原整体事务sla;和(3)实现步骤以进行补救。
35.因此,考虑到这些变化和服务特征,边缘云110内的边缘计算可 以提供用于实时或近乎实时服务于并且响应于用例205的多个应用(例 如,对象跟踪、视频监控、所连接的汽车等)并满足对于这些多个应 用的超低时延要求的能力。这些优势实现因时延或其他限制而无法借 助传统云计算的全新类的应用(例如,虚拟网络功能(vnf)、功能 即服务(faas)、边缘即服务(eaas)、标准过程等)。
36.然而,随边缘计算的优势而来的是以下告诫。位于边缘处的设备 一般是受资源约束的,并且因此对边缘资源的使用存在压力。典型地, 通过存储器和存储资源的池化以用于由多个用户(租户)和设备使用 解决该问题。边缘可能是受功率和冷却约束的,并且因此需要由正消 耗最多功率的应用考虑功率使用。在这些池化存储器资源中可能存在 固有的功率性能权衡,因为它们中的许多很可能使用新兴存储器技术, 其中,更多的功率需要更
大的存储器带宽。同样,因为边缘位置可能 是无人化的,并且甚至可能需要受许可的访问(例如,当容纳于第三 方位置中时),所以还需要改进的硬件安全性和信任根可信功能。此 类问题在多租户、多拥有方或多接入设置中的边缘云110中被放大, 其中,许多用户请求服务和应用,特别是随着网络使用动态地波动并 且多个利益相关方的组成、用例和服务改变。
37.在更一般的层次上,边缘计算系统可以描述为涵盖在边缘云110 中操作的先前讨论的层(网络层200-240)处的任何数量的部署,其提 供来自客户端和分布式计算设备的协调。一个或多个边缘网关节点、 一个或多个边缘聚合节点以及一个或多个核心数据中心可以分布跨越 网络的各个层,以通过或代表电信服务提供商(“telco”或“tsp”)、 物联网服务提供商、云服务提供商(csp)、企业实体或任何其他数量 的实体提供边缘计算系统的实现。例如,当受编排以满足服务目标时, 可以动态地提供边缘计算系统的各种实现和配置。
38.与本文提供的示例一致,客户端计算节点可以体现为能够作为数 据的生产者或消费者进行通信的任何类型的端点组件、设备、器具或 其他事物。此外,边缘计算系统中所使用的标记“节点”或“设备
”ꢀ
并不一定意指该节点或设备以客户端或代理/随从/跟随方角色进行操 作;相反,边缘计算系统中的任何节点或设备指代包括分立的或连接 的硬件或软件配置以促进或使用边缘云110的单独实体、节点或子系 统。
39.故此,边缘云110由受网络层210-230之间的边缘网关节点、边缘 聚合节点或其他边缘计算节点操作并且处于其内的网络组件和功能特 征形成。边缘云110因此可以体现为提供与本文讨论的有无线接入网 (ran)能力的端点设备(例如,移动计算设备、iot设备、智能设备 等)接近地定位的边缘计算和/或存储资源的任何类型的网络。换言之, 边缘云110可以设想为连接端点设备和充当进入服务提供商核心网(包 括移动运营商网络(例如,全球移动通信系统(gsm)网络、长期演 进(lte)网络、5g/6g网络等))的入口点的传统网络接入点同时还 提供存储和/或计算能力的“边缘”。也可以利用其他类型和形式的网 络接入(例如,wi-fi、长距离无线、包括光网络的有线网络等)代替 这些3gpp运营商网络或与之组合。
40.边缘云110的网络组件可以是服务器、多租户服务器、器具计算 设备和/或任何其他类型的计算设备。例如,边缘云110可以包括器具 计算设备,其为包括外壳、机壳、壳体或壳的自含式电子设备。在一 些情况下,外壳可以关于便携性而受尺寸化,以使得其可以由人携带 和/或运送。示例外壳可以包括形成部分地或完全地保护器具的内容物 的一个或多个外表面的材料,其中,保护可以包括天气保护、危险环 境保护(例如,电磁干扰(emi)、振动、极端温度等)和/或实现浸 水性。示例外壳可以包括用于为固定和/或便携式实现提供功率的功率 电路(例如,交流(ac)功率输入、直流(dc)功率输入、ac/dc 转换器、dc/ac转换器、dc/dc转换器、功率调节器、变压器、充电 电路、电池、有线输入和/或无线功率输入)。示例外壳和/或其表面可 以包括或连接到安装硬件,以实现对结构(例如,建筑物、电信结构 (例如,杆、天线结构等)和/或机架(例如,服务器机架、刀片支架 等))的附接。示例外壳和/或其表面可以支撑一个或多个传感器(例 如,温度传感器、振动传感器、光传感器、声学传感器、电容传感器、 接近度传感器、红外或其他视觉热传感器等)。一个或多个这样的传 感器可以包含于器具的表面中,由其承载,或以其他方式嵌入在器具 的表面中和/或安装到器具的表面。示例外壳和/或其表面可以支撑机械 连接性(例如,推进硬件(例如,轮、转
子(例如,螺旋桨)等)和/ 或铰接硬件(例如,机器人臂、可枢转配件等))。在一些情况下, 传感器可以包括任何类型的输入设备(例如,用户接口硬件(例如, 按钮、开关、拨盘、滑动件、麦克风等))。在一些情况下,示例外 壳包括包含于其中,由其承载,嵌入其中和/或附接至其的输出设备。 输出设备可以包括显示器、触摸屏、灯、发光二极管(led)、扬声 器、输入/输出(i/o)端口(例如,通用串行总线(usb))等。在一 些情况下,边缘设备是用于特定目的网络中的设备(例如,交通灯), 但是可以具有可以出于其他目的而利用的处理和/或其他能力。这些边 缘设备可以独立于其他连网设备,并且可以配备具有对于其主要目的 合适的形数的外壳;也对于不干扰其主要任务的其他计算任务是可用 的。边缘设备包括物联网设备。器具计算设备可以包括硬件和软件组 件,以管理本地问题(例如,设备温度、振动、资源利用、更新、电 力问题、物理和网络安全等)。边缘云110可以还包括一台或多台服 务器和/或一台或多台多租户服务器。该服务器可以包括操作系统并且 实现虚拟计算环境。虚拟计算环境可以包括管理(例如,量产、部署、 委托、销毁、解除委托等)一个或多个虚拟机、一个或多个容器等的 管理程序。这些虚拟计算环境提供一个或多个应用和/或其他软件、代 码,或脚本可以在与一个或多个其他应用、软件、代码或脚本隔离的 同时执行的执行环境。
41.在图3中,(呈移动设备、计算机、自主车辆、商业计算设备、 工业处理设备的形式的)各种客户端端点310交换对于端点网络聚合 类型特定的请求和响应。例如,客户端端点310可以凭借通过驻地网 络系统332交换请求和响应322而经由有线宽带网络获得网络接入。 一些客户端端点310(例如,移动计算设备)可以凭借通过接入点(例 如,蜂窝网络塔)334交换请求和响应324而经由无线宽带网络获得网 络接入。一些客户端端点310(例如,自主车辆)可以通过位于街道的 网络系统336经由无线车辆网络获得对于请求和响应326的网络接入。 然而,无论网络接入的类型如何,tsp都可以在边缘云110内部署聚 合点342、344以聚合业务和请求。因此,在边缘云110内,tsp可以 (例如,在边缘聚合节点340处)部署各种计算和存储资源,以提供 所请求的内容。边缘云110的边缘聚合节点340和其他系统连接到云 或数据中心360,其使用回传网络350以履行来自云/数据中心的对网 站、应用、数据库服务器等的更高时延请求。边缘聚合节点340和聚 合点342、344的附加或合并实例(包括单个服务器框架上部署的那些) 也可以存在于边缘云110或tsp基础设施的其他区域内。
42.图4是示例计算环境的说明性示例。示例环境400包括云402、示 例弹性主机电路404、伙伴主机电路406和修复408。
43.图4的云402是经由网络连接的设备群组。在一些示例中,网络 是互联网。云402中的设备在它们之间创建、存储、管理并处理数据。 通过这样做,云402中的设备可以按比如果在云402外部执行任务更 大和更高效的规模执行任务。
44.在一些示例中,云402中的设备根据所指派的优先级执行任务。 在一些这样的示例中,指派给给定设备的较高优先级任务在指派给同 一设备的较低优先级任务之前加以执行。任务的优先级可以是上下文 特定的。在一些示例中,示例任务的优先级可以由执行任务的设备、 由云402中的另一设备或由与云402中的一个或多个设备进行接口的 用户指派。
45.图4的示例弹性主机电路404采用具有增加的弹性的自愈,如本 公开的示例所教导的那样。示例弹性主机电路404连接到云402并且 可以执行任何数量的任务。这些任务可
以在本地或使用云402执行。 在示例环境400内,示例弹性主机电路404的最高优先级任务用于经 由云402与伙伴主机电路406进行通信。如本文所使用的那样,“通 信”指代两个设备之间的数据的发送和接收。示例弹性主机电路404 与伙伴主机电路406之间的通信可以用于任何目的。在一些示例中, 作为软件应用的执行的结果,发送通信。
46.图4的修复408是纠正示例弹性主机电路404内的问题、错误或 缺陷的方法。为了简单,术语“问题”在本文中用以共同指代修复尝 试纠正的任何配置、问题、错误或缺陷。示例弹性主机电路404内的 问题可能出于任何原因而发生。问题可能不利地影响由示例弹性主机 电路404执行的任务中的一个或多个,包括但不限于与伙伴主机电路 406的通信。此外,修复408可以采取任何形式。示例修复包括但不限 于:重新启动软件应用或计算资源,将驱动程序或软件应用更新到更 新近的(例如,最新的)版本,调整网络通信协议内的参数等。
47.在示例环境400内,示例弹性主机电路404从云402中的设备接 收修复408。在一些示例中,从伙伴主机电路406发送修复408。在其 他示例中,从不同的设备发送修复408。虽然为了简单在图4中未示出, 但是示例弹性主机电路404可以附加地或替代地通过自诊断识别修复 408。虽然图4为简单示出单一修复408,但是示例弹性主机电路404 可以接收或识别任何数量的修复。
48.示例弹性主机电路404在继续与伙伴主机电路406进行通信的同 时应用修复408。因为修复可能无意中导致不利影响,所以修复408 可能导致来自使用先前自愈机制的主机的性能的下降。修复408也可 以导致使用先前自愈机制的主机暂时或永久失去与云402的通信。通 过采用本公开的教导,示例弹性主机电路404潜在地减轻修复408的 不利影响,由此增加弹性。
49.图5是图4的弹性主机电路的示例实现的框图。示例弹性主机电 路包括示例分区器电路502、示例主分段504、示例辅分段506、示例 路径寻找器电路508和示例修复管理电路510。
50.图5的示例分区器电路502将示例弹性主机电路404的计算资源 分区为示例主分段504和示例辅分段506。在一些示例中,分段可以称 为“部分”、“分区”或“分部”。示例分区器电路502进行分区, 以使得示例主分段504具有比示例辅分段506更大的计算资源的部分。 示例分区器电路502还进行分区,以使得示例主分段504和示例辅分 段506可以彼此独立地执行任务。
51.计算资源的分区可以是上下文特定的。在一些示例中,划分可以 取决于示例弹性主机电路内哪些计算资源是可用的、与伙伴主机电路 406的通信的类型和内容和/或由示例弹性主机电路404执行的其他任 务。例如,分区可以考虑辅分段待跨越多个主分段重用以减少对于相 同辅分段的不必要的复制的需要的能力。在重用和已经存在的辅分段 的情况下,示例分区器电路502可以指向该示例辅分段而不是创建新 的辅分段。
52.在一些示例中,示例弹性主机电路404包括用于分区的部件。例 如,用于分区的部件可以由示例分区器电路502实现。在一些示例中, 示例分区器电路502可以由机器可执行指令实现(例如,至少由处理 器电路执行的图10的框1002实现),处理器电路可以由图13的示例 处理器电路1312、图14的示例处理器电路1400和/或图15的示例现 场可编程门阵列(fpga)电路1500实现。在其他示例中,示例分区 器电路502由其他硬件逻辑电路、硬件实现
的状态机和/或硬件、软件 和/或固件的任何其他组合实现。例如,示例分区器电路502可以由被 构造为在不执行软件或固件的情况下执行对应操作的至少一个或多个 硬件电路(例如,处理器电路、分立式和/或集成模拟和/或数字电路、 fpga、专用集成电路(asic)、比较器、运算放大器(op-amp)、 逻辑电路等)实现,但是其他结构同样是适当的。
53.图5的示例主分段504表示示例弹性主机电路404的计算资源的 大部分。示例主分段504可以包括多个处理单元、物理系统存储器、 完整操作系统、驱动程序、运行时环境、软件容器、网络接口卡或网 络接口卡内的虚拟功能或端口、软件应用和服务等。示例主分段504 执行示例弹性主机电路404负责的多数任务,包括与伙伴主机电路406 的通信。
54.图4的示例辅分段506是示例弹性主机电路404的计算资源的小 部分。示例辅分段506可以包括一个或少数量的处理单元、少量的保 留存储器、对网络接口卡上的虚拟功能的访问和/或对低性能局域网 (lan)的访问。intel management或intel activemanagement可以使用低性能lan的示例。如果 需要应用修复408,则示例辅分段506工作以支持主分段。当尚未接收 到或尚未识别修复时,示例辅分段506可以执行示例弹性主机电路404 负责的低优先级任务。在一些示例中,示例辅分段506可以称为“影 子”、“备用”或“看门狗”分段。
55.图5的示例路径寻找器电路508寻找通过云402的通信的路径。 路径是发送信息所通过的云402中的设备或网络交换机的排序。通过 沿着路径在设备之间发送数据,第一设备和第二设备可以在不需要物 理连接的情况下与彼此进行通信。示例路径寻找器电路508寻找示例 主分段504与伙伴主机电路406之间的第一路径。示例路径寻找器电 路508还寻找示例辅分段506与伙伴主机电路406之间的第二路径。 示例路径寻找器电路508可以寻找可以由示例主分段504和/或示例辅 分段506利用以与伙伴主机电路406进行通信的任何数量的附加路径。
56.在一些示例中,示例路径寻找器电路508可以遍及示例过程900 的持续时间为示例主分段504和示例辅分段506二者寻找附加路径。 在其他示例中,在特定情况(例如,当识别针对路径的问题时(或在 不久的将来预计该问题))下寻找附加路径。在一些示例中,修复管 理电路510可以考虑在第一路径和第二路径上复制分组,直到第一路 径从检测到的不稳定性复原,而在另一种情况下,一旦在第一路径中 检测到不稳定性,分组转发就切换到第二路径。附加路径的主动发现 和维护对于云402上的设备可能是关键的。如果存在通过第一路径的 多个通信信道并且附加路径不足以处置所有信道的切换,则示例路径 寻找器电路508模块可以惩罚一些低优先级信道或缓冲来自并非延迟 敏感的信道的分组,并且可以容忍延迟达小于第一路径的预计不稳定 性时间的已知时间。
57.在一些示例中,示例弹性主机电路404包括用于寻找路径的部件。 例如,用于寻找的部件可以由示例路径寻找器电路508实现。在一些 示例中,示例路径寻找器电路508可以由机器可执行指令实现(例如, 至少由处理器电路执行的图10的框1004实现),处理器电路可以由 图13的示例处理器电路1312、图14的示例处理器电路1400和/或图 15的示例现场可编程门阵列(fpga)电路1500实现。在其他示例中, 示例路径寻找器电路508由其他硬件逻辑电路、硬件实现的状态机和/ 或硬件、软件和/或固件的任何其他组合实现。例如,示例路径寻找器 电路508可以由被构造为在不执行软件或固件的情况下执行对应操作 的至少一个或多个硬件电路(例如,处理器电路、分立式和/或集成模 拟和/或数字电路、fpga、专
用集成电路(asic)、比较器、运算放 大器(op-amp)、逻辑电路等)实现,但是其他结构同样是适当的。
58.图5的示例修复管理电路510接收或识别修复408并且将修复408 应用于示例主分段504。修复管理电路还确保示例弹性主机电路404 与伙伴主机电路之间的通信406在应用修复期间继续。
59.虽然在本文所公开的示例中,修复408应用于主分段504,但是在 一些示例中,修复可以附加地或替代地应用于辅分段506。在一些这样 的示例中,修复408对于示例主分段504的应用和修复408对于示例 辅分段506的应用不并发地发生。相反,修复408的应用可以在一个 分段上完成,然后修复408的应用在另一分段上开始。通过在不同时 间将修复408应用于示例主分段504和示例辅分段506,示例修复管理 电路510避免修复408具有对这两个分段的不利影响并使示例弹性主 机电路404失去与伙伴主机电路406的通信的风险。在图9-图12中进 一步探究示例修复管理电路510。
60.在一些示例中,示例弹性主机电路404包括用于应用的部件、用 于确定的部件、用于致使的部件和用于转移的部件。例如,用于应用 的部件、用于确定的部件、用于致使的部件和用于转移的部件可以由 修复管理电路510实现。在一些示例中,修复管理电路510可以由机 器可执行指令实现(例如,至少由处理器电路执行的图10的框1006、 1008和1010、图11的框1102和1106以及图12中的框1204至1216 实现),处理器电路可以由图13的示例处理器电路1312、图14的示 例处理器电路1400和/或图15的示例现场可编程门阵列(fpga)电路 1500实现。在其他示例中,修复管理电路510由其他硬件逻辑电路、 硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合实现。例 如,修复管理电路510可以由被构造为在不执行软件或固件的情况下 执行对应操作的至少一个或多个硬件电路(例如,处理器电路、分立 式和/或集成模拟和/或数字电路、fpga、专用集成电路(asic)、比 较器、运算放大器(op-amp)、逻辑电路等)实现,但是其他结构同 样是适当的。
61.在应用修复408之前,示例弹性主机电路404实施正常通信。在 正常通信期间,示例主分段504使用第一路径与伙伴主机电路406进 行通信,示例辅分段506可以执行低优先级任务,并且示例修复管理 电路510采取预防措施以准备修复408。在图10和图11中进一步探究 正常通信。
62.一旦接收到或识别修复408,将修复408应用于示例主分段504 就可能具有使示例主分段504不能与伙伴主机电路406进行通信的不 利影响。在该示例中在场景中,修复管理电路510赋能示例辅分段506 使用第二路径接管与伙伴主机电路406的通信。与示例辅分段506的 这种通信继续,直到修复408的应用完成,并且示例主分段504重新 赢得用于与伙伴主机电路406进行通信的能力。示例弹性主机电路404 通过以下操作展现增加的弹性:即使当修复408具有传统上在针对自 愈机制的先前解决方案中将禁用与伙伴主机电路406的通信的不利影 响时,也继续所述通信。
63.在图5的示例框图中,示例分区器电路502、示例路径寻找器电路 508和示例修复管理电路510示出为与示例主分段504和示例辅分段 506分离的实体。在一些示例中,示例分区器电路502、示例路径寻找 器电路508和示例修复管理电路510不是分离的实体。在一些这样的 示例中,示例弹性主机电路404的计算资源可以在制造之时或在设备 连接到云402之前划分为示例主分段504和示例辅分段506。在一些这 样的示例中,示例主分段可以
自己识别用于通信的路径,并且示例辅 分段可以自己识别用于通信的路径。此外,在一些这样的示例中,示 例修复管理电路510可以实现于示例辅分段506内。
64.图6是使用先前解决方案的通信和使用图4的主机1电路的通信 的说明性示例。示出使用先前解决方案610的通信的示图包括先前主 机电路608、编号节点601、602和603以及伙伴主机电路406。示出 具有增加的弹性的通信612的示图包括示例弹性主机电路404、示例主 分段504、示例辅分段506、编号节点601、602、603、604、605、606 和伙伴主机电路406。
65.在示出使用先前解决方案610的通信的示图中,先前主机电路608 是通过先前解决方案具有自愈的设备。在图6的说明性示例中,先前 主机电路608的最高优先级任务是经由云402与伙伴主机电路406进 行通信,相似于示例弹性主机电路404。所述通信通过由节点a 601、 节点b 602和节点c 603定义的示例路径发生。
66.在图6的说明性示例中,先前主机电路608和示例弹性主机电路 404二者接收或识别具有不利影响的修复408。此外,节点b 602在这 两个示图中经历故障。在示出使用先前解决方案610的通信的示图中, 修复408和节点b 602二者独立地使先前主机电路608失去与伙伴主 机电路406的通信。
67.示出具有增加的弹性的通信612的示图是示例云计算环境400的 示例实现。在示出具有增加的弹性的通信612的示图中,示例分区器 电路502将示例弹性主机电路404的计算资源分区为示例主分段504 和示例辅分段506。此外,示例路径寻找器电路508寻找用于示例主分 段504的由节点a 601、节点b 602和节点c 603的先前路径以及用于 示例辅分段的新路径。在图6的说明性示例中,示例路径寻找器电路 识别对于用于与第二路径的通信的示例辅分段可用的两条路径。在一 些示例中,示例路径寻找器电路508识别用于示例主分段504和示例 辅分段506二者的一条或多条路径。
68.节点d 604、节点e 605和节点f 606的路径不利用出故障的节点 b 602。因此,通过利用沿着节点d 604、节点e 605和节点f 606的路 径的示例辅分段506,示例弹性主机电路404展现增加的弹性并且可以 继续与伙伴主机电路406进行通信,而示例主分段504经历来自修复 408的不利影响。一旦修复408的应用完成,示例主分段504就重新赢 得其用于与伙伴主机电路406进行通信的能力,并且通信从示例辅分 段506转移到示例主分段504。
69.在应用修复408之前,示例弹性主机电路404与伙伴主机电路406 之间的通信通过示例主分段504发生。因此,对于示例辅分段506与 伙伴主机电路406成功进行通信,示例修复管理电路510设置示例辅 分段506的信任等级,以匹配示例主分段504的信任等级。在一些示 例中,匹配信任等级包括:将示例辅分段506中的一个或多个计算资 源设置为具有示例主分段504的关联计算资源的相同安全配置。安全 配置可以包括但不限于加密密钥、所测量的重新引导、安全化重新引 导、信任根、证明协议、认证协议、授权协议等。信任等级的匹配可 以是上下文特定的,并且取决于示例弹性主机电路404的计算资源。
70.匹配示例主分段504与示例辅分段506之间的信任等级提升示例 弹性主机电路404的整体安全等级。在这样做时,修复管理电路510 可以通过减轻否则将归因于较低的安全等级而具有不利影响的恶意攻 击增加示例弹性主机电路404的弹性。
71.在一些示例中,示例辅分段506的角色可以由云402中的不同示 例弹性主机电路的一些或所有计算资源执行。在一些这样的示例中, 示例弹性主机电路404和不同的示例
主机电路共享存储器池。存储器 池是存储器资源群组,其中,部分存储器资源分配给跨越云402的单 独计算设备或虚拟机(vm),并且专用于该特定计算元素达工作负载 的寿命。采用存储器池的示例系统可以包括但不限于compute expresslink
tm

72.在示例辅分段506的角色可以由云402中的示例主机d电路设备 的一些或所有计算资源执行的一些示例中,示例弹性主机电路404可 以通过无线方式连接到示例主机d电路。在一些这样的示例中,示例 主机d电路可以在协议栈中的任何层处接管与伙伴主机电路406的通 信。在一些这样的示例中,通信可以利用传输控制协议/互联网协议 (tcp/ip)模型并且包括数据链路层处的多无线电接入技术双(多 rat)连接。
73.图7是图5的示例主分段和辅分段的示例实现的框图。示例主分 段504包含处理单元702、系统物理存储器704、软件架构706以及应 用和服务708。示例辅分段506包含处理单元710、保留存储器712、 薄软件架构714和软件路由器716。
74.处理单元702和处理单元710可以是执行指令的任何类型的电路。 在图7的示例实现中,处理单元702和处理单元710是中央处理单元 (cpu)。在一些示例中,处理单元由图13、图14和/或图15所描述 的处理电路中的一个或多个实现。存在比用于示例辅分段506的处理 单元702更多的示例主分段504中的处理单元702。在一些示例中,处 理单元702可以支持400个逻辑线程,并且处理单元710实现单一逻 辑线程。在一些示例中,辅分段的处理单元710是实现同时多线程的 单一cpu。
75.系统物理存储器704和保留存储器712二者可以包含易失性存储 器和非易失性存储器。易失性存储器可以由同步动态随机存取存储器 (sdram)、动态随机存取存储器(dram)、动态随机 存取存储器和/或任何其他类型的ram器件实现。非易 失性存储器可以由闪存和/或任何其他期望类型的存储器设备实现。系 统物理存储器704用以实现示例主分段504的软件架构706以及示例 主分段504的应用和服务708。相似地,保留存储器712用以实现示例 辅分段506的软件架构706以及示例辅分段506负责的任何低优先级 任务。此外,示例主分段504和示例辅分段506二者在应用修复408 期间访问保留存储器712。在图8、图9、图10、图11和图12中进一 步描述该共享存储器访问。
76.示例主分段504的软件架构706可以包括完整操作系统、驱动程 序、运行时环境、软件容器等。软件架构706还给予示例主分段504 通过网络接口卡、串行通信协议等对输入/输出功能的访问。软件架构 706使得示例主分段504能够运行应用和服务708。相反,示例辅分段 506的薄软件架构714可以包含薄专用操作系统和支持仿真层。薄软件 架构714可以在修复408期间支持示例主分段504,并且可以执行指派 给示例辅分段506的任何附加低优先级任务。
77.软件路由器716将示例辅分段506连接到云402,并且实现与伙伴 主机电路406的通信。这些软件路由器716可以利用经历高的端到端 时延的廉价节点,导致与示例主分段504上的更昂贵的网络接口卡可 以利用以连接到伙伴主机电路406的较低时延节点相比的更低的性能。 示例分区器电路502划分计算资源以实现这种性能差异作为成本节省 措施,如示例辅分段506在修复期间起到支持示例主分段504的主要 作用,并且因此不需要始终如一的高性能。
78.示例主分段504通过运行应用和服务708执行任务。例如,与伙 伴主机电路406的通信可以通过自身由微服务集合构成的软件应用得 以实现。通过利用处理单元702、系统
物理存储器704和软件架构706, 微服务执行为应用和服务708的部分。在一些示例中,可以通过应用 和服务708实现其他功能。
79.示例分区器电路502划分示例弹性主机电路404的计算资源,以 使得示例主分段504和示例辅分段506可以彼此独立地进行操作。在 这样做时,示例辅分段506可以继续操作,并且倘若修复408具有不 利影响,那么示例弹性主机电路404可以继续与伙伴主机电路406进 行通信。例如,薄软件架构714中的薄操作系统独立于软件架构706 中的完整操作系统重新启动。此外,薄操作系统具有其自己的引导管 理器配置,其允许使得薄操作系统能够确定是否重新启动保留存储器 712和处理单元710。
80.附加地或替代地,薄软件架构714可以使用配置寄存器中存储的 位图指定计算资源。在一些这样的示例中,配置寄存器可以保存在电 可擦除可编程只读存储器(eeprom)中,这样防止配置寄存器的值 在电力的丢失期间丢失。在重新启动期间,软件架构706的完整操作 系统可以避免改写或重新启动由配置寄存器指定的特定计算资源。在 一些这样的示例中,由位图识别的计算资源之一是保留存储器712。因 此,保留存储器712在应用修复408期间保持不受示例主分段504的 重新启动影响。
81.在一些示例中,示例弹性主机电路404包括用于指定配置寄存器 中存储的位图中的计算资源的部件。例如,用于指定的部件可以由示 例修复管理电路510实现。在一些示例中,示例修复管理电路510可 以由机器可执行指令实现(例如,至少由处理器电路执行的图10的框 1008实现),处理器电路可以由图13的示例处理器电路1312、图14 的示例处理器电路1400和/或图15的示例现场可编程门阵列(fpga) 电路1500实现。在其他示例中,示例分区器电路502由其他硬件逻辑 电路、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合实 现。例如,示例分区器电路502可以由被构造为在不执行软件或固件 的情况下执行对应操作的至少一个或多个硬件电路(例如,处理器电 路、分立式和/或集成模拟和/或数字电路、fpga、专用集成电路 (asic)、比较器、运算放大器(op-amp)、逻辑电路等)实现,但 是其他结构同样是适当的。
82.图8是图4的示例分区器电路502的示例实现的框图。示例实现 包括示例弹性主机电路404,附图包括薄软件架构714、处理单元710、 系统物理存储器704、保留存储器712和示例存储器映射802。此外, 系统物理存储器704包括第一缓存线804,并且保留存储器包含第二缓 存线806。
83.示例存储器映射802是用以将系统物理存储器704中的按缓存线 粒度的一个或多个存储器地址与保留存储器712中的按缓存线粒度的 一个或多个存储器地址关联的数据结构。如本文所使用的那样,为了 简单,按缓存线粒度的存储器地址可以称为“缓存线”。虽然为了简 单在图8中示出为分离的实体,但是示例存储器映射802存储在保留 存储器712中并且在应用修复408期间由保留存储器712和系统物理 存储器704二者访问。如果示例主分段504在应用修复408期间需要 重新启动,则薄软件架构714确保示例存储器映射802不受改写。
84.在图8的示例实现中,应用于示例主分段504的修复408需要改 变驻留在系统物理存储器704中的第一缓存线804的值。在值改变之 前,第一缓存线804的原始值在第二缓存线806中受复制,第二缓存 线806驻留在保留存储器712中。在一些示例中,将值从第一缓存线 804拷贝到第二缓存线806并记录示例存储器映射802的改变的过程称 为写时拷贝。
85.当修复408应用于示例主分段504时,示例存储器映射802记录 第一缓存线804与第二缓存线806之间的关联。通过拷贝一个或多个 缓存线并使用示例存储器映射802以记录一个或多个关联,示例辅分 段506记录在修复408期间对示例主分段504的存储器发生的改变。 该示例实现是有利的,因为防止页面故障错误在系统物理存储器704 中发生,并且因为保留存储器712的量可能受限为包括用于薄软件架 构714的资源、示例存储器映射802以及在应用修复408期间观察到 的对缓存线的改变。
86.一旦修复408的应用完成,示例修复管理电路510就可以确定修 复408是否成功。如果示例主分段504比在修复408之前的示例主分 段504的状态更不稳定,和/或如果示例主分段504不能与伙伴主机电 路406进行通信,则修复408可能不成功。如果修复408不成功,则 示例修复管理电路510可以将示例主分段504复原到其先前稳定状态。 使用示例存储器映射802以建立系统物理存储器704和保留存储器712 中的缓存线之间的关系,示例复原通过用第二缓存线806中存储的先 前稳定值替换第一缓存线804中的更改后的值而发生。相似地,示例 修复管理电路510使用示例存储器映射802以将已经归因于修复408 改变的系统物理存储器704中的任何附加缓存线替换回到保留存储器 712中存储的原始值。在修复408成功的示例中,可以回收保留存储器 710中的第二缓存线806和任何附加缓存线以用于将来使用。这种回收 是可实现的,因为不再需要在应用修复408期间存储的先前稳定值以 复原示例主分段506。
87.在一些示例中,在接收或识别修复之前使用写时拷贝。拷贝和写 入过程可以用在来自示例主分段504用以与伙伴主机电路406进行通 信的应用和服务708中的一个或多个微服务上。微服务从示例主分段 504到示例辅分段506加以拷贝或镜像。如本文所使用的那样,术语“镜 像”和“拷贝”当提及微服务时可以可互换地使用。在一些这样的示 例中,如果修复408使示例主分段504失去与合作伙伴主机电路406 的通信,则示例辅分段506使用镜像微服务以继续与合作伙伴主机电 路406的通信。
88.在一些示例中,伙伴主机电路406或云402中的其他设备可以请 求来自因应用修复408而改变的缓存线之一的信息。在一些这样的示 例中,示例辅分段506可以按原子等级响应于对改变后的缓存线的请 求。原子等级响应可以采取ebusy或eagain错误的形式,其向伙 伴主机电路406或其他设备通知示例弹性主机电路404当前忙于其他 操作并且不能提供所请求的缓存线。原子等级响应可以防止伙伴主机 电路406或云402中的其他设备接收过时的缓存线或提早修改的缓存 线。
89.虽然在图5中示出实现图4的示例弹性主机电路404的示例方式, 但是可以组合、划分、重新布置、省略、消除和/或以任何其他方式实 现图5所示的要素、过程和/或设备中的一个或多个。此外,示例分区 器电路502、示例主分段504、示例辅分段506、示例路径寻找器电路 508、示例修复管理电路510和/或更一般地,图1的示例弹性主机电路 404可以由硬件单独实现或由硬件与软件和/或固件组合实现。因此, 例如,示例分区器电路502、示例主分段504、示例辅分段506、示例 路径寻找器电路508、示例修复管理电路510和/或更一般地,图1的 示例弹性主机电路404可以由处理器电路、模拟电路、数字电路、逻 辑电路、可编程处理器、可编程微控制器、图形处理单元(gpu)、 数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件 (pld)和/或现场可编程逻辑器件(fpld)(例如,现场可编程门阵 列(fpga))实现。又更进一步地,图4的示例弹性主机电路404可 以除了或代替图5所示的之
外还包括一个或多个要素、过程和/或设备, 和/或可以包括任何或所有所示要素、过程和设备中的多于一个。
90.在图9、图10、图11和图12中示出表示用于实现图4的示例弹 性主机电路404的示例硬件逻辑电路、机器可读指令、硬件实现的状 态机和/或其任何组合的流程图。机器可读指令可以是用于由处理器电 路(例如,以下结合图13讨论的示例处理器平台1300中所示的处理 器电路1312和/或以下结合图14和/或15讨论的示例处理器电路)执 行的一个或多个可执行程序或可执行程序的部分。程序可以体现于一 个或多个非瞬时性计算机可读存储介质上存储的软件(例如,cd、软 盘、硬盘驱动器(hdd)、dvd、蓝光盘、易失性存储器(例如,、 任何类型的随机存取存储器(ram)等)或与位于一个或多个硬件设 备中的处理器电路关联的非易失性存储器(例如,闪存、hdd等)) 中,但是整个程序和/或其部分可以替代地由除了处理器电路之外的一 个或多个硬件设备执行和/或体现于固件或专用硬件中。机器可读指令 可以分布跨越多个硬件设备上和/或由两个或更多个硬件设备(例如, 服务器和客户端硬件设备)执行。例如,客户端硬件设备可以由端点 客户端硬件设备(例如,与用户关联的硬件设备)或中间客户端硬件 设备(例如,可以促进服务器与端点客户端硬件设备之间的通信的无 线接入网(ran)网关)实现。相似地,非瞬时性计算机可读存储介 质可以包括位于一个或多个硬件设备中的一个或多个介质。此外,虽 然参照图13所示的流程图描述示例程序,但是可以替代地使用实现图 4的示例弹性主机电路404的许多其他方法。例如,可以改变框的执行 顺序,和/或可以改变、消除或组合所描述的一些框。附加地或替代地, 被构造为在不执行软件或固件的情况下执行对应操作的一个或多个硬 件电路(例如,处理器电路、分立式和/或集成模拟和/或数字电路、 fpga、asic、比较器、运算放大器(op-amp)、逻辑电路等)可以 实现任何或所有框。处理器电路可以分布在不同的网络位置中,和/或 对于单个机器中的一个或多个硬件设备(例如,单核处理器(例如, 单核中央处理器单元(cpu))、多核处理器(例如,多核cpu)等)、 分布跨越服务器机架的多个服务器的多个处理器、分布跨越一个或多 个服务器机架的多个处理器、位于同一封装中(例如,同一集成电路 (ic)封装或两个或多个分离外壳中,等)的cpu和/或fpga处于本 地。
91.可以按压缩式格式、加密式格式、分段式格式、编译式格式、可 执行格式、包封式格式等中的一种或多种存储本文描述的机器可读指 令。本文描述的机器可读指令可以存储为可以利用以创建、制造和/或 产生机器可执行指令的数据或数据结构(例如,指令的部分、代码、 代码的表示等)。例如,机器可读指令可以片段化并存储在位于网络 或网络集合的相同或不同位置处(例如,云中,边缘设备中,等)的 一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指 令可能需要安装、修改、适配、更新、组合、补充、配置、解密、解 压缩、解包封、分发、重新指派、编译等中的一个或多个,以使其可 由计算设备和/或其他机器直接读取、解释和/或执行。例如,机器可读 指令可以存储在单独地受压缩、加密和/或存储在分离的计算设备上的 多个部分中,其中,部分当受解密、解压缩和/或组合时形成实现可以 一起形成程序(例如,本文描述的程序)的一个或多个操作的机器可 执行指令集合。
92.在另一示例中,机器可读指令可以在它们可以由处理器电路读取 的状态下得以存储,但是需要添加库(例如,动态链接库)、软件开 发套件(sdk)、应用编程接口(api)等,以在特定计算设备或其他 设备上执行机器可读指令。在另一示例中,在可以完整地或部分
地执 行机器可读指令和/或对应程序之前,可能需要配置机器可读指令(例 如,存储设置、输入数据、记录网络地址等)。因此,本文使用的机 器可读介质可以包括机器可读指令和/或程序,而无论当储存或以其他 方式静置或在转移中时的机器可读指令和/或程序的特定格式或状态。
93.任何过去、现在或未来指令语言、脚本语言、编程语言等可以表 示本文描述的机器可读指令。例如,可以使用以下语言中的任一种表 示机器可读指令:c、c++、java、c#、perl、python、javascript、超 文本标记语言(html)、结构化查询语言(sql)、swift等。
94.如上所述,可以使用一个或多个非瞬时性计算机和/或机器可读介 质(例如,光存储设备、磁存储设备、hdd、闪存、只读存储器(rom)、 cd、dvd、缓存、任何类型的ram、寄存器和/或存储信息达任何持 续时间(例如,达延长的时间段、永久地、达短暂时刻、达临时缓冲 和/或达信息的缓存)的任何其他存储设备或存储盘)上存储的可执行 指令(例如,计算机和/或机器可读指令)实现图9、图10、图11和图 12的示例操作。如本文所使用的那样,术语非瞬时性计算机可读介质 和非瞬时性计算机可读存储介质明确地定义为包括任何类型的计算机 可读存储设备和/或存储盘并且排除传播信号而且排除传输介质。
[0095]“包括(including)”和“包括(comprising)”(及其所有形式 和时态)在本文中用作开放式术语。因此,每当权利要求作为序言或 在任何种类的权利要求陈述内采用任何形式的“包括(include)”或
ꢀ“
包括(comprise)”(例如,包括(comprises)、包括(includes)、 包括(comprising)、包括(including)、具有等)时,应理解,在不 超出对应权利要求或陈述的范围的情况下,可以存在附加要素、术语 等。如本文所使用的那样,当短语“至少”用作例如权利要求的序言 中的过渡术语时,它以与术语“包括(comprising)”和“包括(including)
”ꢀ
相同的方式成为开放式的。术语“和/或”当以诸如a、b和/或c之类 的形式使用时指代a、b、c的任何组合或子集(例如,(1)单独a、 (2)单独b、(3)单独c、(4)a与b、(5)a与c、(6)b与c 或者(7)a与b与c)。如本文在描述结构、组件、条目、对象和/ 或事物的上下文中所使用的那样,短语“a和b中的至少一个”旨在 指代包括以下中的任何一个的实现:(1)至少一个a、(2)至少一 个b或者(3)至少一个a和至少一个b。相似地,如本文在描述结构、 组件、条目、对象和/或事物的上下文中所使用的那样,短语“a或b 中的至少一个”旨在指代包括以下中的任何一个的实现:(1)至少一 个a、(2)至少一个b或者(3)至少一个a和至少一个b。如本文 在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中所 使用的那样,短语“a和b中的至少一个”旨在指代包括以下中的任 何一个的实现:(1)至少一个a、(2)至少一个b或者(3)至少一 个a和至少一个b。相似地,如本文在描述过程、指令、动作、活动 和/或步骤的执行或运行的上下文中所使用的那样,短语“a或b中的 至少一个”旨在指代包括以下中的任何一个的实现:(1)至少一个a、 (2)至少一个b或者(3)至少一个a和至少一个b。
[0096]
如本文所使用的那样,单数引用(例如,“一个(a)”、“一个 (an)”、“第一”、“第二”等)并不排除复数。如本文所使用的 那样,术语“一个(a)”或“一个(an)”对象指代该对象中的一个 或多个。在本文中可以可互换地使用术语“一个(a)”(或“一个(an)”)、
ꢀ“
一个或多个”和“至少一个”。此外,虽然单独地列出,但是多个 装置、要素或方法动作可以由例如相同实体或对象实现。附加地,虽 然单独特征可以包括于不同的示例或权利要求中,但是它们可以可能 地组合,并且包括在不同的示例或权利要求中并非暗指特征的组合不 是可行
的和/或有利的。
[0097]
图9是表示可以由图4的弹性主机电路执行以自愈的示例机器可 读指令的流程图。当示例弹性主机电路404准备正常通信时,示例过 程900开始。(框902)。作为正常通信的部分,示例主分段504使用 第一路径与示例弹性主机电路404进行通信,并且示例修复管理电路 510采取预防措施。在图10中进一步探究框902所描述的对于正常通 信的准备。
[0098]
示例弹性主机电路404开始正常通信。(框904)。在图11中进 一步探究框904所描述的正常通信。
[0099]
示例修复管理电路510确定是否已经接收或识别修复408。(框 906)。如果尚未接收到或识别出修复408,则正常通信继续,并且示 例过程900结束。
[0100]
如果已经接收到或识别出修复408,则示例修复管理电路510将修 复408应用于示例主分段504。(框908)。修复408的应用可以包括 先前在图4中描述的任何示例。
[0101]
示例修复管理电路510确定示例主分段504是否可以在应用修复 408期间与伙伴主机电路406进行通信。(框910)。示例修复管理电 路510可以通过任何手段做出框910的确定。在一些示例中,确定包 括:示例修复管理电路510检查来自示例主分段504的状态更新。在 一些示例中,确定包括:示例修复管理电路510监控示例主分段504 的网络接口卡,以识别所发送的分组。
[0102]
如果示例主分段504在应用修复408期间不能与伙伴主机电路406 进行通信,则如图11中描述的正常通信已经停止。因此,修复管理电 路510初始化弹性通信。(框912)。作为弹性通信的部分,示例辅分 段506使用第二路径与示例弹性主机电路404进行通信。图12进一步 探究弹性通信。
[0103]
弹性通信继续,直到修复的应用完成。(框914)。如果示例主分 段504可以在应用修复408期间与伙伴主机电路406进行通信,则示 例过程900进行到框914。
[0104]
示例修复管理电路510确定修复408是否成功。(框916)。在一 些示例中,框916所描述的确定包括:测试示例主分段504。示例主分 段504可以在成功修复之后与伙伴主机电路406进行通信。如果修复 成功,则示例过程900进行到框920。
[0105]
如果修复408不成功,则修复管理电路510将示例主分段504复 原到其先前稳定状态。(框918)。复原使用示例存储器映射802以撤 销对示例主分段504的改变。在一些示例中,修复408具有阻止修复 管理电路510复原先前稳定状态的不利影响。在一些这样的示例中, 修复管理电路将包括先前稳定状态的值传递到云402上的另一设备。 一旦示例主分段504或不同设备已经达到先前稳定状态,示例主分段 504或不同设备就可以与伙伴主机电路406进行通信。在示例过程900 中,修复管理电路510能够将示例主分段504复原到其先前稳定状态, 并且不同设备并未加以利用。
[0106]
示例主分段504和示例辅分段506恢复正常通信。(框920)。在 正常通信期间,示例主分段504使用第一路径与伙伴主机电路406进 行通信。在图11中进一步探究正常通信。一旦正常通信恢复,示例过 程900就结束。
[0107]
图10是表示可以执行以实现对于图9的正常通信的准备的示例机 器可读指令的流程图。当示例分区器电路502将示例弹性主机电路404 的计算资源划分为示例主分段504和示例辅分段506时,示例框902 的实现开始。(框1002)。资源的划分可能包括存储器资源、处理单 元、软件架构、应用、服务等。划分可以取决于示例弹性主机电路内 哪些计算资源
是可用的、与伙伴主机电路406的通信的类型和内容和/ 或由示例弹性主机电路404执行的其他任务。
[0108]
示例路径寻找器电路508识别第一路径和第二路径。(框1004)。 在示例过程900中,第一路径用于示例主分段504与伙伴主机电路406 之间的通信,并且第二路径用于示例辅分段506与伙伴主机电路406 之间的通信。在一些示例中,第一路径和第二路径具有一个或多个重 叠节点。在一些示例中,示例路径寻找器电路寻找附加路径。
[0109]
示例修复管理电路510在示例主分段504的存储器资源与示例辅 分段506的存储器资源之间建立示例存储器映射802。(框1006)。 在一些示例中,示例存储器映射802可以用以镜像示例主分段504的 微服务,并且在正常通信期间将拷贝存储在示例辅分段506中。在一 些示例中,示例存储器映射802可以附加地或替代地用以在弹性通信 和修复的应用期间将示例主分段504的存储器资源的改变映射到示例 辅分段506的存储器资源。
[0110]
示例修复管理电路510在示例辅分段506中建立配置寄存器。(框 1008)。配置寄存器存储防止来自示例主分段504的软件架构706的 完整操作系统在重新启动期间盖写或重新启动由配置寄存器指定的特 定计算资源的位图。重新启动是在弹性通信和修复408的应用期间可 能发生的示例不利影响。
[0111]
示例修复管理电路510设置示例辅分段506的信任等级以匹配示 例主分段504的信任等级。(框1010)。在一些示例中,匹配信任等 级包括:将示例辅分段506中的一个或多个计算资源设置为具有示例 主分段504的关联计算资源的相同安全配置。安全配置可以包括但不 限于:加密密钥、所测量的重新引导、安全化重新引导、信任根、证 明协议、认证协议、授权协议等。信任等级的匹配可以是上下文特定 的,并且取决于示例弹性主机电路404的计算资源。
[0112]
在图10的示例流程图中,为了简单,依次呈现框1004至框1010。 在实践中,示例弹性主机电路404可以按任何顺序执行框1004至框 1010所描述的动作。一旦已经执行框1002至1010,框902就已经得 以实现,并且示例过程900进行到框904。
[0113]
图11是表示可以执行以实现图9的正常通信的示例机器可读指令 的流程图。具体而言,示例流程图示出正常通信如何如框904所描述 的那样开始,以及正常通信如何如框920所描述的那样恢复。当示例 修复管理电路510停止弹性通信时,用于框920的示例过程开始。(框 1102)。作为弹性通信的部分,示例辅分段506使用第二路径与示例 弹性主机电路404进行通信。图12进一步探究弹性通信。在框904中, 当正常通信将要开始时,修复管理电路不执行框1102,因为弹性通信 尚未开始。
[0114]
在正常通信期间,示例主分段504使用第一路径与伙伴主机电路 406进行通信。(框1104)。在示例过程中,与伙伴主机电路406的 通信是由示例弹性主机电路404执行的最高优先级任务。在一些示例 中,示例主分段504附加地执行其他任务。
[0115]
在正常通信期间,示例修复管理可以使用示例存储器映射802将 一个或多个微服务从示例主分段504镜像到示例辅分段506。(框 1106)。微服务映射可以是上下文特定的并且取决于正由示例主分段 504执行的特定应用和/或服务。
[0116]
在正常通信期间,示例辅分段506可以附加地用于低优先级任务。 (框1108)。低优先级任务的执行可以是上下文特定的并且可以取决 于示例弹性主机电路404负责的任务的数量和类型。
[0117]
在图11的示例流程图中,为了简单,依次示出框1104、框1106 和框1108。在实践中,框1104、框1106和框1108所描述的动作可以 同时执行。此外,虽然框1104所描述的通信定义正常通信,但是框1106 所描述的镜像和框1108所描述的低优先级任务的执行在正常通信的一 些示例中可能不发生。框1106和框1108所描述的任务可以是上下文 特定的并且取决于先前声明的条件。因为框1104所描述的正常通信是 示例弹性主机电路404的默认状态,所以正常通信继续通过示例过程 900中的所有步骤,直到在框912、框916、框918和框920中使用弹 性通信。此外,取决于示例弹性主机电路404是否可以在应用修复408 期间与伙伴主机电路406进行通信,可以在正常或弹性通信模式下执 行框914。
[0118]
图12是表示可以执行以实现图9的弹性通信的示例机器可读指令 的流程图。当示例辅分段506使用第二路径与伙伴主机电路406进行 通信时,框912的实现开始。(框1202)。框1202所描述的通信接管 示例主分段504的通信。在一些示例中,通信的接管导致示例弹性主 机电路404从伙伴主机电路406的角度来看不受影响。
[0119]
在弹性通信期间,示例修复管理电路510可以使用示例存储器映 射802在示例辅分段506的存储器资源中记录示例主分段504的存储 器资源的先前稳定状态。(框1204)。记录发生在示例主分段504的 存储器资源的改变期间,并且作为修复408的应用的部分。
[0120]
在框1204所描述的先前稳定状态的记录期间,示例辅分段506可 以按原子等级响应于对改变后的的缓存线的请求(框1206)。原子等 级响应可能采取ebusy或eagain错误的形式。原子等级响应可以 防止伙伴主机电路406或云402中的其他设备接收过时的缓存线。
[0121]
在弹性通信期间,修复管理电路510可以标记由示例辅分段506 发送的分组。(框1208)。经标记分组指示修复408正应用于示例主 分段504并且可以如果路径故障发生则加以使用。
[0122]
在弹性通信期间,示例修复管理电路510确定微服务在示例主分 段504中的是否已经出故障。(框1210)。在一些示例中,框1210 所描述的确定可以包括:向示例主分段504发送状态消息或健康查询。 如果微服务已经在示例主分段504中出故障,则示例修复管理电路510 利用示例辅分段506中存储的镜像微服务。(框1212)。如果修复408 的不利影响限于出故障的微服务,则镜像微服务可以由示例主分段504 使用。在一些示例中,如果示例主分段504经历限制其用于正确使用 微服务的能力的附加不利影响,则示例辅分段506可以使用镜像微服 务。
[0123]
在弹性通信期间,示例修复管理电路510确定在第一路径与第二 路径之间是否存在重叠节点的故障(框1214)。如果存在框1214所描 述的节点故障,则示例修复管理电路510使用经标记分组和分段路由 技术以避开出故障的节点。(框1216)。在一些示例中,分段路由技 术包括互联网协议版本6分段路由头(ipv6 srh)。
[0124]
在图12的示例流程图中,为了简单,依次示出框1202至框1216。 在实践中,框1202、框1204、框1206、框1208、框1210和框1214 所描述的动作可以同时发生。然而,框1212如果执行则在对框1210 的“是”响应之后发生。相似地,框1216如果执行则在对框1214的
ꢀ“
是”响应之后发生。此外,虽然框1202所描述的通信定义弹性通信, 但是在一些示例中可以不执行框1204至框1216。框1204至框1216 的应用是上下文特定的并且可以取决于示例弹性主机电路404的资源、 示例主分段504上运行的应用和服务以及与伙伴主机电路406的通信 的类型。图12所描述的通信在示例弹性主机电路404中继续,直到示 例主分段504可
以恢复与伙伴主机电路406的通信。
[0125]
图13是被构造为执行和/或实例化图9、图10、图11和图12的机 器可读指令和/或操作以实现图4的示例弹性主机电路404的示例处理 器平台1300的框图。处理器平台1300可以是例如服务器、个人计算 机、工作站、自学习机(例如,神经网络)、移动设备(例如,蜂窝 电话、智能电话、平板计算机(例如,ipad
tm
))、个人数字助理(pda)、 互联网器具、dvd播放器、cd播放器、数字视频记录器、蓝光播放 器、游戏控制台、个人视频记录器、机顶盒、耳机(例如,增强现实 (ar)耳机、虚拟现实(vr)耳机等)或其他可穿戴设备或任何其他 类型的计算设备。
[0126]
所示示例的处理器平台1300包括处理器电路1312。所示示例的处 理器电路1312是硬件。例如,处理器电路1312可以由来自任何期望 系列或制造商的一个或多个集成电路、逻辑电路、fpga微处理器、 cpu、gpu、dsp和/或微控制器实现。处理器电路1312可以由一个或 多个基于半导体(例如,基于硅)的设备实现。在该示例中,处理器 电路1312实现示例分区器电路502、示例路径寻找器电路508、示例 修复管理电路510、处理单元702和处理单元710。
[0127]
所示示例的处理器电路1312包括本地存储器1313(例如,缓存、 寄存器等)。所示示例的处理器电路1312由总线1318与包括易失性 存储器1314和非易失性存储器1316的主存储器进行通信。易失性存 储器1314可以由同步动态随机存取存储器(sdram)、动态随机存 取存储器(dram)、动态随机存取存储器和/或任何其他类型的ram器件实现。非易失性存储器1316可以由闪 存和/或任何其他期望类型的存储设备实现。对所示示例的主存储器 1314、1316的访问由存储器控制器1317控制。
[0128]
所示示例的处理器平台1300还包括接口电路1320。接口电路1320 可以根据任何类型的接口标准(例如,以太网接口、通用串行总线 (usb)接口、蓝牙接口、近场通信(nfc)接口、pci接口和/或pcie 接口)由硬件实现。
[0129]
在所示示例中,一个或多个输入设备1322连接到接口电路1320。 输入设备1322许可用户将数据和/或命令输入到处理器电路1312中。 输入设备1322可以由例如音频传感器、麦克风、相机(静止或视频)、 键盘、按钮、鼠标、触摸屏、触控板、轨迹球、等点(isopoint)设备 和/或语音识别系统实现。
[0130]
一个或多个输出设备1324也连接到所示示例的接口电路1320。输 出设备1324可以例如由显示设备(例如,发光二极管(led)、有机 发光二极管(oled)、液晶显示器(lcd)、阴极射线管(crt)显 示器、平面开关(ips)显示器、触摸屏等)、触觉输出设备、打印机 和/或扬声器实现。所示示例的接口电路1320因此典型地包括图形驱动 卡、图形驱动芯片和/或图形处理器电路(例如,gpu)。
[0131]
所示示例的电路1320还包括通信设备(例如,发射机、接收机、 收发机、调制解调器、住宅网关、无线接入点和/或网络接口),以促 进数据与外部机器(例如,任何种类的计算设备)由网络1326的交换。 通信可以由例如以太网连接、数字用户线(dsl)连接、电话线连接、 同轴电缆系统、卫星系统、直达线无线系统、蜂窝电话系统、光连接 等。
[0132]
所示示例的处理器平台1300还包括一个或多个海量存储设备 1328,以存储软件和/或数据。这些海量存储设备1328的示例包括磁存 储设备、光存储设备、软盘驱动器、hdd、cd、蓝光磁盘驱动器、独 立磁盘冗余阵列(raid)系统、固态存储设备(例如,闪存设备)
和 dvd驱动器。
[0133]
可以由图9、图10、图11和图12的机器可读指令实现的机器可 执行指令1332可以存储在海量存储设备1328中、易失性存储器1314 中、非易失性存储器1316中和/或可拆卸非瞬时性计算机可读存储介质 (例如,cd或dvd)上。
[0134]
图14是图13的处理器电路1312的示例实现的框图。在该示例中, 图13的处理器电路1312由微处理器1400实现。例如,微处理器1400 可以实现多核硬件电路(例如,cpu、dsp、gpu、xpu等)。虽然 它可以包括任何数量的示例核1402(例如,1个核),但是该示例的 微处理器1400是包括n个核的多核半导体设备。微处理器1400的核 1402可以独立操作,或者可以协作,以执行机器可读指令。例如,对 应于固件程序、嵌入式软件程序或软件程序的机器代码可以由核1402 之一执行,或者可以由核1402中的多个核在相同或不同时间执行。在 一些示例中,对应于固件程序、嵌入式软件程序或软件程序的机器代 码拆分为线程,并由核1402中的两个或更多个并行执行。软件程序可 以对应于由图9、图10、图11和图12的流程图表示的部分或全部机 器可读指令和/或操作。
[0135]
核1402可以通过示例总线1404进行通信。在一些示例中,总线 1404可以实现通信总线,以实行与核1402中的一个或多个核关联的通 信。例如,总线1404可以至少实现集成电路间(i2c)总线、串行外 围接口(spi)总线、pci总线或pcie总线之一。附加地或替代地,总 线1404可以实现任何其他类型的计算或电气总线。核1402可以通过 示例接口电路1406从一个或多个外部设备获得数据、指令和/或信号。 核1402可以通过接口电路1406向一个或多个外部设备输出数据、指 令和/或信号。虽然该示例的核1402包括示例本地存储器11020(例如, 可以拆分为l1数据缓存和l1指令缓存的一级(l1)缓存),但是微 处理器1400还包括可以由核共享的示例共享存储器1410(例如,2级 (l2缓存))以用于对数据和/或指令的高速访问。数据和/或指令可 以通过写入到和/或读取自共享存储器1410得以传送(例如,共享)。 核1402中的每一个的本地存储器1420和共享存储器1410可以是包括 多级缓存存储器和主存储器(例如,图13的主存储器1314、1316)的 存储设备的层次结构的部分。典型地,层次结构中的较高级的存储器 比较低级的存储器展现更短的访问时间并且具有更小的存储容量。缓 存层次结构的各个级的改变由缓存一致性策略管理(例如,协调)。
[0136]
每个核1402可以称为cpu、dsp、gpu等、或任何其他类型的硬 件电路。每个核1402包括控制单元电路1414、算术和逻辑(al)电 路(有时称为alu)1416、多个寄存器1418、l1缓存1420和示例总 线1422。可以存在其他结构。例如,每个核1402可以包括矢量单元电 路、单指令多数据(simd)单元电路、加载/存储单元(lsu)电路、 分支/跳转单元电路、浮点单元(fpu)电路等。控制单元电路1414包 括被构造为控制(例如,协调)对应核1402内的数据移动的基于半导 体的电路。al电路1416包括被构造为对于对应核1402内的数据执行 一个或多个数学和/或逻辑运算的基于半导体的电路。一些示例的al 电路1416执行基于整数的运算。在其他示例中,al电路1416还执行 浮点运算。在又一示例中,al电路1416可以包括执行基于整数的运 算的第一al电路和执行浮点运算的第二al电路。在一些示例中, al电路1416可以称为算术逻辑单元(alu)。寄存器1418是用于存 储数据和/或指令(例如,由对应核1402的al电路1416执行的运算 中的一个或多个的结果)的基于半导体的结构。例如,寄存器1418可 以包括矢量寄存器、simd寄存器、通用寄存器、标志寄存器、段寄存 器、机器特定寄存器、指令指针寄存器、控制寄存器、调试寄存器、 存储器管理寄存器、机器检查寄存
器等。寄存器1418可以布置成组, 如图14所示。替代地,寄存器1418可以通过任何其他布置、格式或 结构(包括分布贯穿核1402以缩短访问时间)加以组织。总线1420 可以实现i2c总线、spi总线、pci总线或pcie总线中的至少一种。
[0137]
每个核1402和/或更一般地,微处理器1400可以包括对于以上示 出并且描述的结构的附加和/或替选结构。例如,一个或多个时钟电路、 一个或多个电源、一个或多个电源门、一个或多个缓存归属代理 (cha)、一个或多个聚合/公共网格停止(cms)、一个或多个移位 器(例如,桶形移位器)和/或其他电路可以存在。微处理器1400是被 制造为包括互连以在一个或多个封装中包含的一个或多个集成电路 (ic)中实现上述结构的许多晶体管的半导体设备。处理器电路可以 包括一个或多个加速器和/或与之协作。在一些示例中,加速器由逻辑 电路实现,以比可以由通用处理器完成的更快速和/或更高效地执行特 定任务。加速器的示例包括asic和fpga(例如,本文讨论的那些)。 gpu或其他可编程设备也可以是加速器。加速器可以是板载处理器电 路,处于与处理器电路相同的芯片封装中,和/或处于与处理器电路分 离的一个或多个封装中。
[0138]
图15是图13的处理器电路1312的另一示例实现的框图。在该示 例中,处理器电路1312由fpga电路1500实现。fpga电路1500可 以用于例如执行可以另外通过图14的示例微处理器1400执行对应机 器可读指令加以执行的操作。然而,一旦被配置,fpga电路1500就 在硬件中实例化机器可读指令,并且因此,一般可以比它们可以通过 通用微处理器执行对应软件加以执行更快地执行操作。
[0139]
更具体地说,与上述图14的微处理器1400(其为可以被编程为执 行由图9、图10、图11和图12的流程图表示的部分或全部机器可读 指令但其互连和逻辑电路一旦制造就固定的通用设备)相比,图15的 示例的fpga电路1500包括互连和逻辑电路,其可以在制造之后以不 同方式加以配置和/或互连,以实例化例如由图9、图10、图11和图 12的流程图表示的一些或全部机器可读指令。具体而言,fpga 1500 可以认为是逻辑门、互连和开关的阵列。可以对开关进行编程以改变 逻辑门由互连加以互连的方式,有效地形成一个或多个专用逻辑电路 (除非并且直到对fpga电路1500进行重新编程)。所配置的逻辑电 路赋能逻辑门以不同方式协作,以对由输入电路接收的数据执行不同 操作。那些操作可以对应于由图9、图10、图11和图12的流程图表 示的一些或所有软件。故此,fpga电路1500可以被构造为有效地实 例化图9、图10、图11和图12流程图的一些或所有机器可读指令作 为专用逻辑电路,以通过类似于asic的专用方式执行对应于那些软件 指令的操作。因此,fpga电路1500可以比通用微处理器可以执行对 应于图15的一些或所有机器可读指令的操作更快地执行它们。
[0140]
在图15的示例中,fpga电路1500被构造为由端用户通过硬件描 述语言(hdl)(例如,verilog)加以编程(和/或重新编程一次或多 次)。图15的fpga电路1500包括示例输入/输出(i/o)电路1502, 以去往/来自示例配置电路1504和/或外部硬件(例如,外部硬件电路) 1506获得和/或输出数据。例如,配置电路1504可以实现接口电路, 其可以获得机器可读指令以配置fpga电路1500或其一部分。在一些 这样的示例中,配置电路1504可以从用户、机器(例如,可以实现人 工智能/机器学习(ai/ml)模型以生成指令的硬件电路(例如,编程 的或专用的电路))获得机器可读指令。在一些示例中,外部硬件1506 可以实现图14的微处理器1400。fpga电路1500还包括示例逻辑门 电路1508、多个示例可配置互连1510和
和一个或多个存储设备。存储设备存储机器可读指令1332,其可以对 应于图9、图10、图11和图12的示例机器可读指令,如上所述。示 例软件分发平台1605的一个或多个服务器与网络1610进行通信,网 络1610可以对应于任何一个或多个互联网和/或任何上述示例网络 402。在一些示例中,作为商业交易的部分,一个或多个服务器响应于 请求以将软件发送到请求方。对于软件的交付、销售和/或许可的支付 可以由软件分发平台的一个或多个服务器和/或由第三方支付实体应 对。服务器使得购买者和/或许可方能够从软件分发平台1605下载机器 可读指令1332。例如,可以对应于图9、图10、图11和图12的示例 机器可读指令的软件可以下载到示例处理器平台1300,其将执行机器 可读指令1332以实现示例弹性主机电路404。在一些示例中,软件分 发平台1605的一个或多个服务器周期性地供给、发送和/或强制对软件 (例如,图13的示例机器可读指令1332)的更新,以确保改进、补丁、 更新等分发到并且应用于端用户设备处的软件。
[0147]
据上文应理解,已经公开增加自愈机制中的弹性的示例系统、方 法、装置和制品。所公开的系统、方法、装置和制品通过将自愈机制 的资源分区为主分段和辅分段改进使用计算设备的效率,允许辅分段 在具有潜在不利影响的修复应用于主分段的同时继续通信。所公开的 系统、方法、装置和制品相应地针对机器(例如,计算机或其他电子 和/或机械设备)的操作中的一个或多个改进。
[0148]
本文公开用于增加自愈机制中的弹性的示例方法、装置、系统和 制品。进一步的示例及其组合包括以下:
[0149]
示例1包括一种用于改进自愈机制的弹性的装置,包括:存储器; 和处理器电路,包括以下中的一个或多个:中央处理单元、图形处理 单元或数字信号处理器中的至少一个,所述中央处理单元、所述图形 处理单元或所述数字信号处理器中的所述至少一个具有:控制电路, 用于控制所述处理器电路内的数据移动;算术和逻辑电路,用于执行 对应于指令的一个或多个第一操作;和一个或多个寄存器,用于在所 述装置中存储所述一个或多个第一操作的结果、所述指令;现场可编 程门阵列(fpga),所述fpga包括逻辑门电路、多个可配置互连和 存储电路,所述逻辑门电路和互连用于执行一个或多个第二操作,所 述存储电路用于存储所述一个或多个第二操作的结果;或专用集成电 路(asic),包括用于执行一个或多个第三操作的逻辑门电路;所述 处理器电路用于执行所述第一操作、所述第二操作或所述第三操作中 的至少一个,以实例化:分区器电路,用于将第一主机的计算资源分 区为主分段和辅分段,所述主分段与第二主机进行通信;修复管理电 路,用于:对于所述主分段应用修复;确定所述主分段在应用所述修 复期间是否能够与所述第二主机进行通信;响应于确定所述主分段在 应用所述修复期间不能与所述第二主机进行通信,使所述辅分段与所 述第二主机进行通信;以及将与所述第二主机的通信从所述辅分段转 移到所述主分段,所述转移响应于确定所述修复的应用完成。
[0150]
示例2包括如示例1所述的装置,还包括:路径寻找器电路,用 于寻找第一路径和寻找第二路径,所述主分段使用所述第一路径与所 述第二主机进行通信,所述辅分段使用所述第二路径与所述第二主机 进行通信。
[0151]
示例3包括如示例2所述的装置,其中,所述第一路径和所述第 二路径共享重叠节点。
[0152]
示例4包括如示例3所述的装置,其中,所述修复管理电路进一 步用于使所述辅分
段标记所述主分段与所述第二主机之间的通信中所 使用的分组。
[0153]
示例5包括如示例4所述的装置,其中,所述路径寻找器电路进 一步用于寻找第三路径,所述第三路径使用经标记分组和分段路由技 术进行寻找以避开所述重叠节点,所述辅分段响应于所述重叠节点出 故障而使用所述第三路径与所述第二主机进行通信。
[0154]
示例6包括如示例2所述的装置,其中,所述辅分段是所述第二 路径上的设备,所述第二路径上的设备以无线方式连接到所述第一主 机。
[0155]
示例7包括如示例6所述的装置,其中,所述第二路径上的设备 利用传输控制协议/互联网协议模型并且在数据链路层处包括多无线电 接入技术双连接性。
[0156]
示例8包括如示例1所述的装置,其中,当所述主分段用于与所 述第二主机进行通信时,所述辅分段执行低优先级任务。
[0157]
示例9包括如示例8所述的装置,其中,将与所述第二主机的通 信转移到所述主分段还包括:所述辅分段恢复低优先级任务。
[0158]
示例10包括如示例1所述的装置,其中,所述修复管理电路进一 步用于创建在应用所述修复期间对所述主分段的存储器资源进行的改 变的映射,所述改变的映射存储在所述辅分段的存储器资源中。
[0159]
示例11包括如示例10所述的装置,其中,确定应用所述修复完 成还包括:确定所述修复是否成功。
[0160]
示例12包括如示例11所述的装置,其中,所述修复管理电路进 一步用于将所述主分段复原到其先前稳定状态,所述复原响应于确定 所述修复不成功,所述复原使用存储在所述辅分段的存储器资源中的 所述改变的映射。
[0161]
示例13包括如示例1所述的装置,其中,对于所述主分段应用所 述修复还包括:重新启动所述主分段。
[0162]
示例14包括如示例13所述的装置,其中,所述修复管理电路进 一步用于在配置寄存器中存储的位图中指定所述计算资源,所述配置 寄存器用于防止所述主分段的操作系统在重新启动所述主分段期间重 新启动或改写所述辅分段的所指定的计算资源。
[0163]
示例15包括如示例1所述的装置,其中,所述修复管理电路进一 步用于以原子等级对来自所述主分段的请求进行响应,所述响应在所 述辅分段与所述第二主机进行通信的同时发生。
[0164]
示例16包括如示例1所述的装置,还包括:将应用微服务从所述 主分段镜像到所述辅分段。
[0165]
示例17包括如示例16所述的装置,其中,所述修复管理电路进 一步用于利用所述辅分段中的镜像应用微服务,所述利用响应于在应 用所述修复期间所述主分段中的所述应用微服务的故障。
[0166]
示例18包括如示例1所述的装置,其中,所述辅分段是第三主机 的分区,所述第一主机通过共享存储器池与所述第三主机进行通信。
[0167]
示例19包括如示例1所述的装置,其中,所述主分段的计算资源 还包括第一执行资源量,并且所述辅分段的计算资源还包括第二执行 资源量,所述第一执行资源量大于所述第二执行资源量,所述第二执 行资源量包括同时多线程。
[0168]
示例20包括如示例1所述的装置,其中,为了使所述辅分段与所 述第二主机进行
通信,所述修复管理电路进一步用于:将所述辅分段 的信任等级匹配到所述主分段的信任等级。
[0169]
示例21包括至少一种非瞬时性机器可读介质,包括指令,所述指 令当被执行时使至少一个处理器至少:将第一主机的计算资源分区为 主分区和影子分区,所述主分区与第二主机进行通信;对于所述主分 区应用修复;确定所述主分区在应用所述修复期间是否能够与所述第 二主机进行通信;响应于确定所述主分区在应用所述修复期间不能与 所述第二主机进行通信,使所述影子分区与所述第二主机进行通信; 以及将与所述第二主机的通信从所述影子分区转移到所述主分区,所 述转移响应于确定所述修复的应用完成。
[0170]
示例22包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使至少一个处理器寻找第一路径和寻找第 二路径,所述主分区使用所述第一路径与所述第二主机进行通信,所 述影子分区使用所述第二路径与所述第二主机进行通信。
[0171]
示例23包括如示例22所述的至少一种非瞬时性机器可读介质, 其中,所述第一路径和所述第二路径共享重叠节点。
[0172]
示例24包括如示例23所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器使所述影子分区标 记所述主分区与所述第二主机之间的通信中所使用的分组。
[0173]
示例25包括如示例24所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器寻找第三路径,所 述第三路径使用经标记分组和分段路由技术进行寻找以避开所述重叠 节点,所述影子分区响应于所述重叠节点出故障而使用所述第三路径 与所述第二主机进行通信。
[0174]
示例26包括如示例22所述的至少一种非瞬时性机器可读介质, 其中,所述影子分区是所述第二路径上的设备,所述第二路径上的设 备以无线方式连接到所述第一主机。
[0175]
示例27包括如示例26所述的至少一种非瞬时性机器可读介质, 其中,所述第二路径利用传输控制协议/互联网协议模型并且在数据链 路层处包括多无线电接入技术双连接性。
[0176]
示例28包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,当所述主分区正与所述第二主机进行通信时,所述影子分区执 行低优先级任务。
[0177]
示例29包括如示例28所述的至少一种非瞬时性机器可读介质, 其中,将与所述第二主机的通信转移到所述主分区还包括:所述影子 分区恢复所述低优先级任务。
[0178]
示例30包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器创建在应用所述修 复期间对所述主分区的存储器资源进行的改变的映射,所述改变的映 射存储在所述影子分区的存储器资源中。
[0179]
示例31包括如示例30所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器确定所述修复是否 成功,确定所述修复是否成功响应于确定所述修复的应用是否完成。
[0180]
示例32包括如示例31所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器将所述主分区复原 到其先前稳定状态,所述复原响应于确定所述修复不成功,所述复原 使用存储在所述影子分区的存储器资源中的所述改变的映射。
[0181]
示例33包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,对于所述主分区应用所述修复还包括:重新启动所述主分区。
[0182]
示例34包括如示例33所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器在配置寄存器中存 储的位图中指定计算资源,所述配置寄存器用于防止所述主分区的操 作系统在所述主分区的重新启动期间重新启动或改写所述影子分区的 所指定的计算资源。
[0183]
示例35包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器以原子等级对来自 所述主分区的请求进行响应,所述响应当所述影子分区与所述第二主 机进行通信时发生。
[0184]
示例36包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器将应用微服务从所 述主分区镜像到所述影子分区。
[0185]
示例37包括如示例36所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器利用所述影子分区 中的镜像应用微服务,所述利用响应于在应用所述修复期间所述主分 区中的所述应用微服务的故障。
[0186]
示例38包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,所述影子分区是第三主机的分区,所述第一主机使用共享存储 器池与所述第三主机进行通信。
[0187]
示例39包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,所述主分区的计算资源还包括第一执行资源量,并且所述影子 分区的计算资源还包括第二执行资源量,所述第一执行资源量大于所 述第二执行资源量,所述第二执行资源量包括同时多线程。
[0188]
示例40包括如示例21所述的至少一种非瞬时性机器可读介质, 其中,所述指令当被执行时使所述至少一个处理器将所述影子分区的 信任等级匹配到所述主分区的信任等级。
[0189]
示例41包括一种用于增加自愈机制的弹性的方法,包括:将第一 主机的计算资源分区为主部分和备用部分,所述主部分与第二主机进 行通信;对于所述主部分应用修复;确定所述主部分在应用所述修复 期间是否能够与所述第二主机进行通信;响应于确定在应用所述修复 期间所述主部分不能与所述第二主机进行通信,使所述备用部分与所 述第二主机进行通信;以及将与所述第二主机的通信从所述备用部分 转移到所述主部分,所述转移响应于确定所述修复的应用完成。
[0190]
示例42包括如示例41所述的方法,还包括:寻找第一路径和第 二路径,所述主部分使用所述第一路径与所述第二主机进行通信,所 述备用部分使用所述第二路径与所述第二主机进行通信。
[0191]
示例43包括如示例42所述的方法,其中,所述第一路径和所述 第二路径共享重叠节点。
[0192]
示例44包括如示例43所述的方法,还包括:使所述备用部分标 记所述主部分与所述第二主机之间的通信中所使用的分组。
[0193]
示例45包括如示例44所述的方法,还包括:寻找第三路径,所 述第三路径使用经标记分组和分段路由技术进行寻找以避开所述重叠 节点,所述备用部分响应于所述重叠节点出故障而使用所述第三路径 与所述第二主机进行通信。
[0194]
示例46包括如示例42所述的方法,其中,所述备用部分是所述 第二路径上的设备,所述第二路径上的设备以无线方式连接到所述第 一主机。
[0195]
示例47包括如示例46所述的方法,其中,所述第二路径利用传 输控制协议/互联网协议模型并且在数据链路层处包括多无线电接入技 术双连接性。
[0196]
示例48包括如示例41所述的方法,还包括:当所述主部分正与 所述第二主机进行通信时,所述备用部分执行低优先级任务。
[0197]
示例49包括如示例48所述的方法,其中,将与所述第二主机的 通信转移到所述主部分还包括:所述备用部分恢复所述低优先级任务。
[0198]
示例50包括如示例41所述的方法,还包括:创建在应用所述修 复期间对所述主部分的存储器资源进行的改变的映射,所述改变的映 射存储在所述备用部分的存储器资源中。
[0199]
示例51包括如示例50所述的方法,其中,确定所述修复的应用 是否完成还包括:确定所述修复是否成功。
[0200]
示例52包括如示例51所述的方法,还包括:将所述主部分复原 到其先前稳定状态,所述复原响应于确定所述修复不成功,所述复原 使用存储在所述备用部分的存储器资源中的所述改变的映射。
[0201]
示例53包括如示例41所述的方法,其中,对于所述主部分应用 修复还包括:重新启动所述主部分。
[0202]
示例54包括如示例53所述的方法,其中,将所述修复应用于所 述主部分还包括:在配置寄存器中存储的位图中指定计算资源,所述 配置寄存器用于防止所述主部分的操作系统在所述主部分的重新启动 期间重新启动或改写所述备用部分的所指定的计算资源。
[0203]
示例55包括如示例41所述的方法,其中,使所述备用部分与所 述第二主机进行通信还包括:所述备用部分以原子等级对来自所述主 部分的请求进行响应。
[0204]
示例56包括如示例41所述的方法,还包括:将应用微服务从所 述主部分镜像到所述备用部分。
[0205]
示例57包括如示例56所述的方法,其中,将所述修复应用于所 述主部分还包括:利用所述备用部分中的镜像应用微服务,所述利用 响应于在应用所述修复期间所述主部分中的所述应用微服务的故障。
[0206]
示例58包括如示例41所述的方法,其中,所述备用部分是第三 主机的分区,所述第一主机使用共享存储器池与所述第三主机进行通 信。
[0207]
示例59包括如示例41所述的方法,其中,所述主部分的计算资 源还包括第一执行资源量,并且所述备用部分的计算资源还包括第二 执行资源量,所述第一执行资源量大于所述第二执行资源量,所述第 二执行资源量包括同时多线程。
[0208]
示例60包括如示例41所述的方法,其中,使所述备用部分与所 述第二主机进行通信还包括:将所述备用部分的信任等级匹配到所述 主部分的信任等级。
[0209]
示例61包括一种用于增加自愈机制的弹性的装置,包括:用于将 第一主机的计算资源分区为主分部和看门狗分部的部件,所述主分部 与第二主机进行通信;用于对于主分部应用修复的部件;用于确定所 述主分部在应用所述修复期间是否能够与所述第二主机
进行通信的部 件;用于响应于确定所述主分部在应用所述修复期间不能与所述第二 主机进行通信而使所述看门狗分部与所述第二主机进行通信的部件; 和用于将与所述第二主机的通信从所述看门狗分部转移到所述主分部 的部件,所述转移响应于确定所述修复的应用完成。
[0210]
示例62包括如示例61所述的装置,还包括:用于寻找第一路径 的部件和用于寻找第二路径的部件,所述主分部使用所述第一路径与 所述第二主机进行通信,所述看门狗分部使用所述第二路径与所述第 二主机进行通信。
[0211]
示例63包括如示例62所述的装置,其中,所述第一路径和所述 第二路径共享重叠节点。
[0212]
示例64包括如示例63所述的装置,还包括:用于使所述看门狗 分部标记所述主分部在所述主分部与所述第二主机之间的通信中所使 用的分组的部件。
[0213]
示例65包括如示例64所述的装置,还包括用于寻找第三路径的 部件,所述第三路径使用经标记分组和分段路由技术进行寻找以避开 所述重叠节点,所述看门狗分部响应于所述重叠节点出故障而使用所 述第三路径与所述第二主机进行通信。
[0214]
示例66包括如示例62所述的装置,其中,所述看门狗分部是所 述第二路径上的设备,所述第二路径上的设备还包括用于以无线方式 连接到所述第一主机的部件。
[0215]
示例67包括如示例66所述的装置,还包括:用于所述第二路径 利用传输控制协议/互联网协议模型和数据链路层处的多无线电接入技 术双连接性的部件。
[0216]
示例68包括如示例61所述的装置,还包括:用于当所述主分部 正与所述第二主机进行通信时所述看门狗分部执行低优先级任务的部 件。
[0217]
示例69包括如示例68所述的装置,其中,将与所述第二主机的 通信转移到所述主分部还包括:用于所述看门狗分部恢复所述低优先 级任务的部件。
[0218]
示例70包括如示例61所述的装置,还包括:创建在应用所述修 复期间对所述主分部的存储器资源进行的改变的映射,所述改变的映 射存储在所述看门狗分部的存储器资源中。
[0219]
示例71包括如示例70所述的装置,其中,确定所述修复的应用 是否完成还包括:确定所述修复是否成功。
[0220]
示例72包括如示例71所述的装置,还包括:将所述主分部复原 到其先前稳定状态,所述复原响应于确定所述修复不成功,所述复原 使用存储在所述看门狗分部的存储器资源中的所述改变的映射。
[0221]
示例73包括如示例61所述的装置,其中,所述用于对于所述主 分部应用修复的部件还包括:重新启动所述主分部。
[0222]
示例74包括如示例73所述的装置,其中,所述用于将所述修复 应用于所述主分部的部件还包括:在配置寄存器中存储的位图中指定 计算资源,所述配置寄存器用于防止所述主分部的操作系统在所述主 分部的重新启动期间重新启动或改写所述看门狗分部的所指定的计算 资源。
[0223]
示例75包括如示例61所述的装置,其中,所述用于使所述看门 狗分部与所述第二主机进行通信的部件还包括:用于所述看门狗分部 以原子等级对来自所述主分部的请求进行响应的部件。
[0224]
示例76包括如示例61所述的装置,还包括:用于将应用微服务 从所述主分部镜像到所述看门狗分部的部件。
[0225]
示例77包括如示例76所述的装置,其中,用于将所述修复应用 于所述主分部的部件还包括:用于利用所述看门狗分部中的镜像应用 微服务的部件,所述利用响应于在应用所述修复期间所述主分部的所 述应用微服务的故障。
[0226]
示例78包括如示例61所述的装置,其中,所述看门狗分部是第 三主机的分区,并且还包括:用于所述第一主机使用共享存储器池与 所述第三主机进行通信的部件。
[0227]
示例79包括如示例61所述的装置,其中,所述主分部的计算资 源还包括第一执行资源量,并且所述看门狗分部的计算资源还包括第 二执行资源量,所述第一执行资源量大于所述第二执行资源量,所述 第二执行资源量包括同时多线程。
[0228]
示例80包括如示例61所述的装置,其中,所述用于使所述看门 狗分部与所述第二主机进行通信的部件还包括:用于将所述看门狗分 部的信任等级匹配到所述主分部的信任等级的部件。
[0229]
虽然本文已经公开特定示例系统、方法、装置和制品,但是本专 利的覆盖范围不限于此。相反,本专利覆盖完全落入本专利的权利要 求范围内的所有系统、方法、装置和制品。
[0230]
所附权利要求由此通过该引用合并到该具体实施方式中,其中, 每项权利要求自身代表本公开的单独实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1