Search

US-12619545-B2 - Systems and methods for heat map generation and operation

US12619545B2US 12619545 B2US12619545 B2US 12619545B2US-12619545-B2

Abstract

A method of prefetching from a storage device connected to a host device, the method including: determining, by the storage device, a first region in a first heat map of the storage device, the first region in the first heat map including an address associated with an instruction received by the storage device from the host device; generating, by the storage device, one or more a prefetch request based on a temperature of the first region of the first heat map, the temperature of the first region of the first heat map corresponding to a number of times the first region of the first heat map is accessed by the host device; prefetching, by the storage device, data or instructions from the first region of the first heat map based on the prefetch request; and updating, a second heat map based on the instruction received from the host device.

Inventors

  • Tung Pham
  • Andrew Chang

Assignees

  • SAMSUNG ELECTRONICS CO., LTD.

Dates

Publication Date
20260505
Application Date
20240827

Claims (18)

  1. 1 . A method of prefetching from a storage device connected to a host device, the method comprising: determining, by the storage device, a first region in a first heat map of the storage device, the first region in the first heat map comprising an address associated with an instruction received by the storage device from the host device; generating, by the storage device, a prefetch request based on a temperature of the first region of the first heat map, the temperature of the first region of the first heat map corresponding to a number of times the first region of the first heat map is accessed by the host device; prefetching, by the storage device, data or instructions stored at an address of the storage device corresponding with the first region of the first heat map based on the prefetch request and associated with the instruction received by the storage device; updating, by the storage device, a second heat map based on the instruction received from the host device; determining, by the storage device, based on information received from the host device that a rate of the prefetched data or instructions from the first region of the first heat map that are used by the host device is less than a threshold value; and switching, by the storage device, the second heat map with the first heat map.
  2. 2 . The method of claim 1 , further comprising: determining, by the storage device, a first region in the second heat map of the storage device, the first region in the second heat map comprising the address associated with the instruction received from the host device; and incrementing, by the storage device, a temperature counter of the first region of the second heat map, a value of the temperature counter representing the temperature of the first region of the second heat map, and updating, by the storage device, the second heat map based on the value of the temperature counter of the first region of the second heat map, wherein the temperature of the first region of the second heat map corresponds to a number of times the first region of the second heat map is accessed by the host device.
  3. 3 . The method of claim 2 , wherein the first region in the first heat map and the first region of the second heat map are determined based on corresponding region IDs of the first region in the first heat map and the first region of the second heat map.
  4. 4 . The method of claim 1 , wherein the prefetching further comprising sending, by the storage device, the prefetched data or instructions from the first region of the first heat map to the host device; and wherein the first heat map and the second heat map represent heat maps of the storage device at different times.
  5. 5 . The method of claim 1 , wherein the storage device is configured to update the second heat map based on the instruction received from the host device during a time period determined by the storage device.
  6. 6 . The method of claim 1 , wherein the instruction from the host device is received via a cache-coherent interconnect coupled between the host device and the storage device.
  7. 7 . The method of claim 1 , wherein the storage device comprises at least one of a finite state machine or a storage device controller.
  8. 8 . The method of claim 1 , wherein a size of each of a plurality of regions in the first heat map is different from a size of each of a plurality of regions in the second heat map.
  9. 9 . A system comprising: a host device; and a storage device communicatively coupled to the host device via a bus, the storage device being configured to: determine a first region in a first heat map of the storage device based on an instruction received by the storage device from the host device; generate a prefetch request based on a number of times the first region of the first heat map is accessed by the host device; prefetch data or instructions stored at an address of the storage device corresponding with the first region of the first heat map based on the prefetch request and associated with the instruction received by the storage device; send the prefetched data or instructions from the first region of the first heat map to the host device; update a second heat map of the storage device based on the instruction received from the host device; determine based on information received from the host device that a rate of the prefetched data or instructions from the first region of the first heat map that are used by the host device is less than a threshold value; and switch the second heat map with the first heat map based on determining that the rate of the prefetched data or instructions from the first region of the first heat map is less than the threshold value.
  10. 10 . The system of claim 9 , wherein the first region in the first heat map comprises an address associated with the instruction received by the storage device from the host device.
  11. 11 . The system of claim 9 , wherein the storage device is further configured to: determine a first region in the second heat map of the storage device, the first region in the second heat map comprising an address associated with the instruction received from the host device; and increment a temperature counter of the first region of the second heat map, a value of the temperature counter representing a temperature of the first region of the second heat map, and update the second heat map based on the value of the temperature counter of the first region of the second heat map, wherein the temperature of the first region of the second heat map corresponds to a number of times the first region of the second heat map is accessed by the host device.
  12. 12 . The system of claim 11 , wherein the first region in the first heat map and the first region of the second heat map are determined based on corresponding region IDs of the first region in the first heat map and the first region of the second heat map.
  13. 13 . The system of claim 9 , wherein the first heat map and the second heat map represent heat maps of the storage device at different times.
  14. 14 . The system of claim 9 , wherein the storage device is configured to update the second heat map based on the instruction received from the host device during a time period determined by the storage device.
  15. 15 . The system of claim 9 , wherein the bus comprises a cache-coherent interconnect coupled between the host device and the storage device.
  16. 16 . The system of claim 9 , wherein the storage device comprises at least one of a finite state machine or a storage device controller, and the storage device comprises a solid state drive.
  17. 17 . A non-transitory computer readable medium comprising stored instructions, which when executed by a storage device, cause the storage device to: determine a first region in a first heat map of the storage device based on an instruction received by the storage device from a host device connected to the storage device; generate a prefetch request based on a number of times the first region of the first heat map is accessed by the host device; prefetch data or instructions stored at an address of the storage device corresponding with the first region of the first heat map based on the prefetch request and associated with the instruction received by the storage device; send the prefetched data or instructions from the first region of the first heat map to the host device; update a second heat map of the storage device based on the instruction received from the host device; determine based on information received from the host device that a rate of the prefetched data or instructions from the first region of the first heat map that are used by the host device is less than a threshold value; and switch the second heat map with the first heat map based on determining that the rate of the prefetched data or instructions from the first region of the first heat map is less than the threshold value.
  18. 18 . The non-transitory computer readable medium of claim 17 , wherein the storage device comprises at least one of a finite state machine or a storage device controller, and the storage device comprises a solid state drive.

