# US 12,761,939 B2 · Secure processing in a data transform accelerator

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

- Number: US 12,761,939 B2
- Document ID: US12761939B2
- Status: Granted
- Kind: B2
- Application number: 18/437,221
- Filed: 2024-02-08
- Published: 2024-08-15
- Granted: 2026-10-13
- Earliest claimed: 2023-02-10
- Assignees: MaxLinear, Inc.
- Applicants: Maxlinear, Inc.
- Inventors: Pinaki Shankar Chanda; Michael Ray Ham
- Web page: https://patentgrep.com/patent/US12761939B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 12/10: Address translation
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F 2212/251: Local memory within processor subsystem
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method includes obtaining an address associated with a data transform command. The address may be disposed in a container located in a first memory. The method also includes obtaining metadata associated with the data transform command. The data transform command may be disposed in the first memory and may be pointed to by the address. A first portion of the metadata may be public data and a second portion of the metadata may be sensitive data. The method further includes storing the public data in the first memory and the sensitive data in a second memory disposed internally to a data transform accelerator. The method also includes configuring a data transform pipeline in the data transform accelerator based on the public data in the first memory and the sensitive data in the second memory.

## Claims

### Claim 1

A method, comprising:
obtaining an address associated with a data transform command, the address disposed in a container located in a first memory;
obtaining metadata associated with the data transform command disposed in the first memory pointed to by the address, wherein a first portion of the metadata is public data and a second portion of the metadata is sensitive data;
storing the public data in the first memory and the sensitive data in a second memory, the second memory being disposed internally to a data transform accelerator; and
configuring a data transform pipeline in the data transform accelerator based on the public data in the first memory and the sensitive data in the second memory.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first memory is disposed in an external device relative to the data transform accelerator.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first memory is a first partition of a device memory and the second memory is a second partition of the device memory and the first memory and the second memory are contiguous within the device memory.

### Claim 4 (depends on 1)

The method of claim 1, wherein in response to the second portion of the metadata satisfying a threshold size relative to the second memory, generating an error and not storing the second portion of the metadata in the second memory.

### Claim 5 (depends on 1)

The method of claim 1, further comprising in response to obtaining software instructions from an external device:
obtaining input data associated with a first descriptor included in the data transform command;
performing one or more operations to the input data using the data transform pipeline in the data transform accelerator in accordance with the first portion of the metadata and the second portion of the metadata; and
outputting results from the one or more operations into an output buffer.

### Claim 6 (depends on 5)

The method of claim 5, wherein the external device is unable to access the sensitive data in the second memory.

### Claim 7 (depends on 5)

The method of claim 5, wherein the one or more operations generate intermediate data, and the intermediate data is stored in the second memory.

### Claim 8 (depends on 7)

The method of claim 7, wherein the intermediate data is sensitive data.

### Claim 9 (depends on 5)

The method of claim 5, further comprising in response to the software instructions pointing to a buffer disposed in the second memory, generating an error and transmitting the error to the external device.

### Claim 10

A data transform accelerator comprising:
a memory having a first partition and a second partition; and
one or more data transform engines configured to:
obtain an address disposed in a container in a second memory, the address being associated with a data transform command;
obtain data and associated metadata, including sensitive data and public data, associated with the data transform command;
direct the sensitive data to be stored in the first partition;
direct the public data to be stored in the second partition;
cause the one or more data transform engines to be arranged into a data transform pipeline based on the public data and the sensitive data; and
direct the data to be transformed into transformed data using the data transform pipeline.

### Claim 11 (depends on 10)

The data transform accelerator of claim 10, wherein the second memory is disposed external to the data transform accelerator.

### Claim 12 (depends on 10)

The data transform accelerator of claim 10, wherein the first partition and the second partition are contiguous within the memory.

### Claim 13 (depends on 10)

The data transform accelerator of claim 10, wherein the data transform command comprises one or more source descriptors indicating a memory location associated with the sensitive data and the public data.

### Claim 14 (depends on 10)

The data transform accelerator of claim 10, wherein the data transform command comprises one or more destination descriptors to store the transformed data.

### Claim 15 (depends on 10)

The data transform accelerator of claim 10, wherein in response to receiving a request from an external device to obtain the sensitive data from the first partition, the processor is further configured to:
restrict the external device from obtaining the sensitive data;
generate an error; and
transmit the error to the external device.

### Claim 16 (depends on 10)

The data transform accelerator of claim 10, wherein in response to obtaining the sensitive data associated with a data transform operation, the processor is further configured to compare a sensitive data size to a first partition size.

### Claim 17 (depends on 16)

The data transform accelerator of claim 16, wherein in response to the sensitive data size being greater than the first partition size, the processor is further configured to:
abort the data transform operation; and
transmit an error to an external device associated with the data transform operation.

### Claim 18 (depends on 10)

The data transform accelerator of claim 10, wherein in response to intermediate data being generated in association with a data transform operation, the processor is further configured to compare an intermediate data size to a first partition size.

### Claim 19 (depends on 18)

The data transform accelerator of claim 18, wherein in response to the intermediate data size being greater than the first partition size, the processor is further configured to:
abort the data transform operation; and
transmit an error to an external device associated with the data transform operation.

### Claim 20 (depends on 18)

The data transform accelerator of claim 18, wherein the intermediate data is sensitive data.
