# US 12,602,314 B2 · Memory topology based expansion method and related device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,602,314 B2
- Document ID: US12602314B2
- Status: Granted
- Kind: B2
- Application number: 18/473,314
- Filed: 2023-09-25
- Published: 2024-01-11
- Granted: 2026-04-14
- Earliest claimed: 2021-04-08
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Hongwei Sun; Guangcheng Li; Peifeng Qin; Xiaoming Bao; Jun You; Xiuqiao Li
- Web page: https://patentgrep.com/patent/US12602314B2

## CPC

- G06F 12/023: {Free address space management}
- G06F 12/0284: {Multiple user address space allocation, e.g. using different base addresses (interprocessor communication G06F15/163)}
- G06F 9/5016: {the resource being the memory}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 2209/5011: Pool
- G06F 2212/1024: Latency reduction
- G06F 2212/154: Networked environment
- G06F 2212/254: Distributed memory
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In a memory expansion method, a first network device generates a memory topology based on memory requirement information of a target application and usage of a memory resource in a first memory pool, wherein the first memory pool is a logical memory comprising memory resources provided by a plurality of network devices, and the memory topology indicates capacities of different types of memory resources in one or more network devices that need to be occupied by the target application. The network device then establishes a second memory pool in the first memory pool based on the memory topology, wherein the second memory pool comprises a memory resource that is allowed to be used by the target application.

## Claims

### Claim 1

A memory expansion method performed by a first network device, comprising:
generating a memory topology based on memory requirement information of a target application and usage of a memory resource in a first memory pool, wherein the first memory pool is a logical memory comprising memory resources provided by a plurality of network devices, and the memory topology indicates capacities of different types of memory resources in the network devices that are to be occupied by the target application, wherein the different types of memory resources have different levels of performance, and the first memory pool forms a hierarchical memory pool according to the different types of memory resources, and wherein the memory topology includes a quantity of network devices that provide memory resource to be used by the target application, a type of the provided memory resource to be used by the target application, and a capacity of the provided memory resource to be used by the target application;
generating the memory requirement information based on related information of the target application, wherein the related information of the target application includes a type of the target application, an access characteristic of the target application, or an amount of input data of the target application, and the memory requirement information includes computing power, absolute memory usage, and a memory tiering configuration; and
establishing a second memory pool in the first memory pool based on the memory topology, wherein the second memory pool is a global memory space and is being divided into different memory segments, wherein the different memory segments have different performances,
wherein the second memory pool includes hierarchical memory resources from the hierarchical memory pool, and wherein the second memory pool comprises a memory resource that is allowed to be used by the target application.

### Claim 2 (depends on 1)

The memory expansion method according to claim 1, wherein the step of establishing the second memory pool comprises:
determining, from the first memory pool based on the memory topology, a memory resource that matches the memory topology; and
establishing the second memory pool based on the memory resource that matches the memory topology.

### Claim 3 (depends on 1)

The memory expansion method according to claim 1, wherein the second memory pool comprises a high-performance memory segment, a low-performance memory segment, a persistence capability segment, and a non-persistence capability segment.

### Claim 4 (depends on 1)

The memory expansion method according to claim 1, further comprising:
receiving data request information sent by a second network device running the target application, wherein the data request information is for requesting target data; and
sending target address information to the second network device based on the data request information, wherein the target address information comprises an address of a memory resource in the second memory pool and storing the target data, and the target address information indicates to the second network device to obtain the target data from the second memory pool by using memory semantics.

### Claim 5 (depends on 1)

The memory expansion method according to claim 1, further comprising:
establishing the first memory pool in a globally unified memory addressing manner.

### Claim 6 (depends on 1)

The memory expansion method according to claim 1, wherein the memory semantics comprises remote direct memory access (RDMA) or data streaming assessment (DSA).

### Claim 7 (depends on 1)

The memory expansion method according to claim 1, wherein the memory resource comprises a high bandwidth memory (HBM), a double data rate synchronous dynamic random access memory (DDR), a phase change memory (PCM), or solid state disk (SSD).

### Claim 8

A network device comprising:
a memory storing executable instructions; and
a processor configured to execute the executable instructions to:
generate a memory topology based on memory requirement information of a target application and usage of a memory resource in a first memory pool, wherein the first memory pool is a logical memory comprising memory resources provided by a plurality of network devices, and the memory topology indicates capacities of different types of memory resources in the network devices that need to be occupied by the target application, wherein the different types of memory resources have different levels of performance, and the first memory pool forms a hierarchical memory pool according to the different types of memory resources, and wherein the memory topology includes a quantity of network devices that provide memory resource to be used by the target application, a type of the provided memory resource to be used by the target application, and a capacity of the provided memory resource to be used by the target application;
generate the memory requirement information based on related information of the target application, wherein the related information of the target application includes a type of the target application, an access characteristic of the target application, or an amount of input data of the target application, and the memory requirement information includes computing power, absolute memory usage, and a memory tiering configuration; and
establish a second memory pool in the first memory pool based on the memory topology, wherein the second memory pool comprise hierarchical memory resources from the hierarchical memory pool, wherein the second memory pool comprises a memory resource that is allowed to be used by the target application, wherein the second memory pool is a global memory space and is being divided into different memory segments, and wherein the different memory segments have different performances.

### Claim 9 (depends on 8)

The network device according to claim 8, wherein the processor is configured to establish the second memory pool by:
determining, from the first memory pool based on the memory topology, a memory resource that matches the memory topology; and
establishing the second memory pool based on the memory resource that matches the memory topology.

### Claim 10 (depends on 8)

The network device according to claim 8, wherein the second memory pool comprises a high-performance memory segment, a low-performance memory segment, a persistence capability segment, and a non-persistence capability segment.

### Claim 11 (depends on 8)

The network device according to claim 8, wherein the processor is further configured to:
receive data request information sent by a second network device running the target application, wherein the data request information is for requesting target data; and
send target address information to the second network device based on the data request information, wherein the target address information comprises an address of a memory resource in the second memory pool that stores the target data, and the target address information indicates to the second network device to obtain the target data from the second memory pool by using memory semantics.

### Claim 12 (depends on 8)

The network device according to claim 8, wherein the processor is further configured to establish the first memory pool in a globally unified memory addressing manner.

### Claim 13 (depends on 8)

The network device according to claim 8, wherein the memory semantics comprises remote direct memory access (RDMA) or data streaming assessment (DSA).

### Claim 14 (depends on 8)

The network device according to claim 8, wherein the memory resource comprises a high bandwidth memory (HBM), a double data rate synchronous dynamic random access memory (DDR), a phase change memory (PCM), or a solid state disk (SSD).