Description

CROSS REFERENCE TO RELATED APPLICATION The present application claims priority to and the benefit of U.S. Provisional Patent Application No. 63/573,377, filed on Apr. 2, 2024, entitled “HW-BASED HEAT MAP GENERATION AND OPERATION,” the entire disclosure of which is incorporated by reference herein. BACKGROUND 1. Field Aspects of embodiments of the present disclosure relate to memory devices. More specifically, aspects of embodiments of the present disclosure relate to systems and methods for heat map generation and operation for memory devices. 2. Description of the Related Art Computer processors may use techniques like prefetching by retrieving instructions and/or data from their original storage location in a slower memory (e.g., a solid state drive (SSD)) to a faster local memory (e.g. a cache or a dynamic random access memory (DRAM)) ahead of use to increase performance. The above information in the background section is only for enhancement of understanding of the background of the technology and therefore it should not be construed as admission of existence or relevancy of the prior art. SUMMARY This summary is provided to introduce a selection of features and concepts of embodiments of the present disclosure that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in limiting the scope of the claimed subject matter. One or more of the described features may be combined with one or more other described features to provide a workable device. In one or more embodiments, a method of prefetching from a storage device connected to a host device, the method including: determining, by the storage device, a first region in a first heat map of the storage device, the first region in the first heat map including an address associated with an instruction received by the storage device from the host device; generating, by the storage device, a prefetch request based on a temperature of the first region of the first heat map, the temperature of the first region of the first heat map corresponding to a number of times the first region of the first heat map is accessed by the host device; prefetching, by the storage device, data or instructions from the first region of the first heat map based on the prefetch request; and updating, by the storage device, a second heat map based on the instruction received from the host device. In one or more embodiments, the method further including: determining, by the storage device, based on information received from the host device that a rate of the prefetched data or instructions from the first region of the first heat map that are used by the host device is less than a threshold value; and switching, by the storage device, the second heat map with the first heat map. In one or more embodiments, the method further including: determining, by the storage device, a first region in the second heat map of the storage device, the first region in the second heat map including the address associated with the instruction received from the host device; and incrementing, by the storage device, a temperature counter of the first region of the second heat map, a value of the temperature counter representing the temperature of the first region of the second heat map, and updating, by the storage device, the second heat map based on the value of the temperature counter of the first region of the second heat map, wherein the temperature of the first region of the second heat map corresponds to a number of times the first region of the second heat map is accessed by the host device. In one or more embodiments, the first region in the first heat map and the first region of the second heat map are determined based on corresponding region IDs of the first region in the first heat map and the first region of the second heat map. In one or more embodiments, wherein the prefetching further includes sending, by the storage device, the prefetched data or instructions from the first region of the first heat map to the host device; and the first heat map and the second heat map represent heat maps of the storage device at different times. In one or more embodiments, the storage device is configured to update the second heat map based on the instruction received from the host device during a time period determined by the storage device. In one or more embodiments, the instruction from the host device is received via a cache-coherent interconnect coupled between the host device and the storage device. In one or more embodiments, the storage device including at least one of a finite state machine or a storage device controller. In one or more embodiments, a size of each of a plurality of regions in the first heat map is different from a size of each of a plurality of regions in the second heat map. In one or more embodiments, a system including: a host device; and a storage d