Dynamic priority inversion for host memory buffer handling based on a system state
AssigneeSanDisk Technologies LLC
InventorsDinesh Kumar Agarwal, Amit Sharma
Life of this patent
Estimating the term…
Abstract
A storage device may dynamically adjust priorities for types of data placed on a bus between the storage device and a host to optimize a bus pipeline and maximize the performance on the storage device, while minimizing inefficiencies and latencies on the storage device. A controller on the storage device may access data on a host memory buffer (HMB) and identify different types of data on a bus between the storage device and a host. The controller assigns priorities to the types of data placed on the bus and processes the data on the bus according to an assigned priority. The controller also determines a current system state and adjusts the priorities assigned to the types of data based on the current system state.
Claims20
A storage device to dynamically adjust priorities for types of data placed on a bus between the storage device and a host, the storage device comprises:
- a memory device to store data;
- and
- a controller to store control data on a host memory buffer (HMB) and to access the control data stored on the HMB, wherein the control data is sent between the host and the storage device via the bus between the host and the storage device, identify different types of data on the bus between the storage device and the host, assign priorities to the types of data placed on the bus based on data types, wherein a different priority is assigned to each data type, process the data on the bus according to an assigned priority, determine a current system state, and adjust the priorities assigned to the types of data based on the current system state.
A method on a storage device for dynamically adjusting priorities for types of data placed on a bus between the storage device and a host, the storage device comprises a controller to execute the method comprising:
- storing control data on a host memory buffer (HMB) and accessing control data stored on the (HMB), wherein the control data is sent between the host and the storage device via the bus between the host and the storage device;
- identifying different types of data on the bus between the storage device and the host;
- assigning priorities to the types of data placed on the bus based on data types, wherein a different priority is assigned to each data type;
- processing the data on the bus according to an assigned priority;
- determining a current system state;
- and
- adjusting the priorities assigned to the types of data based on the current system state.
A method on a storage device for dynamically adjusting priorities for types of data placed on a bus between the storage device and a host, the storage device comprises a controller to execute the method comprising:
- storing control data on a host memory buffer (HMB) and accessing control data on the HMB, wherein the control data is sent between the host and the storage device via the bus between the host and the storage device;
- identifying different types of data on the bus between the storage device and the host;
- assigning priorities to the types of data placed on the bus based on data types, wherein a different priority is assigned to each data type;
- processing the types of data on the bus in a weighted round robin fashion;
- determining a current system state;
- and
- adjusting the priorities assigned to the types of data based on at least one of data size, command size, a number of outstanding direct memory accesses for the HMB, and the current system state.
Dependencies are inferred from the claim text.