Memory management
Systems and methods in accordance with the present disclosure can prevent interference of memory operations being performed, for example, by high priority or high safety applications. In various examples, a memory management unit (MMU) can receive, from a client, a request to perform a process. The MMU can select, based at least on an identifier of at least one of the client or the process, a target memory manager of a plurality of memory managers of the MMU. The MMU can cause the target memory manager to perform a memory translation operation for the request.
1 . One or more processors comprising:
one or more circuits to:
receive, using a memory management unit (MMU) and from a client, a request to perform a process;
select, using the MMU and based at least on an identifier of the process being within a first range of identifiers, a target memory manager, from a plurality of memory managers of the MMU, that is associated with the first range of identifiers, at least one other memory manager of the plurality of memory managers being associated with a second range of identifiers different from the first range of identifiers; and
cause the target memory manager to perform a memory translation operation for the request.
2 . The one or more processors of claim 1 , wherein the one or more circuits are to cause the MMU to select the target memory manager responsive to the identifier corresponding to a priority level associated with the target memory manager.
3 . The one or more processors of claim 1 , wherein the plurality of memory managers comprise a plurality of translation control unit (TCU) instances.
4 . The one or more processors of claim 1 , wherein the plurality of memory managers comprise a plurality of groups of translation buffer units (TBUs).
5 . The one or more processors of claim 1 , wherein:
the identifier of the process includes an indication of a second identifier of the client; and
the one or more circuits are to select the target memory manager responsive to the second identifier of the client associating the process with a constant priority level, and wherein the constant priority level corresponds to the target memory manager.
6 . The one or more processors of claim 1 , wherein the process comprises at least one of a video encoding operation or a video decoding operation.
7 . The one or more processors of claim 1 , wherein the process is a first process having a first priority level, and the client is to request the MMU to perform translation for a second process having a second priority level greater than the first priority level.
8 . The one or more processors of claim 1 , wherein the one or more circuits comprise a system on a chip (SoC) that includes the MMU, and wherein the MMU is a system memory management unit (SMMU).
9 . The one or more processors of claim 1 , wherein the one or more processors are comprised in at least one of:
a control system for an autonomous or semi-autonomous machine;
a perception system for an autonomous or semi-autonomous machine;
a system incorporating one or more virtual machines (VMs);
a system implemented using an edge device;
a system implemented using a robot;
a system for generating synthetic data;
a system for performing simulation operations;
a system for performing collaborative content creation for 3D assets;
a system for performing conversational AI operations;
a system comprising one or more large language models (LLMs);
a system comprising one or more vision language models (VLMs);
a system for performing digital twin operations;
a system for performing light transport simulation;
a system for performing deep learning operations;
a system implemented at least partially in a data center; or
a system implemented at least partially using cloud computing resources.
10 . A system, comprising:
a plurality of memory managers; and
a memory management unit (MMU), comprising one or more circuits to:
receive, from a client, a request to perform a process;
select, based at least on an identifier of the process being within a first range of identifiers, a target memory manager, from the plurality of memory managers, that is associated with the first range of identifiers, at least one other memory manager of the plurality of memory managers associated with a second range of identifiers different from the first range of identifiers; and
cause the target memory manager to perform a memory translation operation associated with the request.
11 . The system of claim 10 , wherein the one or more circuits select the target memory manager responsive to the identifier corresponding to a priority level associated with the target memory manager.
12 . The system of claim 10 , wherein the plurality of memory managers comprise a plurality of translation control unit (TCU) instances.
13 . The system of claim 10 , wherein the plurality of memory managers comprise a plurality of groups of translation buffer units (TBUs).
14 . The system of claim 10 , wherein:
the identifier of the process includes an indication of a second identifier of the client; and
the one or more circuits select the target memory manager responsive to the second identifier of the client associating the process with a constant priority level, and wherein the constant priority level corresponds to the target memory manager.
15 . The system of claim 10 , wherein the one or more circuits comprise a system on a chip (SoC) that includes the MMU, and wherein the MMU is a system memory management unit (SMMU).
16 . A method, comprising:
receiving, using one or more processing circuits of a memory management unit (MMU), a request from a client to perform a process;
selecting, using the one or more processing circuits of the MMU and based at least on an identifier of the process being within a first range of identifiers, a target memory manager, from a plurality of memory managers of the MMU, that is associated with the first range of identifiers, at least one other memory manager of the plurality of memory managers being associated with a second of identifiers different from the first range of identifiers; and
causing, using the one or more processing circuits of the MMU, the target memory manager to perform a memory translation operation associated with the request.
17 . The method of claim 16 , comprising:
selecting, using the one or more processing circuits of the MMU, the target memory manager responsive to the identifier corresponding to a priority level corresponding to the target memory manager.
18 . The method of claim 16 , wherein the plurality of memory managers comprise:
a plurality of translation control unit (TCU) instances; and
a plurality of groups of translation buffer units (TBUs).