Method and apparatus for autonomous mobile robot

By using autonomous mobile RAN nodes and learning agents in edge computing networks, the problem of signal path degradation during movement is solved, efficient synchronization and processing in low signal strength areas is achieved, and the satisfaction of QoS protocol and network reliability are ensured. .

CN119233316APending Publication Date: 2024-12-31INTEL CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311647923.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-28
Filing Date
2023-12-04
Publication Date
2024-12-31

AI Technical Summary

Technical Problem

In edge computing networks, autonomous mobile robots (AMRs) may lead to signal path degradation during movement, affecting the satisfaction of quality of service (QoS) protocols, and the prior art is difficult to effectively synchronize and process workloads in low signal strength areas.

Method used

设计了一种自主移动无线电接入网络(RAN)节点,配备可编程电路,能够在失去与服务器连接后发起本地处理工作负载,并通过学习代理使用神经网络模型识别新位置以维持QoS协议,确保 Reliability and efficiency of network connections.

Benefits of technology

It realizes efficient synchronization and processing of workloads in low signal strength areas, ensures the satisfaction of QoS protocols, improves network reliability and mobile device efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119233316A_ABST
    Figure CN119233316A_ABST
Patent Text Reader

Abstract

The invention provides a method and device for an autonomous mobile robot. Systems, apparatuses, articles, and methods are disclosed. A first example apparatus disclosed herein is an autonomous mobile radio access network (RAN) node comprising: communication circuitry; an instruction; and programmable circuitry to cause the communication circuitry to transmit a workload to a server via a network, initiate local processing of the workload after losing connectivity with the server, and move the autonomous mobile RAN node from a first location to a second location. A second example apparatus disclosed herein is an autonomous mobile RAN node comprising: communication circuitry; an instruction; and programmable circuitry to cause a workload to be transferred from a client device to a server to process the workload, identify a second location of the computing device relative to a first location based on network performance, and cause the autonomous mobile RAN node to move from the first location to the second location.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to edge computing, and more particularly to methods and apparatus for autonomous mobile robots. Background Art

[0002] Edge computing refers to a computing architecture in which computing and memory resources are located at a base station or other location between an endpoint device and a traditional mobile network access point to meet low latency requirements. For example, an endpoint device in an edge environment can offload workloads to one or more computing and memory resources. The one or more computing and memory resources can be located in close proximity to the endpoint device. The one or more computing and memory resources can additionally or alternatively be configured to execute a specific type of workload provided by a client device. As a result, the client device can obtain results with lower latency than a traditional network, where the workload is offloaded to a server. Summary of the invention

[0003] An embodiment proposes an autonomous mobile radio access network (RAN) node, comprising: a communication circuit; instructions; and a programmable circuit, wherein the programmable circuit is used to: cause the communication circuit to transmit a workload to a server via a network; initiate local processing of the workload after losing connectivity with the server; and move the autonomous mobile RAN node from a first location to a second location.

[0004] Embodiments also provide corresponding autonomous mobile radio access network (RAN) nodes, methods, and at least one computer-readable medium. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] Figure 1 An overview of an exemplary edge cloud configuration for edge computing in which the teachings of the present disclosure may be implemented is shown.

[0006] Figure 2 Exemplary operational layers between endpoints, edge cloud, and cloud computing environments are shown.

[0007] Figure 3 An exemplary method for networking and services in an edge computing system is shown.

[0008] Figure 4 is a block diagram of an exemplary implementation of a radio area network (RAN).

[0009] Figure 5 is included in Figure 4 A block diagram of an exemplary implementation of a RAN Intelligent Controller (RIC) node in a RAN.

[0010] Figure 6 is included in Figure 4A block diagram of an exemplary implementation of an autonomous mobile robot (AMR) node in a RAN.

[0011] Figure 7 is included in Figure 5 and Figure 6 An exemplary block diagram of a learning agent in the example of .

[0012] Figure 8 is a flow diagram representative of example machine readable instructions and / or example operations that may be performed, instantiated, and / or executed by example programmable circuitry to maintain a quality of service (QoS) protocol.

[0013] Fig. 9 is a flow chart representing example machine readable instructions and / or example operations that may be performed, instantiated, and / or executed by an example programmable circuit to cause an AMR node to move, as described in conjunction with Figure 8 as described.

[0014] Fig.10 It is used to initialize online communication and switch to offline communication. Figure 4 illustrative example of communication between user equipment, RAN nodes, RIC and edge applications.

[0015] Fig.11 is used to relocate AMR node 406A Figure 4 illustrative example of communication between user equipment, RAN nodes, RIC and edge applications.

[0016] Fig.12 yes Figure 4 An illustrative example of message holdover between a client device and a RAN.

[0017] Fig.13 yes Figure 4 Example of intermittent wireless backhaul connectivity loss within an AMR node.

[0018] Fig.14 is a block diagram of an exemplary processing platform including programmable circuitry configured to perform, instantiate and / or execute exemplary machine-readable instructions and / or perform Figure 8-11 Example operations to achieve Figure 5 and Figure 6 AMR node 406 or RIC node 408.

[0019] Fig.15 yes Fig.14 A block diagram of an exemplary implementation of a programmable circuit.

[0020] Fig.16 yes Fig.14A block diagram of another exemplary implementation of a programmable circuit.

[0021] Fig.17 is a block diagram of an exemplary software / firmware / instruction distribution platform (e.g., one or more servers) for distributing software, instructions and / or firmware (e.g., corresponding to Figure 8-11 Example machine-readable instructions of the present invention) are distributed to client devices associated with end users and / or consumers (e.g., for licensing, sale, and / or use), retailers (e.g., for sale, resale, licensing, and / or sublicensing), and / or original equipment manufacturers (OEMs) (e.g., for inclusion in products to be distributed to, for example, retailers and / or other end users, such as direct purchasing customers).

[0022] Generally, the same reference numbers will be used throughout the drawings and accompanying written description to refer to the same or like parts.The drawings are not necessarily drawn to scale.

[0023] As used in this patent, indicating that any part (e.g., a layer, film, region, area, or plate) is in any way on another part (e.g., positioned on, located on, arranged on, or formed on, etc.) indicates that the referenced part is in contact with the other part, or that the referenced part is above the other part and one or more intermediate parts are located between them.

[0024] As used herein, connection references (e.g., attachment, coupling, connection, and bonding) may include intermediate members between elements to which the connection reference refers and / or relative movement between those elements, unless otherwise specified. Thus, a connection reference does not necessarily infer that two elements are directly connected and / or have a fixed relationship to each other. As used herein, the statement that any part is "in contact with" another part is defined to mean that there is no intermediate part between the two parts.

[0025] Unless otherwise specifically stated, descriptors such as "first," "second," "third," etc. are used herein without entering or otherwise indicating any meaning of priority, physical order, arrangement in a list, and / or ordering in any manner, but the descriptors are used merely as labels and / or arbitrary names for distinguishing elements to facilitate understanding of the disclosed examples. In some examples, the descriptor "first" may be used to refer to an element in the detailed description, while the same element may be referred to in the claims by a different descriptor (such as "second" or "third"). In such cases, it should be understood that such descriptors are used only to clearly identify those elements in the context of the discussion (e.g., in the claims), where the elements may, for example, otherwise share the same name.

[0026] As used herein, "approximately" and "about" modify their subject matter / values ​​to recognize the potential for variations that occur in real-world applications. For example, "approximately" and "about" may modify dimensions that may not be exact due to manufacturing tolerances and / or other real-world imperfections, as will be understood by one of ordinary skill in the art. For example, "approximately" and "about" may indicate that such dimensions may be within a tolerance range of + / - 10%, unless otherwise specified in the following description.

[0027] As used herein, "substantially real time" means occurring in a near instantaneous manner recognizing that there may be real-world delays for computing time, transmission, etc. Thus, unless otherwise specified, "substantially real time" means real time + 1 second.

[0028] As used herein, the phrase "communication" (including variations thereof) encompasses direct communication and / or indirect communication through one or more intermediate components, and does not require direct physical (e.g., wired) communication and / or continuous communication, but additionally includes selective communication at periodic intervals, predetermined intervals, non-periodic intervals and / or one-time events.

[0029] As used herein, "programmable circuit" is defined to include: (i) one or more special-purpose circuits (e.g., application-specific circuits (ASICs)) that are constructed to perform specific operations and include one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors); and / or (ii) one or more general-purpose semiconductor-based circuits that can be programmed with instructions to perform specific functions and / or operations and include one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors). Examples of programmable circuits include programmable microprocessors such as a central processor unit (CPU) that can execute a first instruction to perform one or more operations and / or functions, a field programmable gate array (FPGA) that can be programmed with a second instruction to cause configuration and / or structuring to instantiate one or more operations and / or functions corresponding to the first instruction, a graphics processor unit (GPU) that can execute a first instruction to perform one or more operations and / or functions, a digital signal processor (DSP) that can execute a first instruction to perform one or more operations and / or functions, an XPU, a network processing unit (NPU), one or more microcontrollers that can execute a first instruction to perform one or more operations and / or functions, and / or integrated circuits such as application-specific integrated circuits (ASICs). For example, the XPU may be implemented by a heterogeneous computing system including multiple types of programmable circuits (e.g., one or more FPGAs, one or more CPUs, one or more GPUs, one or more NPUs, one or more DSPs, etc. and / or any combination thereof), and an orchestration technology (e.g., an application programming interface (API)) that can assign computing tasks to any of the multiple types of programmable circuits that is suitable and available to perform the computing tasks.

[0030] As used herein, an integrated circuit is defined as one or more semiconductor packages containing one or more circuit elements, such as transistors, capacitors, inductors, resistors, current paths, diodes, etc. For example, an integrated circuit may be implemented as one or more of an ASIC, an FPGA, a chip, a microchip, a programmable circuit, a semiconductor substrate coupling multiple circuit elements, a system on a chip (SoC), etc. DETAILED DESCRIPTION

[0031] Edge networks use a variety of devices in a variety of locations, configurations, functions, etc. to enable client devices to offload workloads to servers. In some use cases, the client device generating the workload does not communicate directly with the server that is ultimately responsible for executing the workload. The lack of direct connectivity may be for any reason, including but not limited to the client device having limited resources, the client device not knowing which server will be responsible for executing the workload, etc.

[0032] In some such use cases, the client device communicates directly with the access point device instead of the server. After receiving the workload from the client device, the access point device can forward the workload directly to the server. In some examples, the access point device cannot connect directly to the server and instead forwards the workload to another intermediate node within the edge network. The workload can transition between any number of intermediate nodes before arriving at the server responsible for execution.

[0033] Intermediate nodes extend the reach of edge networks because they enable servers to execute workloads from client devices without requiring a direct connection to the client devices. However, intermediary nodes can also reduce the reliability of edge networks. For example, intermediary nodes increase the total number of stable device connections required to move workloads from client devices to servers. Assume that a client device is connected to a first intermediary node, which is connected to a second intermediary node, which is connected to a server. If the second intermediary node exhibits a failure and loses connection to the server, the client device may not be able to offload the workload to the server, even if the stable connection to the first intermediary node remains intact.

[0034] Some edge networks attempt to improve reliability by implementing an "always on" architecture or an "always off" architecture. As used herein, "always on" refers to a workload management architecture that does not use the concept of a secondary device to perform operations in the event that a primary device exhibits a failover. Instead, an "always on" architecture uses a central entity to distribute workload execution across as many qualified nodes as possible. If one of the qualified nodes fails or fails, the corresponding portion of the workload will be distributed across the remaining nodes that are still operating. However, if the node is a mobile device that is moved to an area with lower signal strength (e.g., a basement, a rural area, etc.), the network that relies on all qualified nodes to execute the workload may be at risk of performance degradation.

[0035] In contrast, an “always offline” architecture refers to a design strategy in which a software application creates workloads assuming that there is no network connectivity (e.g., the application believes it is always offline). In an “always offline” architecture, sources external to the application (such as, but not limited to, the operating system and intermediary devices) trigger synchronization with the edge network, rather than the application itself triggering synchronization. Therefore, synchronization with the edge network is performed during periods of higher signal strength, and execution of the workload is performed locally during periods of lower signal strength. However, the “always offline” architecture requires local devices with a large amount of available resources to execute workloads when network connectivity weakens. In addition, the “always offline” architecture requires that applications be developed subject to a series of restrictions that some developers may find cumbersome or impractical. As a result, the “always offline” architecture is difficult to scale to larger workloads and larger network use cases.

[0036] In some examples, the client device agrees to offload work based on a quality of service (QoS) agreement. As used herein, a QoS agreement refers to an expectation that a network will perform operations with a quality characterized by one or more parameters, measurements, and the like. For example, a QoS agreement may specify that a workload traveling from a client device to a server should exhibit packet loss below a threshold, a bit rate above a threshold, a transmission delay below a threshold, a jitter below a threshold, a throughput exceeding a threshold, and the like. In some examples, a QoS agreement may be referred to as a service level agreement (SLA), a service level objective (SLO), and the like.

[0037] Client devices implemented as mobile devices (e.g., smartphones, tablets, laptops, etc.) present challenges to edge networks because the client device may connect to an intermediate node, begin to offload workloads, and then move out of range relative to the intermediate node. In this case, the signal path that was previously able to meet QoS protocols may be degraded due to the movement of the mobile device.

[0038] Some edge networks attempt to improve reliability by implementing one or more network intermediate nodes within the mobile device. However, such networks may utilize a central entity that is responsible for determining the location of any mobile node based on the needs of the entire network. Furthermore, because accumulating location data from multiple client devices may include transmitting a large amount of data through many devices, some central entities may devalue client device location when determining the location of the intermediate nodes or may not consider device location at all.

[0039] The exemplary methods, apparatus, and systems described herein describe implementing an autonomous mobile robot (AMR) that acts as an intermediary device by receiving a workload from a client device and forwarding the workload to be executed at a server. As used herein, an AMR node may additionally or alternatively refer to an autonomous mobile radio access network (RAN) node. An exemplary AMR node includes a client interface circuit for communicating with a client device and a cloud interface circuit for implementing a backhaul connection. As used herein, a backhaul connection refers to an intermediate connection between a given device and a destination device. In some examples, the AMR node implements a gNodeB base station to forward a workload node when connected to a network. In some examples, the AMR node also includes a virtual machine and a container to execute the workload locally if the backhaul connection fails. Therefore, such an AMR node can enter an area of ​​low signal strength and synchronize in a scalable, efficient manner when reconnecting, which does not negatively affect the performance of the entire node. In some examples, the AMR node is also implemented by a learning agent that implements a neural network to continuously identify new locations for connecting to a specific client device. Such AMR nodes may move to new locations with increased network connectivity without guidance from a central entity, thereby maintaining specific QoS protocols for specific client devices.

[0040] Figure 1 1 is a block diagram 100 showing an overview of a configuration for edge computing, including a processing layer referred to as an "edge cloud" in at least some of the following examples. As shown, an edge cloud 110 is co-located at an edge location, such as an access point or base station 140, a local processing hub 150, or a central office 120, and thus may include multiple entities, devices, and equipment instances. Compared to a cloud data center 130, the edge cloud 110 is positioned closer to endpoint (consumer and producer) data sources 160 (e.g., autonomous vehicles 161, user devices 162, commercial and industrial equipment 163, video capture devices 164, drones 165, smart city and building equipment 166, sensors and IoT devices 167, etc.). The computing, memory, and storage resources provided at the edge in the edge cloud 110 are critical to providing ultra-low latency response times for services and functions used by the endpoint data sources 160, and reducing network backhaul traffic from the edge cloud 110 toward the cloud data center 130, thereby improving energy consumption and overall network utilization, among other benefits. In some examples, devices within edge cloud 110 implement such as in conjunction with Figure 4-13 AMR node described.

[0041] Compute, memory, and storage are scarce resources and are often reduced depending on the edge location (e.g., fewer processing resources are available at a consumer endpoint device than at a base station, at a central office). However, the closer the edge location is to the endpoint (e.g., user equipment (UE)), the more space and power are often constrained. Therefore, edge computing attempts to reduce the amount of resources required for network services by allocating more resources that are closer in geographic location and network access time. In this way, edge computing attempts to bring computing resources to workload data, or vice versa, where appropriate.

[0042] Aspects of an edge cloud architecture are described below that cover a variety of potential deployments and address constraints that some network operators or service providers may have in their own infrastructure. These include: configuration changes based on edge location (for example, because the edge at the base station level may have more limited performance and functionality in multi-tenant scenarios); configuration based on the type of compute, memory, storage, fabric, acceleration, or similar resources available to the edge location, location layer, or location group; service, security, management, and orchestration capabilities; and related goals for achieving availability and performance of end services. These deployments can complete processing in network layers that can be considered "near edge", "near edge", "local edge", "mid-edge", or "far edge" layers, depending on latency, distance, and timing characteristics.

[0043] Edge computing is a developing paradigm in which computing is performed at or near the "edge" of the network, typically by using computing platforms (e.g., x86 or AMR computing hardware architectures) at base stations, gateways, network routers, or other devices that are closer to endpoint devices that generate and consume data. For example, edge gateway servers may be equipped with pools of memory and storage resources to perform computing in real time for low-latency use cases (e.g., autonomous driving or video surveillance) for connected client devices. Or as an example, a base station may be enhanced with computing and acceleration resources to directly handle service workloads for connected user devices without further transmitting data via a backhaul network. Or as another example, central office network management hardware may be replaced with standardized computing hardware that performs virtualized network functions and provides computing resources for the execution of service and consumer functions for connected devices. Within an edge computing network, there may be service scenarios where computing resources "move" to data, and scenarios where data "move" to computing resources. Or as an example, base station computing, acceleration, and network resources may provide services to expand to workload requirements as needed by activating dormant capacity (subscription, on-demand capacity) to manage extreme situations, emergencies, or provide deployed resources with a lifespan that exceeds a significantly longer implementation lifecycle.

[0044] Figure 2 The operational layers between endpoints, edge cloud, and cloud computing environments are shown. Specifically, Figure 2 Examples of computing use cases 205 utilizing edge cloud 110 in multiple illustrative layers of network computing are depicted. The layers begin with an endpoint (device and thing) layer 200, which access edge cloud 110 for data creation, analysis, and data consumption activities. Edge cloud 110 can span multiple network layers, such as an edge device layer 210 with gateways, on-site servers, or network equipment (nodes 215) located in physically adjacent edge systems; a network access layer 220 including base stations, radio processing units, network hubs, regional data centers (DCs), or local network equipment (equipment 225); and any equipment, devices, or nodes located therebetween (in layer 212, not shown in detail). Network communications within edge cloud 110 and between various layers can occur via any number of wired or wireless media, including via connection architectures and technologies not depicted. In some examples, devices are located within edge cloud 110. In some examples, devices within edge cloud 110 implement as described in conjunction with Figure 4-13 AMR node described.

[0045] Examples of delays caused by network communication distance and processing time limitations can range from less than milliseconds (ms) when in the endpoint layer 200, less than 5 milliseconds at the edge device layer 210, to even between 10 and 40 milliseconds when communicating with nodes at the network access layer 220. Outside the edge cloud 110 are the core network layer 230 and the cloud data center layer 240, each with increased latency (e.g., between 50-60ms at the core network layer 230, to 100 or more ms at the cloud data center layer). Therefore, operations at the core network data center 235 or the cloud data center 245 (with at least 50 to 100ms or more latency) will not be able to complete many time-critical functions of the use case 205. Each of these latency values ​​is provided for the purpose of illustration and comparison; it should be understood that the use of other access network media and technologies can further reduce latency. In some examples, respective portions of the network can be classified as "near edge", "local edge", "near edge", "mid edge", or "far edge" layers relative to network sources and destinations. For example, from the perspective of the core network data center 235 or cloud data center 245, a central office or content data network may be considered to be located in a "near edge" layer ("close" to the cloud, having high latency values ​​when communicating with the devices and endpoints of the use case 205), while an access point, base station, field server, or network gateway may be considered to be located in a "far edge" layer ("far away" from the cloud, having lower latency values ​​when communicating with the devices and endpoints of the use case 205). It should be understood that other classifications of what constitutes a "near," "local," "close," "medium," or "far" edge for a particular network layer may be based on latency, distance, number of network hops, or other measurable characteristics, as measured from a source in any of the network layers 200-240.

[0046] Since multiple services utilize the edge cloud, various use cases 205 can access resources under usage pressure from incoming flows. To achieve results with low latency, services executed within the edge cloud 110 balance different requirements in terms of: (a) priority (throughput or latency) and quality of service (QoS) (e.g., traffic from an autonomous car may have a higher priority than a temperature sensor in terms of response time requirements; or, performance sensitivity / bottleneck may exist in compute / accelerator, memory, storage, or network resources, depending on the application); (b) reliability and resilience (e.g., some input flows need to be acted upon and routed with mission-critical reliability, while some other input flows may tolerate occasional failures, depending on the application); and (c) physical constraints (e.g., power, cooling, and form factor, etc.).

[0047] The end-to-end service view of these use cases involves the concept of service flows and is associated with transactions. Transactions detail the overall service requirements of the entities using the services, as well as the resources, workloads, workflows, and associated services of business capabilities and business-level requirements. Services executed through the described "terms" can be managed at each layer to ensure real-time and runtime contract compliance of the transaction during the life cycle of the service. When a component in a transaction falls short of its negotiated service level agreement (SLA), the entire system (the component in the transaction) can provide the following capabilities: (1) understand the impact of the SLA violation, and (2) enhance other components in the system to restore the overall transaction SLA, and (3) implement remedial actions.

[0048] Therefore, considering these changes and service characteristics, edge computing within the edge cloud 110 can provide the ability to serve and respond to multiple applications of use cases 205 (e.g., object tracking, video surveillance, connected cars, etc.) in real time or near real time, and meet the ultra-low latency requirements of these multiple applications. These changes and service capabilities enable entirely new categories of applications (e.g., virtual network functions (VNFs), function as a service (FaaS), edge as a service (EaaS), standard processes, etc.) that cannot utilize conventional cloud computing due to latency or other limitations.

[0049] However, edge computing introduces the following caveats. Devices located at the edge are often resource-constrained and therefore there is pressure on the use of edge resources. Typically, this is addressed by pooling memory and storage resources for use by multiple users (tenants) and devices. The edge may be constrained by power and cooling, and therefore power usage needs to be considered based on the applications that consume the most power. These pooled memory resources may have inherent power consumption and performance trade-offs because many of them may use emerging memory technologies where more power requires greater memory bandwidth. Similarly, improved hardware security and root of trust trusted capabilities are also needed because edge locations may be unattended and may even require permissioned access (for example, when located at a third-party location). Such issues are amplified in edge clouds 110 in multi-tenant, multi-owner, or multi-access settings, where many users request services and applications, especially when network usage fluctuates dynamically and the composition of multiple stakeholders, use cases, and services changes.

[0050] At a more general level, an edge computing system may be described as encompassing any number of deployments at the previously discussed layers (network layers 200-240) operating in edge cloud 110 that provide coordination from client and distributed computing devices. One or more edge gateway nodes, one or more edge aggregation nodes, and one or more core data centers may be distributed across the network layers to implement an edge computing system for or on behalf of a telecommunications service provider ("telco" or "TSP"), an IoT service provider, a cloud service provider (CSP), an enterprise entity, or any other number of entities. Various specific implementations and configurations of edge computing systems may be provided dynamically, such as when orchestrated to meet service objectives.

[0051] Consistent with the examples provided herein, a client computing node may be embodied as any type of endpoint component, device, facility, or other thing capable of communicating as a producer or consumer of data. In addition, the labels "node" or "device" used in edge computing systems do not necessarily mean that such nodes or devices operate in a client or agent / servant / follower role; rather, any node or device in an edge computing system refers to a separate entity, node, or subsystem that includes discrete or connected hardware or software configurations to facilitate or use edge cloud 110.

[0052] As such, the edge cloud 110 is formed by network components and functional features operated by and within edge gateway nodes, edge aggregation nodes, or other edge computing nodes between network layers 210-230. Thus, the edge cloud 110 may be embodied as any type of network that provides edge computing and / or storage resources that are located proximate to endpoint devices (e.g., mobile computing devices, IoT devices, smart devices, etc.) with radio access network (RAN) capabilities, as discussed herein. In other words, the edge cloud 110 may be envisioned as an "edge" that connects endpoint devices and traditional network access points that serve as entry points to service provider core networks, including mobile operator networks (e.g., Global System for Mobile Communications (GSM) networks, Long Term Evolution (LTE) networks, 5G / 6G networks, etc.), while also providing storage and / or computing capabilities. Other types and forms of network access (e.g., Wi-Fi, long-range wireless, wired networks including optical networks, etc.) may also be utilized in place of or in conjunction with such third generation partnership project (3GPP) operator networks.

[0053] The network components of the edge cloud 110 may be servers, multi-tenant servers, facility computing devices, and / or any other type of computing devices. For example, the edge cloud 110 may include a facility computing device, which is a stand-alone electronic device including a housing, chassis, box, or shell. In some cases, the size of the housing may be designed to be portable so that it can be carried and / or transported by a person. An exemplary housing may include a material forming one or more outer surfaces that partially or completely protect the contents of the facility, wherein the protection may include weather protection, hazardous environment protection (e.g., electromagnetic interference (EMI), vibration, extreme temperature, etc.), and / or achieve immersion. An exemplary housing may include a power supply circuit that provides power for a fixed and / or portable implementation, such as an alternating current (AC) power input, a direct current (DC) power input, an AC / DC converter, a DC / AC converter, a DC / DC converter, a power regulator, a transformer, a charging circuit, a battery, a wired input, and / or a wireless power input. The exemplary housing and / or its surface may include or be connected to mounting hardware to enable attachment to structures such as buildings, telecommunication structures (e.g., poles, antenna structures, etc.) and / or racks (e.g., server racks, blade mounts, etc.). The exemplary housing and / or its surface may support one or more sensors (e.g., temperature sensors, vibration sensors, light sensors, sound sensors, capacitive sensors, proximity sensors, infrared or other visual thermal sensors, etc.). One or more such sensors may be included in the surface of the facility, carried by the facility, or otherwise embedded in the surface of the facility and / or mounted to the surface of the facility. The exemplary housing and / or its surface may support mechanical connectivity, such as propulsion hardware (e.g., wheels, rotors such as propellers, etc.) and / or articulated hardware (e.g., robot AMRs, pivotable attachments, etc.). In some cases, the sensor may include any type of input device, such as user interface hardware (e.g., buttons, switches, dials, sliders, microphones, etc.). In some cases, the exemplary housing includes an output device included therein, carried therein, embedded therein, and / or attached thereto. Output devices may include displays, touch screens, lights, light emitting diodes (LEDs), speakers, input / output (I / O) ports (e.g., universal serial bus (USB)), etc. In some cases, an edge device is a device that is presented in the network for a specific purpose (e.g., a traffic light), but may have processing and / or other capabilities that can be used for other purposes. Such edge devices may be independent of other networked devices and may be equipped with a housing with a form factor suitable for its primary purpose; but may be used for other computing tasks that do not interfere with its primary mission. Edge devices include Internet of Things devices. Facility computing equipment may include hardware and software components for managing local issues such as equipment temperature, vibration, resource utilization, updates, power issues, physical and network security, etc. The edge cloud 110 may also include one or more servers and / or one or more multi-tenant servers.Such a server may include an operating system and implement a virtual computing environment. The virtual computing environment may include a hypervisor that manages (e.g., launches, deploys, debugs, destroys, retires, etc.) one or more virtual machines, one or more containers, etc. Such a virtual computing environment provides an execution environment in which one or more applications and / or other software, code, or scripts may be executed while being isolated from one or more other applications, software, code, or scripts.

[0054] exist Figure 3 , various client endpoints 310 (in the form of mobile devices, computers, autonomous vehicles, commercial computing equipment, industrial processing equipment) exchange requests and responses specific to the type of endpoint network aggregation. For example, the client endpoints 310 can obtain network access via a wired broadband network by exchanging requests and responses 322 via an on-site network system 332. Some client endpoints 310 such as mobile computing devices can obtain network access via a wireless broadband network by exchanging requests and responses 324 via an access point (e.g., a cellular network tower) 334. Some client endpoints 310 such as autonomous vehicles can obtain network access for requests and responses 326 via a wireless vehicle network through a network system 336 located on the street. However, regardless of the type of network access, the TSP can deploy aggregation points 342, 344 within the edge cloud 110 to aggregate traffic and requests. Therefore, within the edge cloud 110, the TSP can deploy various computing and storage resources such as at an edge aggregation node 340 to provide the requested content. The edge aggregation node 340 and other systems of the edge cloud 110 are connected to a cloud or data center 360, which uses a backhaul network 350 to satisfy higher latency requests from the cloud / data center for websites, applications, database servers, etc. Additional or consolidated instances of the edge aggregation node 340 and aggregation points 342, 344 (including those deployed on a single server frame) may also exist in other areas of the edge cloud 110 or TSP infrastructure.

[0055] Figure 4 is a block diagram of an exemplary implementation of a radio area network (RAN). Figure 4 Examples include an exemplary edge cloud 110, exemplary client devices 402A, 402B, 402C, 402D (collectively, client devices 402), an exemplary edge application 404, exemplary AMR nodes 406A, 406B, 406C (collectively, exemplary AMR nodes 406), an exemplary radio area network intelligent controller (RIC) node 408, an exemplary donor node 410, an exemplary edge cloud 110, and an exemplary edge orchestrator 412.

[0056] exist Figure 4In the example of FIG. 1 , edge cloud 110 connects edge application 404, edge orchestrator 412, and donor node 410 to each other to implement the above combination. Figure 1-3 In some examples, edge cloud 110 is additionally or alternatively connected to client device 402 , one or more of AMR nodes 406 , and / or one or more of RIC nodes 408 .

[0057] Client device 402 refers to any device that can generate and offload workloads. Figure 4 In the example of , each of the client devices 402 is a mobile device (e.g., a laptop, a smart phone, a tablet, a smart car). In some examples, one or more of the client devices 402 are stationary devices. A workload can describe any type of task and can vary based on the type of client device generating the workload. For example, a client device 402A implemented as a smart car can generate a workload to determine a driving route to a destination, while a client device 402B implemented as a smart phone can generate a workload to stream a video. Although for simplicity, Figure 4 Four client devices 402 are shown, but in practice, any number of client devices 402 may be present on a given network.

[0058] In some examples, Figure 4 The RAN and edge cloud of the present invention include means for providing a workload. For example, the means for providing a workload may be implemented by a client device 402. In some examples, the client device 402 may be implemented by, for example, Fig.14 For example, client device 402 may be implemented by executing machine-executable instructions (such as at least Figure 8 Those implemented by block 806 of Fig.15 In some examples, the client device 402 may be instantiated by hardware logic circuits that may be configured and / or constructed to perform operations corresponding to machine-readable instructions. Fig.16 The client device 402 may be implemented by any other combination of hardware, software, and / or firmware. Additionally or alternatively, the client device 402 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the client device 402 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are configured and / or constructed to execute some or all machine-readable instructions and / or to execute some or all operations corresponding to machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0059] Edge application 404 refers to a software application that processes a workload defined by client device 402. Edge application 404 can be implemented on any number and any type of devices, including but not limited to desktops, servers, high-performance computers, etc. Edge application 404 is connected to client device 402 via edge cloud 110, donor node 410, and AMR node 406. Therefore, from the perspective of client device 402, edge application 404 can be executed at a remote location and can be implemented on any type of programmable circuit.

[0060] In some examples, Figure 4 The RAN and edge cloud of the present invention include a device for remotely processing workloads. For example, the device for remotely processing workloads can be implemented by edge application 404. In some examples, edge application 404 can be implemented by, for example, Fig.14 For example, the edge application 404 may be implemented by executing machine executable instructions (such as at least Figure 8 Those implemented by block 814) Fig.15 In some examples, the edge application 404 may be instantiated by a hardware logic circuit that is configured and / or constructed to perform operations corresponding to machine-readable instructions. Fig.16 ASIC, XPU or FPGA circuit 1600. Additionally or alternatively, edge application 404 may be instantiated by any other combination of hardware, software and / or firmware. For example, edge application 404 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are configured and / or constructed to execute some or all machine-readable instructions and / or to execute some or all operations corresponding to machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0061] The AMR nodes 406 receive workloads from client devices 402, forward the workloads to other devices when a backhaul connection is established, and process the workloads locally when the backhaul connection is unavailable or becomes unavailable (e.g., fails). In the example shown, the AMR nodes 406 are implemented by any type of device capable of moving without a human operator. In some examples, one or more of the AMR nodes 406 are controllable (e.g., override) by a human operator. For example, AMR node 406A is a drone, AMR node 406B is a smart car, and AMR node 406C refers to any type of mobile robot. In some examples, one or more of the multiple AMR nodes 406 are implemented by different types of movable devices. Figure 4 In the example of , each of AMR nodes 406 is connected to edge cloud 110 and communicates with each other via RIC node 408. In some examples, one or more of AMR nodes 406 is connected to edge cloud 110 and / or communicates with other AMR nodes 406 without involving RIC node 408 and / or donor node 410.

[0062] In the example shown, the AMR nodes 406 are configured to send and receive data wirelessly using radio waves. Thus, the AMR nodes 406 collectively form a radio area network (RAN) that serves the client devices 402. In some examples, one or more of the AMR nodes 406 include a communication port for wired data transfer. In some examples, the AMR nodes 406A are referred to as mobile RAN nodes. Thus, the AMR nodes 406 are both autonomous mobile robot (AMR) nodes and autonomous mobile RAN (AMR) nodes. Figure 6 AMR node 406 is further discussed. In some examples, Figure 4 The RAN and / or edge cloud may be individually or collectively referred to as a content delivery network (CDN).

[0063] In some examples, Figure 4 The CDN includes a device for locally processing the workload. For example, the device for locally processing the workload can be implemented by AMR node 406. In some examples, AMR node 406 can be implemented by, for example, Fig.14 For example, the AMR node 406 may be implemented by executing machine executable instructions (such as by Figure 8 and Fig. 9 at least those implemented by blocks 802-816, 902-916) Fig.15 In some examples, the AMR node 406 may be instantiated by hardware logic circuits that may be configured and / or constructed to perform operations corresponding to machine-readable instructions. Fig.16 The AMR node 406 may be implemented by any other combination of hardware, software, and / or firmware. Additionally or alternatively, the AMR node 406 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the AMR node 406 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are configured and / or constructed to execute some or all machine-readable instructions and / or to execute some or all operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0064] The RIC node 408 monitors and coordinates the data flow between the AMR nodes 406 and the edge cloud 110. In order to coordinate the data transfer, the RIC node 408 connects to each AMR node 406 to receive workload requests. The RIC node 408 can also determine when to forward the workload request to the donor node 410, which of the AMR nodes 406 should serve a specific client device 402A, etc. The RIC node 408 can determine when to forward the request to the donor node 410 by managing network functions (including but not limited to network slicing, prioritized communication, etc.).

[0065] exist Figure 4 In the example of , the RIC node 408 is positioned so that a connection to each AMR node 406 can be established without involving intermediary devices. In some examples, the RIC node 408 may include real-time components located locally (relative to the client device 402) to facilitate real-time workloads and non-real-time components located remotely (relative to the client device 402) to facilitate non-real-time workloads. The RIC node 408 controls the networking functions of the open RAN architecture (e.g., as described in the specifications published by the O-RAN Alliance, a telecommunications industry member organization). As used herein, open RAN refers to technology for connecting client devices to a core network using a disaggregated set of devices. For simplicity, Figure 4 The example of FIG. 4 shows one RIC node 408. However, in some examples, any number of RIC nodes 408 may be connected to AMR nodes 406. The number of RIC nodes 408 may depend on the number and location of AMR nodes 406. Figure 7-14 RIC node 408 is discussed further.

[0066] In some examples, Figure 4 The RAN and edge cloud of the present invention include a device for coordinating workloads. For example, the device for coordinating workloads may be implemented by the RIC node 408. In some examples, the RIC node 408 may be implemented by, for example, Fig.14For example, RIC node 408 may be implemented by executing machine executable instructions (such as by Figure 8 at least those implemented by blocks 802-808, 812B, 814) Fig.15 In some examples, the RIC node 408 may be instantiated by a hardware logic circuit that is configured and / or constructed to perform operations corresponding to machine-readable instructions. Fig.16 The RIC node 408 may be implemented by any other combination of hardware, software, and / or firmware. In addition or alternatively, the RIC node 408 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the RIC node 408 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are configured and / or constructed to execute some or all machine-readable instructions and / or to execute some or all operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0067] exist Figure 4 4, donor node 410 is an intermediary device that enables RIC node 408 to communicate with edge application 404 and edge orchestrator 412 via edge cloud 110. In some examples, RIC node 408 includes a direct connection to edge cloud 110 in place of or in addition to the direct connection shown to donor node 410. Donor node 410 is an exemplary implementation of a donor advanced Node B (DeNB) as described in the 3GPP 36.300 specification.

[0068] In some examples, Figure 4 The CDN includes a device for forwarding the workload. For example, the device for forwarding the workload may be implemented by a donor node 410. In some examples, the donor node 410 may be implemented by a node such as Fig.14 For example, the donor node 410 may be implemented by executing machine executable instructions (such as at least Figure 8 Those implemented by blocks 812B and 814) Fig.15 In some examples, the donor node 410 may be instantiated by hardware logic circuits that may be configured and / or constructed to perform operations corresponding to machine-readable instructions. Fig.16ASIC, XPU or FPGA circuit 1600. Additionally or alternatively, donor node 410 may be instantiated by any other combination of hardware, software and / or firmware. For example, donor node 410 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are configured and / or constructed to execute some or all machine-readable instructions and / or to execute some or all operations corresponding to machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0069] Edge orchestrator 412 mediates requests from client devices 402 and manages the resources of edge applications 404. Edge orchestrator 412 controls the resources of edge applications 404 through various operations, including but not limited to provisioning services, making decisions on behalf of client devices 402 when applicable, coordinating automated tasks, and generally helping to efficiently complete workloads throughout the network.

[0070] In some examples, Figure 4 The RAN and the edge cloud include a device for coordinating the application. For example, the device for coordinating the application can be implemented by the edge application 404. In some examples, the edge application 404 can be implemented by, for example, Fig.14 For example, the edge application 404 may be implemented by executing machine executable instructions (such as at least Figure 8 Those implemented by blocks 812B and 814) Fig.15 In some examples, the edge application 404 may be instantiated by a hardware logic circuit that is configured and / or constructed to perform operations corresponding to machine-readable instructions. Fig.16 ASIC, XPU or FPGA circuit 1600. Additionally or alternatively, edge application 404 may be instantiated by any other combination of hardware, software and / or firmware. For example, edge application 404 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are configured and / or constructed to execute some or all machine-readable instructions and / or to execute some or all operations corresponding to machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0071] Each of client device 402, edge application 404, AMR node 406, RIC node 408, donor node 410, edge cloud 110, and edge orchestrator 412 may include any suitable hardware components, including, but not limited to, interface circuits, memory, and programmable circuits. Examples of programmable circuits include, but are not limited to, programmable microprocessors, field programmable gate arrays (FPGAs) that can instantiate instructions, central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), XPUs or microcontrollers, and integrated circuits such as application specific integrated circuits (ASICs). Figure 14-16 Further discussion Figure 4 hardware components.

[0072] Figure 5 yes Figure 4 A block diagram of an exemplary implementation of a RIC node 408 is provided. Figure 4 The RIC node 408 may be instantiated (e.g., an instance of it is created, generated for an arbitrary length of time, materialized, realized, etc.) by a programmable circuit such as a central processing unit (CPU) that executes a first instruction. Additionally or alternatively, Figure 4 The RIC node 408 may be instantiated (e.g., an instance of it is created, generated for any length of time, embodied, implemented, etc.) by: (i) an application specific integrated circuit (ASIC) and / or (ii) a field programmable gate array (FPGA), which is constructed and / or configured to perform an operation corresponding to the first instruction in response to the execution of the second instruction. It should be understood that Figure 4 Some or all of the circuits may thus be instantiated at the same or different times. Figure 4 Some or all of the circuits of may be instantiated, for example, in one or more threads that are executed simultaneously on hardware and / or serially on hardware. Furthermore, in some examples, Figure 4 Some or all of the circuits may be implemented by microprocessor circuits that execute instructions and / or FPGA circuits that perform operations to implement one or more virtual machines and / or containers. The RIC node 408 includes an exemplary bus 500, an exemplary interface circuit 502, an exemplary workflow controller circuit 504, an exemplary performance controller circuit 506, an exemplary learning agent 508, an exemplary location controller circuit 510, and an exemplary user plane function (UPF) circuit 512.

[0073] Bus 500 refers to one or more physical connections (eg, interconnects, copper traces, etc.) that enable data to be exchanged between internal components of RIC node 408. Bus 500 may be implemented using one or more communication systems that meet threshold power and / or latency requirements.

[0074] Interface circuit 502 enables internal components of RIC node 408 and Figure 4 The interface circuit 502 may exchange data between other devices in the RAN of the 3GPP protocol. For example, the interface circuit 502 may receive a workload request from the AMR node 406A and provide the request to the workflow controller circuit 504 via the bus 500. Subsequently, the interface circuit 502 may receive the results of the workload from the donor node 410 and forward the results to the AMR node 406A. The interface circuit 502 may include any transceiver, antenna, and other components required to send and receive radio signals in a RAN that complies with the 3GPP protocol. In some examples, the interface circuit 502 is instantiated by a programmable circuit that executes interface instructions and / or is configured to perform operations (such as Figure 8-11 those indicated).

[0075] The workflow controller circuit 504 determines how to coordinate the location and operation of the AMR nodes 406 based on the various QoS protocols of the client devices 402. In order to coordinate the AMR nodes 406, the workflow controller circuit 504 communicates with the performance controller circuit 506 to determine whether the data exchange of a particular client device 402A satisfies the corresponding QoS protocol. Upon identifying a QoS protocol that is not satisfied or is at risk of not being satisfied, the workflow controller circuit 504 notifies the location controller circuit 510 to prompt one of the AMR nodes 406 to move to another location. The workflow controller circuit 504 may additionally or alternatively notify the UPF 512 to trigger local processing of the workload upon identifying a failed QoS protocol. In some examples, the workflow controller circuit 504 is instantiated by a programmable circuit that executes workflow controller instructions and / or is configured to perform operations (such as Figure 8-11 those indicated).

[0076] In some examples, one or more of the AMR nodes 406 require a certain amount of bandwidth at a certain amount of time in order to properly serve the client device 402. However, if the AMR nodes 406 do not work together to understand Figure 4 Given the current bandwidth demands on the RAN, time-sensitive bandwidth control may be impractical.

[0077] In some such examples, the workflow controller circuit 504 acts as a bandwidth proxy at a granular level. The workflow controller circuit 504 coordinates the bandwidth requirements of the different AMR nodes 406 that share the current spectrum and backhaul connections.

[0078] As an example, suppose Figure 4The CDN implements different levels of priority traffic (e.g., from 1 to 10). It is further assumed that each priority is mapped to a different 5G slice. At any point in time, any AMR node 406 may transmit a traffic request to the RIC node 408. In some examples, the AMR node 406A may transmit a traffic request for each prioritization level. This prioritization may be implemented in different layers of the protocol stack.

[0079] The workflow controller circuit 504 calculates the actual amount of bandwidth that can be guaranteed for each AMR node based on different traffic requirements, the amount of bandwidth available within the RAN, and the backhaul connectivity. In some examples, the workflow controller circuit 504 attempts to guarantee that the top n priority levels will have a set bandwidth. In such examples, the workflow controller circuit 504 provides the maximum amount of available bandwidth to the remaining priority levels after the highest priority level has been allocated.

[0080] After bandwidth allocation, workflow controller circuit 504 causes interface circuit 502 to notify one or more of AMR nodes 406 describing which n prioritization levels have guaranteed bandwidth and providing the allocated bandwidth value. RIC node 408 may also provide an estimate of the bandwidth mapping amount so that AMR node 406A can adjust or control bandwidth requirements.

[0081] The performance controller circuit 506 determines when to transmit various workloads to the donor node 410 so that the QoS protocol of the client device 402 is met. The performance controller circuit 506 can implement network functions such as network slicing and prioritized communication to meet multiple different QoS protocols simultaneously. The performance controller circuit 506 also measures network performance metrics used to determine whether the QoS protocols are met. The measured network performance metrics may include, but are not limited to, transmission delay, bit rate, packet loss, jitter, throughput, etc. In some examples, the performance controller circuit 506 is instantiated by a programmable circuit that executes workflow controller instructions and / or is configured to perform operations (such as Figure 8-11 those indicated).

[0082] The learning agent 508 is a machine learning (ML) model that estimates a location to which the AMR node 406A is to move. In some examples, the location estimated by the learning agent 508 is predicted to improve one or both of: (a) connectivity between the AMR node 406A and the client device 402A, and (b) connectivity between the AMR node 406A and the RIC node 408, thereby improving performance metrics and potentially meeting QoS protocols. The learning agent 508 uses telemetry data from the AMR node 406A, telemetry data from the client device 402A, and QoS protocols for the client device 402A as inputs to the ML model. In the examples described herein, the learning agent 508 is a neural network that uses reinforcement learning to reward and train the model. In some examples, the learning agent 508 uses different artificial intelligence (AI) and / or ML models to estimate the location. In some examples, the learning agent 508 is instantiated by a programmable circuit that executes the learning agent instructions and / or is configured to perform operations (such as Figure 7-11 those indicated).

[0083] The location controller circuit 510 prevents or allows the AMR node 406 to self-locate. In some examples, self-locating occurs when the estimated location of the AMR node 406A is calculated by the same AMR node 406A that will move to the estimated location. In contrast, remote positioning occurs when the estimated location is calculated on a device other than the mobile AMR node 406A, such as a learning agent 508 on the RIC node 408. In some examples, if the performance controller circuit 506 indicates that the QoS protocols of the client devices 402C, 402D served by the AMR node 406 are met, the location controller circuit 510 may prevent the AMR node 406C from self-locating. In some examples, if the performance controller circuit 506 indicates that one or more QoS protocols of the client devices 402C, 402D served by the AMR node 406 are not met or are at risk of not being met, the location controller circuit 510 may allow the AMR node 406C to self-locate. In some examples, the location controller circuit 510 is instantiated by a programmable circuit that executes location controller instructions and / or is configured to perform operations (such as Figure 7-11 those indicated).

[0084] UPF 512 facilitates processing of workloads locally at AMR node 406, rather than remotely at edge application 404. UPF 512 can cause local processing of workloads based on a determination that a backhaul connection has been degraded such that conventional forwarding of the workload to edge application 404 would not satisfy QoS protocols. UPF 512 is an exemplary implementation of a virtual network function as described in the 3GPP 29.44 specification. In some examples, UPF 512 is instantiated by programmable circuitry that executes UPF instructions and / or is configured to perform operations such as Figure 8-11 those indicated).

[0085] The exemplary RIC node 408 includes a performance controller circuit 506 and a workflow controller circuit 504 to measure performance characteristics and monitor QoS protocol compliance, respectively. When QoS protocols are not being met or are at risk of not being met, the RIC node 408 may enable self-location and / or local workload processing on one or more AMR nodes 406. Such techniques enable the RIC node 408 to continue to meet QoS protocols under adverse conditions (e.g., when connectivity with the client device 402A is affected or when backhaul connectivity is affected). Thus, by Figure 4 The RAN implemented by the RIC node 408 and the AMR node 406 provides greater reliability than alternative networks.

[0086] Figure 6 yes Figure 4 4 is a block diagram of an exemplary implementation of an AMR node 406A. Figure 4 The AMR node 406A may be instantiated (e.g., an instance of it is created, generated for an arbitrary length of time, materialized, realized, etc.) by a programmable circuit such as a central processing unit (CPU) that executes a first instruction. Additionally or alternatively, Figure 4 The AMR node 406A may be instantiated (e.g., an instance of it is created, generated for any length of time, embodied, implemented, etc.) by: (i) an application specific integrated circuit (ASIC) and / or (ii) a field programmable gate array (FPGA), which is constructed and / or configured to perform operations corresponding to the first instruction in response to the execution of the second instruction. It should be understood that Figure 4 Some or all of the circuits may thus be instantiated at the same or different times. Figure 4 Some or all of the circuits of may be instantiated, for example, in one or more threads that are executed simultaneously on hardware and / or serially on hardware. Furthermore, in some examples, Figure 4 Some or all of the circuits may be implemented by microprocessor circuits executing instructions and / or FPGA circuits performing operations to implement one or more virtual machines and / or containers.

[0087] Although Figure 4 Reference is made to AMR node 406A alone, but other AMR nodes 406B, 406C may be used Figure 4 The AMR node 406A includes an exemplary bus 600, an exemplary client interface circuit 602, an exemplary cloud interface circuit 604, an exemplary gNodeB base station 606, an exemplary local application 608, an exemplary container 618, an exemplary virtual machine 620, and an exemplary executor 622. The local application 608 includes, but is not limited to, an exemplary learning agent 610, an exemplary location determiner 612, an exemplary mail server 614, an exemplary update monitor 616, and an exemplary prediction generator 617.

[0088] Bus 600 refers to one or more physical connections (eg, interconnects, copper traces, etc.) that enable data to be exchanged between internal components of AMR node 406A. Bus 600 may be implemented using one or more communication systems that meet threshold power and / or latency requirements.

[0089] The client interface circuitry 602 enables data to be exchanged between the internal components of the AMR node and the client devices served by the AMR node. For example, the AMR node 406A serves the client device 402A by receiving workloads from the client device, forwarding workloads or processing workloads locally, moving to a location with better connectivity, and generally keeping the QoS protocols of the client device 402A maintained. In some examples, the client interface circuitry 602 uses authentication and / or permission data to verify that a given device is allowed to access the network. Figure 4 Communicate within the CDN.

[0090] The client interface circuit 602 may include any transceivers, antennas, and other components required to send and receive radio signals in a 5G-enabled RAN. In some examples, the client interface circuit 602 is instantiated by a programmable circuit that executes client interface instructions and / or is configured to perform operations such as Figure 7 , 9 -11).

[0091] The cloud interface circuit 604 enables data to be exchanged between the internal components of the AMR node and the edge cloud 110. Figure 4In the example of , the connection between the cloud interface circuit 604 and the edge cloud 110 is enabled by an intermediate device including the RIC node 408 and the donor node 410. The client interface circuit 602 and the cloud interface circuit 604 operate independently of each other. The cloud interface circuit 604 may include any transceivers, antennas, and other components required to send and receive radio signals in the following 5G-enabled RAN. In some examples, the cloud interface circuit 604 is instantiated by a programmable circuit that executes client interface instructions and / or is configured to perform operations (such as Figure 7 , 9 -11).

[0092] The gNodeB base station 606 facilitates information exchange in accordance with the 3GPP 33.511 specification. 5G RAN protocols may include physical layer (PHY), media access control (MAC), radio link control (RLC), packet data convergence protocol (PDCP), service data adaptation protocol (SDAP), radio resource control (RRC), random access preamble (RAP), etc. In some examples, the gNodeB base station 606 is instantiated by programmable circuits that execute gNodeB instructions and / or is configured to perform operations (such as Figure 7-14 those represented by the flowchart of ).

[0093] Local applications 608 are software applications that are implemented locally (e.g., implemented on AMR node 406A). Figure 6 Five local applications 608 are shown, but AMR node 406A may implement any number of local applications 608. In some examples, one or more of local applications 608 are instantiated by programmable circuitry that executes local application instructions and / or are configured to perform operations such as Figure 7-14 those represented by the flowchart of ).

[0094] Within local application 608, learning agent 610 is a specific implementation of learning agent 508 on AMR node 406A. That is, one or both of RIC node 408 or AMR node 406A may train an ML model to estimate a new position of AMR node 406A, as described above.

[0095] Within local application 608, position determiner 612 executes the learning proxy model to determine the new position of AMR node 406A. In some examples, position determiner 612 of AMR node 406A is restricted to executing the learning proxy model when permitted by position controller circuitry 510 of RIC node 408.

[0096] Within local applications 608, mail server 614, update monitor 616, and prediction generator 617 are examples of edge applications 404 that are configured to execute locally on AMR node 406A. In some examples, AMR node 406A is configured to implement different edge applications locally. To implement edge applications on AMR node 406A, cloud interface circuitry 604 communicates with edge applications 404 to exchange resource availability, workload descriptions, and other metadata, such as in conjunction with Figure 8-11 Further described.

[0097] Within the local application, prediction generator 617 is an application that makes predictions for a particular workload. The prediction is the output of a machine learning model that is executed by AMR node 406A during the loss of backhaul connectivity (and by one of edge applications 404 when the backhaul connectivity is active). The machine learning model can use any number of inputs to make predictions about the workload, including but not limited to the workload itself, telemetry data from client device 402, telemetry data from other AMR nodes 406B, 406C, and the like. In some examples, client device 402 relies on predictions from other devices to allocate resources, determine dependencies between workloads, and the like. In such examples, local execution of prediction generator 617 on AMR node 406 means that client device 402 will continue to receive predictions even when edge application 404 is offline.

[0098] AMR node 406A uses container 618 and / or virtual machine 620 to implement one or more of local applications 608. Container 618 refers to the representation of software resources as separate entities, such as applications, binaries, and libraries. However, container 618 treats the operating system and hardware components of AMR node 406A together as shared resources. In contrast, virtual machine 620 refers to the representation of both hardware and software resources within AMR node 406A as separate entities.

[0099] Actuator 622 refers to one or more components that apply mechanical force and cause AMR node 406A to physically move. Depending on the type of movable device that implements AMR node 406A, actuator 622 can be implemented as a gear, shaft, wheel, rotor, blade, etc. Actuator 622 can be connected to a programmable circuit that receives the new position from position determiner 612 (or from RIC node 408 via cloud interface circuit 604) and determines which mechanical forces should be applied to achieve the necessary movement.

[0100] The AMR node 406A includes a gnodeB base station 606 to forward workloads to the edge application 404 when the backhaul connection exhibits performance metrics sufficient to meet QoS protocols. The AMR node 406A also includes local applications 608, containers 618, virtual machines 620, and executors 622, enabling the AMR node 406A to locally process workloads (e.g., execute mail server 614 or update monitor 616) and / or move locations when the backhaul connection fails to meet QoS protocols. In some examples, one or more AMR nodes 406 may be referred to as an Internet cache because local processing of workloads on the AMR node 406 can keep the client device 402 connected to Internet services when the backhaul connection is weakened and / or lost. Thus, by Figure 4 The RAN implemented by the RIC node 408 and the AMR node 406 provides greater reliability than alternative networks.

[0101] Figure 7 Is a description Figure 5 Learning Agent 508 and Figure 6 The examples described above and herein show the learning agent 610 implemented in both the AMR node 406A and the RIC node 408. Figure 7 In some examples, Figure 7 The learning agent is implemented in only one of the AMR node 406A or the RIC node 408. The learning agent 508, 610 includes an exemplary neural network model 702, an exemplary learning phase 704, an exemplary reward function 706, an exemplary estimation phase 708, an exemplary output metric 710, and an exemplary output action 712.

[0102] Artificial intelligence (AI), including machine learning (ML), deep learning (DL), and / or other artificial machine-driven logic, enables a machine (e.g., a computer, logic circuit, etc.) to process input data using a model to generate output based on patterns and / or associations previously learned by the model through a training process. For example, a model can be trained with data to recognize patterns and / or associations, and follow such patterns and / or associations when processing input data, so that other inputs produce outputs consistent with the recognized patterns and / or associations.

[0103] There are many different types of machine learning models and / or machine learning architectures. In the examples disclosed herein, a neural network model 702 is used. Using a neural network model 702 enables the learning agents 508, 610 to form complex relationships between large input sets and output sets using activation functions, weights, and hidden layers. In some examples, a machine learning model / architecture suitable for use in the exemplary methods disclosed herein would be a neural network. However, other types of machine learning models, such as linear regression, k-nearest neighbors, support vector machines, random forest classifiers, decision trees, etc., may be used in addition or alternatively.

[0104] Generally speaking, implementing a machine ML / AI system involves two phases: a learning / training phase and an estimation phase. In the learning phase 704, a model is trained to operate according to patterns and / or associations using a training algorithm based on, for example, training data. Generally speaking, a model includes internal parameters that guide how to convert input data into output data, such as converting input data into output data through a series of nodes and connections within the model. In the learning agent 508, 610, the training data used in the learning phase 704 includes, but is not limited to, an identification of a particular client device 402A, available power resources on the AMR node 406A, available processing power on the AMR node 406A, connectivity metrics of the backhaul connection, connectivity metrics between the client device 402A and the AMR node 406A, etc. Figure 7 as described in Table 1.

[0105] Furthermore, hyperparameters are used as part of the training process to control how learning is performed (e.g., learning rate, number of layers to be used in the machine learning model, etc.). Hyperparameters are defined as training parameters that are determined before starting the training process.

[0106] Different types of training may be performed based on the type and / or expected output of the ML / AI model. For example, supervised training uses inputs and corresponding expected (e.g., labeled) outputs to select parameters for the ML / AI model that reduce model error (e.g., by iterating combinations of selected parameters). As used herein, labeling refers to the expected output of a machine learning model (e.g., a classification, an expected output value, etc.).

[0107] In the example used herein, the learning agent 508, 610 trains the neural network model 702 by evaluating the reward function 706. After an iteration of the neural network model 702, one or more weights in the output layer of the network are changed. The learning agent 508, 610 then compares the first sum of products with the second sum of products to evaluate the reward function 706. The first sum of products includes the output layer weights and their corresponding activation functions as generated by the neural network model 702, while the second sum of products includes an expected set of output layer weights and activation functions. The expected set of output layer weights may describe a performance metric that, if achieved, will increase the probability of satisfying the QoS protocol. If the first sum of products is greater than the second sum of products, the reward function 706 increases the reward value to indicate that the changes made in the previous iteration of the neural network model 702 were beneficial. Alternatively, if the second sum of products is greater than the first sum of products, the reward function 706 decreases the reward value to indicate that the changes made in the previous iteration of the neural network model 702 were detrimental.

[0108] Although the examples described herein relate to reward function 706, any other training algorithm may be used in addition or alternatively. In the examples disclosed herein, training is performed until the reward value of reward function 706 meets or exceeds a threshold. In the examples disclosed herein, training is performed at AMR node 406A or RIC node 408. Training is performed using hyperparameters that control how learning is performed (e.g., learning rate, number of layers to be used in the machine learning model, etc.). In some examples, retraining may be performed. Such retraining may be performed in response to AMR node 406A being reassigned to a different client device.

[0109] After training is complete, the model will be deployed to be used as an executable construct that processes inputs and provides outputs based on the network of nodes and connections defined in the model. The model is stored in the memory of the AMR node 406A or the memory of the RIC node 408. The model can then be executed by the location determiner 612 on the AMR node 406A. In some examples, if the neural network model 702 is trained on the RIC node 408, the RIC node 408 transmits the model to the AMR node 406A before execution. Additionally or alternatively, the model can be executed on the RIC node 408.

[0110] Once trained, the deployed model can be operated to process data. In the estimation phase 708, the data to be analyzed (e.g., real-time data) is input to the neural network model 702 trained by the learning agent 508, 610, and the position controller circuit 510 executes to create an output. This estimation phase can be considered as the AI ​​"thinking" to generate output based on the knowledge it has learned from training (e.g., by executing the model to apply the learned patterns and / or associations to real-time data). In some examples, the input data undergoes preprocessing before being used as input to the machine learning model. In addition, in some examples, the output data can be post-processed after it is generated by the AI ​​model to convert the output into a useful result (e.g., a display of data, instructions to be executed by the machine, etc.). The real-time data used in the estimation phase 708 may include, but is not limited to, telemetry data from one or more client devices 402 and AMR nodes 406, user input from one or more client devices 402, changes to QoS protocols, network performance characteristics (such as bandwidth) and power transmission limitations, etc.

[0111] In the examples described herein, the neural network model 702 generates both an output metric 710 and an output action 712. The output metric 710 characterizes the estimated network connectivity of the AMR node 406A after the change in position and / or power. The output metric 710 may include, but is not limited to, network bandwidth, latency, power, and other parameters describing: (a) connectivity between the client device 402A and the AMR node 406A, and (b) connectivity between the AMR node 406A and the RIC node 408, such as Figure 7 The details are shown in Table 2.

[0112] Output actions 712 represent changes made by AMR node 406A to serve client device 402A. Output actions 712 may include, but are not limited to, new location, amount of power to be used when transmitting and receiving data, communication with RIC node 408 or Figure 4 Other nodes in the RAN negotiate network requests for bandwidth allocation, such as Figure 7 The new position estimate may be represented by any suitable format, such as geographic coordinates, an offset relative to the current position in x, y, and / or z dimensions, etc. By executing the neural network model 702, the position determiner 612 estimates that the execution of the output action 712 will cause the AMR node 406A to improve the quality of network connectivity, as described by the output metric 710.

[0113] Output action 712 may also enable AMR node 406A to negotiate with other AMR nodes 406B, 406C to determine a position that enables the RAN as a whole to mitigate interference to transmission and reception. For example, AMR node 406A may determine a new position so that there is spatial multiplexing for independent beams between: (a) client device 402A and AMR node 406A, and (b) AMR node 406A and RIC node 408.

[0114] Output action 712 may also cause AMR node 406A to determine a new location based on the change in resource allocation. For example, AMR node 406A may move closer to client device 402A based on client device 402A indicating that it needs to save battery power or when client device 402A requests a high data rate for one or more workloads. Conversely, AMR node 406A may move closer to a device implementing a backhaul connection (e.g., RIC node 408) based on client device 402 having a higher power budget than AMR node 406A, thereby saving power on AMR node 406A.

[0115] In some examples, the output of the deployed model can be captured and provided as feedback. By analyzing the feedback, the accuracy of the deployed model can be determined. If the feedback indicates that the accuracy of the deployed model is less than a threshold or other criteria, the feedback and updated training data sets, hyperparameters, etc. can be used to trigger the training of an updated model to generate an updated deployed model.

[0116] Although in Figure 5 and Figure 6 An exemplary manner of implementing AMR node 406 and RIC node 408 is shown in FIG. Figure 5 and Figure 6 One or more of the elements, processes and / or devices shown in the embodiment may be combined, divided, rearranged, omitted, eliminated and / or implemented in any other manner. In addition, bus 500, interface circuit 502, workflow controller circuit 504, performance controller circuit 506, learning agent 508, location controller circuit 510 and UPF 512, bus 600, client interface circuit 602, cloud interface circuit 604, gNodeB base station 606, local application 608, container 618, virtual machine 620 and / or more generally, Figure 5 and Figure 6The exemplary AMR node 406 and RIC node 408 may be implemented by hardware alone or by a combination of hardware and software and / or firmware. Thus, for example, the bus 500, interface circuit 502, workflow controller circuit 504, performance controller circuit 506, learning agent 508, location controller circuit 510 and UPF 512, bus 600, client interface circuit 602, cloud interface circuit 604, gNodeB base station 606, local application 608, container 618, virtual machine 620 and / or more generally, any of the exemplary AMR node 406 and RIC node 408 may be implemented by programmable circuits in combination with machine-readable instructions (e.g., firmware or software), processor circuits, analog circuits, digital circuits, logic circuits, programmable processors, programmable microcontrollers, graphics processing units (GPUs), digital signal processors (DSPs), ASICs, programmable logic devices (PLDs) and / or field programmable logic devices (FPLDs) such as FPGAs. Further, Figure 5 and Figure 6 The exemplary AMR node 406 and RIC node 408 may include in addition to or in place of Figure 5 and Figure 6 The invention may include one or more elements, processes and / or devices of those shown in the drawings, and / or may include more than one of any or all of the elements, processes and devices shown.

