CN115865911A - 用于跨分布式一致边缘计算系统共享存储器的方法和装置 - Google Patents
用于跨分布式一致边缘计算系统共享存储器的方法和装置 Download PDFInfo
- Publication number
- CN115865911A CN115865911A CN202211131600.2A CN202211131600A CN115865911A CN 115865911 A CN115865911 A CN 115865911A CN 202211131600 A CN202211131600 A CN 202211131600A CN 115865911 A CN115865911 A CN 115865911A
- Authority
- CN
- China
- Prior art keywords
- cxl
- edge
- memory
- circuitry
- endpoint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/40—Bus coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本公开涉及用于跨分布式一致边缘计算系统共享存储器的方法和装置。公开了降低跨分布式一致边缘计算系统共享存储器时的等待时间和带宽的方法、装置、系统和制品。本文中公开的分布式一致边缘计算系统配置计算快速链路(CXL)端点以跨边缘平台在存储器之间共享数据。CXL端点配置存储器地址的(一个或多个)一致存储器域,该存储器地址是从连接到边缘平台的边缘设备初始化的。CXL端点还配置针对(一个或多个)一致存储器域的(一个或多个)一致性规则。CXL端点被实现以响应于来自边缘设备的读取和写入请求而监听边缘平台。CXL端点选择性地监听基于(一个或多个)一致性规则被定义为一致的(一个或多个)一致存储器域内的存储器地址。
Description
技术领域
本公开总体上涉及边缘计算,并且更具体地涉及用于跨分布式一致边缘计算系统共享存储器的方法和装置。
背景技术
近年来,边缘计算通过将计算和数据存储移动到更接近数据源的位置,提供了改进的云计算服务。边缘网络使用被部署成更靠近于终端设备的基站(例如,边缘计算节点),而不是将数据传送并将计算迁移到云数据中心的个人设备或物联网(Internet ofThings,IoT)设备,这些终端设备可以提供与云数据中心相同的功能,但规模较小。通过提供更靠近边缘设备的边缘节点,边缘服务提供了比设备用于与云数据中心通信的情况下低得多的等待时间。换句话说,在边缘节点开始数据传递或计算所需的时间比在云数据中心执行相同操作所需的时间短得多。因此,依赖云存储或计算并需要低等待时间来完成任务的服务必须采用边缘计算以正常工作。
附图说明
图1图示出用于边缘计算的边缘云配置的概览。
图2图示出端点、边缘云和云计算环境之间的操作层。
图3图示出用于边缘计算系统中的联网和服务的示例方法。
图4是示例分布式一致边缘计算系统。
图5提供在分布式一致边缘计算系统中的示例边缘计算节点和经由示例CXL互连连接的至少一个其他边缘计算节点处部署的用于计算的示例组件的概览。
图6提供分布式一致边缘计算系统中的边缘计算节点内的示例组件的进一步的概览。
图7是表示可由示例处理器电路系统执行以实现对分布式一致边缘计算系统中的示例CXL端点的读取请求的示例机器可读指令的流程图。
图8是表示可由示例处理器电路系统执行以实现对分布式一致边缘计算系统中的示例CXL端点的写入请求的示例机器可读指令的流程图。
图9是表示可由示例处理器电路系统执行以实现分布式一致边缘计算系统中的边缘计算节点的配置的示例机器可读指令的流程图。
图10是包括被构造成用于执行图7、图8和图9的示例机器可读指令以实现示例CXL端点的处理器电路系统的示例处理平台的框图。
图11是图10的处理器电路系统的示例实现方式的框图。
图12是图10的处理器电路系统的另一示例实现方式的框图。
图13是示例软件分发平台(例如,一个或多个服务器)的框图,该示例软件分发平台用于将软件(例如,与图7、图8和图9的示例机器可读指令相对应的软件)分发给与终端用户和/或消费方(例如,用于许可、销售和/或使用)、零售商(例如,用于销售、转售、许可和/或分许可)、和/或原始装备制造商(original equipment manufacturer,OEM)(例如,用于包括在要分发给例如零售商和/或诸如直接购买客户之类的其他终端用户的产品中)相关联的客户端设备。
附图并未按比例绘制。一般来说,贯穿(一个或多个)附图和所附书面说明书,相同的附图标记将用于指代相同或类似的部分。如本文中所使用,除非另有指示,否则连接参考(例如,附接、耦合、连接和接合)可包括由该连接参考所引用的元件之间的中间构件和/或这些元件之间的相对移动。由此,连接参考不一定暗示两个元件直接地连接和/或彼此处于固定的关系。如本文中所使用,记载任何部件与另一部件“接触”被定义成意指在这两个部件之间没有中间部件。
除非另有特别说明,否则诸如“第一”、“第二”、“第三”等的描述符在本文中使用而不以任何方式强加或以其他方式指示优先级、物理顺序、列表中的布置和/或排序的任何含义,但仅用作标签和/或任意名称来区分要素以便于理解所公开的示例。在一些示例中,描述符“第一”可以用于指代具体实施方式中的要素,而在权利要求中可以使用诸如“第二”或“第三”之类的不同描述符来指代同一要素。在此类实例中,应当理解,此类描述符仅用于清楚地标识那些可能例如以其他方式共享相同名称的要素。
如本文中所使用,“近似”和“大约”是指由于制造公差和/或其他现实世界缺陷而可能并不精确的尺寸。如本文中所使用,“基本上实时的”是指,认识到针对计算时间、传输等可能存在现实世界延迟,以接近瞬时的方式发生。由此,除非另外指定,否则“基本上实时的”是指实时+/-1秒。
如本文所使用,短语“在通信中”(包括其变体)包含直接通信和/或通过一个或多个中间组件的间接通信,并且不需要直接的物理(例如,有线)通信和/或持续通信,而是附加地包括以周期性间隔、预定间隔、非周期性间隔、和/或一次性事件来进行的选择性通信。
如本文中所使用,“处理器电路系统”定义为包括(i)一个或多个专用电路,被构造成用于执行(一个或多个)特定操作并包括一个或多个基于半导体的逻辑器件(例如,由一个或多个晶体管实现的电硬件),和/或(ii)一个或多个基于半导体的通用电路,用指令编程以执行特定操作并且包括一个或多个基于半导体的逻辑器件(例如,由一个或多个晶体管实现的电硬件)。处理器电路系统的示例包括经编程微处理器、可实例化指令的现场可编程门阵列(Field Programmable Gate Arrays,FPGA)、中央处理器单元(CentralProcessor Units,CPU)、图形处理器单元(Graphics Processor Units,GPU)、数字信号处理器(Digital Signal Processors,DSP)、XPU或微控制器以及诸如专用集成电路(Application Specific Integrated Circuits,ASIC)之类的集成电路。例如,XPU可以由异构计算系统实现,该异构计算系统包括多种类型的处理器电路系统(例如,一个或多个FPGA、一个或多个CPU、一个或多个GPU、一个或多个DSP等,和/或其组合)和(一个或多个)应用编程接口(application programming interface,API),该应用编程接口可以将(一个或多个)计算任务分配给多种类型的处理电路系统中最适于执行该(一个或多个)计算任务的任何(一个或多个)处理电路系统。
具体实施方式
为了使边缘计算网络有效地操作,基站基于基站的连接范围将相关数据传递到拓扑邻近度内的其他边缘节点。边缘设备可能需要与另一边缘设备相关的数据,在这种情况下,与边缘设备通信的边缘计算节点将需要在两个边缘节点中的缓存存储器之间共享相关存储器地址处的数据。在一些示例中,存储器地址是固定长度的非负整数序列,用于引用各种级别的硬件或软件存储器中的数据点的存储器位置。例如,如果自主交通工具在向边缘计算节点传送位置数据的同时沿公路行驶,则该自主交通工具的位置数据将很可能需要与道路上的至少一个其他自主交通工具共享。此外,由于边缘设备可能需要连续地将这些数据写入边缘计算节点和/或从边缘计算节点读取这些数据,因此基站之间的事务数量也需要是连续的。为了以这种方式共享数据,边缘计算节点通常将必须使用两阶段提交协议,这是一种原子提交协议。这是可以在分布式网络中实现的算法,用于管理在共享网络中的两个实体之间提交或中止事务的过程。为了使用两阶段协议,两个基站必须参与多次握手。该示例的握手是自动交换信息的过程,这在数据交换可以开始之前建立通信链路中要使用的协议。
示例分布式边缘计算网络可以实现缓存一致性,用于在边缘计算节点之间执行数据事务,而不必使用两阶段提交协议或其他类型的原子提交协议。由于一些提交协议可包括基站之间最多八次的握手,因此等待时间可能极高。有时,该等待时间与边缘设备简单地直接与云服务器通信所需的时间量相当。
在本文公开的示例中,术语缓存一致性是指其中一种类型的数据同时出现在不同的缓存存储器中的系统状态。缓存可以是存储用于未来请求的数据的硬件或软件组件,与从主存储器或硬驱动器调用相同数据相比,这些硬件或软件组件所存储的数据可以更快地被调用。存储在缓存存储器中的数据最终也可以存储到主存储器。
可以实现被称为计算快速链路(Compute Express Link,CXL)的互连标准,以在跨分布式边缘网络的多个边缘计算节点处的多个服务器之间建立缓存一致性。计算快速链路由合作设计下一代数据中心性能的公司联盟创建。CXL使用三种协议来加速计算系统的性能:输入/输出(CXL.io)、存储器(CXL.mem)和缓存一致性(CXL.cache)。具有CXL能力的示例硬件可以在外围组件互连快速(peripheral component interconnect express,PCIe)端口上操作,以执行至中央处理单元(central processing unit,CPU)、从CPU到设备以及CPU到存储器的高速写入和读取。
在本文公开的示例中,CXL.io协议可由示例CXL设备用于执行初始化、链接、设备发现和枚举以及寄存器访问。使用CXL.io协议的示例CXL设备可以通过向数据对象或变量分配初始值并将它们存储在主存储器内的存储器块中来初始化数据。示例初始数据值可以从与示例边缘计算节点建立通信连接的示例边缘设备被接收。然后,示例CXL设备可以执行网络枚举以发现共享边缘网络内的其他主机或设备、组信息和边缘服务。在一些示例中,CXL设备还可以在两个或更多个设备之间执行链接以用于数据传输。在一些示例中,这可以是两个示例边缘计算节点之间的物理链路或虚拟电路。示例CXL设备还可以使用CXL.io协议来访问主机设备和附接设备的处理器内的寄存器。主机设备和附接设备的示例处理器可以是边缘网络内的边缘计算节点的处理器或附接到边缘计算节点的示例CXL设备的处理器。例如,使用CXL.io访问的寄存器可以包括通用寄存器,这是可以在可易于访问的存储器内存储数据和存储器地址两者的硬件体系结构。
在本文公开的示例中,CXL设备与示例边缘设备、边缘网络内的其他边缘计算节点、以及CXL设备所附接到的边缘计算节点的中央处理单元(CPU)建立连接。在本文公开的示例中,CXL设备可以指被配置成用于作为CXL端点操作的硬件(例如,网络接口控制器(network interface controller,NIC))。在一些示例中,CXL设备可以使用(一个或多个)CXL.cache和/或CXL.mem协议来配置边缘网络内其他CXL设备之间的完全或选择性缓存一致性。(一个或多个)CXL.cache和/或CXL.mem协议可用于定义充当示例归属设备的示例CXL设备与充当辅助设备的其他边缘计算节点中的众多示例CXL设备之间的交互。在一些示例中,CXL.cache协议允许辅助CXL设备以极低的等待时间高效地缓存主机设备的存储器。为了实现这一点,CXL.cache使用请求和响应方法,这是连接到共享网络的两个设备之间的通信方法。本质上,一个示例CXL设备可以向边缘网络中的其他示例CXL设备发送对数据点的请求。接收请求的一个示例CXL设备可以用命中(即,缓存的数据有效)进行响应,并将数据往回发送到第一CXL设备。在该同一示例中,接收请求的其他示例CXL设备可以用未命中(即,缓存的数据无效或该地址处没有数据)进行响应,并向第一CXL设备发送未命中响应。
在一些示例中,除了CXL.io和CXL.cache之外,CXL设备还可以使用CXL.mem协议来向主机CPU提供对边缘网络中的(一个或多个)设备附接存储器和(一个或多个)其他缓存存储器的访问。换句话说,示例主机CXL设备可以使用加载-存储体系结构在单个CPU内的内存和寄存器之间加载和存储数据,或者在不同设备的CPU的寄存器之间加载和存储数据。在其他示例中,除了CXL.io协议之外,CXL设备还可以使用CXL.mem协议来访问非一致边缘网络中的(一个或多个)设备附接存储器和(一个或多个)其他缓存存储器。
在一些示例中,CXL设备可以使用监听技术高效地请求数据。监听是缓存一致性系统中的方案,其中示例一致性控制器针对存储在跨系统的多个缓存中的数据的修改来监测系统的总线。在本文公开的示例中,被监听的总线可以是示例CXL互连,或由CXL设备建立的网络连接,用于在附接到边缘计算网络内的边缘计算节点的其他示例CXL设备之间传递数据。当示例处理器改变存储在一致性系统中的缓存存储器中的数据时,附接到同一总线的其他示例设备可以使同一数据被存储在它们自己的示例缓存存储器内。示例附接的设备可以连续地监测或监听CXL互连,以标记对存储器地址处的数据所做的更改。在此类示例中,如果数据修改经由监听而被检测到,则CXL设备将以一种或多种方式进行响应。例如,CXL设备更新存储在跨边缘平台的缓存存储器中的(一个或多个)相关联的存储器地址处的(一个或多个)新数据值(写更新),或使存储在跨边缘平台的缓存存储器中的(一个或多个)相关联的存储器地址处的数据无效(写无效)。对于其中特定存储器地址处的数据无效的示例,设备将对由另一设备做出的对该数据的请求返回未命中。请求方设备将必须监听系统中的其余设备以获取命中,从而返回有效数据。
在本文公开的示例中,可以在多个示例边缘计算节点中实现CXL设备,以建立互连的边缘平台并创建分布式一致边缘计算系统。附接到边缘计算节点的示例CXL设备可以配置:示例归属边缘计算节点,用于将连接的边缘设备的存储器地址存储在该边缘设备的主存储器中;一个或多个示例一致存储器域,用于指定需要一致性的存储器地址;以及一个或多个示例一致性规则,用于指定(一个或多个)一致存储器域的一致性参数。通过实现CXL设备以实现跨分布式边缘网络的缓存一致性,可以相对于使用提交协议的边缘网络显著降低等待时间。通过实现指定的(一个或多个)一致存储器域和(一个或多个)一致性规则,CXL设备可以在读取或写入满足两个一致性类别的数据时选择性地监听分布式一致边缘网络。相对于使CXL设备连续地监听CXL互连以获取请求或修改以及读取或写入请求或修改,这种选择性监听可以显著减少带宽消耗。在一些示例中,取决于为(一个或多个)一致存储器域配置的(一个或多个)一致性规则,CXL设备可以使用写更新协议或写无效协议。在本文公开的示例中,可以使用通过示例网络分发给(一个或多个)CXL设备的指令、功能和/或过程(例如,软件、应用编程接口(application programming interface,API)等)来配置(一个或多个)一致存储器域和/或(一个或多个)一致性规则。
在本文公开的示例中,(一个或多个)一致性规则可指(一个或多个)协议、(一个或多个)模型和/或(一个或多个)规则,该(一个或多个)协议、(一个或多个)模型和/或(一个或多个)规则可被配置成用于定义数据通过其而跨边缘平台中的存储器被共享的(一个或多个)参数和/或(一个或多个)方法。在一些示例中,(一个或多个)一致性规则可以是一个或多个缓存一致性协议和/或目录实现方式(例如,MESI、MOESI等),以保持缓存之间的数据一致性。在其他示例中,(一个或多个)一致性规则可以是一个或多个一致性模型(例如,严格一致性、顺序一致性、因果一致性、处理器一致性等),该一个或多个一致性模型可以定义操作(例如,更新、无效等)的顺序以及这些操作与边缘平台中的其他缓存的可见性。在一些示例中,(一个或多个)一致性规则可以被配置成用于根据存储器地址的(一个或多个)子集(例如,(一个或多个)一致存储器域)来定义缓存一致性。例如,如果数据在(一个或多个)存储器域内,则该数据被更新或无效,而不是跨一致系统使数据更新或无效。在一些示例中,(一个或多个)一致性规则可以被配置成用于根据(一个或多个)时间段来定义缓存一致性。例如,数据跨一致系统每个时间间隔(例如,五分钟)被更新或无效一次,而不是数据在(一个或多个)存储器地址处连续地被更新或无效。在一些示例中,(一个或多个)一致性规则可以被配置成用于根据(一个或多个)一致存储器域和(一个或多个)时间段的组合来定义缓存一致性。
在本文公开的示例中,(一个或多个)一致存储器域和/或(一个或多个)一致性规则可由CXL设备配置。术语“配置(configure)”、“配置(configures)”、“配置(configuration)”或其他形式的“配置(configure)”是指基于由CXL设备上的处理器电路系统和/或其他电路系统执行并被存储在边缘节点和/或CXL设备上的非易失性存储器中的指令来选择和/或更新(一个或多个)一致存储器域和/或(一个或多个)一致性规则的特征。在一些示例中,指令可以是操作CXL设备的软件、API和/或(一个或多个)其他封装。在一些示例中,指令由CXL设备执行,以通过选择和/或更新要跨系统一致的(一个或多个)存储器地址来配置(一个或多个)一致存储器域。在一些示例中,(一个或多个)存储器地址可以从边缘设备初始化并存储在归属边缘节点和/或CXL设备的(一个或多个)主存储器中。在一些示例中,CXL设备执行指令以基于边缘平台中的(一个或多个)边缘节点的列表、边缘平台中的(一个或多个)边缘服务标识(例如,(一个或多个)全局进程地址标识)的列表和/或从边缘设备初始化的(一个或多个)存储器地址的分类来配置(一个或多个)一致存储器域。在一些示例中,指令由CXL设备执行,以通过选择和/或更新给定的(一个或多个)一致存储器域的一致性类型(例如,完全一致性、非一致性、时间相关一致性等)来配置(一个或多个)一致性规则。在一些示例中,CXL设备基于(一个或多个)一致存储器域的参数(例如,(一个或多个)边缘节点的列表、(一个或多个)边缘服务标识的列表、(一个或多个)存储器地址的分类等)来配置(一个或多个)一致性规则。在一些示例中,CXL设备响应于连接到CXL设备的边缘设备和/或CXL设备附接于其上的边缘节点来配置(一个或多个)一致存储器域和/或(一个或多个)一致性规则。
图1是示出用于边缘计算的配置的概览的框图100,该配置包括在以下许多示例中被称为“边缘云”的处理层。如图所示,边缘云110共同定位在边缘位置(诸如接入点或基站140、本地处理中枢150或中央局120),并且因此可以包括多个实体、设备和装备实例。与云数据中心130相比,边缘云110被定位成与端点(消费方和生产方)数据源160(例如,自主交通工具161、移动设备162、商业和工业装备163、视频捕捉设备164、无人机165、智慧城市和建筑设备166、传感器和IoT设备167等)靠近得多得多。在边缘云110中的边缘处提供的计算、存储器和存储资源对于为由端点数据源160使用的服务和功能提供超低等待时间的响应时间以及减少从边缘云110朝向云数据中心130的网络回程通信量(由此改善能耗和整体网络使用等益处)至关重要。
计算、存储器和存储是稀缺资源,并且通常根据边缘位置而减少(例如,在消费方端点设备处可用的处理资源比在基站处、比在中央局处可用的处理资源更少)。然而,边缘位置越靠近端点(例如,用户装备(user equipment,UE)),空间和功率通常就越受限。因此,边缘计算试图通过分发被定位成既在地理上更靠近又在网络访问时间上更靠近的更多的资源来减少网络服务所需的资源量。以此种方式,边缘计算试图在适当的情况下将计算资源带到工作负荷数据,或者将工作负荷数据带到计算资源。
以下描述了边缘云体系结构的各方面,该体系结构涵盖多种潜在的部署,并解决了一些网络运营商或服务提供商在其自身基础设施中可能具有的限制。这些包括以下各项的变体:基于边缘位置的配置(例如,因为基站级边缘在多租户场景中可能具有更受限制的性能和能力);基于对边缘位置、位置的层或位置的组可用的计算、存储器、存储、结构、加速等资源的类型的配置;服务、安全性、以及管理和编排能力;以及实现端服务的可用性和性能的相关目标。取决于等待时间、距离和定时特性,这些部署可以在网络层中完成处理,这些网络层可以被视为“接近边缘”层、“靠近边缘”层、“本地边缘”层、“中间边缘”层或“远边缘”层。
边缘计算是一种开发范式,其中计算典型地通过使用在基站、网关、网络路由器、或与产生和消费数据的端点设备靠近得多得多的其他设备处实现的计算平台(例如,x86或ARM计算硬件体系结构)而在网络的“边缘”处或靠近于网络的“边缘”被执行。例如,边缘网关服务器可装配有存储器池和存储资源,以针对连接的客户端设备的低等待时间用例(例如,自主驾驶或视频监控)实时地执行计算。或者作为示例,基站可被扩充有计算和加速资源,以直接为连接的用户装备处理服务工作负荷,而无需进一步经由回程网络传输数据。或者作为另一示例,中央局网络管理硬件可以以标准化计算硬件来代替,该标准化计算硬件执行虚拟化网络功能,并为服务的执行提供计算资源并且为连接的设备提供消费方功能。在边缘计算网络内,可能存在计算资源将被“移动”到数据的服务中的场景,以及其中数据将被“移动”到计算资源的场景。或者作为示例,基站计算、加速和网络资源可以提供服务,以便通过激活休眠容量(订阅、按需容量)来根据需要缩放至工作负荷需求,以便管理极端情况、紧急情况或为部署的资源在显著更长的实现的生命周期中提供长寿命。
图2图示出端点、边缘云和云计算环境之间的操作层。具体而言,图2描绘了在网络计算的多个说明性层之间利用边缘云110的计算用例205的示例。这些层开始于端点(设备和物)层200,该端点层200访问边缘云110以进行数据创建、分析、和数据消费活动。边缘云110可以跨越多个网络层,诸如边缘设备层210,该边缘设备层210具有网关、内部(on-premise)服务器、或位于物理上邻近的边缘系统中的网络装备(节点215);网络接入层220,该网络接入层220涵盖基站、无线电处理单元、网络中枢、区域数据中心(data center,DC)、或本地网络装备(装备225);以及位于它们之间的任何装备、设备或节点(在层212中,未详细图示出)。边缘云110内、以及各层之间的网络通信可以经由任何数量的有线或无线介质来发生,包括经由未描绘出的连接性体系结构和技术来发生。
由于网络通信距离和处理时间约束而导致的等待时间的示例的范围可以从在端点层200之间时的小于1毫秒(ms)、在边缘设备层210处的低于5ms到当与网络接入层220处的节点通信时的甚至10ms到40ms之间。在边缘云110之外是核心网络230层和云数据中心240层,它们各自具有增加的等待时间(例如,在核心网络层230处的50ms-60ms到在云数据中心层处的100ms或更多ms之间)。因此,在核心网络数据中心235或云数据中心245处的、具有至少50ms至100ms或更长的等待时间的操作将无法完成用例205的许多时间关键的功能。出于说明和对比的目的,提供这些等待时间值中的每一个等待时间值;将会理解,使用其他接入网络介质和技术可以进一步降低等待时间。在一些示例中,相对于网络源和目的地,网络的各个部分可以被分类为“靠近边缘”层、“本地边缘”层、“接近边缘”层、“中间边缘”层或“远边缘”层。例如,从核心网络数据中心235或云数据中心245的角度来看,中央局或内容数据网络可以被视为位于“接近边缘”层内(“接近”云,具有在与用例205的设备和端点通信时的高等待时间值),而接入点、基站、内部服务器或网络网关可以被视为位于“远边缘”层内(“远离”云,具有在与用例205的设备和端点通信时的低等待时间值)。将会理解,构成“靠近”、“本地”、“接近”、“中间”或“远”边缘的特定网络层的其他分类可以基于如从网络层200-240中的任何网络层中的源所测量的等待时间、距离、网络跳数或其他可测量的特性。
由于多个服务利用边缘云,因此各种用例205可能在来自传入流的使用压力下访问资源。为了实现低等待时间的结果,在边缘云110内执行的服务在以下方面平衡了不同的要求:(a)优先级(吞吐量或等待时间)和服务质量(Quality of Service,QoS)(例如,在响应时间要求方面,自主汽车的通信量可能比温度传感器具有更高的优先级;或者,取决于应用,性能敏感度/瓶颈可能存在于计算/加速器、存储器、存储、或网络资源上);(b)可靠性和复原性(例如,取决于应用,一些输入流需要被作用并且以任务关键型可靠性来路由通信量,而一些其他输入流可以容忍偶尔的故障);以及(c)物理约束(例如,功率、冷却和形状因子等)。
这些用例的端对端服务观点涉及服务流的概念,并且与事务相关联。事务详细说明了针对消费服务的实体的整体服务要求,以及用于资源、工作负荷、工作流的相关联的服务,以及业务功能和业务水平要求。利用所描述的“条款”执行的服务可以以确保事务在服务的生命周期期间的实时和运行时合约合规性的方式在每层处被管理。当事务中的组件缺失其约定的服务水平协议(Service Level Agreement,SLA)时,系统作为整体(事务中的组件)可以提供以下能力:(1)理解SLA违反的影响,以及(2)增强系统中的其他组件以恢复整体事务SLA,以及(3)实现补救的步骤。
因此,考虑到这些变化和服务特征,边缘云110内的边缘计算可以提供实时或接近实时地服务和响应于用例205的多个应用(例如,对象跟踪、视频监控、连接的汽车等)的能力,并满足这些多个应用的超低等待时间要求。这些优势使全新类别的应用(例如,虚拟网络功能(Virtual Network Function,VNF)、功能即服务(Function as a Service,FaaS)、边缘即服务(Edge as a Service,EaaS)、标准过程等)得以实现,这些应用由于等待时间或其他限制而无法利用传统的云计算。
然而,伴随边缘计算的优势而来的有以下注意事项。位于边缘处的设备通常是资源受限的,并且因此存在对边缘资源的使用的压力。典型地,这是通过对供多个用户(租户)和设备使用的存储器和存储资源的池化来解决的。边缘可能是功率受限且冷却受限的,并且因此消耗最多功率的应用需要计及功率使用。在这些经池化的存储器资源中可能存在固有的功率-性能权衡,因为它们中的许多可能使用新兴的存储器技术,在这些技术中,更多的功率需要更大的存储器带宽。同样,还需要硬件和信任根受信任的功能的改善的安全性,因为边缘位置可以是无人的,并且可能甚至需要经许可的访问(例如,当被容纳在第三方位置时)。在其中服务和应用被许多用户请求的多租户、多所有方、或多接入设置中,特别是当网络使用动态地波动以及多个利益相关方、用例、和服务的组成改变时,此类问题在边缘云110中被放大。
在更一般的级别上,边缘计算系统可以被描述为涵盖在边缘云110中操作的先前所讨论的层(网络层200-240)处的任何数量的部署,这些部署提供来自客户端和分布式计算设备的协调。一个或多个边缘网关节点、一个或多个边缘聚合节点和一个或多个核心数据中心可以跨网络的各个层而分布,以由电信服务提供商(“teclo(电信公司)”或“telecommunication service provider,TSP”)、物联网服务提供商、云服务提供商(cloudservice provider,CSP)、企业实体或任何其他数量的实体提供边缘计算系统的实现,或者代表电信服务提供商(“teclo”或“TSP”)、物联网服务提供商、云服务提供商(CSP)、企业实体或任何其他数量的实体提供边缘计算系统的实现。诸如当进行编排以满足服务目标时,可以动态地提供边缘计算系统的各种实现方式和配置。
与本文提供的示例一致,客户端计算节点可以被具体化为任何类型的端点组件、设备、装置或能够作为数据的生产方或消费方进行通信的其他物。进一步地,如边缘计算系统中所使用的标签“节点”或“设备”不一定意指此类节点或设备以客户端或代理/仆从/跟随方角色操作;相反,边缘计算系统中的节点或设备中的任一者指代包括分立的和/或连接的硬件或软件配置以促进或使用边缘云110的各个实体、节点或子系统。
由此,边缘云110从由网络层210-230之间的边缘网关节点、边缘聚合节点或其他边缘计算节点操作并在网络层210-230之间的边缘网关节点、边缘聚合节点或其他边缘计算节点内被操作的网络组件和功能特征形成。因此,边缘云110可被具体化为提供边缘计算和/或存储资源的任何类型的网络,这些边缘计算和/或存储资源被定位成接近具有无线电接入网络(radio access network,RAN)能力的端点设备(例如,移动计算设备、IoT设备、智能设备等),这在本文中进行讨论。换言之,边缘云110可被预想为连接端点设备和传统网络接入点、同时还提供存储和/或计算能力的“边缘”,这些传统网络接入点充当进入到包括移动运营商网络(例如,全球移动通信系统(Global System for Mobile Communications,GSM)网络、长期演进(Long-Term Evolution,LTE)网络、5G/6G网络等)的服务提供商核心网络中的入口点。其他类型和形式的网络接入(例如,Wi-Fi、长程无线、有线网络,包括光学网络等)也可替代此类3GPP运营商网络被利用或与此类3GPP运营商网络组合来利用。
边缘云110的网络组件可以是服务器、多租户服务器、装置计算设备和/或任何其他类型的计算设备。例如,边缘云110可以包括作为包括壳体、机壳、机箱或外壳的自包含电子设备的装置计算设备。在一些情况下,可以针对便携性来确定壳体尺寸,以使得该壳体可由人类携载和/或被运输。示例壳体可包括形成一个或多个外表面的材料,该一个或多个外表面部分地或完整地保护装置的内容物,其中,保护可包括天气保护、危险环境保护(例如,电磁干扰(electromagnetic interference,EMI)、振动、极端温度等)和/或使得能够浸入水中。示例壳体可包括用于为固定式和/或便携式实现方式提供功率的功率电路系统,诸如交流(alternating current,AC)功率输入、直流(direct current,DC)功率输入、(一个或多个)AC/DC转换器、(一个或多个)DC/AC转换器、(一个或多个)DC/DC转换器、功率调节器、变压器、充电电路系统、电池、有线输入和/或无线功率输入。示例壳体和/或其表面可包括或连接至安装硬件,以实现到诸如建筑物、电信结构(例如,杆、天线结构等)和/或机架(例如,服务器机架、刀片支架等)之类的结构的附接。示例壳体和/或其表面可支撑一个或多个传感器(例如,温度传感器、振动传感器、光传感器、声学传感器、电容传感器、接近度传感器、红外或其他视觉热传感器等)。一个或多个此类传感器可被包含在装置的表面中、由装置的表面承载、或以其他方式被嵌入在装置的表面中和/或被安装至装置的表面。示例壳体和/或其表面可支持机械连接性,诸如推进硬件(例如,轮子、诸如螺旋桨之类的电机等)和/或铰接硬件(例如,机械臂、可枢转附件等)。在一些情况下,传感器可包括任何类型的输入设备,诸如用户接口硬件(例如,按键、开关、拨号盘、滑块、麦克风等)。在一些情况下,示例壳体包括包含在其中、由其携载、嵌入其中和/或附接于其的输出设备。输出设备可包括显示器、触摸屏、灯、发光二极管(light-emitting diode,LED)、扬声器、输入/输出(input/output,I/O)端口(例如,通用串行总线(universal serial bus,USB))等。在一些情况下,边缘设备是出于特定目的(例如,红绿灯)而存在于网络中、但是可具有处理和/或可用于其他目的的其他能力的设备。此类边缘设备可以独立于其他联网的设备,并且可设置有具有适合其主要目的的形状因子的壳体;但对于不干扰其主要任务的其他计算任务仍然是可用的。边缘设备包括物联网设备。装置计算设备可包括用于管理诸如设备温度、振动、资源利用、更新、功率问题、物理和网络安全性等之类的本地问题的硬件和软件组件。边缘云110还可以包括一个或多个服务器和/或一个或多个多租户服务器。此类服务器可包括操作系统并实现虚拟计算环境。虚拟计算环境可包括管理(例如,生成、部署、调试、损毁、拆除等)一个或多个虚拟机、一个或多个容器等的管理程序。此类虚拟计算环境提供其中一个或多个应用和/或其他软件、代码或脚本可在与一个或多个其他应用、软件、代码或脚本隔离的同时进行执行的执行环境。
在图3中,(以移动设备、计算机、自主交通工具、商业计算装备、工业处理装备的形式的)各种客户端端点310交换特定于端点网络聚合类型的请求和响应。例如,客户端端点310可以通过借助于内部网络系统332交换请求和响应322,经由有线宽带网络获得网络接入。一些客户端端点310(诸如移动计算设备)可以通过借助于接入点(例如,蜂窝网络塔)334交换请求和响应324,经由无线宽带网络获得网络接入。一些客户端端点310(诸如自主交通工具)可通过街道定位网络系统336经由无线机载网络获得针对请求和响应326的网络接入。然而,无论网络接入的类型如何,TSP可以在边缘云110内部署聚合点342、344来聚合通信量和请求。因此,在边缘云110内,TSP可以(诸如在边缘聚合节点340处)部署各种计算和存储资源以提供请求的内容。边缘聚合节点340和边缘云110的其他系统被连接至云或数据中心360,该云或数据中心360使用回程网络350来满足来自云/数据中心对网站、应用、数据库服务器等的更高等待时间的请求。边缘聚合节点340和聚合点342、344的附加或合并的实例(包括部署在单个服务器框架上的那些实例)也可以存在于边缘云110或TSP基础设施的其他区域内。
图4图示出示例分布式一致边缘计算系统400,该分布式一致边缘计算系统400可以连接多个示例边缘计算节点404、406和408以形成多个边缘平台,并在边缘计算节点404、406、408之间一致地共享数据。在一些示例中,自主交通工具410a将需要迁移一些计算或将一些数据存储在示例边缘计算节点404中。对于图4中所图示的示例,响应于连接边缘计算节点404和边缘设备410a,边缘计算节点404实现附接的CXL端点414以与边缘设备410a链接。示例CXL端点414可以使用示例CXL.io协议初始化CXL端点414和边缘计算节点404上的主存储器中的边缘设备410a数据。示例CXL端点414还可以通过使用CXL.io协议发现拓扑框架内的(一个或多个)示例边缘计算节点406中的至少一个其他示例边缘计算节点406。示例CXL端点414也可以使用CXL.io协议来访问边缘计算节点404和406的寄存器,以建立针对缓存一致性的框架。示例CXL端点414、416和418可以经由示例外围组件互连快速(peripheralcomponent interconnect express,PCIe)电接口附接到示例边缘计算节点404、406和408的服务器。示例CXL端点414可以是具有其自身CPU和结构的硬件设备,以允许该示例CXL端点414通过网络(诸如网络接口控制器(network interface controller,NIC))与其他设备通信。
在一些示例中,CXL端点414可以在边缘计算节点404和406之间建立CXL互连,以在两个缓存存储器之间一致地共享数据。在本文公开的示例中,互连的边缘计算节点404和406的此种子网络可以被称为示例边缘平台。示例CXL端点414可以使用CXL.io协议连接边缘平台,并使用(一个或多个)CXL.cache和/或CXL.mem协议建立一致的环境。在本文公开的示例中,CXL端点414使用(一个或多个)一致性协议,该(一个或多个)一致性协议可以是基于(一个或多个)一致存储器域和/或(一个或多个)一致性规则的经修改的(一个或多个)CXL.cache协议和/或(一个或多个)CXL.mem协议。在一些示例中,CXL端点414使用CXL.cache协议,以建立其中数据连续地被更新或失效的完全一致的环境。在其他示例中,CXL端点414使用(一个或多个)一致性协议来建立选择性一致的环境,并基于(一个或多个)一致存储器域和/或(一个或多个)一致性规则跨边缘网络共享数据和/或访问(一个或多个)存储器。当示例边缘设备410a向边缘计算节点404写入数据或从边缘计算节点404读取数据时,数据的变化可由CXL端点414监听,并使用(一个或多个)一致性协议传播到边缘平台中的另一CXL端点416。因此,当示例边缘设备410a将其位置移动到410b并与示例边缘计算节点406建立新连接时,与边缘设备410b相关的数据已经被缓存并且不需要由CXL端点416重新初始化。
在进一步示例中,示例分布式一致边缘网络400可以包括另一示例边缘设备412和另一示例边缘计算节点408。在图4中所图示的示例中,边缘设备410a和412可以是与示例边缘计算节点404和408共享位置数据的自主交通工具。示例边缘设备410a可能需要知晓示例边缘设备412的地理位置,因此示例CXL端点414和418可以在包含示例边缘计算节点404和408的两个示例边缘平台之间建立CXL互连。当边缘设备410a向边缘计算节点404发送边缘设备412的坐标位置的读取请求时,CXL端点414可以从其自身的缓存存储器(如果有效)或从CXL端点418的缓存存储器返回数据。此外,当边缘设备410a(使用CXL.mem)向边缘计算节点404写入新的示例坐标位置数据并对其进行验证时,CXL端点414可以(使用(一个或多个)一致性协议)向CXL端点418发送针对存储在缓存存储器中的存储器地址的无效命令。因此,如果示例边缘设备412向CXL端点418发送对同一数据的读取请求,则CXL端点418将必须针对有效数据监听CXL端点424。
图5更详细地图示出示例边缘计算节点500,示出了示例CXL端点530设备的处理器电路系统组件以及该CXL端点530设备可以在何处附接到边缘计算节点500。CXL端点可以经由外围组件互连快速(PCIe)5.0电接口附接到示例通信电路系统子系统512。示例CXL端点530可以是加速器,该加速器可以被设计成用于更高效地执行示例处理器504的任务,该加速器例如中央处理单元(central processing unit,CPU)、图形处理单元(graphicsprocessing unit,GPU)、现场可编程门阵列(field-programmable gate array,FPGA)或专用集成电路(application-specific integrated circuit,ASIC)。示例CXL端点530还可以是具有其自身的处理器电路系统532、存储器546以及跨网络连接多个设备的能力的NIC。
在一些示例中,CXL端点530可以包含示例处理器电路系统532,该示例处理器电路系统532可以执行任务以建立和维持跨示例边缘平台的一致性。示例处理器电路系统532可以包括示例输入/输出(I/O)电路系统534以使用示例CXL.io协议来检测、连接至、初始化和访问示例分布式一致边缘计算系统400内的其他设备的寄存器。示例I/O电路系统534可以通过示例网络524建立与示例边缘设备522的链路。在一些示例中,CXL端点530还可以出于数据传输的目的而在两个或更多个设备之间执行链接。在一些示例中,这可以是两个示例边缘计算节点之间的物理链路或虚拟电路。示例I/O电路系统534也可以使用CXL.io协议,以通过将初始值和存储器地址分配给存储在示例存储器546或示例缓存548内的存储器块中的数据对象或变量来初始化来自边缘设备522的数据。在一些示例中,I/O电路系统也可以使用CXL.io来执行网络枚举,以发现共享边缘网络内的其他主机或设备、组信息和边缘服务。示例I/O电路系统也可以使用CXL.io协议来访问主机处理器和附接的设备的处理器内的寄存器。例如,这些寄存器可以包括通用寄存器,这些寄存器是可以将数据和地址两者存储在在可易于访问的示例缓存存储器548中的硬件体系结构。
在一些示例中,图5中所图示的I/O电路系统534可以配置示例边缘平台,该示例边缘平台包含经由示例CXL互连连接的边缘计算节点500和一个或多个其他边缘计算节点526。示例I/O电路系统534可以将一个边缘计算节点配置为示例归属边缘计算节点,用于将一些或所有边缘设备数据存储在主存储器506中。连接到示例归属边缘计算节点的一个或多个示例边缘计算节点可以称为(一个或多个)辅助边缘计算节点。示例I/O电路系统534可以通过实现使用示例CXL.io协议的I/O电路系统534来配置示例归属边缘计算节点。要由I/O电路系统534执行的示例逻辑可以被写入,以基于归属边缘计算节点相对于辅助边缘计算节点的拓扑、归属边缘计算结点的体系结构、专用于与边缘平台通信的边缘设备的边缘服务的类型、或逻辑中的任何其他示例推理或变量来配置归属边缘计算节点。在本文公开的示例中,示例边缘计算节点500不一定是归属边缘计算节点。示例归属边缘计算节点和(一个或多个)示例辅助边缘计算节点可以包含相同的组件和结构;两者都可以包括可与示例CXL端点530类似的附接的CXL端点。在进一步示例中,边缘设备可以仅连接到归属边缘计算节点、仅连接到一个辅助边缘计算节点、同时连接到归属边缘计算节点和一个或多个其他辅助边缘计算节点,或者同时连接到多个辅助边缘计算节点。
在一些示例中,存储器546可被实现为能够执行本文中所描述的功能的任何类型的易失性存储器(例如,动态随机存取存储器(dynamic random access memory,DRAM)等)或非易失性存储器或数据存储装置。易失性存储器可以是需要功率来维持由该介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可包括各种类型的随机存取存储器(random access memory,RAM),诸如DRAM或静态随机存取存储器(static random accessmemory,SRAM)。可以在存储器模块中使用的一种特定类型的DRAM是同步动态随机存取存储器(synchronous dynamic random access memory,SDRAM)。
在一些示例中,CPU缓存548可以是这样的硬件缓存:处理器电路系统532使用该硬件缓存来临时存储来自主存储器546或示例边缘平台中的其他缓存的数据以供进行更快的计算。示例缓存548可以具有比存储器546更小的容量,并且可以在物理上定位成更靠近处理器核心以供进行高效计算。图5中所图示的示例缓存548可以包含指令缓存、数据缓存和转译后备缓冲器的多个级别和组合。示例缓存548的任何可能的级别可被实现为能够执行本文中所描述的功能的任何类型的易失性存储器(例如,动态随机存取存储器(dynamicrandom access memory,DRAM)等)或非易失性存储器或数据存储装置。易失性存储器可以是需要功率来维持由该介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可包括各种类型的随机存取存储器(random access memory,RAM),诸如DRAM或静态随机存取存储器(static random access memory,SRAM)。可以在存储器模块中使用的一种特定类型的DRAM是同步动态随机存取存储器(synchronous dynamic random access memory,SDRAM)。
在一些示例中,CXL端点530可以包括处理器电路系统532内的示例系统地址生成器电路系统538中的至少一个。示例系统地址生成器电路系统538可以是处理器电路系统532内的执行单元或算术逻辑单元,该执行单元或算术逻辑单元可以计算由处理器电路系统534内的其他电路系统或由分布式一致边缘计算系统400内的不同边缘计算节点526中的其他CXL端点使用的存储器地址。由示例系统地址生成器538计算的示例存储器地址可用于定位读取或写入请求的目标数据的存储器位置。示例系统地址生成器电路系统538可与处理器电路系统的其余部分并行操作以计算从存储器546或CPU缓存548取得(fetch)数据所需的存储器地址。示例系统地址生成器电路系统538可以执行诸如加法、减法、模运算、移位等之类的算术操作,以对要由处理器电路系统读取或修改的示例数据的存储器地址进行编码或解码。
在一些示例中,图5中所图示的CXL端点530可以包括示例处理器电路系统532内的示例一致域配置电路系统542。示例一致域配置电路系统542可以使用写入(一个或多个)示例一致性协议中的示例一致存储器域逻辑来将示例客户端设备522的存储器地址配置为需要在分布式一致边缘计算系统中保持一致的存储器的子集。示例一致域配置电路系统542可以执行存储器域逻辑以基于边缘设备522提供的存储器地址处的经初始化的数据、边缘设备522的技术分类、分布式一致边缘计算服务400向客户端设备522提供的服务的类型、或逻辑中的任何其他示例推理或变量来确定(一个或多个)一致存储器域。例如,如果示例自主交通工具与示例边缘计算节点500连接,则该示例自主交通工具的数据和相关联的存储器地址可以被存储在示例存储器506或示例存储器546上。然而,这些示例存储器地址中的一些存储器地址可能并不总是需要跨分布式一致边缘计算系统400共享。示例一致存储器域逻辑可以指示,由示例自主交通工具测量的外部温度数据并未重要到足以跨系统被共享,并且将因此不需要被包括在(一个或多个)一致存储器域中。示例一致域配置电路系统542可以读取由系统地址生成器解码的存储器地址,并确定该存储器地址是否应被包括在(一个或多个)一致存储器域中。
在一些示例中,图5中所图示的CXL端点530可以包括处理器电路系统532,该处理器电路系统532可以实现示例(一个或多个)一致性规则配置电路系统544。示例(一个或多个)一致性规则配置电路系统544可以使用写入(一个或多个)示例一致性协议中的示例(一个或多个)一致性规则逻辑来配置要与(一个或多个)一致存储器域相关联的(一个或多个)示例一致性规则。根据逻辑中的示例推理或变量,(一个或多个)示例一致性规则可以是完全一致、部分一致、非一致或其他示例一致性级别。换言之,示例性CXL端点530可以与分布式一致边缘计算系统400的其余部分共享(一个或多个)一致存储器域中的所有或一些缓存数据,或不共享缓存数据。(一个或多个)示例一致性规则也可以是时间相关的,这意味着(一个或多个)一致存储器域内的某些地址可能只需要在指定的时间长度之后在其他缓存中更新,而不是在每次发生数据修改时更新。
在一些示例中,图5中所图示的CXL端点530可以包括处理器电路系统532,该处理器电路系统532实现示例一致性控制器电路系统536,以使用(一个或多个)示例一致性协议来配置和维持跨示例分布式一致边缘计算网络400的缓存一致性。示例一致性控制器电路系统536可以使用(一个或多个)一致性协议来对CXL端点530正在此处操作的边缘计算节点500的存储器506执行监听,或对跨分布式一致边缘计算系统400的各个边缘计算节点526中的其他CXL端点的缓存执行监听。
在一些示例中,当执行来自示例边缘设备522的读取请求时,示例一致性控制器电路系统536可以选择性地监听其他设备中的缓存存储器。如果所请求数据的示例存储器地址有效并存储在示例CXL端点530的缓存存储器548中,则一致性控制器电路系统536可以返回命中并将该数据值传送至边缘设备522。如果示例存储器地址无效或并非存储在缓存存储器548中,则一致性控制器可以返回未命中并监听主存储器546或示例边缘计算节点526中的其他示例CXL端点的缓存存储器。然而,如果所请求数据的(一个或多个)存储器地址落入(一个或多个)示例一致存储器域中并且该(一个或多个)一致存储器域与将给定情形定义为一致的(一个或多个)示例一致性规则相关联,则示例一致性控制器电路系统536可以监听系统中的其他缓存。
在一些示例中,当执行来自示例边缘设备522的写入请求时,示例一致性控制器电路系统536可以选择性地监听其他设备中的缓存存储器。由边缘设备522写入的示例数据值和相关联的存储器地址可以被传送至CXL端点530。示例一致性控制器电路系统536然后可以将新数据值写入缓存存储器548中的示例存储器地址中。如果存储器地址落入(一个或多个)示例一致存储器域中并且该(一个或多个)一致存储器域与将给定情形定义为一致的(一个或多个)示例一致性规则相关联,则示例一致性控制器电路系统536然后可以使分布式一致边缘计算系统400中的示例边缘计算节点526中的所有其他缓存存储器中的示例存储器地址无效。如果示例存储器地址不在(一个或多个)一致存储器域内,或者如果它不属于对于给定情形要求一致性的(一个或多个)一致性规则,则系统中的其他边缘计算节点526的缓存存储器内的存储器地址保持有效。
在一些示例中,CXL端点530可以包括示例处理器电路系统532,该示例处理器电路系统532包括使用CXL.mem协议的示例加载-存储电路系统540。示例加载-存储电路系统540可以向示例存储器506提供存储在示例存储器546或示例缓存存储器548中的数据。示例加载-存储电路系统540还可以向示例存储器546提供存储在示例CPU缓存548中的数据。示例加载-存储电路系统540还可以向(一个或多个)示例边缘计算节点526中的其他示例CXL端点的示例主存储器或缓存存储器提供存储在示例存储器546或示例缓存存储器548中的数据。
在进一步的示例中,参考当前的边缘计算系统和环境讨论的计算节点或设备中的任一者可以基于图5和图6中所描绘的组件来实现。相应的边缘计算节点可以被具体化为能够与其他边缘组件、联网组件或端点组件进行通信的某种类型的设备、装置、计算机或其他“物”。例如,边缘计算设备可以被具体化为个人计算机、服务器、智能电话、移动计算设备、智能装置、机载计算系统(例如,导航系统)、具有外箱、外壳等的自包含设备,或能够执行所描述的功能的其他设备或系统。
在图5中描绘的简化示例中,边缘计算节点500包括计算引擎(本文中也称为“计算电路系统”)502、输入/输出(I/O)子系统(本文中也称为“I/O电路系统”)508、数据存储装置(本文中也称为“数据存储电路系统”)510、通信电路系统子系统512,以及任选地,一个或多个外围设备(本文中也称为“外围设备电路系统”)514。在其他示例中,相应的计算设备可以包括其他或附加组件,诸如通常在计算机中发现的那些组件(例如,显示器、外围设备等)。附加地,在一些示例中,说明性组件中的一个或多个可被并入另一组件中,或以其他方式形成另一组件的部分。
计算节点500可被具体化为能够执行各种计算功能的任何类型的引擎、设备、或设备集合。在一些示例中,计算节点500可被具体化为单个设备,诸如集成电路、嵌入式系统、现场可编程门阵列(FPGA)、片上系统(system-on-a-chip,SOC)或者其他集成系统或设备。在说明性示例中,计算节点500包括或被具体化为处理器(本文中也称为“处理器电路系统”)504和存储器(本文中也称为“存储器电路系统”)506。处理器504可被具体化为能够执行本文中所描述的功能(例如,执行应用)的任何类型的(一个或多个)处理器。例如,处理器504可被具体化为(一个或多个)多核心处理器、微控制器、处理单元、专门或专用处理单元、或其他处理器或处理/控制电路。
在一些示例中,处理器504可被具体化为、包括或耦合至FPGA、专用集成电路(application specific integrated circuit,ASIC)、可重新配置的硬件或硬件电路系统、或用于促进本文中所描述的性能的执行的其他专门硬件。而且在一些示例中,处理器504可被具体化为专门的x处理单元(x-processing unit,xPU),也称为数据处理单元(dataprocessing unit,DPU)、基础设施处理单元(infrastructure processing unit,IPU)或网络处理单元(network processing unit,NPU)。此类xPU可被具体化为独立式电路或电路封装、集成在SOC内或与联网电路系统(例如,在智能NIC(SmartNIC)或增强型智能NIC中)集成、加速电路系统、存储设备、存储盘或AI硬件(例如,GPU、经编程FPGA或被定制成用于实现诸如神经网络之类的AI模型的ASIC)。在CPU或通用处理硬件之外,此类xPU可被设计成用于接收、取回和/或以其它方式获得编程,以处理一个或多个数据流并执行针对数据流的特定任务和动作(诸如主控微服务、执行服务管理或编排、组织或管理服务器或数据中心硬件、管理服务网格、或收集和分发遥测)。然而,将理解,xPU、SOC、CPU和处理器504的其他变体可以彼此协调工作以在计算节点500内并代表计算节点500执行多种类型的操作和指令。
存储器506可被具体化为能够执行本文中所述的功能的任何类型的易失性存储器或数据存储装置(例如,动态随机存取存储器(dynamic random access memory,DRAM)等)或者非易失性存储器或数据存储装置。易失性存储器可以是需要功率来维持由该介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可包括各种类型的随机存取存储器(random access memory,RAM),诸如DRAM或静态随机存取存储器(static randomaccess memory,SRAM)。可以在存储器模块中使用的一种特定类型的DRAM是同步动态随机存取存储器(synchronous dynamic random access memory,SDRAM)。
在示例中,存储器设备(例如,存储器电路系统)是任意数量的块可寻址存储器设备,诸如基于NAND技术或NOR技术(例如,单级单元(“Single-Level Cell,SLC”)、多级单元(“Multi-Level Cell,MLC”)、四级单元(“Quad-Level Cell,QLC”)、三级单元(“Tri-LevelCell,TLC”)或某种其他NAND)的那些块可寻址存储器设备。在一些实施例中,(一个或多个)存储器设备包括字节可寻址就地写入三维交叉点存储器设备,或其他字节可寻址就地写入非易失性存储器(non-volatile memory,NVM)设备,诸如单级或多级相变存储器(PhaseChange Memory,PCM)或带开关的相变存储器(phase change memory with a switch,PCMS)、使用硫属化物相变材料(例如,硫属化物玻璃)的NVM设备、包括金属氧化物基底、氧空位基底和导电桥随机存取存储器(Conductive Bridge Random Access Memory,CB-RAM)的电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(ferroelectric transistorrandom access memory,FeTRAM)、结合忆阻器技术的磁阻随机存取存储器(magnetoresistive random access memory,MRAM)、自旋转移力矩(spin transfer torque,STT)-MRAM、基于自旋电子磁结存储器的设备、基于磁隧穿结(magnetic tunneling junction,MTJ)的设备、基于DW(畴壁,Domain Wall)和SOT(自旋轨道转移,Spin Orbit Transfer)的设备、基于晶闸管的存储器设备、上述各项中任何项的组合或其他合适的存储器。存储器设备还可包括三维交叉点存储器设备(例如,3D XPointTM存储器)或其他字节可寻址的就地写入非易失性存储器设备。存储器设备可指代管芯本身和/或指代封装的存储器产品。在一些示例中,3D交叉点存储器(例如,/>3D XPointTM存储器)可包括无晶体管的可堆叠的交叉点体系结构,其中存储器单元位于字线和比特线的交点处并且可单独寻址,并且其中比特存储基于体电阻的变化。在一些示例中,存储器506的全部或部分可以被集成到处理器504中。存储器506可以存储在操作期间使用的各种软件和数据,诸如一个或多个应用,通过(一个或多个)应用、库以及驱动程序操作的数据。
在一些示例中,基于电阻器的和/或无晶体管的存储器体系结构包括纳米级相变存储器(phase-change memory,PCM)器件,其中相变材料的体积驻留在至少两个电极之间。示例相变材料的部分表现出不同程度的结晶相和非晶相,其中可以测量至少两个电极之间的不同程度的电阻。在一些示例中,相变材料是硫属化物基玻璃材料。这种电阻式存储器设备有时被称为记忆设备,该记忆设备记忆先前流过它们的电流的历史。通过测量电阻从示例PCM器件中取回存储的数据,其中,与具有(一个或多个)相对较高的电阻值(例如,逻辑“1”)的非晶相相比时,结晶相表现出(一个或多个)相对较低的电阻值(例如,逻辑“0”)。
示例PCM设备长期存储数据(例如,在室温下大约10年)。通过向至少两个电极施加一个或多个电流脉冲来完成对示例PCM设备的写入操作(例如,设置为逻辑“0”、设置为逻辑“1”、设置为中间电阻值),其中脉冲具有特定的电流大小和持续时间。例如,施加到至少两个电极的长的低电流脉冲(设置(SET))使示例PCM设备驻留在低电阻结晶状态,而施加到至少两个电极的相对短的高电流脉冲(重置(RESET))使示例PCM设备驻留在高电阻非晶状态。
在一些示例中,PCM设备的实现有助于实现存储器中计算能力的非冯诺依曼计算体系结构。一般来说,传统计算体系结构包括经由总线通信地连接到一个或多个存储器设备的中央处理单元(CPU)。因此,有限的能量和时间被消耗以在CPU与存储器之间传输数据,这是冯诺依曼计算体系结构的已知瓶颈。然而,PCM设备通过在存储器中执行一些计算操作来最小化并在某些情况下消除CPU与存储器之间的数据传输。换句话说,PCM设备既存储信息又执行计算任务。这种非冯诺依曼计算体系结构可以实现具有相对高维度的向量以促进超维计算,诸如具有10000比特的向量。比特宽度相对较大的向量能够实现模拟人脑构造的计算范式,人脑也处理类似于宽比特向量的信息。
计算电路系统502经由I/O子系统508通信地耦合到计算节点500的其他组件,该I/O子系统508可被具体化为用于促进与计算电路系统502(例如,与处理器504和/或主存储器506)以及计算电路系统502的其他组件的输入/输出操作的电路系统和/或组件。例如,I/O子系统508可被具体化为或以其他方式包括存储器控制器中枢、输入/输出控制中枢、集成传感器中枢、固件设备、通信链路(例如,点到点链路、总线链路、线路、线缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。在一些示例中,I/O子系统508可以形成片上系统(system-on-a-chip,SoC)的部分,并可连同计算电路系统502的处理器504、存储器506和其他组件中的一者或多者一起被并入到计算电路系统502中。
一个或多个说明性数据存储设备/盘510可被具体化为被配置成用于数据的短期或长期存储的任何(一种或多种)类型的(一个或多个)物理设备中的一种或多种物理设备,诸如例如,存储器设备、存储器、电路系统、存储器卡、闪存、硬盘驱动器(hard disk drive,HDD)、固态驱动器(solid-state drive,SSD)和/或其他数据存储设备/盘。各个数据存储设备/盘510可包括存储用于数据存储设备/盘510的数据和固件代码的系统分区。各个数据存储设备/盘510还可包括根据例如计算节点500的类型来存储用于操作系统的数据文件和可执行文件的一个或多个操作系统分区。
通信电路系统512可被具体化为能够实现通过网络在计算电路系统502与另一计算设备(例如,实现的边缘计算系统的边缘网关)之间进行的通信的任何通信电路、设备或其集合。通信电路系统512可以被配置成使用任何一种或多种通信技术(例如,有线或无线通信)和相关联的协议(例如,蜂窝联网协议(诸如3GPP 4G或5G标准)、无线局域网协议(诸如IEEE)、无线广域网协议、以太网、/>蓝牙低能量、IoT协议(诸如IEEE 802.15.4或/>)、低功率广域网(low-power wide-area network,LPWAN)或低功率广域(low-power wide-area,LPWA)协议等)来实行此类通信。
说明性通信电路系统512包括网络接口控制器(network interface controller,NIC)520,该网络接口控制器520也可被称为主机结构接口(host fabric interface,HFI)。NIC 520可被具体化为一个或多个插入式板、子卡、网络接口卡、控制器芯片、芯片组或可由计算节点500用来与另一计算设备(例如,边缘网关节点)连接的其他设备。在一些示例中,NIC 520可被具体化为包括一个或多个处理器的片上系统(SoC)的部分,或NIC 520可被包括在也包含一个或多个处理器的多芯片封装上。在一些示例中,NIC 520可包括本地处理器(未示出)和/或本地存储器(未示出),这两者均位于NIC 520本地。在此类示例中,NIC 520的本地处理器可以能够执行本文中描述的计算电路系统502的功能中的一个或多个功能。附加地或替代地,在此类示例中,NIC 520的本地存储器可以在板级、插槽级、芯片级和/或其他层级上被集成到客户端计算节点的一个或多个组件中。
附加地,在一些示例中,相应的计算节点500可以包括一个或多个外围设备514。取决于计算节点500的特定类型,此类外围设备514可包括在计算设备或服务器中发现的任何类型的外围设备,诸如音频输入设备、显示器、其他输入/输出设备、接口设备和/或其他外围设备。在进一步的示例中,计算节点500可以由边缘计算系统中的相应的边缘计算节点(无论是客户端、网关还是聚合节点)来具体化,或者由类似形式的装置、计算机、子系统、电路系统或其他组件来具体化。
在更详细的示例中,图6图示出可以存在于边缘计算节点650中的组件的示例的框图,该组件用于实现本文所描述的技术(例如,操作、过程、方法和方法论)。该边缘计算节点650提供在被实现为计算设备(例如,移动设备、基站、服务器、网关等)或计算设备(例如,移动设备、基站、服务器、网关等)的部分时节点600的相应组件的更靠近的视图。边缘计算节点650可包括本文中所引用的硬件或逻辑组件的任何组合,并且该边缘计算节点650可包括可与边缘通信网络或此类网络的组合一起使用的任何设备或与该任何设备耦合。组件可被实现为集成电路(integrated circuit,IC)、IC的部分、分立电子器件,或其他模块、指令集、可编程逻辑或算法、硬件、硬件加速器、软件、固件或其适用于边缘计算节点650中的组合,或被实现为以其他方式被并入在更大的系统的底座内的组件。
边缘计算设备650可包括采用处理器652形式的处理电路系统,该处理电路系统可以是微处理器、多核心处理器、多线程处理器、超低电压处理器、嵌入式处理器、xPU/DPU/IPU/NPU、专用处理单元、专门处理单元,或其他已知的处理元件。处理器652可以是片上系统(SoC)的部分,在该SoC中,处理器652和其他组件形成为单个集成电路或单个封装,诸如来自加利福尼亚州圣克拉拉市的英特尔公司的爱迪生TM(EdisonTM)或伽利略TM(GalileoTM)SoC板。作为示例,处理器652可包括基于体系结构酷睿TM(CoreTM)的CPU处理器(诸如夸克TM(QuarkTM)、凌动TM(AtomTM)、i3、i5、i7、i9或MCU类处理器)、或可从/>获得的另一此类处理器。然而,可使用任何数量的其他处理器,诸如可从加利福尼亚州桑尼威尔市的超微半导体公司(Advanced Micro Devices,/>)获得的处理器、来自加利福尼亚州桑尼威尔市的MIPS技术公司的基于/>的设计、许可自ARM控股有限公司的基于的设计,或可从上述各公司的客户、被许可方或采纳方获得的处理器。处理器可包括诸如以下各项的单元:来自/>公司的A5-A13处理器、来自/>技术公司的骁龙TM(SnapdragonTM)处理器或来自德州仪器公司的OMAPTM处理器。处理器652和伴随的电路系统可以以单插槽形状因子、多插槽形状因子或各种其他格式提供,包括以有限的硬件配置或包括少于图6中所示的所有元件的配置。
处理器652可通过互连656(例如,总线)来与系统存储器654通信。可使用任何数量的存储器设备来提供给定量的系统存储器。作为示例,存储器654可以是根据联合电子器件工程委员会(Joint Electron Devices Engineering Council,JEDEC)设计的随机存取存储器(random access memory,RAM),诸如DDR或移动DDR标准(例如,LPDDR、LPDDR2、LPDDR3或LPDDR4)。在特定示例中,存储器组件可符合JEDEC颁布的DRAM标准,诸如针对DDR SDRAM的JESD79F、针对DDR2 SDRAM的JESD79-2F、针对DDR3 SDRAM的JESD79-3F、针对DDR4 SDRAM的JESD79-4A、针对低功率DDR(Low Power DDR,LPDDR)的JESD209、针对LPDDR2的JESD209-2、针对LPDDR3的JESD209-3和针对LPDDR4的JESD209-4。此类标准(和类似的标准)可被称为基于DDR的标准,并且实现此类标准的存储设备的通信接口可被称为基于DDR的接口。在各实现方式中,各个存储器设备可以是任何数量的不同封装类型,诸如单管芯封装(ingledie package,SDP)、双管芯封装(dual die package,DDP)或四管芯封装(quad diepackage,QDP)。在一些示例中,这些设备可以直接焊接到主板上,以提供薄型解决方案,而在其他示例中,设备被配置为一个或多个存储器模块,这一个或多个存储器模块进而通过给定的连接器耦合至主板。可使用任何数量的其他存储器实现方式,诸如其他类型的存储器模块,例如,不同种类的双列直插存储器模块(dual inline memory module,DIMM),包括但不限于microDIMM(微DIMM)或MiniDIMM(迷你DIMM)。
为了提供对信息(诸如数据、应用、操作系统等)的持久性存储,存储装置658还可经由互连656而耦合至处理器652。在示例中,存储装置658可经由固态盘驱动器(solid-state disk drive,SSDD)来实现。可用于存储装置658的其他设备包括闪存卡(诸如安全数字(Secure Digital,SD)卡、microSD卡、极限数字(eXtreme Digital,XD)图片卡,等等)和通用串行总线(Universal Serial Bus,USB)闪存驱动器。在示例中,存储器设备可以是或者可以包括使用硫属化物玻璃的存储器设备、多阈值级别NAND闪存、NOR闪存、单级或多级相变存储器(Phase Change Memory,PCM)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(ferroelectric transistor random access memory,FeTRAM)、反铁电存储器、包含忆阻器技术的磁阻随机存取存储器(magnetoresistive random access memory,MRAM)、包括金属氧化物基底、氧空位基底和导电桥随机存取存储器(conductive bridgeRandom Access Memory,CB-RAM)的电阻式存储器、或自旋转移力矩(spin transfertorque,STT)-MRAM、基于自旋电子磁结存储器的设备、基于磁隧穿结(magnetic tunnelingjunction,MTJ)的设备、基于DW(Domain Wall,畴壁)和SOT(Spin Orbit Transfer,自旋轨道转移)的设备、基于晶闸管的存储器设备、或者上述各项中任何项的组合或其他存储器。
在低功率实现方式中,存储装置658可以是与处理器652相关联的管芯上存储器或寄存器。然而,在一些示例中,存储装置658可使用微硬盘驱动器(hard disk drive,HDD)来实现。此外,附加于或替代所描述的技术,可将任何数量的新技术用于存储装置658,这些新技术诸如阻变存储器、相变存储器、全息存储器或化学存储器,等等。
组件可通过互连656进行通信。互连656可包括任何数量的技术,包括工业标准体系结构(industry standard architecture,ISA)、扩展ISA(extended ISA,EISA)、外围组件互连(peripheral component interconnect,PCI)、外围组件互连扩展(peripheralcomponent interconnect extended,PCIx)、PCI快速(PCI express,PCIe)或任何数量的其他技术。互连656可以是例如在基于SoC的系统中使用的专有总线。可包括其他总线系统,诸如集成电路间(Inter-Integrated Circuit,I2C)接口、串行外围接口(Serial PeripheralInterface,SPI)接口、点到点接口、以及功率总线,等等。
互连656可将处理器652耦合至收发器666,以用于与连接的边缘设备662通信。收发器666可使用任何数量的频率和协议,诸如IEEE 802.15.4标准下的2.4千兆赫兹(Gigahertz,GHz)传输,使用如由特别兴趣小组定义的/>低能量(/>low energy,BLE)标准、或/>标准,等等。针对特定的无线通信协议配置的任何数量的无线电可用于到连接的边缘设备662的连接。例如,无线局域网(wireless local areanetwork,WLAN)单元可用于根据电气和电子工程师协会(Institute of Electrical andElectronics Engineers,IEEE)802.11标准实现/>通信。另外,例如根据蜂窝或其他无线广域协议的无线广域通信可经由无线广域网(wireless wide area network,WWAN)单元发生。
无线网络收发器666(或多个收发器)可以使用用于不同范围的通信的多种标准或无线电来进行通信。例如,边缘计算节点650可使用基于蓝牙低能量(Bluetooth LowEnergy,BLE)或另一低功率无线电的本地收发器与靠近的(例如,在约10米内的)设备通信以节省功率。更远的(例如,在约50米内的)连接的边缘设备662可通过或其他中间功率的无线电而联络到。这两种通信技术可以以不同的功率水平通过单个无线电发生,或者可通过分开的收发器而发生,分开的收发器例如使用BLE的本地收发器和使用/>的单独的网格收发器。
可包括无线网络收发器666(例如,无线电收发器),以经由局域网协议或广域网协议来与云(例如,边缘云695)中的设备或服务通信。无线网络收发器666可以是遵循IEEE802.15.4或IEEE 802.15.4g标准等的低功率广域(low-power wide-area,LPWA)收发器。边缘计算节点650可使用由Semtech和LoRa联盟开发的LoRaWANTM(Long Range Wide AreaNetwork,长距离广域网)在广域上通信。本文中所描述的技术不限于这些技术,而是可与实现长距离、低带宽通信(诸如Sigfox和其他技术)的任何数量的其他云收发器一起使用。进一步地,可使用其他通信技术,诸如在IEEE 802.15.4e规范中描述的时分信道跳。
除了针对如本文中所描述的无线网络收发器666而提及的系统之外,还可使用任何数量的其他无线电通信和协议。例如,收发器666可包括使用扩展频谱(SPA/SAS)通信以实现高速通信的蜂窝收发器。进一步地,可使用任何数量的其他协议,诸如用于中速通信和供应网络通信的网络。收发器666可包括与任何数量的3GPP(Third GenerationPartnership Project,第三代合作伙伴计划)规范(诸如在本公开的末尾处进一步详细讨论的长期演进(Long Term Evolution,LTE)和第五代(5th Generation,5G)通信系统)兼容的无线电。网络接口控制器(NIC)668可被包括以提供到边缘云695的节点或到其他设备(诸如(例如,在网格中操作的)连接的边缘设备662)的有线通信。有线通信可提供以太网连接,或可基于其他类型的网络,诸如控制器区域网(Controller Area Network,CAN)、本地互连网(Local Interconnect Network,LIN)、设备网络(DeviceNet)、控制网络(ControlNet)、数据高速路+、现场总线(PROFIBUS)或工业以太网(PROFINET),等等。附加的NIC 668可被包括以启用到第二网络的连接,例如,第一NIC 668通过以太网提供到云的通信,并且第二NIC668通过另一类型的网络提供到其他设备的通信。
鉴于从设备到另一组件或网络的可适用通信类型的多样性,由设备使用的可适用通信电路系统可以包括组件664、666、668或670中的任何一个或多个,或由组件664、666、668或670中的任何一个或多个来具体化。因此,在各示例中,用于通信(例如,接收、传送等)的可适用装置可由此类通信电路系统来具体化。
边缘计算节点650可以包括或被耦合到加速电路系统664,该加速电路系统664可以由一个或多个人工智能(artificial intelligence,AI)加速器、神经计算棒、神经形态硬件、FPGA、GPU的布置、xPU/DPU/IPU/NPU的布置、一个或多个SoC、一个或多个CPU、一个或多个数字信号处理器、专用ASIC、或被设计用于完成一个或多个专门任务的其他形式的专门处理器或电路系统来具体化。这些任务可以包括AI处理(包括机器学习、训练、推理、和分类操作)、视觉数据处理、网络数据处理、对象检测、规则分析等。这些任务还可包括用于本文档中其他地方讨论的服务管理和服务操作的特定边缘计算任务。
互连656可将处理器652耦合至用于连接附加的设备或子系统的传感器中枢或外部接口670。设备可包括传感器672,诸如加速度计、水平传感器、流量传感器、光学光传感器、相机传感器、温度传感器、全球定位系统(即,global navigation system,GPS)传感器、压力传感器、气压传感器,等等。中枢或接口670可进一步用于将边缘计算节点650连接至致动器674,该致动器674诸如功率开关、阀致动器、可听声音发生器、视觉警告设备等。
在一些任选的示例中,各种输入/输出(I/O)设备可存在于边缘计算节点650内,或可连接至边缘计算节点650。例如,可包括显示器或其他输出设备684来显示信息,该信息诸如传感器读数或致动器位置。可以包括输入设备686(诸如触摸屏或小键盘)来接受输入。输出设备684可包括任何数量的音频或视觉显示形式,包括:简单视觉输出,诸如二进制状态指示器(例如,发光二极管(light-emitting diode,LED));以及多字符视觉输出;或更复杂的输出,诸如显示屏(例如,液晶显示器(liquid crystal display,LCD)屏),其具有从边缘计算节点650的操作生成或产生的字符、图形、多媒体对象等的输出。在本系统的上下文中,显示器或控制台硬件可用于提供边缘计算系统的输出和接收边缘计算系统的输入;用于管理边缘计算系统的组件或服务;标识边缘计算组件或服务的状态;或用于进行任何其他数量的管理或管理功能或服务用例。
电池676可为边缘计算节点650供电,但是在其中边缘计算节点650被安装在固定位置的示例中,该边缘计算节点650可具有耦合至电网的电源,或者电池可以用作备用或用于临时功能。电池676可以是锂离子电池或金属-空气电池(诸如锌-空气电池、铝-空气电池、锂-空气电池),等等。
电池监测器/充电器678可被包括在边缘计算节点650中以跟踪电池676(如果包括的话)的充电状态(state of charge,SoCh)。电池监测器/充电器678可用于监测电池676的其他参数以提供失效预测,诸如电池676的健康状态(state of health,SoH)和功能状态(state of function,SoF)。电池监测器/充电器678可包括电池监测集成电路,诸如来自线性技术公司(Linear Technologies)的LTC4020或LTC2990、来自亚利桑那州的凤凰城的安森美半导体公司(ON Semiconductor)的ADT7488A、或来自德克萨斯州达拉斯的德州仪器公司的UCD90xxx族的IC。电池监测器/充电器678可通过互连656将关于电池676的信息传输至处理器652。电池监测器/充电器678也可包括使处理器652能够直接监测电池676的电压或来自电池676的电流的模数(analog-to-digital,ADC)转换器。电池参数可被用于确定边缘计算节点650可执行的动作,该电池参数诸如传输频率、网格网络操作、感测频率,等等。
功率块680或耦合至电网的其他电源可与电池监测器/充电器678耦合以对电池676充电。在一些示例中,功率块680可用无线功率接收器代替,以便例如通过边缘计算节点650中的环形天线来无线地获得功率。无线电池充电电路(诸如来自加利福尼亚州的苗比达市的线性技术公司的LTC4020芯片,等等)可被包括在电池监测器/充电器678中。可以基于电池676的大小并且因此基于所要求的电流来选择特定的充电电路。可使用由无线充电联盟(Airfuel Alliance)颁布的Airfuel标准、由无线电力协会(Wireless PowerConsortium)颁布的Qi无线充电标准、或由无线电力联盟(Alliance for Wireless Power)颁布的Rezence充电标准等等来执行充电。
存储装置658可包括用于实现本文中公开的技术的采用软件、固件或硬件命令形式的指令682。虽然此类指令682被示出为被包括在存储器654和存储装置658中的代码块,但是可以理解,可用例如被内置到专用集成电路(ASIC)中的硬连线电路来代替代码块中的任一个。
在示例中,经由存储器654、存储装置658或处理器652提供的指令682可被具体化为非暂态机器可读介质660,该非暂态机器可读介质660包括用于引导处理器652执行边缘计算节点650中的电子操作的代码。处理器652可通过互连656来访问非暂态机器可读介质660。例如,非暂态机器可读介质660可由针对存储装置658描述的设备来具体化或者可包括诸如存储设备和/或存储盘之类的特定存储单元,包括:光盘(例如,数字多功能盘(digitalversatile disk,DVD)、致密盘(compact disk,CD)、CD-ROM、蓝光盘)、闪存驱动器、软盘、硬驱动器(例如,SSD)、或信息在其中被存储达任何持续时间(例如,达扩展时间段、永久地、达简短的实例、用于临时缓冲和/或缓存)的任何数量的其他硬件设备。非暂态机器可读介质660可包括用于引导处理器652执行例如像参照上文中描绘的操作和功能的(一个或多个)流程图和(一个或多个)框图而描述的特定的动作序列或动作流的指令。如本文中所使用,术语“机器可读介质”和“计算机可读介质”是可互换的。如本文中所使用,术语“非暂态计算机可读介质”被明确地限定为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号并排除传输介质。
而且,在特定示例中,处理器652上的指令682(单独地或与机器可读介质660的指令682结合)可以配置受信任执行环境(trusted execution environment,TEE)690的执行或操作。在示例中,TEE 690作为处理器652可访问的受保护区域来操作,以用于指令的安全执行和对数据的安全访问。例如,可以通过使用软件防护扩展(Software GuardExtensions,SGX)或/>硬件安全扩展、/>管理引擎(Management Engine,ME)或/>融合安全可管理性引擎(Converged SecurityManageability Engine,CSME)来提供TEE 690以及处理器652或存储器654中伴随的安全性区域的各种实现方式。安全强化、硬件信任根、以及受信任或受保护操作的其他方面可以通过TEE 690和处理器652在设备650中实现。
虽然图5和图6所示的示例分别包括用于计算节点和计算设备的示例组件,但本文公开的示例不限于此。如本文所使用的,“计算机”可以包括不同类型的计算环境中的、图5和/或图6的示例组件中的一些或全部组件。示例计算环境包括分布式联网布置中的边缘计算设备(例如,边缘计算机),使得参与的边缘计算设备中的特定边缘计算设备是异构或同构设备。如本文所使用的,“计算机”可以包括个人计算机、服务器、用户装备、加速器等,包括其任何组合。在一些示例中,分布式联网和/或分布式计算包括任何数量的如图5和/或图6中所示的此类边缘计算设备,其中每个边缘计算设备可以包括不同的子组件、不同的存储器容量、I/O能力等。例如,由于分布式联网和/或分布式计算的一些实现方式与特定期望功能相关联,因此本文公开的示例包括图5和/或图6中所图示的组件的不同组合,以满足分布式计算任务的功能目标。在一些示例中,术语“计算节点”或“计算机”仅包括图5的示例处理器504、存储器506和I/O子系统508。在一些示例中,(一个或多个)分布式计算任务的一个或多个目标功能依赖于定位在边缘联网环境的不同部分中的一个或者多个替代设备/结构,诸如用于容纳数据存储装置(例如,示例数据存储装置510)、输入/输出能力(例如,(一个或多个)示例外围设备514)和/或网络通信能力(例如:示例NIC 520)的设备。
在一些示例中,在分布式计算和/或分布式联网环境(例如,边缘网络)中操作的计算机被构造成用于以减少计算浪费的方式适应特定目标功能。例如,由于计算机包括图5和图6中公开的组件的子集,因此此类计算机满足分布式计算目标功能的执行,而不包括以其他方式不被使用和/或未充分利用的计算结构。因此,本文使用的术语“计算机”包括能够满足和/或以其他方式执行分布式计算任务的目标功能的、图5和/或图6的结构的任何组合。在一些示例中,计算机以与对应的分布式计算目标功能相称的方式、以与动态需求结合而缩小规模或增大规模的方式被构造。在一些示例中,鉴于不同计算机处理(一个或多个)分布式计算请求的一个或多个任务的能力来调用和/或以其他方式实例化不同的计算机,使得能够满足任务的任何计算机继续进行这种计算活动。
在图5和图6中所示的示例中,计算设备包括操作系统。如本文所使用的,“操作系统”是用于控制示例计算设备的软件,该计算设备诸如图5的示例边缘计算节点500和/或图6的示例边缘计算节点650。示例操作系统包括但不限于基于消费者的操作系统(例如,10、/>OS、/>OS等)。示例操作系统还包括但不限于,聚焦于工业的操作系统,诸如实时操作系统、管理程序等。第一边缘计算节点上的示例操作系统可以与第二边缘计算节点上的示例操作系统相同或不同。在一些示例中,操作系统调用替代软件,以促进对于操作系统不是原生的一个或多个功能和/或操作,诸如特定的通信协议和/或解释器。在一些示例中,操作系统实例化对于操作系统不是原生的各种功能。在一些示例中,操作系统包括不同程度的复杂性和/或能力。例如,对应于第一边缘计算节点的第一操作系统包括具有对动态输入条件的响应性的特定性能预期的实时操作系统,而对应于第二边缘计算节点的第二操作系统包括用于促进终端用户I/O的图形用户界面能力。
在一些示例中,CXL端点530包括用于使用CXL.io协议、以及从边缘设备输入和/或输出读取和/或写入请求的装置。例如,用于使用的装置可由I/O电路系统534实现。在一些示例中,I/O电路系统534可以由机器可执行指令来实现,机器可执行指令诸如由处理器电路系统执行的、至少由图7-图9的框702、720、802和902-906来实现的指令,该处理器电路系统可以由图10的示例处理器电路系统1012、图11的示例处理器电路系统1100和/或图12的示例现场可编程门阵列(Field Programmable Gate Array,FPGA)电路系统1200来实现。在其他示例中,I/O电路系统534由其他硬件逻辑电路系统、硬件实现的状态机和/或任何其他硬件、软件和/或固件的组合来实现。例如,示例I/O电路系统534可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、比较器、运算放大器(operational-amplifier,op-amp)、逻辑电路等)来实现,但其他结构也同样适用。
在一些示例中,CXL端点530包括用于使用(一个或多个)一致性协议的装置。例如,用于使用的装置可由一致性控制器电路系统536实现。在一些示例中,一致性控制器电路系统536可以由机器可执行指令来实现,机器可执行指令诸如由处理器电路系统执行的、至少由图7-图9的框706-716、806-816、910和914来实现的指令,该处理器电路系统可以由图10的示例处理器电路系统1012、图11的示例处理器电路系统1100和/或图12的示例现场可编程门阵列(Field Programmable Gate Array,FPGA)电路系统1200来实现。在其他示例中,一致性控制器电路系统536由其他硬件逻辑电路系统、硬件实现的状态机和/或任何其他硬件、软件和/或固件的组合来实现。例如,一致性控制器电路536可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路、分立的和/或集成的模拟和/或数字电路、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。
在一些示例中,CXL端点530包括对存储在存储器中的数据的存储器地址进行编码和解码的装置。例如,用于编码和解码的装置可以由系统地址生成器电路系统538实现。在一些示例中,系统地址生成器电路系统538可以由机器可执行指令来实现,机器可执行指令诸如由处理器电路系统执行的、至少由图7和图8的框704和804来实现的指令,该处理器电路系统可以由图10的示例处理器电路系统1012、图11的示例处理器电路系统1100和/或图12的示例现场可编程门阵列(Field Programmable Gate Array,FPGA)电路系统1200来实现。在其他示例中,系统地址生成器电路系统538由其他硬件逻辑电路系统、硬件实现的状态机和/或任何其他硬件、软件和/或固件的组合来实现。例如,系统地址生成器电路系统538可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路、分立的和/或集成的模拟和/或数字电路、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。
在一些示例中,CXL端点530包括用于使用CXL.mem协议的装置。例如,用于使用的装置可由加载-存储电路系统540实现。在一些示例中,加载-存储电路系统540可以由机器可执行指令来实现,机器可执行指令诸如由处理器电路系统执行的、至少由图7和图8的框718和818来实现的指令,该处理器电路系统可以由图10的示例处理器电路系统1012、图11的示例处理器电路系统1100和/或图12的示例现场可编程门阵列(Field ProgrammableGate Array,FPGA)电路系统1200来实现。在其他示例中,加载-存储电路系统540由其他硬件逻辑电路系统、硬件实现的状态机和/或任何其他硬件、软件和/或固件的组合来实现。例如,加载-存储电路系统540可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。
在一些示例中,CXL端点530包括用于配置(一个或多个)一致存储器域的装置。例如,用于配置的装置可由一致域配置电路系统542实现。在一些示例中,一致域配置电路系统542可以由机器可执行指令来实现,该机器可执行指令诸如由处理器电路执行、至少由图9的框908实现的机器可执行指令,该处理器电路可由图10的示例处理器电路1012、图11的示例处理器电路1100和/或图12的示例现场可编程门阵列(FPGA)电路1200实现。在其他示例中,一致域配置电路系统542由其他硬件逻辑电路系统、硬件实现的状态机和/或任何其他硬件、软件和/或固件的组合来实现。例如,一致域配置电路系统542可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路、分立的和/或集成的模拟和/或数字电路、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。
在一些示例中,CXL端点530包括用于配置针对(一个或多个)一致存储器域的(一个或多个)一致性规则的装置。例如,用于配置的装置可由(一个或多个)一致性规则配置电路系统544实现。在一些示例中,(一个或多个)一致性规则配置电路系统544可以由机器可执行指令来实现,该机器可执行指令诸如由处理器电路执行的、至少由图9的框912实现的机器可执行指令,该处理器电路可由图10的示例处理器电路1012、图11的示例处理器电路1100和/或图12的示例现场可编程门阵列(FPGA)电路1200实现。在其他示例中,(一个或多个)一致性规则配置电路系统544由其他硬件逻辑电路系统、硬件实现的状态机和/或任何其他硬件、软件和/或固件的组合来实现。例如,(一个或多个)一致性规则配置电路系统544可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路、分立的和/或集成的模拟和/或数字电路、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。
虽然图10示出了实现图5的CXL端点530的示例方式,图10中所示的元件、过程和/或设备中的一个或多个可以被组合、拆分、重新布置、省略、消除和/或以任何其他方式被实现。此外,示例I/O电路系统534、示例一致性控制器电路系统536、示例系统地址生成器电路系统538、示例加载-存储电路系统540、示例一致域配置电路系统542、示例(一个或多个)一致性规则配置电路系统544和/或更一般地,图5的示例CXL端点530,可以由硬件单独实现,或者由硬件与软件和/或固件组合实现。因此,例如,示例I/O电路系统电路534、示例一致性控制器电路系统536、示例系统地址生成器电路系统538、示例加载-存储电路系统540、示例一致域配置电路系统542、示例(一个或多个)一致性规则配置电路系统544和/或更一般地,示例CXL端点530,可以由处理器电路系统、(一个或多个)模拟电路、(一个或多个)数字电路、(一个或多个)逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程微控制器、(一个或多个)图形处理单元((一个或多个)GPU)、(一个或多个)数字信号处理器((一个或多个)DSP)、(一个或多个)专用集成电路((一个或多个)ASIC)、(一个或多个)可编程逻辑器件(programable logic device,PLD)、和/或(一个或多个)现场可编程逻辑器件(fieldprogramable logic device,FPLD)(诸如,现场可编程门阵列(FPGA))实现。更进一步地,图5的示例CXL端点530可以包括附加于或替代图10中所示的那些元件、过程和/或设备的一个或多个元件、过程和/或设备,和/或可以包括所图示的元件、过程和设备中任何或所有元件、过程和设备中的多于一个的元件、过程和设备。
在图10中示出了表示用于实现图5的CXL端点530的示例硬件逻辑电路系统、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是用于由处理器电路系统执行的一个或多个可执行程序或可执行程序的(一个或多个)部分,处理器电路系统诸如下文结合图10所讨论的示例处理器平台1000中示出的处理器电路系统1012和/或下文结合图7、图8和/或图9所讨论的示例处理器电路系统。程序可以被具体化在存储在与位于一个或多个硬件设备中的处理器电路系统相关联的一个或多个非暂态计算机可读存储介质上的软件中,非暂态计算机可读存储介质诸如CD、软盘、硬盘驱动器(hard diskdrive,HDD)、DVD、蓝光盘、易失性存储器(例如,任何类型的随机存取存储器(RandomAccess Memory,RAM)等),或非易失性存储器(例如,闪存、HDD等),但完整的程序和/或其中的部分可以替代地由除处理器电路系统外的一个或多个硬件设备执行,和/或被具体化在固件或专用硬件中。机器可读指令可跨多个硬件设备分布和/或由两个或更多个硬件设备(例如,服务器和客户端硬件设备)执行。例如,客户端硬件设备可以由端点客户端硬件设备(例如,与用户相关联的硬件设备)或中间客户端硬件设备(例如,可促进服务器与端点客户端硬件设备之间通信的无线电接入网络(radio access network,RAN)网关)来实现。类似地,非暂态计算机可读存储介质可包括位于一个或多个硬件设备中的一个或多个介质。此外,虽然示例程序是参考图10中所图示的流程图描述的,但是可替代地使用实现示例CXL端点530的许多其他方法。例如,可以改变框的执行次序,和/或可改变、消除或组合所描述的框中的一些框。附加地或替代地,框中的任何框或所有框可以由被构造成用于在不执行软件或固件的情况下执行相应的操作的一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)来实现。处理器电路系统可以分布在不同的网络位置和/或在一个或多个硬件设备本地(例如,单核心处理器(例如,单核心中央处理器单元(central processor unit,CPU))、单个机器中的多核心处理器(例如,多核心CPU等)、跨服务器机架的多个服务器分布的多个处理器、跨一个或多个服务器机架分布的多个处理器、位于相同封装中的CPU和/或FPGA(例如,相同的集成电路(integrated circuit,IC)封装或在两个或更多个独立的壳体中等)。
本文中描述的机器可读指令能以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一种或多种来存储。如本文描述的机器可读指令可以作为可用于创建、制造和/或产生机器可执行指令的数据或数据结构(例如,指令的部分、代码、代码表示等)来存储。例如,机器可读指令可以被分段并被存储在位于网络或网络集合(例如,在云中、在边缘设备中等)中的相同或不同位置处的一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能需要安装、修改、适配、更新、组合、补充、配置、解密、解压缩、拆包、分发、重新指派、编译等中的一项或多项,以使得它们由计算设备和/或其他机器直接可读取、可解释、和/或可执行。例如,机器可读指令可以存储在多个部分中,这些部分被单独压缩、加密和/或存储在单独的计算设备上,其中,这些部分在被解密、解压缩和/或组合时形成实现诸如本文中描述的可以一起形成程序的一个或多个操作的一组可执行指令。
在另一示例中,机器可读指令可以以它们可被处理器电路读取的状态存储,但是需要添加库(例如,动态链接库(dynamic link library,DLL))、软件开发工具包(softwaredevelopment kit,SDK)、应用编程接口(application programming interface,API)等,以便在特定的计算设备或其他设备上执行机器可读指令。在另一示例中,在可整体或部分地执行机器可读指令和/或对应的(一个或多个)程序之前,可能需要配置机器可读指令(例如,存储的设置、数据输入、记录的网络地址等)。因此,如本文中所使用,机器可读介质可包括机器可读指令和/或(一个或多个)程序,而不管机器可读指令和/或(一个或多个)程序在被存储时或以其他方式处于静态或在途中时的特定格式或状态如何。
本文中所描述的机器可读指令可以由任何过去、现在或未来的指令语言、脚本语言、编程语言等表示。例如,机器可读指令可以用以下语言中的任何一种语言来表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HyperText Markup Language,HTML)、结构化查询语言(Structured Query Language,SQL)、Swift等。
如上所述,可使用存储在一个或多个非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)实现图7、图8和/或图9的示例操作,非暂态计算机和/或机器可读介质诸如光学存储设备、磁存储设备、HDD、闪存、只读存储器(read-onlymemory,ROM)、CD、DVD、缓存、任何类型的RAM、寄存器和/或将信息存储在其中达任何时长(例如,达扩展时间段、永久地、达简短的实例、用于临时缓冲和/或用于信息的缓存)的任何其它存储设备或存储盘。如本文中所使用,术语非暂态计算机可读介质和非暂态计算机可读存储介质被明确地定义为包括任何类型的计算机可读存储设备和/或存储盘,并且被定义为排除传播信号且排除传输介质。
“包含”和“包括”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求将任何形式的“包含”或“包括”(例如,包括、包含、包括有、包含有、具有等)用作前序部分或用于任何种类的权利要求记载内容之中时,要理解的是,在不落在对应权利要求或记载的范围之外的情况下可以存在附加的要素、项等。如本文中所使用,当短语“至少”被用作例如权利要求的前序部分中的过渡术语时,它以与术语“包括”和“包含”是开放式的相同的方式是开放式的。当例如以诸如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。
如本文所使用,单数引用(例如,“一(a、an)”、“第一”、“第二”等)不排除复数。本文所使用的术语“一(a、an)”对象是指一个或多个该对象。术语“一”(“a”(或“an”))、“一个或多个”和“至少一个”在本文中可以可互换地使用。此外,尽管单独列出,但多个装置、元件或方法动作可由例如相同实体或对象来实现。另外,虽然各个特征可以被包括在不同的示例或权利要求中,但是这些特征可能被组合,并且在不同的示例或权利要求中的包含并不暗示特征的组合不可行和/或不是有利的。
图7是表示示例机器可读指令和/或示例操作700的流程图,示例机器可读指令和/或示例操作700可由处理器电路系统执行和/或实例化以实现CXL端点530,从而将来自分布式一致边缘计算网络400的读取请求返回至连接到边缘计算节点500的边缘设备522。图7的机器可读指令和/或操作700开始于框702,在框702处,I/O电路系统534接收从边缘设备522输入的读取请求。
在框704处,系统地址生成器电路系统538执行计算以对与从边缘设备522发送的数据读取请求相关联的存储器地址解码。存储器地址是对要由一致性控制器电路系统536读取的数据的存储器位置的引用。
在框706处,响应于存储器地址被输入到一致性控制器电路系统536,一致性控制器电路系统536定位并读取存储在由存储器地址引用的本地存储器位置处的数据。在这样的示例中,本地存储器位置是CXL端点530的缓存存储器548或主存储器546或边缘计算节点500的存储器506。一致性控制器电路系统536首先搜索缓存存储器548,因为搜索缓存存储器548倾向于引起最快的数据检测和/或取回。
在框708处,一致性控制器电路系统536读取存储数据以及有效或无效布尔元数据的存储器块。一致性控制器电路系统536确定数据是否本地存储在CXL端点530上,以及边缘计算节点500是有效还是无效。
如果一致性控制器电路系统536确定数据有效,则在框710处,一致性控制器电路系统536将向执行读取请求的边缘设备522返回数据值。
如果一致性控制器电路系统536确定数据无效,则在框712处,一致性控制器电路系统536确定存储器地址是否在(一个或多个)一致存储器域内。一致性控制器电路系统536使用由一致域配置电路系统542实现的配置来检查所读取数据的存储器地址是否在(一个或多个)一致存储器域中。如果否,则一致性控制器电路系统536将数据值返回到执行读取请求的边缘设备522。
如果一致性控制器电路系统536确定存储器地址在(一个或多个)一致存储器域内,则在框714处,一致性控制器电路系统536确定根据由(一个或多个)一致性规则配置电路系统544配置的(一个或多个)一致性规则,存储器地址是否应保持一致。如果(一个或多个)一致性规则在给定时刻将存储器地址分类为非一致,则一致性控制器电路系统536将数据值返回到执行读取请求的边缘设备522。
如果一致性控制器电路系统536确定根据(一个或多个)一致性规则存储器地址一致,则在框716处,一致性控制器电路系统536针对其他CXL端点的各个缓存存储器中的存储器地址对CXL互连进行监听。监听向其他CXL端点发出信号以调用由存储器地址引用的存储器位置处标记为有效的数据,这些其他CXL端点针对该存储器地址搜索它们的所缓存的数据,并且这些CXL端点中的一个CXL端点将值(从它的缓存存储器或主存储器)返回到CPU缓存548。
在框718处,加载-存储电路系统540加载由一致性控制器电路系统536存储在CPU缓存548中、要往回发送到边缘设备522的数据。
在框720处,I/O电路系统534向边缘设备522输出数据值。每当边缘设备向CXL端点发送读取请求时,示例机器可读指令和/或示例操作700重复。
图8是表示示例机器可读指令和/或示例操作800的流程图,示例机器可读指令和/或示例操作800可由处理器电路系统执行和/或实例化以实现CXL端点530,从而执行来自跨分布式一致边缘计算网络400连接到边缘计算节点500的边缘设备522的写入请求。图8的机器可读指令和/或操作800开始于框802,在框802处,I/O电路系统534接收从边缘设备522输入的写入请求。
在框804处,系统地址生成器电路系统538执行计算以对与从边缘设备522发送的数据写入请求相关联的存储器地址解码。存储器地址是对要由一致性控制器电路系统536更新的数据的存储器位置的引用。
在框806处,响应于存储器地址被输入到一致性控制器电路系统536,一致性控制器电路系统536将定位存储在由存储器地址引用的本地存储器位置处的数据,在本地存储器位置处写入从边缘设备522发送的新数据值,并验证该数据。本地存储器位置是CXL端点530的缓存存储器548或主存储器546或边缘计算节点500的存储器506。一致性控制器电路系统536将首先针对存储器地址搜索缓存存储器548,因为这将是用于数据检测和取回的最快手段。
在框808处,一致性控制器电路系统536确定存储器地址是否在(一个或多个)一致存储器域内。一致性控制器电路系统536可以使用由一致域配置电路系统542实现的配置来检查所写入数据的存储器地址是否在(一个或多个)一致存储器域中。
如果一致性控制器电路系统536确定存储器地址不在(一个或多个)一致存储器域内,则在框810处,跨边缘平台的其他CXL端点中的所有缓存存储器和主存储器中的存储器地址处的数据的有效/无效状态保持不变。
如果一致性控制器电路系统536确定存储器地址在(一个或多个)一致存储器域内,则在框812处,一致性控制器电路系统536确定根据由(一个或多个)一致性规则配置电路系统544配置的(一个或多个)一致性规则,存储器地址是否应保持一致。如果(一个或多个)一致性规则将存储器地址分类为在给定时刻不需要一致,则跨边缘平台的其他CXL端点中的所有缓存存储器和主存储器中的存储器地址处的数据的有效/无效状态保持不变。
如果一致性控制器电路系统536确定根据(一个或多个)一致性规则存储器地址需要一致性,则在框814处,一致性控制器电路系统536针对其他CXL端点的缓存存储器中的该存储器地址对CXL互连进行监听。监听将向这些其他CXL端点发出信号,以确定存储器地址在它们的缓存存储器中所引用的存储器位置。
响应于其他CXL端点从监听确定存储器位置,在框816处,一致性控制器电路系统536向包含存储器地址的其他CXL端点的缓存存储器发送无效命令。这将使存储在跨分布式一致边缘计算系统的缓存存储器中的存储器地址处的数据变为无效,使得存储在缓存存储器548中的数据成为唯一有效副本。
在框818处,加载-存储电路系统540将数据存储在归属边缘计算节点的主存储器506中的存储器地址处并对该数据进行验证。每当边缘设备向CXL端点发送写入请求时,示例机器可读指令和/或示例操作800重复。
图9是表示示例机器可读指令和/或示例操作900的流程图,示例机器可读指令和/或示例操作900可由处理器电路系统执行和/或实例化以实现CXL端点530,从而配置图4的分布式一致边缘计算系统400中所图示的边缘平台中的一个边缘平台。图9的机器可读指令和/或操作900开始于框902,在框902处,I/O电路系统534使用CXL.io协议中的链接操作,以经由边缘计算网络将边缘设备522连接到至少一个边缘计算节点500。
在框904处,I/O电路系统534使用CXL.io协议中的链接、设备发现和网络枚举操作。I/O电路系统534检测可以在共享网络上操作并使用CXL.io协议的(一个或多个)边缘计算节点526中的一者或多者。I/O电路系统534然后经由CXL互连连接所有的边缘计算节点。
在框906处,I/O电路系统534使用CXL.io协议来配置边缘平台,该边缘平台包括一个边缘计算节点作为归属边缘计算节点并包括其他边缘计算节点作为辅助边缘计算节点。I/O电路系统534使用CXL.io协议确定归属边缘计算节点。I/O电路系统534将边缘设备522的数据初始化到归属边缘计算节点的存储器506和CXL端点530的存储器546中。I/O电路系统534访问辅助边缘计算节点的寄存器和缓存存储器。
在框908处,一致域配置电路系统542使用(一个或多个)一致性协议来配置被初始化到CXL端点的存储器546中的存储器地址的(一个或多个)一致存储器域。可以使用(一个或多个)一致性协议来配置(一个或多个)一致存储器域。
在框910处,一致性控制器电路系统536与跨边缘平台的辅助边缘计算节点处的CXL端点共享(一个或多个)一致存储器域的存储器地址。然后,CXL端点将(一个或多个)一致存储器域存储在缓存存储器中。
在框912处,(一个或多个)一致性规则配置电路系统544使用(一个或多个)一致性协议来配置针对存储在归属边缘计算节点中的CXL端点的缓存存储器中的(一个或多个)一致存储器域的(一个或多个)一致性规则。可以使用(一个或多个)一致性协议来配置(一个或多个)一致性规则。
在框914处,一致性控制器电路系统536与跨边缘平台的辅助边缘计算节点处的CXL端点共享针对(一个或多个)一致存储器域的(一个或多个)一致性规则。然后,CXL端点将(一个或多个)一致性规则存储在缓存存储器中。每当新边缘设备连接到CXL端点时,示例机器可读指令和/或示例操作900重复。
图10是被构造成用于执行和/或实例化图7-图9的机器可读指令和/或操作以实现图5的CXL端点530的示例处理器平台1000的框图。处理器平台1000可以是例如,服务器、个人计算机、工作站、自主学习机器(例如,神经网络)或任何其他类型的计算设备。
所图示示例的处理器平台1000包括处理器电路系统1012。所图示示例的处理器电路系统1012是硬件。例如,处理器电路系统1012可由来自任何所期望的系列或制造商的一个或多个集成电路、逻辑电路、FPGA、微处理器、CPU、GPU、DSP和/或微控制器实现。处理器电路系统1012可由一个或多个基于半导体的(例如,基于硅的)器件来实现。在该示例中,处理器电路系统1012实现I/O电路系统534、一致性控制器电路系统536、系统地址生成器电路系统538、加载-存储电路系统540、一致域配置电路系统542和(一个或多个)一致性规则配置电路系统544。
所图示示例的处理器电路系统1012包括本地存储器1013(例如,缓存、寄存器等)。所图示示例的处理器电路系统1012经由总线1018与包括易失性存储器1014和非易失性存储器1016的主存储器进行通信。易失性存储器1014可以由同步动态随机存取存储器(Synchronous Dynamic Random Access Memory,SDRAM)、动态随机存取存储器(DynamicRandom Access Memory,DRAM)、动态随机存取存储器(/>DynamicRandom Access Memory,/>)和/或任何其他类型的RAM设备实现。非易失性存储器1016可以由闪存和/或任何其他所期望类型的存储器设备实现。由存储器控制器1017控制对所图示示例的主存储器1014、1016的访问。
所图示示例的处理器平台1000还包括接口电路系统1020。接口电路系统1020可以由硬件根据任何类型的接口标准来实现,诸如以太网接口、通用串行总线(universalserial bus,USB)接口、接口、近场通信(near field communication,NFC)接口、PCI接口和/或PCIe接口。
在所图示的示例中,一个或多个输入设备1022被连接至接口电路系统1020。(一个或多个)输入设备1022准许用户将数据和/或命令输入到处理器电路系统1012中。(一个或多个)输入设备1022可以由例如音频传感器、麦克风、相机(静态或视频)、键盘、按键、鼠标、触摸屏、轨迹板、轨迹球、等点鼠标设备和/或语音识别系统实现。
一个或多个输出设备1024也被连接至所图示示例的接口电路系统1020。因此,所图示示例的接口电路系统1020通常包括图形驱动器卡、图形驱动器芯片和/或诸如GPU之类的图形处理器电路系统。
所图示示例的接口电路系统1020还包括诸如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口之类的通信设备,以促进通过网络1026与外部机器(例如,任何种类的计算设备)交换数据。通信可以通过例如,以太网连接、数字订户线路(digital subscriber line,DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统、光连接等。
所图示示例的处理器平台1000还包括用于存储软件和/或数据的一个或多个大容量存储设备1028。此类大容量存储设备1028的示例包括磁存储设备、光存储设备、软盘驱动器、HDD、CD、蓝光盘驱动器、独立磁盘冗余阵列(redundant array of independent disks,RAID)系统、固态存储设备(诸如,闪存存储器设备)和DVD驱动器。
可以由图7-图9的机器可读指令来实现的机器可执行指令1032可以被存储在大容量存储设备1028中,存储在易失性存储器1014中,存储在非易失性存储器1016中,和/或存储在诸如CD或DVD之类的可移除非暂态计算机可读存储介质上。
图11是图10的处理器电路系统1012的示例实现方式的框图。在该示例中,图10的处理器电路系统1012由微处理器1100来实现。例如,微处理器1100可以实现多核心硬件电路系统,诸如CPU、DSP、GPU、XPU等。尽管它可以包括任意数量的示例核心1102(例如,1个核心),但本示例的微处理器1100是包括N个核心的多核心半导体器件。微处理器1100的核心1102可以独立操作,或者可以协作以执行机器可读指令。例如,与固件程序、嵌入式软件程序或软件程序相对应的机器代码可以由核心1102中的一个核心1102来执行,或者可以由核心1102中的多个核心1102在相同或不同的时间执行。在一些示例中,与固件程序、嵌入式软件程序或软件程序相对应的机器代码被分割成线程,并由两个或更多个核心1102并行地执行。软件程序可以与由图7-图9的流程图表示的机器可读指令和/或操作的部分或全部相对应。
核心1102可通过示例总线1104进行通信。在一些示例中,总线1104可以实现通信总线,用于实行与核心1102中的(一个或多个)核心1102相关联的通信。例如,总线1104可以实现集成电路间(Inter-Integrated Circuit,I2C)总线、串行外围接口(SerialPeripheral Interface,SPI)总线、PCI总线或PCIe总线中的至少一个。附加地或替代地,总线1104可以实现任何其他类型的计算或电气总线。核心1102可以通过示例接口电路系统1106从一个或多个外部设备获得数据、指令和/或信号。核心1102可以通过接口电路系统1106向一个或多个外部设备输出数据、指令和/或信号。尽管该示例的核心1102包括示例本地存储器1120(例如,第一级(Level 1,L1)缓存,可被拆分为L1数据缓存和L1指令缓存),但微处理器1100还包括可由核心共享的示例共享存储器1110(例如,第二级(Level 2,L2_缓存)),以用于对数据和/或指令的高速访问。数据和/或指令可以通过向共享存储器1110写入和/或从共享存储器1110读取来传输(例如,共享)。核心1102中的每个核心1102的本地存储器1120、以及共享存储器1110可以是包括多级缓存存储器和主存储器(例如,图10的主存储器1014、1016)的存储设备的层次体系的部分。典型地,相比于较低级别的存储器,层次体系中的较高级别的存储器表现出更低的访问时间并具有更小的存储容量。缓存层次体系的各级别的改变由缓存一致性策略管理(例如,协调)。
每个核心1102可以被称为CPU、DSP、GPU等,或任何其他类型的硬件电路系统。每个核心1102包括控制单元电路系统1114、算术和逻辑(arithmetic and logic,AL)电路系统(有时称为ALU)1116、多个寄存器1118、L1缓存1120和示例总线1122。可以存在其他结构。例如,每个核心1102可以包括向量单元电路系统、单指令多数据(single instructionmultiple data,SIMD)单元电路系统、加载/存储单元(load/store unit,LSU)电路系统、分支/跳转单元电路系统、浮点单元(floating-point unit,FPU)电路系统等。控制单元电路系统1114包括基于半导体的电路,其被构造成用于控制(例如,协调)相对应的核心1102内的数据移动。AL电路系统1116包括被构造成用于在相对应的核心1102内对数据执行一个或多个数学和/或逻辑操作的基于半导体的电路。一些示例的AL电路系统1116执行基于整数的操作。在其他示例中,AL电路系统1116还执行浮点操作。在另外的其他示例中,AL电路系统1116可包括执行基于整数的操作的第一AL电路系统和执行浮点操作的第二AL电路系统。在一些示例中,AL电路系统1116可以被称为算术逻辑单元(Arithmetic Logic Unit,ALU)。寄存器1118是用于存储数据和/或指令(诸如,由相对应的核心1102的AL电路系统1116执行的操作中的一个或多个操作的结果)的基于半导体的结构。例如,寄存器1118可以包括(一个或多个)向量寄存器、(一个或多个)SIMD寄存器、(一个或多个)通用寄存器、(一个或多个)标志寄存器、(一个或多个)段寄存器、(一个或多个)机器特定寄存器、(一个或多个)指令指针寄存器、(一个或多个)控制寄存器、(一个或多个)调试寄存器、(一个或多个)存储器管理寄存器、(一个或多个)机器检查寄存器等。寄存器1118可按如图11所示的区块来布置。替代地,寄存器1118可以按任何其他布置、格式或结构来组织,包括贯穿核心1102分布以缩短访问时间。总线1120可以实现I2C总线、SPI总线、PCI总线或PCIe总线中的至少一个。
每个核心1102(和/或更一般地,微处理器1100)可以包括上文示出和描述的那些结构的附加和/或替代结构。例如,可以存在一个或多个时钟电路、一个或多个电源、一个或多个功率门、一个或多个缓存归属地代理(cache home agents,CHA)、一个或多个聚合/公共网格站点(converged/common mesh stop,CMS)、一个或多个移位器(例如,(一个或多个)桶形移位器)和/或其他电路系统。微处理器1100是被制造成包括许多晶体管的半导体器件,这些晶体管被互连以在被包含在一个或多个封装中的一个或多个集成电路(IC)中实现上文所描述的结构。处理器电路系统可包括一个或多个加速器,和/或与一个或多个加速器协作。在一些示例中,加速器由逻辑电路系统来实现,从而相比于通用处理器可以进行的更快和/或更有效地执行某些任务。加速器的示例包括ASIC和FPGA,诸如,本文中所讨论的那些。GPU或其他可编程器件也可以是加速器。加速器可以板载于处理器电路系统上,与处理器电路系统在同一芯片封装中,和/或在与处理器电路系统分开的一个或多个单独的封装中。
图12是图10的处理器电路系统1012的另一示例实现方式的框图。在该示例中,处理器电路系统1012由FPGA电路系统1200实现。例如,FPGA电路系统1200可用于执行可以以其他方式通过图11的示例微处理器1100执行对应的机器可读指令来执行的操作。然而,一旦被配置,FPGA电路系统1200就在硬件中实例化机器可读指令,并且由此通常可以比操作可能通过通用微处理器执行对应软件来执行更快地执行这些操作。
更具体而言,与上面描述的图11的微处理器1100(微处理器1100是通用设备,可编程为执行由图7-图9的流程图表示的机器可读指令的部分或全部,但其互连和逻辑电路系统一旦被制造就是固定的)不同,图12的示例的FPGA电路系统1200包括这样互连和逻辑电路系统:这些互连和逻辑电路系统可以在制造之后以不同的方式被配置和/或互连,以实例化例如由图7-图9的流程图表示的机器可读指令的部分或全部。具体而言,FPGA 1200可以被认为是逻辑门、互连和开关的阵列。可以对开关进行编程,以改变逻辑门通过互连进行互连的方式,从而有效地形成一个或多个专用逻辑电路(除非并且直到FPGA电路系统1200被重新编程)。经配置的逻辑电路使逻辑门能够以不同的方式协作,从而对由输入电路系统接收的数据执行不同的操作。这些操作可与由图7-图9的流程图表示的软件的部分或全部相对应。因此,FPGA电路系统1200可以被构造成用于将图7-图9的流程图的机器可读指令的部分或全部有效地实例化为专用逻辑电路,以便以类似于ASIC的专用方式执行与这些软件指令相对应的操作。因此,FPGA电路系统1200可执行与图7-图9的机器可读指令的部分或全部相对应的操作的速度快于通用微处理器执行相同的操作的速度。
在图12的示例中,FPGA电路系统1200被构造成用于由终端用户通过诸如Verilog之类的硬件描述语言(hardware description language,HDL)编程(和/或重新编程一次或多次)。图12的FPGA电路系统1200包括示例输入/输出(I/O)电路系统1202,该示例输入/输出(I/O)电路系统1202用于从示例配置电路系统1204和/或外部硬件(例如,外部硬件电路系统)1206获得数据和/或向示例配置电路系统1204和/或外部硬件(例如,外部硬件电路系统)1206输出数据。例如,配置电路系统1204可以实现接口电路系统,该接口电路系统可获得用于配置FPGA电路系统1200或其(一个或多个)部分的机器可读指令。在一些此类示例中,配置电路系统1204可以从用户、机器(例如,可以实现人工智能/机器学习(ArtificialIntelligence/Machine Learning,AI/ML)模型以生成指令的硬件电路系统(例如,经编程的或专用电路系统)等获得机器可读指令。在一些示例中,外部硬件1206可以实现图11的微处理器1100。FPGA电路系统1200还包括示例逻辑门电路系统1208、多个示例可配置互连1210和示例存储电路系统1212的阵列。逻辑门电路系统1208和互连1210可配置用于实例化一个或多个操作,这些操作可与图7-图9的至少一些机器可读指令和/或其他期望操作相对应。图12所示的逻辑门电路1208是按组或按块制造的。每个块包括可以配置为逻辑电路的基于半导体的电气结构。在一些示例中,电气结构包括为逻辑电路提供基本构建块的逻辑门(例如,与(And)门、或(Or)门、或非(Nor)门等)。电可控开关(例如,晶体管)存在于逻辑门电路系统1208中的每个逻辑门电路系统1208中,以使得能够将电气结构和/或逻辑门配置成形成用于执行期望的操作的电路。逻辑门电路系统1208可以包括其他电气结构,诸如,查找表(look-up table,LUT)、寄存器(例如,触发器或锁存器)、多路复用器等。
所图示示例的互连1210是导电路径、迹线、通孔等,其可以包括其状态可以通过编程(例如,使用HDL指令语言)来改变以激活或解除激活逻辑门电路系统1208中的一个或多个逻辑门电路1208之间的一个或多个连接从而对期望的逻辑电路编程的电可控开关(例如,晶体管)。
所图示示例的存储电路系统1212被构造成用于存储由对应的逻辑门执行的操作中的一个或多个操作的(一个或多个)结果。存储电路系统1212可以由寄存器等来实现。在所图示的示例中,存储电路系统1212分布在逻辑门电路系统1208之间,以促进访问并提高执行速度。
图12的示例FPGA电路系统1200还包括示例专用操作电路系统1214。在该示例中,专用操作电路系统1214包括专用电路系统1216,该专用电路系统1216可以被调用以实现常用功能,从而避免需要在现场对那些功能编程。此类专用电路系统1216的示例包括存储器(例如,DRAM)控制器电路系统、PCIe控制器电路系统、时钟电路系统、收发器电路系统、存储器和乘法器-累加器电路系统。可以存在其他类型的专用电路系统。在一些示例中,FPGA电路系统1200还可以包括示例通用可编程电路系统1218,诸如,示例CPU 1220和/或示例DSP1222。可以附加地或替代地存在可以被编程为用于执行其他操作的其他通用可编程电路系统1218,诸如,GPU、XPU等。
尽管图11和12图示出图10的处理器电路1012的两种示例实现方式,但构想了许多其他方式。例如,如上文所提及,现代FPGA电路系统可以包括板载CPU,诸如,图12的示例CPU1220中的一个或多个。因此,图10的处理器电路系统1012可附加地通过组合图11的示例微处理器1100和图12的示例FPGA电路系统1200来实现。在一些此类混合示例中,由图7-图9的流程图表示的机器可读指令的第一部分可由图11的核心1102中的一个或多个执行,并且由图7-图9的流程图表示的机器可读指令的第二部分可由图12的FPGA电路系统1200执行。
在一些示例中,图10的处理器电路系统1012可以在一个或多个封装中。例如,图11的处理器电路系统1100和/或图12的FPGA电路系统1200可以在一个或多个封装中。在一些示例中,XPU可由图10的处理器电路系统1012来实现,该处理器电路系统1012可以在一个或多个封装中。例如,XPU可包括一个封装中的CPU、另一封装中的DSP、又一封装中的GPU和再另一封装中的FPGA。
在图13中图示出图示用于将诸如图10的示例机器可读指令1032之类的软件分发至由第三方拥有和/或操作的硬件设备的示例软件分发平台1305的框图。示例软件分发平台1305可以由能够存储软件并将软件传送到其他计算设备的任何计算机服务器、数据设施、云服务等来实现。第三方可以是拥有和/或操作软件分发平台1305的实体的客户。例如,拥有和/或操作软件分发平台1305的实体可以是软件(诸如图10的示例机器可读指令1032)的开发方、销售方、和/或许可方。第三方可以是购买和/或许可软件以用于使用和/或转售和/或分许可的消费者、用户、零售商、OEM等。在所图示的示例中,软件分发平台1305包括一个或多个服务器和一个或多个存储设备。存储设备存储机器可读指令1032,该机器可读指令1032可以与图7-图9的示例计算机可读指令700、800和900相对应,如上文所描述。示例软件分发平台1305的一个或多个服务器与网络1310通信,该网络1310可以与互联网和/或上文所述示例网络1310中的任一个示例网络1310中的任何一者或多者相对应。在一些示例中,作为商业事务的部分,一个或多个服务器对将软件传送到请求方的请求的进行响应。可以由软件分发平台的一个或多个服务器和/或由第三方支付实体来处置针对软件的交付、销售、和/或许可的支付。服务器使购买方和/或许可方能够从软件分发平台1305下载机器可读指令1032。例如,软件(该软件可与图7-图9的示例机器可读指令700、800和900相对应)可被下载到示例处理器平台1000,该示例处理器平台1000用于执行机器可读指令1032以实现CXL端点530。在一些示例中,软件分发平台1305的一个或多个服务器周期性地提供、传送和/或强制进行对软件(例如,图10的示例机器可读指令1032)的更新以确保改善、补丁、更新等被分发并应用于终端用户设备处的软件。
从前述内容将会领会,已经公开了减少边缘计算网络的等待时间和带宽消耗的示例系统、方法、装置和制品。所公开的系统、方法、装置和制品通过建立具有使用CXL.io协议的CXL端点的分布式一致边缘计算系统来提高使用计算设备的效率,配置从连接到系统的边缘设备初始化的存储器地址的(一个或多个)一致存储器域,并配置针对该(一个或多个)一致存储器域的(一个或多个)一致性规则。然后,CXL端点使用(一个或多个)一致性协议基于(一个或多个)一致存储器域和(一个或多个)一致性规则选择性地监听跨系统的其他缓存存储器。所公开的系统、方法、装置和制品相应地针对诸如计算机或其他电子和/或机械设备之类的机器的操作的一个或多个改进。
本文中公开了用于跨分布式一致边缘计算网络共享存储器的示例方法、装置、系统和制品。进一步的示例及其组合包括以下内容:
示例1包括一种用于跨分布式一致边缘计算系统共享存储器的装置,该装置包括:至少一个存储器;装置中的指令;以及处理器电路系统,该处理器电路系统用于执行指令以:配置计算快速链路(CXL)端点,以经由CXL互连跨边缘平台在存储器之间共享数据;配置一致存储器域,该一致存储器域是与边缘设备数据相关联的、要跨边缘平台保持一致的存储器地址的子集;配置一致存储器域的一致性规则,该一致性规则是分配给一致存储器域的一致性的定义;以及针对可基于一致性规则共享的一致存储器域内的存储器地址处的数据对CXL互连进行监听。
示例2包括示例1的装置,其中处理器电路系统用于配置网络接口控制器(NIC)硬件作为CXL端点操作。
示例3包括示例1的装置,其中处理器电路系统用于配置CXL端点以响应于边缘设备连接到启用CXL的边缘计算节点而经由CXL互连连接边缘平台。
示例4包括示例3的装置,其中处理器电路系统用于配置归属边缘计算节点将边缘设备数据、边缘设备数据的存储器地址、以及边缘计算节点标识符存储在主存储器中。
示例5包括示例1的装置,其中处理器电路系统用于使用一致性协议来配置一致存储器域。
示例6包括示例1的装置,其中处理器电路系统用于使用一致性协议来配置一致性规则。
示例7包括示例1的装置,其中处理器电路系统用于实现CXL端点,以响应于来自边缘设备的读取请求而监听CXL互连。
示例8包括示例1的装置,其中处理器电路系统用于实现CXL端点,以响应于来自边缘设备的写入请求而监听CXL互连。
示例9包括至少一个非暂态计算机可读介质,包括指令,该指令当被执行时允许该处理器电路系统至少:配置计算快速链路(CXL)端点,以经由CXL互连跨边缘平台在存储器之间共享数据;配置一致存储器域,该一致存储器域是与边缘设备数据相关联的、要跨边缘平台保持一致的存储器地址的子集;配置一致存储器域的一致性规则,该一致性规则是分配给一致存储器域的一致性的定义;以及针对可基于一致性规则共享的一致存储器域内的存储器地址处的数据对CXL互连进行监听。
示例10包括示例9的至少一个非暂态计算机可读介质,其中指令用于配置网络接口控制器(NIC)硬件作为CXL端点操作。
示例11包括示例9的至少一个非暂态计算机可读介质,其中指令用于配置CXL端点以响应于边缘设备连接到启用CXL的边缘计算节点而经由CXL互连连接边缘平台。
示例12包括示例11的至少一个非暂态计算机可读介质,其中指令用于配置归属边缘计算节点将边缘设备数据、边缘设备数据的存储器地址、以及边缘计算节点标识符存储在主存储器中。
示例13包括示例9的至少一个非暂态计算机可读介质,其中指令用于使用一致性协议来配置一致存储器域。
示例14包括示例9的至少一个非暂态计算机可读介质,其中指令用于使用一致性协议来配置一致性规则。
示例15包括示例9的至少一个非暂态计算机可读介质,其中指令用于实现CXL端点,以响应于来自边缘设备的读取请求而监听CXL互连。
示例16包括示例9的至少一个非暂态计算机可读介质,其中指令用于实现CXL端点,以响应于来自边缘设备的写入请求而监听CXL互连。
示例17包括用于跨分布式一致边缘计算系统共享存储器的设备,该设备包括:用于配置计算快速链路(CXL)端点以经由CXL互连跨边缘平台在存储器之间共享数据的装置,其中用于配置的装置用于确定一致存储器域,其中用于配置的装置用于确定一致存储器域的一致性规则;以及用于监听基于一致性规则要一致的一致存储器域内的存储器地址处的数据的装置。
示例18包括示例17的设备,其中用于配置的装置用于配置网络接口控制器(NIC)硬件作为CXL端点操作。
示例19包括示例17的设备,其中用于配置的装置用于经由CXL互连将边缘平台连接到边缘计算节点。
示例20包括示例19的设备,其中用于配置的装置用于配置归属边缘计算节点将边缘设备数据、边缘设备数据的存储器地址、以及边缘计算节点标识符存储在主存储器中。
示例21包括示例17的设备,其中用于配置的装置用于使用一致性协议来配置一致存储器域。
示例22包括示例17的设备,其中用于配置的装置用于使用一致性协议来配置一致性规则。
示例23包括示例17的设备,其中用于监听的设备用于响应于来自边缘设备的读取请求而监听CXL互连。
示例24包括示例17的设备,其中用于监听的设备用于响应于来自边缘设备的写入请求而监听CXL互连。
示例25包括一种用于跨分布式一致边缘计算系统共享存储器的方法,该方法包括:配置计算快速链路(CXL)端点,以经由CXL互连跨边缘平台在存储器之间共享数据;配置一致存储器域,该(一个或多个)一致存储器域是与边缘设备数据相关联的、要跨边缘平台保持一致的存储器地址的子集;配置一致存储器域的一致性规则,该一致性规则是分配给一致存储器域的一致性的定义;以及针对可基于一致性规则共享的一致存储器域内的存储器地址处的数据对CXL互连进行监听。
示例26包括示例25的方法,包括配置网络接口控制器(NIC)硬件作为CXL端点操作。
示例27包括示例25的方法,包括配置该CXL端点以响应于边缘设备连接到启用CXL的边缘计算节点而经由CXL互连连接边缘平台。
示例28包括示例27的方法,包括配置归属边缘计算节点将边缘设备数据、边缘设备数据的存储器地址、以及边缘计算节点标识符存储在主存储器中。
示例29包括示例25的方法,包括使用一致性协议来配置一致存储器域。
示例30包括示例25的方法,包括使用一致性协议来配置一致性规则。
示例31包括示例25的方法,包括实现CXL端点,以响应于来自边缘设备的读取请求而监听CXL互连。
示例32包括示例25的方法,包括实现CXL端点,以响应于来自边缘设备的写入请求而监听CXL互连。
尽管本文中已公开了某些示例系统、方法、装置和制品,但本专利涵盖的范围并不限于此。相反,本专利涵盖落入本专利权利要求范围内的全部系统、方法、装置和制品。
所附的权利要求由此通过本参考被并入到本具体实施方式中,其中每一项权利要求其本身作为本公开的单独的实施例。
Claims (25)
1.一种用于跨分布式一致边缘计算系统共享存储器的装置,所述装置包括:
至少一个存储器;
所述装置中的指令;以及
处理器电路系统,所述处理器电路系统用于执行所述指令以:
配置计算快速链路CXL端点以经由CXL互连跨边缘平台在存储器之间共享数据;
配置一致存储器域,所述一致存储器域是与边缘设备数据相关联的、要跨所述边缘平台保持一致的存储器地址的子集;
配置所述一致存储器域的一致性规则,所述一致性规则是分配给所述一致存储器域的一致性的定义;以及
针对能基于所述一致性规则共享的所述一致存储器域内的存储器地址处的数据对所述CXL互连进行监听。
2.如权利要求1所述的装置,其特征在于,所述处理器电路系统用于配置网络接口控制器NIC硬件作为所述CXL端点操作。
3.如权利要求1或2所述的装置,其特征在于,所述处理器电路系统用于配置所述CXL端点以响应于边缘设备连接到启用CXL的边缘计算节点而经由CXL互连连接所述边缘平台。
4.如权利要求3所述的装置,其特征在于,所述该处理器电路系统用于配置归属边缘计算节点将边缘设备数据、边缘设备数据的存储器地址、以及边缘计算节点标识符存储在主存储器中。
5.如权利要求1或2所述的装置,其特征在于,所述处理器电路系统用于使用一致性协议来配置所述一致存储器域。
6.如权利要求1或2所述的装置,其特征在于,所述处理器电路系统用于使用一致性协议来配置所述一致性规则。
7.如权利要求1所述的装置,其特征在于,所述处理器电路系统用于实现所述CXL端点,以响应于来自边缘设备的读取请求而监听CXL互连。
8.如权利要求1所述的装置,其特征在于,所述处理器电路系统用于实现所述CXL端点,以响应于来自边缘设备的写入请求而监听CXL互连。
9.至少一种计算机可读介质,包括指令,所述指令当执行时使处理器电路系统至少:
配置计算快速链路CXL端点以经由CXL互连跨边缘平台在存储器之间共享数据;
配置一致存储器域,所述一致存储器域是与边缘设备数据相关联的、要跨所述边缘平台保持一致的存储器地址的子集;
配置所述一致存储器域的一致性规则,所述一致性规则是分配给所述一致存储器域的一致性的定义;以及
针对能基于所述一致性规则共享的所述一致存储器域内的存储器地址处的数据对CXL互连进行监听。
10.如权利要求9所述的至少一种计算机可读介质,其特征在于,所述指令用于配置网络接口控制器NIC硬件作为所述CXL端点操作。
11.如权利要求9所述的至少一种计算机可读介质,其特征在于,所述指令用于配置所述CXL端点以响应于边缘设备连接到启用CXL的边缘计算节点而经由CXL互连连接所述边缘平台。
12.如权利要求9所述的至少一种计算机可读介质,其特征在于,所述指令用于配置归属边缘计算节点将边缘设备数据、边缘设备数据的存储器地址、以及边缘计算节点标识符存储在主存储器中。
13.如权利要求9所述的至少一种计算机可读介质,其特征在于,所述指令用于使用一致性协议来配置所述一致存储器域。
14.如权利要求9所述的至少一种计算机可读介质,其特征在于,所述指令用于使用一致性协议来配置所述一致性规则。
15.如权利要求9所述的至少一种计算机可读介质,其特征在于,所述指令用于实现所述CXL端点,以响应于来自边缘设备的读取请求而监听所述CXL互连。
16.如权利要求9所述的至少一种计算机可读介质,其特征在于,所述指令用于实现所述CXL端点,以响应于来自边缘设备的写入请求而监听所述CXL互连。
17.一种用于跨分布式一致边缘计算系统共享存储器的方法,所述方法包括:
配置计算快速链路CXL端点以经由CXL互连跨边缘平台在存储器之间共享数据;
配置一致存储器域,所述一致存储器域是与边缘设备数据相关联的、要跨所述边缘平台保持一致的存储器地址的子集;
配置所述一致存储器域的一致性规则,所述一致性规则是分配给所述一致存储器域的一致性的定义;以及
针对能基于所述一致性规则共享的所述一致存储器域内的存储器地址处的数据对所述CXL互连进行监听。
18.如权利要求17所述的方法,包括配置网络接口控制器NIC硬件作为所述CXL端点操作。
19.如权利要求17所述的方法,包括配置所述CXL端点以响应于边缘设备连接到启用CXL的边缘计算节点而经由CXL互连连接所述边缘平台。
20.如权利要求19所述的方法,包括配置归属边缘计算节点将边缘设备数据、边缘设备数据的存储器地址、以及边缘计算节点标识符存储在主存储器中。
21.如权利要求17所述的方法,包括使用一致性协议来配置所述一致存储器域。
22.如权利要求17所述的方法,包括使用一致性协议来配置所述一致性规则。
23.如权利要求17所述的方法,包括实现所述CXL端点,以响应于来自边缘设备的读取请求而监听所述CXL互连。
24.如权利要求17所述的方法,包括实现所述CXL端点,以响应于来自边缘设备的写入请求而监听所述CXL互连。
25.一种用于跨分布式一致边缘计算系统共享存储器的设备,所述设备包括:
用于配置计算快速链路CXL端点以经由CXL互连跨边缘平台在存储器之间共享数据的装置,其中所述用于配置的装置用于确定一致存储器域,其中所述用于配置的装置用于确定所述一致存储器域的一致性规则;以及
用于监听基于所述一致性规则要一致的所述一致存储器域内的存储器地址处的数据的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/485,040 | 2021-09-24 | ||
US17/485,040 US20220014588A1 (en) | 2021-09-24 | 2021-09-24 | Methods and apparatus to share memory across distributed coherent edge computing system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115865911A true CN115865911A (zh) | 2023-03-28 |
Family
ID=79173249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211131600.2A Pending CN115865911A (zh) | 2021-09-24 | 2022-09-15 | 用于跨分布式一致边缘计算系统共享存储器的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220014588A1 (zh) |
EP (1) | EP4155948A1 (zh) |
CN (1) | CN115865911A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910568A (zh) * | 2023-09-12 | 2023-10-20 | 苏州浪潮智能科技有限公司 | 图神经网络模型的训练方法及装置、存储介质及电子装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11882174B2 (en) | 2022-01-17 | 2024-01-23 | Vmware, Inc. | Virtual machine as a service for an autonomous edge |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210011864A1 (en) * | 2020-09-25 | 2021-01-14 | Francesc Guim Bernat | System, apparatus and methods for dynamically providing coherent memory domains |
US20210149803A1 (en) * | 2020-12-23 | 2021-05-20 | Francesc Guim Bernat | Methods and apparatus to enable secure multi-coherent and pooled memory in an edge network |
-
2021
- 2021-09-24 US US17/485,040 patent/US20220014588A1/en active Pending
-
2022
- 2022-08-08 EP EP22189247.4A patent/EP4155948A1/en active Pending
- 2022-09-15 CN CN202211131600.2A patent/CN115865911A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910568A (zh) * | 2023-09-12 | 2023-10-20 | 苏州浪潮智能科技有限公司 | 图神经网络模型的训练方法及装置、存储介质及电子装置 |
CN116910568B (zh) * | 2023-09-12 | 2024-01-26 | 苏州浪潮智能科技有限公司 | 图神经网络模型的训练方法及装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4155948A1 (en) | 2023-03-29 |
US20220014588A1 (en) | 2022-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114253706A (zh) | 用于协调边缘平台的方法和装置 | |
CN114679449A (zh) | 中立主机边缘服务 | |
US20220121556A1 (en) | Systems, methods, articles of manufacture, and apparatus for end-to-end hardware tracing in an edge network | |
EP4155948A1 (en) | Methods and apparatus to share memory across distributed coherent edge computing system | |
US20220082616A1 (en) | Systems and methods for networked device testing | |
CN115525421A (zh) | 用于促进服务代理的方法和装置 | |
US20210325861A1 (en) | Methods and apparatus to automatically update artificial intelligence models for autonomous factories | |
CN114338680A (zh) | 用于在计算设备中相对于服务水平协议来管理服务质量的方法和装置 | |
US20210397999A1 (en) | Methods and apparatus to offload execution of a portion of a machine learning model | |
US20210149803A1 (en) | Methods and apparatus to enable secure multi-coherent and pooled memory in an edge network | |
US20220114032A1 (en) | Infrastructure managed workload distribution | |
US20220014946A1 (en) | Methods and apparatus for digital twin aided resiliency | |
EP4156629A1 (en) | Systems, apparatus, and methods for data resiliency in an edge network environment | |
US20220138156A1 (en) | Method and apparatus providing a tiered elastic cloud storage to increase data resiliency | |
US20220109742A1 (en) | Apparatus, articles of manufacture, and methods to partition neural networks for execution at distributed edge nodes | |
US20210318965A1 (en) | Platform data aging for adaptive memory scaling | |
EP4203381A1 (en) | Methods and apparatus for attestation for a constellation of edge devices | |
NL2033544B1 (en) | Methods and apparatus to implement edge scalable adaptive-grained monitoring and telemetry processing for multi-qos services | |
WO2023113969A1 (en) | Methods and apparatus for performing a machine learning operation using storage element pointers | |
US20230344804A1 (en) | Methods and apparatus to increase privacy for follow-me services | |
EP4202669A1 (en) | Methods and apparatus for secure execution on smart network interface cards | |
US20220116669A1 (en) | Methods, systems, apparatus, and articles of manufacture to cache media based on service level agreement type | |
CN116346747A (zh) | 用于基于网络接口设备的边缘计算的方法和装置 | |
CN115525138A (zh) | 设备上基于功率的自适应硬件可靠性 | |
US20230325246A1 (en) | Dynamic hardware profile modification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |