| CPC G06F 3/0611 (2013.01) [G06F 3/0656 (2013.01); G06F 3/0679 (2013.01)] | 15 Claims |

|
1. A data storage device, comprising:
a controller, wherein the controller comprises a controller memory buffer (CMB) and a CMB-host memory buffer (HMB) scheduler, and wherein the CMB-HMB scheduler is configured to:
associate both the CMB and an HMB of a host device as a single buffer pool, wherein the single buffer pool comprises a plurality of CMB buffers and a plurality of HMB buffers;
allocate either a CMB buffer from the plurality of CMB buffers or an HMB buffer from the plurality of HMB buffers, wherein the allocating is based on a tradeoff between latency and performance between using the CMB or using the HMB to store data;
determine that an access request to write data to the HMB has been initiated;
determine whether a utilization of the CMB is less than a utilization threshold;
allocate the CMB buffer for the access request when the utilization of the CMB is less than the utilization threshold; and
issue a CMB write command to write the data to the CMB instead of the HMB.
|