[0117] exist Figure 8-11 The diagram shows a method that can be performed by a programmable circuit to implement and / or instantiate Figure 5 and Figure 6 Example machine-readable instructions and / or representations of the AMR node 406 and the RIC node 408 may be executed by a programmable circuit to implement and / or instantiate Figure 5 and Figure 6 406 and RIC node 408. The machine-readable instructions may be one or more executable programs or part of one or more executable programs for execution by programmable circuits, such as the following in conjunction with Fig.14 The programmable circuit 1412 shown in the exemplary programmable circuit platform 1400 discussed above and / or may be a programmable circuit 1412 that will be described below in conjunction with Fig.15 and / or Fig.16 One or more functions or portions of functions performed by the exemplary programmable circuits (e.g., FPGAs) discussed herein. In some examples, machine-readable instructions enable operations, tasks, etc. to be performed and / or executed in an automated manner in the real world. As used herein, "automation" means without human involvement.

[0118] The program may be embodied as instructions (e.g., software and / or firmware) stored on one or more non-transitory computer-readable and / or machine-readable storage media, such as cache memory, magnetic storage devices or disks (e.g., floppy disks, hard disk drives (HDDs), etc.), optical storage devices or disks (e.g., Blu-ray discs, compact disks (CDs), digital versatile disks (DVDs), etc.), redundant arrays of independent disks (RAIDs), registers, read-only memory (ROMs), solid-state drives (SSDs), SSD memory, non-volatile memory (e.g., electrically erasable programmable read-only memory (EEPROMs), flash memory, etc.), volatile memory (e.g., any type of random access memory (RAM), etc.), and / or any other storage device or storage disk. The instructions of the non-transitory computer-readable and / or machine-readable media may be programmed and / or executed by programmable circuits located in one or more hardware devices, but the entire program and / or portions thereof may alternatively be executed and / or instantiated and / or embodied in dedicated hardware by one or more hardware devices other than programmable circuits. The machine-readable instructions may be distributed across multiple hardware devices and / or executed by two or more hardware devices (e.g., a server and a client hardware device). For example, the client hardware device may be implemented by an endpoint client hardware device (e.g., a hardware device associated with a human and / or machine user) or an intermediate client hardware device gateway (e.g., a radio access network (RAN)), which may facilitate communication between the server and the endpoint client hardware device. Similarly, a non-transitory computer-readable storage medium may include one or more media. In addition, although reference is made to Figure 8-11 The flowcharts shown describe exemplary procedures, but many other methods of implementing the exemplary AMR node 406 and RIC node 408 may alternatively be used. For example, the order of execution of the blocks of the flowchart may be changed, and / or some of the blocks described may be changed, eliminated, or combined. Additionally or alternatively, any or all of the blocks of the flowchart may be implemented by one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are constructed to perform corresponding operations without executing software or firmware. The programmable circuits may be distributed in different network locations and / or local to one or more hardware devices (e.g., single-core processors (e.g., single-core CPUs), multi-core processors (e.g., multi-core CPUs, XPUs, etc.). For example, the programmable circuits may be a CPU and / or FPGA located in the same package (e.g., the same integrated circuit (IC) package or two or more separate housings), one or more processors in a single machine, multiple processors distributed on multiple servers in a server rack, multiple processors distributed on one or more server racks, etc., and / or any combination thereof.

[0119] The machine-readable instructions described herein may be stored in one or more of a compressed format, an encrypted format, a segmented format, a compiled format, an executable format, a packaged format, etc. The machine-readable instructions described herein may be stored as data (e.g., computer-readable data, machine-readable data, one or more bits (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), a bit stream (e.g., a computer-readable bit stream, a machine-readable bit stream, etc.), or a data structure (e.g., as part of instructions, code, code representation, etc.) that can be used to create, manufacture, and / or generate machine-executable instructions. For example, the machine-readable instructions may be segmented and stored in one or more storage devices, disks, and / or computing devices located at the same or different locations in a network or collection of networks (e.g., in the cloud, in an edge device, etc.). The machine-readable instructions may need to be installed, modified, adapted, updated, combined, supplemented, configured, decrypted, decompressed, unpacked, distributed, redistributed, compiled, etc., one or more to make them directly readable, interpretable, and / or executable by a computing device and / or other machine. For example, the machine-readable instructions may be stored in multiple parts that are separately compressed, encrypted, and / or stored on separate computing devices, where the parts, when decrypted, decompressed, and / or combined, form a collection of computer-executable and / or machine-executable instructions that implement one or more functions and / or operations that may together form a program (such as the programs described herein).

[0120] In another example, the machine-readable instructions may be stored in a state where they can be read by a programmable circuit, but require the addition of a library (e.g., a dynamic link library (DLL)), a software development kit (SDK), an application programming interface (API), etc., in order to execute the machine-readable instructions on a particular computing device or other device. In another example, the machine-readable instructions and / or corresponding programs may need to be configured (e.g., stored settings, data inputs, recorded network addresses, etc.) before they can be executed in whole or in part. Thus, as used herein, a machine-readable, computer-readable, and / or machine-readable medium may include instructions and / or programs regardless of the specific format or state of the machine-readable instructions and / or programs.

[0121] The machine-readable instructions described herein may be represented by any past, present, or future instruction language, scripting language, programming language, etc. For example, the machine-readable instructions may be represented by any of the following languages: C, C++, Java, C#, Perl, Python, JavaScript, Hypertext Markup Language (HTML), Structured Query Language (SQL), Swift, etc.

[0122] As mentioned above, Figure 8-11The exemplary operations can be implemented using executable instructions (e.g., computer-readable and / or machine-readable instructions) stored on one or more non-transient computer-readable and / or machine-readable media. As used herein, the terms non-transient computer-readable medium, non-transient computer-readable storage medium, non-transient machine-readable medium, and / or non-transient machine-readable storage medium are explicitly defined to include any type of computer-readable storage device and / or storage disk and exclude propagation signals and exclude transmission media. Examples of such non-transient computer-readable media, non-transient computer-readable storage media, non-transient machine-readable media, and / or non-transient machine-readable storage media include optical storage devices, magnetic storage devices, HDDs, flash memory, read-only memory (ROM), CDs, DVDs, caches, any type of RAM, registers, and / or any other storage device or storage disk in which information is stored for any duration (e.g., for an extended period of time, permanently, for a transient situation, for temporary buffering, and / or for caching information). As used herein, the terms "non-transitory computer-readable storage device" and "non-transitory machine-readable storage device" are defined to include any physical (mechanical, magnetic, and / or electrical) hardware that retains information for a period of time, but excludes propagating signals and excludes transmission media. Examples of non-transitory computer-readable memory devices and / or non-transitory machine-readable memory devices include any type of random access memory, any type of read-only memory, solid-state memory, flash memory, optical disks, magnetic disks, disk drives, and / or redundant arrays of independent disks (RAID) systems. As used herein, the term "device" refers to a physical structure, such as mechanical and / or electrical equipment, hardware, and / or circuitry, which may or may not be configured by computer-readable instructions, machine-readable instructions, etc. and / or manufactured to execute computer-readable instructions, machine-readable instructions, etc.

[0123] "Include" and "comprising" (and all their forms and tenses) are used herein as open-ended terms. Thus, whenever a claim employs any form of "include" or "comprising" (e.g., includes, comprises, has, etc.) as a preamble or uses them in any type of claim narrative, it should be understood that additional elements, terms, etc. may be present without exceeding the scope of the corresponding claim or narrative. As used herein, when the phrase "at least" is used as a transitional term, such as in the preamble of a claim, it is open-ended in the same manner as the terms "include" and "comprising" are open-ended. The term "and / or" when used, for example, in a form such as A, B, and / or C, refers to any combination or subset of A, B, C, such as (1) A alone, (2) B alone, (3) C alone, (4) A and B, (5) A and C, (6) B and C, or (7) A and B and C. As used herein in the context of describing structures, components, items, objects, and / or things, the phrase "at least one of A and B" is intended to refer to a specific implementation that includes any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing structures, components, items, objects, and / or things, the phrase "at least one of A or B" is intended to refer to a specific implementation that includes any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. As used herein in the context of describing the performance or execution of processes, instructions, actions, activities, and / or operations, the phrase "at least one of A and B" is intended to refer to a specific implementation that includes any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing the performance or execution of a process, instruction, action, activity, and / or operation, the phrase "at least one of A or B" is intended to refer to a specific implementation that includes any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.

[0124] As used herein, singular references (e.g., "a," "an," "first," "second," etc.) do not exclude the plural. As used herein, the term "a" or "an" object refers to one or more of the object. The terms "a" (or "an"), "one or more," and "at least one" are used interchangeably herein. In addition, although listed separately, multiple devices, elements, or actions may be implemented by, for example, the same entity or object. In addition, although individual features may be included in different examples or claims, these features may be combined, and inclusion in different examples or claims does not mean that the combination of features is not feasible and / or advantageous.

[0125] Figure 8is a flow chart representing example machine readable instructions and / or example operations 800 that may be performed, instantiated, and / or executed by a programmable circuit to maintain a QoS protocol. Although for simplicity Figure 8 The flowchart of FIG. 400 refers to AMR node 406A, but in combination with Figure 8 The described operations may additionally or alternatively include any other AMR nodes 406B, 406C.

[0126] The example machine-readable instructions and / or example operations 800 begin when edge orchestrator 412, RIC node 408, and AMR node 406A establish offline functionality for AMR node 406A. (Block 802). As used above and herein, offline refers to a period of time in which any portion of the backhaul connection between AMR node 406A and edge application 404 becomes unavailable or degraded to the extent that QoS agreements can no longer be met if the workload is offloaded to edge application 404. To establish offload functionality in block 802, AMR node 406A and edge orchestrator 412 exchange resource availability data, workload descriptions, and other metadata, such as in conjunction with Figure 8 Further described.

[0127] Edge orchestrator 412, RIC node 408, AMR node 406A, and client device 402A establish offline functionality for client device 402 applications that generate workload. (Block 804). To establish offline functionality for client device applications, client interface circuitry 602 establishes a radio bearer instance dedicated to client device 402A, and one of edge applications 404 provides offline application information, such as in conjunction with Figure 8 and Fig. 9 Further described.

[0128] The interface circuit 502 of the RIC node 408 receives the workload. (Block 806) The workload is generated by one of the client devices 402 and forwarded by the AMR node 406A to the RIC node 408. The workload may request any type of operation that may be performed by the edge application 404.

[0129] When the workload is received, the workflow controller circuit 504 determines whether the current network connection satisfies the QoS protocol of the client device 402A. (Block 808). The QoS protocol of block 808 describes the QoS that is to be satisfied if the workload is offloaded to the edge application for execution. Figure 4The performance controller circuit 506 measures the quality of the direct connection between the AMR node 406A and the next intermediate device (e.g., the RIC node 408) to determine whether the network connection is available to meet the QoS protocol. The performance controller circuit 506 may additionally evaluate the quality of the connection between the client device 402A and the AMR node 406A, the quality of the connection between the RIC node 408 and the donor node 410, and the quality of the connection between the client device 402A and the AMR node 406A. Figure 4 The data in the RAN or edge cloud 110 is available for the quality of any connection.

[0130] In the example shown, if the workflow controller circuit 504 determines that the current network connection will not satisfy the QoS protocol (block 808: No), the AMR node 406A is moved to a new location. (Block 810). If at block 808, the workflow controller circuit 504 determines that one or more of (a) the connectivity between the client device 402A and the AMR node 406A, and (b) the connectivity between the AMR node 406A and the RIC node 408 can be improved by moving the AMR node 406A to a new location, the RIC node 408 can implement block 810. Fig. 9 Block 810 is discussed further.

[0131] If the workflow controller circuit 504 determines that the current network connection will not satisfy the QoS protocol (block 808: No), the UPF 512 additionally or alternatively causes the AMR node 406A to process the workload locally (block 812A). The AMR node 406A processes the workload locally by communicating with the client device 402A via the client interface circuit 602 and by using the offline resource information obtained in blocks 802, 804. During the period of local processing, the client interface circuit 602 can use the authentication and / or permission data stored in the memory of the AMR node 406A to verify the external communication. Therefore, even when the device that normally performs the authentication (e.g., the RIC node 408 or another device in the backhaul connection) is unavailable, the AMR node 406A will avoid processing the workload of the unauthorized device.

[0132] Once the network connection is restored and / or strong enough to support the QoS protocol, the AMR node 406A uses the cloud interface circuit 604 to synchronize with the edge application 404. (Block 812B) Synchronization enables the edge application 404 to complete processing of the workload received at block 806.

[0133] If the workflow controller circuit 504 determines that the current network connection will satisfy the QoS protocol (block 808: yes), the AMR node 406A and the RIC node 408 facilitate the exchange of workload data between the client device 402A and the corresponding edge application 404. (block 814). Facilitating the exchange of workload data may enable the RIC node 408 to prioritize and / or package the workload request of the client device 402A among the workload requests from the other client devices 402B, 402C, 402D, 402E. The exchange of workload data also includes transmitting the results of the workload from the edge application 404 back to the client device 402A.

[0134] AMR nodes 406A and RIC nodes 408 facilitate the workload data exchange in block 814 because, generally speaking, edge applications 404 have more resources than AMR nodes 406A and are therefore better suited to handle workloads long term and meet QoS protocol basis. However, if one or more network connections degrade or fail, AMR nodes 406 can temporarily handle workloads and / or move to a different location with improved network connectivity. Therefore, a network with AMR nodes 406 and RIC nodes 408 is resilient to network connectivity issues and can reliably meet QoS protocols.

[0135] Fig. 9 is a flow chart representing example machine readable instructions and / or example operations that may be performed, instantiated, and / or executed by an example programmable circuit to cause an AMR node to move, as described in conjunction with Figure 8 Specifically, Fig. 9 Provided Figure 8 An exemplary implementation of block 810 of .

[0136] When the client interface circuit 602 receives client device telemetry data, execution of block 810 begins. (Block 902). The telemetry data may include, but is not limited to, the specific QoS protocol used by the client device 402A, power limits, and a description of how the client device 402A Figure 4 Other wireless characteristics for exchanging data within a RAN.

[0137] The location determiner 612 identifies performance requirements based on the telemetry data. (Block 904) The performance requirements may be listed directly in or referenced from any telemetry data, including QoS protocols.

[0138] The position determiner 612 executes the neural network model 702 to estimate the position and power change. (Block 906). The position determiner 612 uses the telemetry data and the identified requirements as inputs to the neural network model 702, such as in combination with Figure 7 The estimation stage 708 is described.

[0139] AMR node 406A applies the position and power changes. (Block 908). To apply the position change, actuator 622 may apply one or more mechanical forces to the components, thereby causing AMR node 406A to move. To apply the power change, position determiner 612 may cause a power delivery system, a transceiver, a programmable circuit, and / or other components used to implement client interface circuitry 602 and / or cloud interface circuitry 604 to change the amount of power used to transmit and receive data.

[0140] The position determiner 612 determines whether to apply further changes. (Block 910). The position determiner 612 determines whether to apply further changes based on the above Figure 7 2 to make the determination of block 910. For example, the location determiner 612 may use the client telemetry data of block 902 and the performance requirements of block 904 to determine that both (a) a change in location and (b) a change in bandwidth are required to meet the QoS agreement of block 902. If the initial iteration of blocks 906 and 908 only produces a change in bandwidth, the location determiner 612 determines at block 901 that further changes are required.

[0141] If the position determiner 612 decides to apply further changes (block 910: yes), the position determiner 612 generates and applies a reward. (block 912). Figure 7 As described above, a reward is generated by evaluating the reward function 706 with the output metric 710 and updating the reward value. When the new reward value is used as input when executing the neural network model 702 in a subsequent iteration, the application proceeds. After executing block 912, control returns to block 906, where the neural network model 702 is executed again to generate a new output.

[0142] If the position determiner 612 decides not to apply further changes (block 910: No), the AMR node 406A determines whether the changes of block 908 satisfy the QoS protocol of the client device 402A. (block 914). To determine whether the QoS protocol is satisfied, the update monitor 616 measures: (a) the connectivity between the AMR node 406A and the client device 402A, and (b) the connectivity between the AMR node 406A and the RIC node 408, and compares the connectivity metrics to the expected metrics within the QoS protocol.

[0143] If the AMR node 406A determines that the QoS protocol is not met (block 912: No), control returns to block 906, where the neural network model 702 is executed again to produce new outputs. If the QoS protocol is met (block 912: Yes), the AMR node 406A removes the client device telemetry and QoS protocol data. (Block 916). The data specific to the client device 402A is removed from the memory of the AMR node 406A so that future actions of the AMR node 406A will not be performed for the client 402A. In this way, the AMR node 406A can continue to provide application-specific network optimization to a specific client device as appropriate. Removing data specific to the previous client device also prevents the AMR node 402A from attempting to improve the network performance of all client devices 402 at the same time. Such global optimization attempts may be computationally expensive and are generally ineffective due to changes in client devices 402 and competing demands. After executing block 916, control returns to block 812A or block 816.

[0144] Fig.10 It is used to initialize online communication and switch to offline communication. Figure 4 illustrative example of communication between user equipment, RAN nodes, RIC and edge applications. Fig.10 Included are an exemplary client device 402A, an exemplary AMR node 406A, an exemplary RIC node 408, an exemplary edge orchestrator 412, an exemplary edge application 404, and exemplary operations 1002-1032.

[0145] In operation 1002, RIC node 408 transmits a query to AMR node 406A to determine whether AMR node 406A is available to execute local applications. In operation 1004, the AMR node confirms that it is available to host local applications and provides orchestration information to RIC node 408. Orchestration information refers to data that can be used by edge orchestrator 412 to enable one or more of edge applications 404 to run on AMR node 406A. The orchestration information of operation 1004 may include, but is not limited to, descriptions of containers 618 and virtual machines 620. In some examples, RIC node 408 repeats operation 1002 and sends queries to one or more client devices 402. In such examples, RIC may develop a database of information describing the availability of AMR nodes 406 for hosting local applications.

[0146] In operation 1006, edge orchestrator 412 transmits a request for local application information to RIC node 408. RIC node 408 responds in operation 1008 by providing edge orchestrator 412 with the orchestration information obtained in operation 1004. RIC node 408 may provide additional or alternative information in operation 1008. The additional or alternative information may include a destination Internet Protocol (IP) address, a duration that AMR node 406A may host the local application in the event of a backhaul connection failure, and the like.

[0147] In operation 1010, edge orchestrator 412 provides workload instantiation data to AMR node 406A. The workload instantiation data may include virtual machine images, container images, resource usage data, duration data, and any other information required by AMR node 406A to implement one of local applications 608. In response at operation 1012, AMR node 406A transmits offline application information. The offline application information may include, but is not limited to, an updated version of the orchestration information transmitted in operation 1004, an Internet Protocol (IP) service type, a QoS protocol of client device 402A, and the like. Operations 1002-1012 collectively form Figure 8 An exemplary implementation of block 802 of .

[0148] In operation 1014, the client device 402A provides a request to one or more devices that implement core network functions. The one or more devices may include devices in the edge cloud 110 and / or devices that implement the edge application 404. The operation of 1014 describes a request to attach a workload to a local device if a degradation in network connectivity causes the edge orchestrator 412 to be rendered offline. The AMR node 406A then establishes an offline bearer with the client device 402A in operation 1016. As used above and herein, a bearer refers to a connection between two devices defined by one or more configurations. One or more configurations describe parameters within the physical layer and data link layer (e.g., level 1 and level 2) of the Open Systems Interconnection (OSI) model for defining QoS protocols. Thus, operation 1016 establishes a set of configurations to be used when the edge application 404 that is typically used to execute the workload is offline. In operation 1018, the edge orchestrator 412 notifies the client device 402A that the attachment request of operation 1014 has been successful. Operations 1014-1018 collectively form Figure 8 An exemplary implementation of block 804 of .

[0149] In operation 1020, the client device 402A and the edge application 404 have an end-to-end connection. Using this connection, the application running on the client device 402A generates a workload, which is transmitted through Figure 4RAN, transferred through edge cloud 110, and ultimately executed by edge application 404. In some examples, the execution produces a workload result that is transferred back to client device 402A. Operation 1020 can be referred to as an online connection because client device 402A can offload the workload to edge application 404 while maintaining QoS protocols, such as in Figure 4 as expected during normal operation of the RAN and edge cloud 110.

[0150] In operation 1022, edge application 404 uses the period of online connection to provide offline application information to client device 402A. Generally speaking, the offline application information describes how client device 402A can recognize and use the local version of the edge application (which is established on AMR node 406A during operations 1002-1012) to continue workload processing when edge application 404 is offline. The offline application information may include, but is not limited to, IP information, port information, service type data, etc.

[0151] exist Fig.10 In the example of , one or more backhaul connections are degraded after operation 1022, thereby causing the edge application 404 to be offline. The loss of connection may occur for any reason and may occur at any time after operation 1022. However, after operation 1022, connectivity still exists between the client device 402A and the AMR node 406A. Therefore, in operation 1024, the AMR node 406A uses the client interface circuit 602 to change to the offline-backhaul state. The change to the offline-backhaul state may include, but is not limited to, the configuration described in the client device 402A and / or the AMR node 406A transitioning to the offline bearer of operation 1016.

[0152] In operation 1026, client device 402A provides AMR node 406A with a workload that executes locally on AMR node 406A. AMR node 406A communicates with client device 402A using client interface circuitry 602 to receive the workload and provide workload results, thereby temporarily maintaining the QoS protocol while repairing the backhaul connection.

[0153] exist Fig.10In the example of , after operation 1026, the backhaul connection is repaired so that offloading the workload to the edge application 404 will again meet the QoS agreement. This restoration of the backhaul connection may occur for any reason (e.g., an error is being resolved, a weather change improves signal strength, a different signal path through the RAN and edge cloud 110 is identified, etc.), and may occur at any amount of time after operation 1026. In response to the backhaul connection being restored, the AMR node 406A notifies the client device 402A that the edge application 404 is online in operation 1028. The AMR node 406A also uses the cloud interface circuit 604 to synchronize the local instance of the application with the corresponding edge application 404. Synchronization may include, but is not limited to, transmitting the workload results calculated by the AMR node 406A to the edge application 404.

[0154] In operation 1032, the end-to-end connection between the client device 402A and the edge application is restored. That is, the workload generated by the client device 402A is again processed remotely by the edge application 404, rather than being processed locally by the AMR node 406A. In some examples, the complexity of the task causes the second workload generated by the client device 402A to depend on the results of the first previous workload. By synchronizing with the edge application 404 at operation 1030, the AMR node 406A ensures that such dependencies continue to have accurate workload results, even when network connectivity issues cause the first workload to be processed locally and the second workload to be processed remotely.

[0155] Fig.11 is used to relocate AMR node 406A Figure 4 illustrative example of communication between user equipment, RAN nodes, RIC and edge applications. Fig.11 Included are an exemplary client device 402A, an exemplary AMR node 406A, an exemplary RIC node 408, an exemplary donor node 410, an exemplary edge orchestrator 412, an exemplary edge application 404, and exemplary operations 1102-1124.

[0156] The decision of mobile AMR node 406A may be made by Figure 4 Any device within the RAN or edge cloud 110 is implemented. Figure 8 In the block 808, the RIC node 408 determines that the QoS protocol is not satisfied and causes the AMR node 406A to move in block 810. Fig.11 In operation 1102, edge orchestrator 412 evaluates the QoS protocol and requests RIC node 408 to move AMR node 406A. In operation 1102, edge orchestrator 412 may additionally provide client device 402A identification information and corresponding QoS protocol information.

[0157] In operation 1104, the location controller circuit 510 within the RIC node 408 provides permission to the AMR node 406A for the location determiner 612 to determine a new location and move to the new location. In some examples, operation 1104 is referred to as enabling self-positioning. In operation 1104, the RIC node 408 may additionally provide the AMR node 406A with client device 402A identification information, QoS protocol information, information describing the client application generating the workload, and the like.

[0158] In operation 1106, the location determiner 612 executes the neural network model 702 to determine an estimate of one or more changes in the location and / or power of the AMR node 406A to better serve the client device 402A and improve compliance with the QoS protocol. The location determiner 612 uses the connectivity metric of the client device 402A (obtained in operation 1108) and the connectivity metric of the backhaul connection (obtained via the donor node 410 in operation 1110) as inputs to the neural network model 702.

[0159] In operation 1112, AMR node 406A applies the changes estimated in operation 1106. That is, AMR node 406A moves position and / or changes the amount of power used to transmit and receive data, as described above in Fig. 9 Then, in operation 1114, AMR node 406A notifies edge orchestrator 412 that it has moved to a new location.

[0160] In operation 1116, edge orchestrator 412 provides descriptions of QoS protocols and connection metrics that affect specific QoS protocols to relevant edge applications 404. The information in operation 1116 may include, but is not limited to, descriptions of client devices 402A, descriptions of applications generating workloads, identification and location of AMR nodes 406A, and the like.

[0161] In operation 1118, client device 402A and edge application 404 have an end-to-end connection. Through this connection, the application running on client device 402A generates a workload that is transferred using AMR node 406A in the new location. In some examples, the execution produces a workload result that is transferred back to client device 402A.

[0162] In operation 1120, AMR node 406A monitors connectivity metrics to determine whether QoS protocols are still being met. In some examples of operation 1120, as network conditions continue to change, AMR node 406A continues to move or change power usage to maintain QoS protocols. Operation 1120 occurs during the end-to-end connection between client device 402A and edge application 404 established in operation 1118.

[0163] In operation 1122, edge orchestrator 412 notifies AMR node 406A that the device no longer needs to self-position to meet the QoS agreement of client device 402A. The determination may occur because client device 402A moved to an area with stronger connectivity within the RAN, because client device 402A stopped offloading workloads, etc. Accordingly, in operation 1124, the AMR node restores its power usage and positioning to parameters that better serve the entire RAN (compared to the specific QoS agreement of client device 402A). In some examples, at operation 1124, RIC node 408 determines the power usage and position of AMR node 406A.

[0164] Fig.12 yes Figure 4 An illustrative example of message expiration between client device 402 and the RAN. Fig.12 The example of includes an exemplary client device 402 , an exemplary AMR node 406 , and an exemplary RIC node 408 .

[0165] exist Fig.12 In the example of FIG. 4 , only one of the AMR nodes 406 acts as an intermediary between a given client device 402A and the RIC node 408. However, the mobility of the client device 402 may require that network connectivity be established in a remote location. In such an example, a given workload request from one of the client devices 402 may be transferred between any number of geographically distributed AMR nodes 406A, 406B, ..., 406-n before reaching the RIC node 408.

[0166] Each of the AMR nodes 406A, 406B, ..., 406-n may be combined as above Figure 5 The invention is implemented as described, including separate client-facing and cloud-facing interfaces, as well as virtual machines, containers, and resources that can be used to temporarily run local instances of edge applications. Therefore, if any part of the backhaul connection fails (e.g., the nth AMR node loses connection), the previous device in the connection (e.g., the n-1th AMR node) can provide overdue service and handle the workload locally until the backhaul connection is repaired, as described above in conjunction with Fig.10Thus, if data is lost at an intermediate device, the client device 402A does not have to retransmit the data.

[0167] Fig.13 yes Figure 4 Example of intermittent wireless backhaul connectivity loss within an AMR node. Fig.13 Included are an exemplary AMR node 406A, an exemplary sensor suite 1302A-1302E, and an exemplary pathway 1304.

[0168] Sensor suites 1302A-1302E are exemplary implementations of client device 402. Fig.13 In the example, each device within the sensor suite 1302A-1302E measures physical phenomena and generates workloads designed for one or more edge applications 404 to aggregate and analyze the measurements. The sensor suites 1302A-1302E may be located in a warehouse, a farm field, an industrial workshop, or any other suitable environment.

[0169] exist Fig.13 In the example of FIG. 1 , sensor suites 1302A-1302E are geographically located and / or distributed such that the use of fixed intermediate equipment (e.g., cellular towers or other equipment attached to existing infrastructure) is impractical. Instead, AMR node 406C moves autonomously along path 1304 in a repetitive manner, moving back and forth between sensor suites 1302A-1302E. Thus, AMR node 406C reduces overall deployment costs and helps achieve energy conservation goals.

[0170] exist Fig.13 In the example, AMR node 406C operates in a remote location such that a backhaul connection can only be established on a portion of path 1304. For example, when in the vicinity of sensor suites 1302D, 1302E, AMR node 406C can connect to subsequent intermediate devices and offload workload. However, when in the vicinity of sensor suites 1302A, 1302B, 1302C, the QoS agreements for the connections and sensors with the subsequent intermediate devices cannot be met by offloading workload. Such examples may be referred to as intermittent connections because AMR node 406C repeatedly gains and loses backhaul connections.

[0171] When AMR node 406C loses backhaul connectivity, it uses local applications 608 and client interface circuitry 602 to perform workloads. For example, AMR node 406C may use sensor suites 1302A, 1302B, 1302C locally while traveling past the aforementioned sensors. When backhaul connectivity is reestablished near sensor suite 1302E, AMR node 406C may then transmit measurements from all sensor suites 1302A-1302E to edge application 404. Thus, edge application 404 may perform the expensive task of analyzing sensor data and maintain QoS protocols even when AMR node 406C periodically gains and loses backhaul connectivity.

[0172] Fig.14 is a block diagram of an exemplary programmable circuit platform 1400 configured to execute and / or instantiate Figure 8-11 Example machine readable instructions and / or example operations to implement Figure 4 The programmable circuit platform 1400 may be, for example, a server, a personal computer, a workstation, a self-learning machine (e.g., a neural network), a mobile device (e.g., a cellular phone, a smart phone, a tablet computer such as an iPad, etc.). TM ), drones, internet facilities, smart cars, or any other type of computing and / or electronic device.

[0173] The programmable circuit platform 1400 of the example shown includes a programmable circuit 1412. The programmable circuit 1412 of the example shown is hardware. For example, the programmable circuit 1412 can be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs and / or microcontrollers from any desired series or manufacturer. The programmable circuit 1412 can be implemented by one or more semiconductor-based (e.g., silicon-based) devices. In this example, if the RIC node 408 is implemented, the programmable circuit 1412 implements the workflow controller circuit 504, the performance controller circuit 506, the learning agent 508, the location controller circuit 510 and the UPF 512. Additionally or alternatively, the programmable circuit 1412 implements the gNodeB base station 606, the learning agent 610, the location determiner 612, the mail server 614 and the update monitor 616.

[0174] The programmable circuit 1412 of the illustrated example includes a local memory 1413 (e.g., cache, registers, etc.). The programmable circuit 1412 of the illustrated example communicates with a main memory 1414, 1416 via a bus 1418, the main memory including a volatile memory 1414 and a non-volatile memory 1416. The volatile memory 1414 may be comprised of a synchronous dynamic random access memory (SDRAM), a dynamic random access memory (DRAM), Dynamic Random Access Memory The non-volatile memory 1416 may be implemented by flash memory and / or any other desired type of memory device. Access to the main memory 1414, 1416 of the illustrated example is controlled by a memory controller 1417. In some examples, the memory controller 1417 may be implemented by one or more integrated circuits, logic circuits, microcontrollers, or any other type of circuitry from any desired family or manufacturer to manage the flow of data to and from the main memory 1414, 1416.

[0175] The programmable circuit platform 1400 of the illustrated example also includes an interface circuit 1420. The interface circuit 1420 may be implemented by hardware according to any type of interface standard, such as an Ethernet interface, a universal serial bus (USB) interface, interface, a near field communication (NFC) interface, a peripheral component interconnect (PCI) interface, and / or a peripheral component interconnect express (PCIe) interface.

[0176] In the example shown, one or more input devices 1422 are connected to the interface circuit 1420. The input devices 1422 allow a user (e.g., a human user, a machine user, etc.) to input data and / or commands into the programmable circuit 1412. The input devices 1422 may be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, buttons, a mouse, a touch screen, a trackpad, a trackball, an isopoint device, and / or a voice recognition system, etc.

[0177] One or more output devices 1424 are also connected to the interface circuit 1420 of the illustrated example. The output device 1424 may be implemented, for example, by a display device (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, an in-place switching (IPS) display, a touch screen, etc.), a tactile output device, a printer, and / or a speaker. Therefore, the interface circuit 1420 of the illustrated example typically includes a graphics driver card, a graphics driver chip, and / or a graphics processor circuit such as a GPU.

[0178] The interface circuitry 1420 of the illustrated example also includes communication devices, such as transmitters, receivers, transceivers, modems, residential gateways, wireless access points, and / or network interfaces to facilitate data exchange with external machines (e.g., any type of computing device) over the network 1426. The communication may be, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a beyond-line-of-sight wireless system, a line-of-sight wireless system, a cellular telephone system, an optical connection, etc.

[0179] The illustrated example programmable circuit platform 1400 also includes one or more mass storage disks or devices 1428 to store firmware, software, and / or data. Examples of such mass storage disks or devices 1428 include magnetic storage devices (e.g., floppy disks, drives, HDDs, etc.), optical storage devices (e.g., Blu-ray disks, CDs, DVDs, etc.), RAID systems, and / or solid-state storage disks or devices such as flash memory devices and / or SSDs.

[0180] can be Figure 8-11 The machine-readable instructions 1432 implemented by the machine-readable instructions may be stored in the mass storage device 1428, in the volatile memory 1414, in the non-volatile memory 1416, and / or on at least one removable, non-transitory computer-readable storage medium such as a CD or DVD.

[0181] Fig.15 yes Fig.14 1412. In this example, Fig.14 The programmable circuit 1412 is implemented by the microprocessor 1500. For example, the microprocessor 1500 may be a general-purpose microprocessor (eg, a general-purpose microprocessor circuit). The microprocessor 1500 executes Figure 8-11 Some or all of the machine readable instructions of the flowchart to effectively Figure 2 In some such examples, the circuits of the machine readable instructions are instantiated as logic circuits to perform operations corresponding to those machine readable instructions. Figure 6 and Figure 7The circuit is instantiated by the hardware circuit of the microprocessor 1500 in combination with the machine-readable instructions. For example, the microprocessor 1500 may be implemented by a multi-core hardware circuit such as a CPU, DSP, GPU, XPU, etc. Although it may include any number of exemplary cores 1502 (for example, 1 core), the microprocessor 1500 of this example is a multi-core semiconductor device including N cores. The cores 1502 of the microprocessor 1500 may operate independently or may cooperate to execute machine-readable instructions. For example, machine code corresponding to a firmware program, an embedded software program, or a software program may be executed by one of the cores 1502, or may be executed by multiple cores 1502 at the same or different times. In some examples, the machine code corresponding to the firmware program, the embedded software program, or the software program is divided into threads and executed in parallel by two or more cores 1502. The software program may correspond to a thread executed by Figure 8-11 A flowchart represents a portion or all of machine-readable instructions and / or operations.

[0182] The cores 1502 can communicate via a first exemplary bus 1504. In some examples, the first bus 1504 can be implemented by a bus for implementing communications associated with one or more of the cores 1502. For example, the first bus 1504 can be implemented by at least one of an integrated circuit (I2C) bus, a serial peripheral interface (SPI) bus, a PCI bus, or a PCIe bus. Additionally or alternatively, the first bus 1504 can be implemented by any other type of computing or electrical bus. The cores 1502 can obtain data, instructions, and / or signals from one or more external devices via an exemplary interface circuit 1506. The cores 1502 can output data, instructions, and / or signals to one or more external devices via the interface circuit 1506. Although the core 1502 of this example includes an exemplary local memory 1520 (e.g., a level 1 (L1) cache that can be divided into an L1 data cache and an L1 instruction cache), the microprocessor 1500 also includes an exemplary shared memory 1510 (e.g., a level 2 (L2 cache)) that can be shared by the cores for high-speed access to data and / or instructions. Data and / or instructions can be transferred (e.g., shared) by writing to and / or reading from the shared memory 1510. The local memory 1520 and the shared memory 1510 of each of the cores 1502 can be a plurality of levels of cache memory and main memory (e.g., Fig.14 Cache memory is part of a hierarchy of storage devices (main memory 1414, 1416). Generally, higher-level memory in the hierarchy exhibits lower access times and has smaller storage capacity than lower-level memory. Changes to the various levels of the cache hierarchy are managed (e.g., coordinated) by a cache coherence policy.

[0183] Each core 1502 may be referred to as a CPU, DSP, GPU, etc., or any other type of hardware circuit. Each core 1502 includes a control unit circuit 1514, an arithmetic and logic (AL) circuit (sometimes referred to as an ALU) 1516, a plurality of registers 1518, a local memory 1520, and a second exemplary bus 1522. Other structures may exist. For example, each core 1502 may include a vector unit circuit, a single instruction multiple data (SIMD) unit circuit, a load / store unit (LSU) circuit, a branch / jump unit circuit, a floating point unit (FPU) circuit, etc. The control unit circuit 1514 includes a semiconductor-based circuit configured to control (e.g., coordinate) data movement within the corresponding core 1502. The AL circuit 1516 includes a semiconductor-based circuit configured to perform one or more mathematical and / or logical operations on the data within the corresponding core 1502. The AL circuit 1516 of some examples performs integer-based operations. In some examples, the AL circuit 1516 also performs floating-point operations. In some examples, AL circuit 1516 may include a first AL circuit that performs integer-based operations and a second AL circuit that performs floating-point operations. In some examples, AL circuit 1516 may be referred to as an arithmetic logic unit (ALU).

[0184] Registers 1518 are semiconductor-based structures for storing data and / or instructions (such as the results of one or more operations performed by the AL circuit 1516 of the corresponding core 1502). For example, registers 1518 may include vector registers, SIMD registers, general registers, flag registers, segment registers, machine-specific registers, instruction pointer registers, control registers, debug registers, memory management registers, machine check registers, etc. Registers 1518 may be arranged in Fig.15 Alternatively, registers 1518 may be organized in any other arrangement, format, or structure, such as by being distributed throughout core 1502 to reduce access time. Second bus 1522 may be implemented by at least one of an I2C bus, an SPI bus, a PCI bus, or a PCIe bus.

[0185] Each core 1502 and / or more generally the microprocessor 1500 may include additional and / or alternative structures in addition to the structures shown and described above. For example, there may be one or more clock circuits, one or more power supplies, one or more power gates, one or more cache master agents (CHAs), one or more aggregation / common grid stoppers (CMSs), one or more shifters (e.g., barrel shifters), and / or other circuits. The microprocessor 1500 is a semiconductor device that is manufactured to include many transistors interconnected to implement the above structures in one or more integrated circuits (ICs) contained in one or more packages.

[0186] The microprocessor 1500 may include one or more accelerators (e.g., acceleration circuits, hardware accelerators, etc.) and / or collaborate with one or more accelerators. In some examples, the accelerator is implemented by a logic circuit to perform certain tasks faster and / or more efficiently than a general-purpose processor can accomplish. Examples of accelerators include ASICs and FPGAs, such as those discussed herein. GPUs, DSPs, and / or other programmable devices may also be accelerators. The accelerator may be on the microprocessor 1500, in the same chip package as the microprocessor 1500, and / or in one or more packages separate from the microprocessor 1500.

[0187] Fig.16 yes Fig.14 1412 is a block diagram of another exemplary implementation of a programmable circuit 1412. In this example, the programmable circuit 1412 is implemented by an FPGA circuit 1600. For example, the FPGA circuit 1600 can be implemented by an FPGA. The FPGA circuit 1600 can be used, for example, to execute a programmable circuit 1412 that would otherwise be implemented by an FPGA. Fig.15 The exemplary microprocessor 1500 of FPGA performs operations performed by corresponding machine-readable instructions. However, once configured, the FPGA circuit 1600 instantiates operations and / or functions corresponding to the machine-readable instructions in hardware, and thus typically performs the operations / functions faster than the speed at which the operations and / or functions can be performed by a general-purpose microprocessor executing corresponding software.

[0188] More specifically, Fig.15 The microprocessor 1500 (which is a general-purpose device that can be programmed to perform the Figure 8-11 In contrast, a flowchart represents some or all of the machine-readable instructions, but its interconnections and logic circuits are fixed once they are manufactured. Fig.16 The example FPGA circuit 1600 includes interconnects and logic circuits that can be configured, structured, programmed, and / or interconnected in different ways after fabrication to instantiate, for example, corresponding to a Figure 8-11 1600. In particular, FPGA circuit 1600 can be thought of as an array of logic gates, interconnects, and switches. The switches can be programmed to change how the logic gates are interconnected by the interconnects, effectively forming one or more dedicated logic circuits (unless and until FPGA circuit 1600 is reprogrammed). The configured logic circuits enable the logic gates to cooperate in different ways to perform different operations on the data received by the input circuits. These operations may correspond to the operations performed by Figure 8-11 In this way, FPGA circuit 1600 can be configured and / or constructed to effectively communicate with Figure 8-11Some or all of the operations / functions corresponding to the machine-readable instructions of the flowchart of the present invention are instantiated into dedicated logic circuits, thereby performing the operations / functions corresponding to those software instructions in a dedicated manner similar to an ASIC. Figure 8-11 FPGA circuit 1600 may perform the operation / function faster than the speed at which some or all of the machine-readable instructions correspond to the operation / function.

[0189] exist Fig.16 In some examples, the FPGA circuit 1600 is configured and / or constructed in response to programming (and / or reprogramming one or more times) based on a binary file. In some examples, a binary file can be compiled and / or generated based on instructions in a hardware description language (HDL) such as Lucid, Very High Speed ​​Integrated Circuit (VHSIC) Hardware Description Language (VHDL), or Verilog. For example, a user (e.g., a human user, a machine user, etc.) can write code or a program corresponding to one or more operations / functions in HDL; the code / program can be translated into a low-level language as needed; and the code / program (e.g., code / program in a low-level language) can be converted (e.g., by a compiler, a software application, etc.) into a binary file. In some examples, Fig.16 The FPGA circuit 1600 can access and / or load a binary file to make Fig.16 The FPGA circuit 1600 is configured and / or constructed to perform one or more operations / functions. For example, a binary file may consist of a bit stream (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), data (e.g., computer-readable data, machine-readable data, etc.), and / or Fig.16 The FPGA circuit 1600 can access machine-readable instructions to cause Fig.16 Configuration and / or structuring of FPGA circuit 1600 or a portion thereof.

[0190] In some examples, the binary file is compiled, generated, converted, and / or otherwise output from a unified software platform for programming the FPGA. For example, the unified software platform may translate a first instruction (e.g., code or program) corresponding to one or more operations / functions in a high-level language (e.g., C, C++, Python, etc.) into a second instruction corresponding to one or more operations / functions in an HDL. In some such examples, the binary file is compiled, generated, and / or otherwise output from the unified software platform based on the second instruction. In some examples, Fig.16 The FPGA circuit 1600 can access and / or load a binary file to make Fig.16The FPGA circuit 1600 is configured and / or constructed to perform one or more operations / functions. For example, a binary file may consist of a bit stream (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), data (e.g., computer-readable data, machine-readable data, etc.), and / or Fig.16 The FPGA circuit 1600 can access machine-readable instructions to cause Fig.16 Configuration and / or structuring of FPGA circuit 1600 or a portion thereof.

[0191] Fig.16 FPGA circuit 1600 includes exemplary input / output (I / O) circuit 1602 to obtain data from and / or output data to exemplary configuration circuit 1604 and / or external hardware 1606. For example, configuration circuit 1604 may be implemented by an interface circuit that can obtain a binary file, which may be implemented by a bitstream, data, and / or machine-readable instructions to configure FPGA circuit 1600 or a portion thereof. In some such examples, configuration circuit 1604 may obtain the binary file from a user, a machine (e.g., a hardware circuit (e.g., a programmable or dedicated circuit) that can implement an artificial intelligence / machine learning (AI / ML) model to generate a binary file), etc. and / or any combination thereof. In some examples, external hardware 1606 may be implemented by an external hardware circuit. For example, external hardware 1606 may be implemented by Fig.15 The microprocessor 1500 is implemented.

[0192] FPGA circuit 1600 also includes an array of exemplary logic gate circuits 1608, a plurality of exemplary configurable interconnects 1610, and exemplary memory circuits 1612. Logic gate circuits 1608 and configurable interconnects 1610 may be configured to instantiate Figure 8-11 The may correspond to one or more operations / functions of at least some of the machine-readable instructions and / or other desired operations. Fig.16 The logic gate circuits 1608 shown are manufactured in the form of blocks or groups. Each block includes a semiconductor-based electrical structure that can be configured into a logic circuit. In some examples, the electrical structure includes a logic gate (e.g., an AND gate, an OR gate, a NOR gate, etc.) that provides a basic building block for the logic circuit. An electrically controllable switch (e.g., a transistor) is present in each of the logic gate circuits 1608 to enable configuration of the electrical structure and / or the logic gate to form a circuit for performing a desired operation / function. The logic gate circuits 1608 may include other electrical structures, such as a lookup table (LUT), a register (e.g., a flip-flop or a latch), a multiplexer, etc.

[0193] The example configurable interconnect 1610 shown is a conductive path, trace, via, etc., which may include an electrically controllable switch (e.g., a transistor) whose state can be changed by programming (e.g., using an HDL instruction language) to activate or deactivate one or more connections between one or more of the logic gate circuits 1608 in order to program the desired logic circuit.

[0194] The storage circuit 1612 of the illustrated example is configured to store the results of one or more operations performed by the corresponding logic gates. The storage circuit 1612 may be implemented by a register, etc. In the illustrated example, the storage circuit 1612 is distributed in the logic gate circuit 1608 to facilitate access and increase execution speed.

[0195] Fig.16 The exemplary FPGA circuit 1600 also includes an exemplary dedicated operation circuit 1614. In this example, the dedicated operation circuit 1614 includes a dedicated circuit 1616 that can be called to implement common functions in order to avoid the need to program these functions in the field. Examples of such dedicated circuits 1616 include memory (e.g., DRAM) controller circuits, PCIe controller circuits, clock circuits, transceiver circuits, memories, and multiplier-accumulator circuits. There may be other types of dedicated circuits. In some examples, the FPGA circuit 1600 may also include an exemplary general-purpose programmable circuit 1618, such as an exemplary CPU 1620 and / or an exemplary DSP 1622. There may be other general-purpose programmable circuits 1618 such as GPUs, XPUs, etc., which may be programmed to perform other operations in addition or alternatively.

[0196] although Fig.15 and Fig.16 Shows Fig.14 These are two exemplary implementations of the programmable circuit 1412, but many other approaches are contemplated. For example, an FPGA circuit may include an onboard CPU, such as Fig.15 One or more of the exemplary CPUs 1620. Thus, Fig.14 The programmable circuit 1412 may additionally be configured by at least combining Fig.15 The exemplary microprocessor 1500 and Fig.16 In some such hybrid examples, Fig.15 One or more cores 1502 may execute Figure 8-11 The flowchart represents a first portion of machine-readable instructions to perform a first operation / function, Fig.16 The FPGA circuit 1600 may be configured and / or constructed to perform the same as that Figure 8-11 The second operation / function corresponding to the second portion of the machine-readable instructions represented by the flowchart, and / or the ASIC can be configured and / or constructed to perform the same as that represented by Figure 8-11 The flowchart represents a third portion of the machine-readable instructions corresponding to a third operation / function.

[0197] It should be understood that Figure 5 and Figure 6 Some or all of the circuits may thus be instantiated at the same or different times. Fig.15 The same and / or different portions of microprocessor 1500 may be programmed to execute portions of machine-readable instructions at the same and / or different times. In some examples, Fig.16 The same and / or different portions of FPGA circuit 1600 may be configured and / or constructed to perform operations / functions corresponding to portions of the machine-readable instructions at the same and / or different times.

[0198] In some examples, Figure 5 and Figure 6 Some or all of the circuits of may be instantiated, for example, in one or more threads that execute simultaneously and / or serially. Fig.15 The microprocessor 1500 may execute machine-readable instructions in one or more threads that execute simultaneously and / or serially. In some examples, Fig.16 The FPGA circuit 1600 can be configured and / or constructed to perform operations / functions simultaneously and / or serially. In addition, in some examples, Figure 5 and Figure 6 Some or all of the circuitry may be Fig.15 The microprocessor 1500 is implemented within one or more virtual machines and / or containers.

[0199] In some examples, Fig.14 The programmable circuit 1412 may be located in one or more packages. For example, Fig.15 The microprocessor 1500 and / or Fig.16 The FPGA circuit 1600 may be in one or more packages. In some examples, the XPU may be provided by Fig.14 The XPU may be implemented by programmable circuits 1412, which may be in one or more packages. For example, the XPU may include a CPU in one package (e.g., Fig.15 Microprocessor 1500, Fig.16 CPU 1620, etc.), a DSP in another package (e.g., Fig.16 DSP 1622 in another package), a GPU in yet another package, and an FPGA in yet another package (e.g., Fig.16 FPGA circuit 1600).

[0200] exist Fig.17 A block diagram illustrating an exemplary software distribution platform 1705 is shown in Fig.14The exemplary machine-readable instructions 1432 of the exemplary software distribution platform 1705 can be used to distribute software to other hardware devices (e.g., hardware devices operated by a third party other than the owner and / or operator of the software distribution platform). The exemplary software distribution platform 1705 can be implemented by any computer server, data facility, cloud service, etc. capable of storing software and transferring software to other computing devices. The third party can be a customer of the entity that owns and / or operates the software distribution platform 1705. For example, the entity that owns and / or operates the software distribution platform 1705 can be such as Fig.14 The third party may be a consumer, user, retailer, OEM, etc. who purchases and / or licenses the software for use and / or resale and / or sublicensing. In the example shown, the software distribution platform 1705 includes one or more servers and one or more storage devices. The storage device stores the machine-readable instructions 1432, which may correspond to Figure 8-11 , as described above. One or more servers of the exemplary software distribution platform 1705 communicate with an exemplary network 1710, which may correspond to the Internet and / or any one or more of the exemplary networks described above. In some examples, one or more servers respond to a request to transfer software to a requesting party as part of a business transaction. The delivery, sale, and / or payment of a license for the software may be processed by one or more servers of the software distribution platform and / or by a third-party payment entity. The server enables a purchaser and / or licensor to download machine-readable instructions 1432 from the software distribution platform 1705. For example, a server that may correspond to Figure 8-11 The exemplary programmable circuit platform 1400 may download the exemplary machine-readable instructions 1432 to the exemplary programmable circuit platform 1400, which may execute the machine-readable instructions 1432 to implement the AMR node 406 or the RIC node 408. In some examples, one or more servers of the software distribution platform 1705 may periodically provide, transmit, and / or force updates to the software (e.g., Fig.14 1432) to ensure that improvements, patches, updates, etc. are distributed and applied to the software at the end-user device. Although referred to as software above, the distributed "software" may alternatively be firmware.

[0201] As can be appreciated from the foregoing, exemplary systems, apparatus, articles, and methods have been disclosed to describe devices that: (a) dynamically transition between local and remote processing of workloads, and (b) autonomously determine and move to a new location that improves network connectivity. The disclosed systems, apparatus, articles, and methods improve the efficiency of using computing devices by increasing network capabilities to reliably meet QoS protocols, even when backhaul connections fail or client devices move to remote locations. Thus, the disclosed systems, apparatus, articles, and methods relate to one or more improvements in the operation of a machine, such as a computer or other electronic and / or mechanical device.

[0202] Exemplary methods, apparatus, systems, and articles of manufacture for autonomous mobile RAN / robotic nodes are disclosed herein. Further examples and combinations thereof include the following.

[0203] Example 1 includes an autonomous mobile radio access network (RAN) node, the autonomous mobile RAN node comprising: communication circuitry; instructions; and programmable circuitry, the programmable circuitry being configured to cause the communication circuitry to transmit a workload to a server via a network, to initiate local processing of the workload after losing connectivity with the server, and to move the autonomous mobile RAN node from a first location to a second location.

[0204] Example 2 includes the autonomous mobile RAN node of Example 1, wherein the programmable circuit is to cause the communication circuit to transmit the result of the local processing to the server to resume processing of the workload.

[0205] Example 3 includes the autonomous mobile RAN node of Example 1, wherein the server is to begin processing the workload using an application, and the programmable circuit is to initiate the local processing using a local instance of the application.

[0206] Example 4 includes the autonomous mobile RAN node of Example 1, wherein the programmable circuit is to receive the workload from a client device, receive the prediction from the server, and forward the prediction to the client device.

[0207] Example 5 includes the autonomous mobile RAN node of Example 4, wherein the prediction is a first prediction, and the programmable circuit is to make a second prediction after losing connectivity with the server, and provide the second prediction to the client device.

[0208] Example 6 includes the autonomous mobile RAN node of Example 5, wherein the second prediction is based on at least one of (a) the local processing of the workload or (b) telemetry data from a client device.

[0209] Example 7 includes an autonomous mobile RAN node according to Example 1, wherein the programmable circuit includes one or more of the following: at least one of a central processing unit, a graphics processing unit, or a digital signal processor, the at least one of the central processing unit, the graphics processing unit, or the digital signal processor having a control circuit for controlling data movement within the programmable circuit, arithmetic and logic circuits so as to perform one or more first operations corresponding to machine-readable data, and one or more registers for storing the results of the one or more first operations and the machine-readable data in the mobile RAN node; a field programmable gate array (FPGA), the FPGA including logic gate circuits, multiple configurable interconnects, and storage circuits, the logic gate circuits and the multiple configurable interconnects are used to perform one or more second operations, and the storage circuits are used to store the results of the one or more second operations; or an application-specific integrated circuit (ASIC), the ASIC including logic gate circuits for performing one or more third operations.

[0210] Example 8 includes an autonomous mobile radio access network (RAN) node, the autonomous mobile RAN node comprising: an interface circuit; instructions; and a programmable circuit, the programmable circuit being used to enable a workload to be transferred from a client device to a server to process the workload, to identify a second location of the autonomous mobile RAN node relative to a first location based on network performance, and to enable the autonomous mobile RAN node to move from the first location to the second location.

[0211] Example 9 includes an autonomous mobile RAN node according to Example 8, wherein the network performance is based on (a) a quality of service (QoS) protocol, (b) connectivity between the client device and the mobile RAN node, and (c) connectivity between the mobile RAN node and the server.

[0212] Example 10 includes an autonomous mobile RAN node according to Example 8, wherein the programmable circuit is used to execute a machine learning model to identify the second location.

[0213] Example 11 includes an autonomous mobile RAN node according to Example 10, wherein the programmable circuit is used to train the machine learning model based on the network performance before execution.

[0214] Example 12 includes an autonomous mobile RAN node according to Example 11, wherein the programmable circuit is used to train the machine learning model based on reinforcement learning.

[0215] Example 13 includes an autonomous mobile RAN node according to Example 8, wherein the autonomous mobile RAN node is a first autonomous mobile RAN node, and in order to identify the second location, the programmable circuit is used to negotiate with the second autonomous mobile RAN node to mitigate interference between the first autonomous mobile RAN node and the second autonomous mobile RAN node at the second location.

[0216] Example 14 includes the autonomous mobile RAN node of Example 8, wherein the second location is closer to the client device than the first location to enable the client device to save battery power.

[0217] Example 15 includes an autonomous mobile RAN node according to Example 8, wherein the workload is a second workload, the second workload has a data rate greater than the first workload, the first workload is received from the client device before the second workload, and the second location is closer to the client device than the first location.

[0218] Example 16 includes an autonomous mobile RAN node according to Example 8, wherein the client device has a higher power budget than the autonomous mobile RAN node, and the second location is closer to a device that implements a backhaul connection with the server than the first location.

[0219] Example 17 includes an autonomous mobile RAN node according to Example 8, wherein the programmable circuit includes one or more of the following: at least one of a central processing unit, a graphics processing unit, or a digital signal processor, the at least one of the central processing unit, the graphics processing unit, or the digital signal processor having a control circuit for controlling data movement within the programmable circuit, arithmetic and logic circuits so as to perform one or more first operations corresponding to machine-readable data, and one or more registers for storing the results of the one or more first operations and the machine-readable data in the mobile RAN node; a field programmable gate array (FPGA), the FPGA including logic gate circuits, multiple configurable interconnects, and storage circuits, the logic gate circuits and the multiple configurable interconnects are used to perform one or more second operations, and the storage circuits are used to store the results of the one or more second operations; or an application-specific integrated circuit (ASIC), the ASIC including logic gate circuits for performing one or more third operations.

[0220] Example 18 includes a method comprising: transmitting a workload to a server via a network through an autonomous mobile radio access network (RAN) node, initiating local processing of the workload through the autonomous mobile RAN node after losing connectivity with the server, and moving the autonomous mobile RAN node from a first location to a second location.

[0221] Example 19 includes the method according to Example 18, further comprising transmitting, by the autonomous mobile RAN node, the result of the local processing to the server to resume processing of the workload.

[0222] Example 20 includes a method according to Example 18, wherein the server begins processing the workload using an application, and the method further includes initiating the local processing using a local instance of the application on the autonomous mobile RAN node.

[0223] The attached claims are hereby incorporated into this detailed description by this reference. Although certain exemplary systems, devices, articles, and methods have been disclosed herein, the coverage of this patent is not limited thereto. On the contrary, this patent covers all systems, devices, articles, and methods that fully fall within the scope of the claims of this patent.

Claims

1. An autonomous mobile radio access network (RAN) node, comprising: Communication circuits; instruction; and A programmable circuit, the programmable circuit being used for: causing the communication circuit to transmit the workload to the server via the network; initiating local processing of the workload after connectivity with the server is lost; and The autonomous mobile RAN node is moved from a first location to a second location.

2. The autonomous mobile RAN node according to claim 1, wherein the programmable circuit is used to cause the communication circuit to transmit the result of the local processing to the server to resume processing of the workload.

3. The autonomous mobile RAN node according to claim 1 or 2, wherein: The server is used to start processing the workload using an application; and The programmable circuit is used to initiate the local processing using the local instance of the application.

4. The autonomous mobile RAN node of claim 1 , wherein the programmable circuit is configured to: receiving the workload from a client device; receiving a prediction from the server; and The prediction is forwarded to the client device.

5. The autonomous mobile RAN node according to claim 4, wherein: The prediction is a first prediction; and The programmable circuit is used to: making a second prediction after connectivity with the server is lost; and The second prediction is provided to the client device.

6. The autonomous mobile RAN node of claim 5, wherein the second prediction is based on at least one of: a) local processing of the workload or b) telemetry data from a client device.

7. An autonomous mobile radio access network (RAN) node, comprising: Interface circuit; instruction; and A programmable circuit, the programmable circuit being used for: causing a workload to be transferred from a client device to a server to process the workload; identifying a second location of the autonomous mobile RAN node relative to the first location based on network performance; as well as The autonomous mobile RAN node is caused to move from the first location to the second location.

8. The autonomous mobile RAN node of claim 7, wherein the network performance is based on: a) a Quality of Service (QoS) protocol, b) connectivity between the client device and the autonomous mobile RAN node, and c) connectivity between the autonomous mobile RAN node and the server.

9. The autonomous mobile RAN node of claim 7, wherein the programmable circuit is configured to execute a machine learning model to identify the second location.

10. An autonomous mobile RAN node according to claim 9, wherein the programmable circuit is used to train the machine learning model based on the network performance before execution.

11. The autonomous mobile RAN node of claim 10, wherein the programmable circuit is used to train the machine learning model based on reinforcement learning.

12. The autonomous mobile RAN node according to claim 7 or 8, wherein: The autonomous mobile RAN node is a first autonomous mobile RAN node; and To identify the second location, the programmable circuit is configured to negotiate with a second autonomous mobile RAN node to mitigate interference between the first autonomous mobile RAN node and the second autonomous mobile RAN node at the second location.

13. The autonomous mobile RAN node of claim 7, wherein the second location is closer to the client device than the first location to enable the client device to save battery power.

14. The autonomous mobile RAN node according to claim 7, wherein: The workload is a second workload; The second workload has a greater data rate than a first workload, the first workload being received from the client device before the second workload; and The second location is closer to the client device than the first location.

15. The autonomous mobile RAN node according to claim 7, wherein: The client device has a higher power budget than the autonomous mobile RAN node; and The second location is closer to equipment that implements a backhaul connection to the server than the first location.

16. A method comprising: transmitting the workload to the server via a network using an autonomous mobile radio access network (RAN) node; initiating local processing of the workload using the autonomous mobile RAN node after loss of connectivity with the server; as well as The autonomous mobile RAN node is moved from a first location to a second location.

