Systems and methods for adaptive cache configuration
Systems and methods for a storage system are disclosed. The storage system includes a first storage medium, a processor configured to communicate with the first storage medium, and a memory coupled to the processor. The memory stores instructions that, when executed by the processor, cause the processor to: receive a request for accessing data; search the first storage medium based on the request; receive a command from a computing device, the command including a configuration parameter; and based on the command, modify architecture of the first storage medium from a first architecture to a second architecture corresponding to the configuration parameter.
1 . A storage system comprising:
a first storage medium;
a processor configured to communicate with the first storage medium; and
a memory coupled to the processor, the memory storing instructions that, when executed by the processor, cause the processor to:
receive, from an application executed by a computing device, a request for accessing data, wherein the request is associated with a physical address;
generate a cache address based on the physical address and further based on a first architecture of the first storage medium;
based on generating the cache address:
search the first storage medium for the cache address;
based on a result of the search, store at least a portion of the cache address in the first storage medium in association with the data;
based on the search of the first storage medium, receive a command from the computing device, the command including a configuration parameter, wherein the computing device is configured to select the configuration parameter based on a runtime characteristic of the application; and
based on the command, modify architecture of the first storage medium from the first architecture to a second architecture corresponding to the configuration parameter.
2 . The storage system of claim 1 , wherein the first storage medium includes a cache memory.
3 . The storage system of claim 2 , wherein the configuration parameter identifies at least one of a data placement characteristic or data replacement characteristic.
4 . The storage system of claim 3 , wherein the data placement characteristic includes a characteristic of at least one of a direct mapped cache, fully associative cache, or set associative cache.
5 . The storage system of claim 3 , wherein the data replacement characteristic includes a characteristic of at least one of a least recently used (LRU) algorithm or a least frequently used (LFU) algorithm.
6 . The storage system of claim 2 , wherein the configuration parameter identifies at least one of a cache block size or cache line size.
7 . The storage system of claim 1 , wherein the request is associated with a memory address, and the instructions further cause the processor to translate the memory address to an address for the first storage medium based on the second architecture of the first storage medium.
8 . The storage system of claim 1 , wherein the instructions further cause the processor to remove the data in the first storage medium based on the second architecture of the first storage medium.
9 . The storage system of claim 1 , wherein the command from the computing device is based on a detected data access pattern.
10 . The storage system of claim 9 , wherein the computing device is configured to identify the configuration parameter based on the detected data access pattern.
11 . A method comprising:
receiving from an application executed by a computing device, a request for accessing data, wherein the request is associated with a physical address;
generating a cache address based on the physical address and further based on a first architecture of a first storage medium;
based on generating the cache address:
searching the first storage medium for the cache address;
based on a result of the searching, storing at least a portion of the cache address in the first storage medium in association with the data;
based on searching the first storage medium, receiving a command from the computing device, the command including a configuration parameter, wherein the computing device is configured to select the configuration parameter based on a runtime characteristic of the application including a characteristic associated with the search; and
based on the command, modifying architecture of the first storage medium from the first architecture to a second architecture corresponding to the configuration parameter.
12 . The method of claim 11 , wherein the first storage medium includes a cache memory.
13 . The method of claim 12 , wherein the configuration parameter identifies at least one of a data placement characteristic or data replacement characteristic.
14 . The method of claim 13 , wherein the data placement characteristic includes a characteristic of at least one of a direct mapped cache, fully associative cache, or set associative cache.
15 . The method of claim 13 , wherein the data replacement characteristic includes a characteristic of at least one of a least recently used (LRU) algorithm or a least frequently used (LFU) algorithm.
16 . The method of claim 12 , wherein the configuration parameter identifies at least one of a cache block size or cache line size.
17 . The method of claim 11 , wherein the request is associated with a memory address, and the method further comprises:
translating the memory address to an address for the first storage medium based on the second architecture of the first storage medium.
18 . The method of claim 11 further comprising:
removing the data in the first storage medium based on the second architecture of the first storage medium.
19 . The method of claim 11 , wherein the command from the computing device is based on a detected data access pattern.
20 . The method of claim 19 , wherein the computing device identifies the configuration parameter based on the detected data access pattern.