Memory controller firmware virtualization
AssigneeMicron Technology, Inc.
InventorsNiccolò Izzo, Danilo Caraccio
Life of this patent
Estimating the term…
Abstract
In some aspects, the techniques described herein relate to a device including: a datapath facilitating data transfers between a host device and a storage device; a firmware storage device storing a plurality of firmware tasks; and a processor, the processor including a hypervisor configured to: execute a given firmware task in the plurality of firmware tasks in a container, and control access to the datapath based on tags associated with instructions of the given firmware task.
Claims20
A device comprising:
- a datapath facilitating data transfers between a host device and a storage device;
- a firmware storage device storing a plurality of firmware tasks;
- and
- a processor, the processor comprising a hypervisor configured to:
- execute a given firmware task in the plurality of firmware tasks in a container, wherein the container isolates the given firmware task from other firmware tasks of the plurality of firmware tasks by restricting jump instructions to memory addresses sharing a same tag value, and
- control access to the datapath based on tags associated with instructions of the given firmware task, wherein the tags comprise a subset of bits of memory addresses in the firmware storage device, wherein each firmware task of the plurality of firmware tasks is assigned a unique tag value embedded in upper bits of the memory addresses storing the firmware task's instructions, and wherein the processor queries a lookup table using the tag to determine whether to route data access to a cryptographic datapath or a plaintext datapath.
A method comprising:
- loading, by a processor, a firmware instruction, the firmware instruction associated with a first memory address;
- determining, by the processor, that the firmware instruction is a legal jump based on a first tag associated with the firmware instruction, wherein determining that the firmware instruction is a legal jump comprises verifying that the first tag matches a tag embedded in a target address of the firmware instruction, the first tag and the tag each embedded in upper bits of respective memory addresses in a firmware storage device;
- determining, by the processor, a type of datapath access for the firmware instruction based on the first tag;
- and
- handling, by the processor, the firmware instruction based on the type of datapath access, wherein the tags comprise a subset of bits of memory addresses in the firmware storage device, wherein each firmware task of the plurality of firmware tasks is assigned a unique tag value embedded in upper bits of the memory addresses storing the firmware task's instructions, and wherein the processor queries a lookup table using the tag to determine whether to route data access to a cryptographic datapath or a plaintext datapath.
A non-transitory computer-readable storage medium for tangibly storing computer program instructions capable of being executed by a computer processor, the computer program instructions defining steps of:
- loading a firmware instruction, the firmware instruction associated with a first memory address;
- determining that the firmware instruction is a legal jump based on a first tag associated with the firmware instruction, wherein determining that the firmware instruction is a legal jump comprises verifying that the first tag matches a tag embedded in a target address of the firmware instruction, the first tag and the tag each embedded in upper bits of respective memory addresses in a firmware storage device;
- determining a type of datapath access for the firmware instruction based on the first tag;
- and
- handling the firmware instruction based on the type of datapath access, wherein the tags comprise a subset of bits of memory addresses in the firmware storage device, wherein each firmware task of the plurality of firmware tasks is assigned a unique tag value embedded in upper bits of the memory addresses storing the firmware task's instructions, and wherein the processor queries a lookup table using the tag to determine whether to route data access to a cryptographic datapath or a plaintext datapath.
Dependencies are inferred from the claim text.