# US 12,602,332 B1 · Distributed page table, memory map and routing table for multiple node computing systems

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

- Number: US 12,602,332 B1
- Document ID: US12602332B1
- Status: Granted
- Kind: B1
- Application number: 18/911,365
- Filed: 2024-10-10
- Published: 2026-04-16
- Granted: 2026-04-14
- Earliest claimed: 2024-10-10
- Assignees: NVIDIA Corporation
- Applicants: NVIDIA Corporation
- Inventors: Isaac Gelado Fernandez
- Web page: https://patentgrep.com/patent/US12602332B1

## CPC

- G06F 12/1072: Decentralised address translation, e.g. in distributed shared memory systems
- G06F 12/109: for multiple virtual address spaces, e.g. segmentation (G06F12/1036 takes precedence)
- G06F 2212/154: Networked environment
- G06F 2212/657: Virtual address space management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure relates to a shared virtual address space for multi-node computing systems. The shared virtual address space includes a plurality of virtual addresses (e.g. virtual memory pages). A distributed, shared physical memory of the multi-node computing system is formed by combining the physical memory resources of the plurality of nodes. The shared virtual address space enables different nodes of a multi-node computing system to maintain an identical assignment of virtual addresses to physical memory addresses.

## Claims

### Claim 1

A multi-node computing system configured to maintain a shared virtual address space, the multi-node node computing system comprising:
a plurality of nodes, each respective node of the plurality of nodes comprising:
processing circuitry configured to:
maintain a respective subset of a distributed page table, the distributed page table providing a mapping of virtual addresses of the shared virtual address space to physical memory locations of a distributed physical memory,
maintain a respective subset of a distributed virtual memory map, the distributed virtual memory map providing, for each respective virtual address in the shared virtual address space, an indication of whether the respective virtual address is in use or available, and
maintain a routing table storing a node ID and a network address of at least one other node of the plurality of nodes; and
memory configured to store the respective subset of the distributed page table and the respective subset of the distributed virtual memory map.

### Claim 2 (depends on 1)

The multi-node computing system according to claim 1, wherein the distributed page table is a distributed hash table and the distributed virtual memory map is a distributed trie.

### Claim 3 (depends on 2)

The multi-node computing system according to claim 2, wherein the respective subset of the distributed hash table and the respective subset of the distributed trie are maintained by a kernel-level component of an operating system of the respective node, and wherein the respective subset of the distributed page table and the respective subset of the distributed memory map are stored in a kernel space of the memory.

### Claim 4 (depends on 2)

The multi-node computing system according to claim 2, wherein the plurality of nodes are arranged in a hierarchy established during an initialization stage of a process for creating the distributed trie.

### Claim 5 (depends on 4)

The multi-node computing system according to claim 4, wherein each node of the plurality of nodes has, in the hierarchy, a single parent node and no more than two child nodes.

### Claim 6 (depends on 1)

The multi-node computing system according to claim 1, wherein the distributed physical memory comprises physical memory of each respective node of the plurality of nodes.

### Claim 7 (depends on 1)

The multi-node computing system according to claim 1, wherein the processing circuitry configured to maintain the subset of the distributed page table and the subset of the distributed memory map is a central processing unit (CPU).

### Claim 8 (depends on 7)

The multi-node computing system according to claim 7, each respective node of the plurality of nodes further comprising a network interface, the multi-node computing system further comprising a network switch configured to interconnect CPUs of different respective nodes.

### Claim 9 (depends on 6)

The multi-node computing system according to claim 6, wherein the CPUs of the different respective nodes are configured to communicate via a peer-to-peer (P2P) network, each respective CPU being configured to communicate with other CPUs using network addresses stored in the respective routing table corresponding to the respective CPU.

### Claim 10 (depends on 1)

The multi-node computing system according to claim 1, each respective node of the plurality of nodes comprising a plurality of graphics processing units (GPUs).

### Claim 11 (depends on 10)

The multi-node computing system according to claim 10, further comprising a GPU interconnect switch configured to interconnect GPUs of different respective nodes.

### Claim 12

A computing node for a multi-node computing system configured to maintain a shared virtual address space, the computing node comprising:
a central processing unit (CPU), configured to:
maintain a respective subset of a distributed page table, the distributed page table providing a mapping of virtual addresses of the shared virtual address space to physical memory locations of a distributed physical memory,
maintain a respective subset of a distributed memory map, the distributed memory map providing, for each respective virtual address in the shared virtual address space, an indication of whether the respective virtual address is in use or available, and
maintain a routing table storing a node ID and a network address of at least one other node of the plurality of nodes; and
a network interface configured to communicate with a CPU of at least one additional computing node of the multi-node computing system.

### Claim 13 (depends on 12)

The computing node according to claim 12, wherein the distributed page table is a distributed hash table and the distributed virtual memory map is a distributed trie.

### Claim 14 (depends on 13)

The computing node according to claim 13, wherein the respective subset of the distributed hash table and the respective subset of the distributed trie are maintained by a kernel-level component of an operating system of the respective node, and wherein the respective subset of the distributed page table and the respective subset of the distributed memory map are stored in kernel space.

### Claim 15 (depends on 12)

The computing node according to claim 12, wherein the CPU is configured to construct the routing table via a bootstrapping process, the bootstrapping process comprising:
broadcasting a master node identity request message;
receiving a message indicating a routing address and a node ID of a master node;
computing a distance to the master node; and
storing, in the routing table and based on the distance to the master node, the routing address and the node ID of the master node.

### Claim 16 (depends on 12)

The computing node according to claim 12, further comprising a plurality of graphics processing units (GPUs), wherein the plurality of GPUs are interconnected via GPU interconnects.

### Claim 17 (depends on 16)

The computing node according to claim 16, wherein the plurality of GPUs are configured to be further interconnected to GPUs of at least one additional computing node.

### Claim 18

A method for providing a shared virtual address space for a multi-node computing system including a plurality of nodes, each respective node of the plurality of nodes including one or more processors and a respective physical memory, the method comprising:
providing a first distributed data structure, the first distributed data structure being configured to maintain a mapping of virtual addresses of the shared virtual address space to physical memory locations in a shared physical memory; and
providing a second distributed data structure, the second distributed data structure being configured to store, for each virtual address in the shared virtual address space, an indication of whether the respective virtual address is in use or available,
wherein the providing the first distributed data structure comprises assigning, to each respective node of the plurality of nodes, a respective subset of the first distributed data structure, and
wherein the providing the second distributed data structure comprises assigning, to each respective node of the plurality of nodes, a respective subset of the second distributed data structure.

### Claim 19 (depends on 18)

The method according to claim 18, wherein the first distributed data structure is a shared page table in the form of a distributed hash table and the second distributed data structure is a shared memory map in the form of a distributed trie.

### Claim 20 (depends on 19)

The method according to claim 19, wherein each respective subset of the distributed hash table is maintained by a kernel-level component of an operating system of the respective node to which the respective subset of the distributed hash table is assigned, and
wherein each respective subset of the distributed trie is maintained by a kernel-level component of an operating system of the respective node to which the respective subset of the distributed trie is assigned.