17. The method of claim 16, further comprising transmitting, using the autonomous mobile RAN node, a result of the local processing to the server to resume processing of the workload.

18. The method of claim 16, wherein: The server is used to start processing the workload using an application; and The method includes initiating the local processing using a local instance of the application.

19. A method comprising: causing a workload to be transferred from a client device to a server to process the workload; identifying a second location of an autonomous mobile radio access network (RAN) node relative to the first location based on network performance; and The autonomous mobile RAN node is caused to move from the first location to the second location.

20. The method of claim 19, further comprising executing a machine learning model to identify the second location.

21. The method of claim 19, wherein: The autonomous mobile RAN node is a first autonomous mobile RAN node; and The method further includes identifying the second location by negotiating with a second autonomous mobile RAN node, the negotiation being for mitigating interference between the first autonomous mobile RAN node and the second autonomous mobile RAN node at the second location.

22. At least one computer readable medium comprising instructions for causing a programmable circuit to at least: transmitting the workload to the server via a network using an autonomous mobile radio access network (RAN) node; initiating local processing of the workload using the autonomous mobile RAN node after loss of connectivity with the server; and The autonomous mobile RAN node is moved from a first location to a second location.

23. The at least one computer-readable medium of claim 22, wherein the instructions cause the programmable circuitry to transmit the results of the local processing to the server using the autonomous mobile RAN node to resume processing of the workload.

24. At least one computer readable medium comprising instructions that, when executed, cause a programmable circuit to at least: causing a workload to be transferred from a client device to a server to process the workload; identifying a second location of an autonomous mobile radio access network (RAN) node relative to the first location based on network performance; and The autonomous mobile RAN node is caused to move from the first location to the second location.

25. At least one computer-readable medium according to claim 24, wherein: The autonomous mobile RAN node is a first autonomous mobile RAN node; and The instructions cause the programmable circuit to identify a second location by negotiating with a second autonomous mobile RAN node, the negotiation being for mitigating interference between the first autonomous mobile RAN node and the second autonomous mobile RAN node at the second location.