USRE49818EActiveUtility

Information processing method in a multi-level hierarchical memory system

43
Assignee: KIOXIA CORPPriority: May 13, 2010Filed: Jul 27, 2020Granted: Jan 30, 2024
Est. expiryMay 13, 2030(~3.8 yrs left)· nominal 20-yr term from priority
G06F 12/0866Y02D10/00G06F 12/0868G06F 2212/222G06F 2212/284G06F 12/0897G06F 2212/3042G06F 2212/1004G06F 2212/1024
43
PatentIndex Score
0
Cited by
62
References
44
Claims

Abstract

According to one embodiment, an information processing apparatus includes a memory includes a buffer area, a first storage, a second storage and a driver. The buffer area is reserved in order to transfer data between the driver and a host system that requests for data writing and data reading. The driver is configured to write data into the second storage and read data from the second storage in units of predetermined blocks using the first storage as a cache for the second storage. The driver is further configured to reserve a cache area in the memory, between the buffer area and the first external storage, and between the buffer area and the second storage. The driver is further configured to manage the cache area in units of the predetermined blocks.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. An information processing apparatus comprising:
 a memory comprising a buffer area;   a first external storage separate from the memory;   a second external storage separate from the memory; and   a driver configured to control the first and second external storages in units of predetermined blocks, wherein the driver comprises
 a cache reservation module configured to reserve a cache area in the memory, the cache area being logically between the buffer area and the first external storage and between the buffer area and the second external storage, and the cache reservation module is configured to manage the cache area in units of the predetermined blocks, using the cache area, secured on the memory by the cache reservation module, as a primary cache for the second external storage and a cache for the first external storage, and using part or the entire first external storage as a secondary cache for the second external storage, the buffer area being reserved in order to transfer data between the driver and a host system that requests for data writing and data reading; 
 a read controller configured to operate in response to a read request issued by the host system, and configured to:
 store data in the cache area into the buffer area if whole data to be read exists in the cache area, 
 read a first part of data not existing in the cache area from the second external storage into the cache area, store the read first part of data and a second part of data existing in the cache area into the buffer area, and accumulate the stored data in the first external storage, if a part of the data to be read exists in the cache area, 
 read data in the first external storage and store the read data into the buffer area if data to be read does not exist in the cache area and whole data to be read exists in the first external storage, 
 read a first part of data in the first external storage and a second part of data in the second external storage into the cache area, store the read data into the buffer area, and accumulate the read data in the first external storage, if data to be read does not exist in the cache area and a part of data to be read exists in the first external storage, and 
 read data in the second external storage into the cache area, store the read data in the buffer area and accumulate the read data in the first external storage, if data to be read does not exist in the cache area or the first external storage; 
 
 a write controller configured to operate in response to a write request issued by the host system, and configured to:
 rewrite data in the cache area by data to be written and accumulate the rewritten data in the first external storage, if data to be updated exists in the cache area and does not exist in the first external storage, 
 invalidate data in the first external storage, rewrite data in the cache area by data to be written and accumulate the rewritten data in the first external storage, if data to be updated exists in the cache area and the first external storage, 
 rewrite data in the first external storage by data to be written if data to be updated does not exist in the cache area and exists in the first external storage, and 
 store data to be written into the cache area and accumulate the stored data into the first external storage, if data to be updated does not exist in the cache area or the first external storage; and 
 
 a flush controller configured to store data existing in the cache area and not written yet into the second external storage, into the second external storage, and to store data existing in the first external storage and not written yet into the second external storage, into the second external storage through the cache area. 
   
     
     
       2. The apparatus of  claim 1 , wherein the write controller is configured to execute storing data into the cache area or rewriting data in the cache area or the first external storage in accordance with conditions, and to issue a write force-unit access (FUA) request to the second external storage, on receiving from the host system the write FUA request. 
     
     
       3. The apparatus of  claim 1 , wherein the read controller is configured to store data in the first external storage into the buffer area through the cache area if data to be read does not exist in the cache area and whole data to be read exists in the first external storage. 
     
     
       4. The apparatus of  claim 3 , wherein the read controller is configured to store data in the first external storage into the buffer area in two modes, not through the cache area in one mode, and through the cache area in order to accumulate the data in the cache area in the other mode, if data to be read does not exist in the cache area and whole data to be read exists in the first external storage. 
     
     
       5. The apparatus of  claim 1 , wherein the write controller is configured to operate in a write-through mode, and is configured to:
 rewrite data in the cache area and data in the second external storage by data to be written and accumulate the rewritten data in the first external storage if data to be updated exists in the cache area and does not exist in the first external storage;   rewrite data in the cache area, data in the first external storage and data in the second external storage by data to be written, if data to be updated exists in the cache area and the first external storage;   rewrite data in the first external storage and data in the second external storage by data to be written, if data to be updated does not exist in the cache area and exists in the first external storage; and   rewrite data in the second external storage by data to be written if data to be updated does not exist in the cache area or the first external storage.   
     
     
       6. The apparatus of  claim 5 , wherein the write controller is configured to be able to operate another operating mode in the write-through mode,
 in the other operating mode, the write controller is configured to invalidate data in the first external storage, instead of rewriting the data in the first external storage, if data to be updated exists in the first external storage.   
     
     
       7. The apparatus of  claim 1 , wherein the driver further comprises an intra-block data managing module configured to provide a first sector bit map and a second sector bit map for each block of the cache area and the first external storage, and to manage the first sector bit map and the second sector bit map as management data in a management data storage area in the memory, the first sector bit map indicating whether the data in each block is valid or invalid in units of sectors, and the second sector bit map indicating whether any data in the block is not written yet into the second external storage in units of sectors. 
     
     
       8. The apparatus of  claim 1 , wherein the driver further comprises an intra-block data managing module configured to provide a sector bit map, a first flag and a second flag for each block of the cache area and the first external storage, and to manage the bit map, the first flag and the second flag as management data in a management data storage area in the memory, the sector bit map indicating whether the data in each block is valid or invalid in units of sectors, the first flag indicating whether data not written yet into the second external storage exists in the block, and the second flag indicating whether data exists in the whole or part of the block. 
     
     
       9. The apparatus of  claim 7 , wherein the driver further comprises a data guaranteeing module configured to:
 cause the flush controller to store, into the second external storage, data existing in the cache area and not written yet into the second external storage and data existing in the first external storage and not written yet into the second external storage, at the time of receiving a shutdown notice from the host system;   cause the intra-block data managing module to store the management data in the management data storage area into a management data save area in the first external storage, after the flush controller finished operating; and   cause the intra-block data managing module to store the management data in the management data save area into the management data storage area, and to initialize the management data about the cache area, at the time of activation.   
     
     
       10. The apparatus of  claim 9 , wherein the data guaranteeing module is configured to:
 provide a third flag in the management data save area, the third flag indicating whether data accumulated in the first external storage is consistent with data stored in the second external storage, and the third flag comprising a first value when the driver is operating and a second value when the driver is not operating;   update the value of the third flag by the second value when the intra-block data managing module stores the management data in the management data storage area into the management data save area in the first external storage;   cause the intra-block data managing module to store the management data in the management data save area into the management data storage area and update the value of the third flag by the first value, if the third flag comprises the second value when the driver is activated; and   initialize the management data in the management data save area to discard data in the first external storage and update the value of the third flag by the first value, if the third flag comprises the first value when the driver is activated.   
     
     
       11. The apparatus of  claim 9 , further comprising an activating module configured to write data into the second external storage and read data from the second external storage before the driver starts operating, wherein:
 the data guaranteeing module is configured to provide a third flag in the management data save area, the third flag indicating whether data accumulated in the first external storage is consistent with data stored in the second external storage and the third flag comprising a first value when the driver is operating, a second value when the activating module is operating and a third value when neither the driver nor the activating module is operating;   the activating module is configured to update the value of the third flag by the second value, and to accumulate a write request issued to the second external storage, as trace data, in the management data save area, if the third flag comprises the third value at the time of activation; and   the data guaranteeing module is further configured to:   update the value of the third flag by the third value, when the intra-block data managing module stores the management data in the management data storage area into the management data save area in the first external storage;   cause the intra-block data managing module to store the management data in the management data save area into the management data storage area, invalidate the updated data by the activating module, which exists in the first external storage, by referring to the trace data, and update the value of the third flag by the first value, if the third flag comprises the second value when the driver is activated; and   initialize the management data in the management data save area to discard data in the first external storage, and update the value of the third flag by the first value, if the third flag comprises a value other than the second value when the driver is activated.   
     
     
       12. The apparatus of  claim 11 , wherein the activating module is configured to terminate accumulating the trace data and to update the value of the third flag by the third value, if the amount of the trace data exceeds a predetermined amount. 
     
     
       13. The apparatus of  claim 9 , wherein the data guaranteeing module is configured to:
 manage individual data and the power cycle counter about the second external storage in the management data save area;   acquire the individual data and the power cycle counter from the second external storage at the time of activating the driver; and   initialize the management data about the second external storage in the management data save area to discard data about the second external storage stored in the first external storage, if the individual data acquired from the second external storage differs from the individual data managed in the management data save area or if the value obtained by subtracting one from the power cycle counter acquired from the second external storage differs from the power cycle counter managed in the management data save area.   
     
     
       14. The apparatus of  claim 13 , further comprising an activating module configured to write data into the second external storage and read data from the second external storage before the driver starts operating,
 wherein the activating module is configured to:   acquire the individual data and the power cycle counter from the second external storage at the time of activation;   read data from the first external storage if data to be read exists in the first external storage when the individual data acquired from the second external storage is identical to the individual data managed in the management data save area and the value obtained by subtracting one from the power cycle counter acquired from the second external storage is identical to the power cycle counter managed in the management data save area; and   invalidate data in the first external storage, if data to be updated due to writing data into the second external storage exists in the first external storage, when the individual data acquired from the second external storage is identical to the individual data managed in the management data save area and the value obtained by subtracting one from the power cycle counter acquired from the second external storage is identical to the power cycle counter managed in the management data save area.   
     
     
       15. The apparatus of  claim 14 , wherein the data guaranteeing module is configured to invalidate the data of a block in the first external storage, if the second flag associated with the block indicates that a part of data exists when the data guaranteeing module makes the intra-block data managing module store the management data in the management data storage area into the management data save area. 
     
     
       16. The apparatus of  claim 14 , wherein:
 the activating module is configured to read data from the first external storage only if the second flag associated with the data indicates that whole data exists in the first external storage when data to be read exists in the first external storage; and   the data guaranteeing module is configured to invalidate data of a block in the first external storage, if the second flag associated with the block indicates that a part of the data exists when the driver is activated.   
     
     
       17. The apparatus of  claim 14 , wherein:
 the driver further comprises a boot data managing module configured to provide a fourth flag in the management data save area for each block of the cache area and the first external storage, the fourth flag indicating whether data is requested to be read when the host system is activating;   the activating module is configured to:   set the fourth flag associated with data in the first external storage to indicate that the data is requested to be read when the host system is activating, if data to be read exists in the first external storage; and   accumulate a read request issued to the second external storage, as trace data, in the management data save area, if data to be read does not exist in the first external storage;   the read controller is configured to:   read data from the second external storage, which was read by the activating module, by referring to the trace data, accumulate the read data in the first external storage and set the fourth flag associated with the data in the first external storage to indicate that the data is requested to be read when the host system is activating, when the driver is activated or when an activation completion notice is received from the host system;   set the fourth flag associated with the data in the first external storage to indicate that the data is requested to be read when the host system is activating, if data to be read exists in the cache area or the first external storage when the host system issues a read request until the activation completion notice is received from the host system; and   accumulate data read from the second external storage in the first external storage and set the fourth flag associated with the data in the first external storage to indicate that the data is requested to be read when the host system is activating, if data to be read does not exist in the first external storage when the host system issues a read request until the activation completion notice is received from the host system;   the read controller and the write controller are configured to maintain data in the first external storage so that data, for which the fourth flag indicates that the data is requested to be read when the host system is activating, remains in the first external storage; and   the boot data managing module is configured to reset the fourth flag to indicate that the data is not requested to be read when the host system is activating, upon receiving a shutdown notice from the host system.   
     
     
       18. The apparatus of  claim 17 , wherein the activating module and the write controller are configured to reset the fourth flag associated with data to be updated in the first external storage to indicate that the data is not requested to be read when the host system is activating, if data to be updated exists in the first external storage. 
     
     
       19. The apparatus of  claim 17 , wherein the read controller is configured to terminate setting the fourth flag to indicate that the data is requested to be read when the host system is activating, before receiving the activation completion notice, if the amount of data for which the fourth flag is set to indicate that the data is requested to be read when the host system is activating, reaches a predetermined amount. 
     
     
       20. The apparatus of  claim 1 , wherein the flush controller is configured to operate a first mode and a second mode, in the first mode, the flush controller is configured to issue, on receiving from the host system a flush request for writing cached data, a write request to the second external storage so that data not written yet into the second external storage in the cache area and the first external storage is written into the second external storage, and to issue, after issuing the write request, a flush request to the second external storage so that cached data in the second external storage is written into the second external storage; and
 in the second mode, the flush controller is configured to do nothing on receiving from the host system a flush request, to issue a write request to the second external storage so that data not written yet into the second external storage in the cache area and the first external storage is written into the second external storage, when a predetermined time elapses from a previous flush operation or when the amount of data to be written, in the first external storage, increases to a predetermined amount.   
     
     
       21. The apparatus of  claim 2 , wherein the write controller comprises another operating mode,
 in the other operating mode, the write controller is configured to store data into the cache area or rewrite data in the cache area or the first external storage and to notify the host system of the write completion, without issuing a write FUA request to the second external storage, on receiving from the host system the write FUA request.   
     
     
       22. The apparatus of  claim 1 , wherein the read controller comprises:
 a first module configured to reserve a merge buffer area in the memory, in which a first part of data to be read in the cache area or the first external storage is combined with a second part of data to be read in the second external storage; and   a second module configured to read data in a minimal amount necessary for combining data to be read, from the second external storage into the merge buffer area, and to transfer data lacking in the cache area or the first external storage, from the merge buffer area into the cache area.   
     
     
       23. The apparatus of  claim 22 , wherein the flush controller is configured to combine data in the second external storage with data not written yet into the second external storage, dispersed in the cache area, using the merge buffer area, and to store the combined data into the second external storage, when data not written yet into the second external storage is dispersed in the cache area. 
     
     
       24. The apparatus of  claim 1 , wherein the driver further comprises a setting module configured to acquire a page size of the first external storage, and to allocate blocks to the first external storage with reference to page boundaries in the first external storage, data length of the blocks being set a multiple of the page size. 
     
     
       25. The apparatus of  claim 1 , wherein data exchange of the cache area and the first external storage is controlled by a set associative method. 
     
     
       26. A driver stored in a non-transitory computer readable medium which operates in an information processing apparatus comprising a memory comprising a buffer area which is reserved in order to transfer data between the driver and a host system that requests for data writing and data reading, a first external storage and a second external storage, the driver being configured to control the first and second external storages in units of predetermined blocks, the driver comprising:
 a cache reservation module configured to reserve a cache area in the memory, the cache area being logically between the buffer area and the first external storage and between the buffer area and the second external storage, the driver being configured to manage the cache area in units of the predetermined blocks using the cache area, secured on the memory by the cache reservation module, as a primary cache for the second external storage and as a cache for the first external storage, and using part or the entire first external storage as a secondary cache for the second external storage;   a read controller configured to operate in response to a read request issued by the host system, and configured to:   store data in the cache area into the buffer area if whole data to be read exists in the cache area;   read a first part of data not existing in the cache area from the second external storage into the cache area, store the read first part of data and a second part of data existing in the cache area into the buffer area, and accumulate the stored data in the first external storage, if a part of data to be read exists in the cache area;   read data in the first external storage and store the read data into the buffer area if data to be read does not exist in the cache area and whole data to be read exists in the first external storage;   read a first part of data in the first external storage and a second part of data in the second external storage into the cache area, store the read data into the buffer area, and accumulate the read data in the first external storage, if data to be read does not exist in the cache area and a part of data to be read exists in the first external storage; and   read data in the second external storage into the cache area, store the read data in the buffer area and accumulate the read data in the first external storage, if data to be read does not exist in the cache area or the first external storage;   a write controller configured to operate in response to a write request issued by the host system, and configured to:   rewrite data in the cache area by data to be written and accumulate the rewritten data in the first external storage, if data to be updated exists in the cache area and does not exist in the first external storage;   invalidate data in the first external storage, rewrite data in the cache area by data to be written and accumulate the rewritten data in the first external storage, if data to be updated exists in the cache area and the first external storage;   rewrite data in the first external storage by data to be written if data to be updated does not exist in the cache area and exists in the first external storage; and   store data to be written into the cache area and accumulate the stored data into the first external storage, if data to be updated does not exist in the cache area or the first external storage; and   a flush controller configured to store data existing in the cache area and not written yet into the second external storage, into the second external storage, and to store data existing in the first external storage and not written yet into the second external storage, into the second external storage through the cache area.   
     
     
       27. An information processing apparatus comprising a circuitry that interfaces with a first storage, a second storage, and a volatile memory device that stores a set of instructions, the volatile memory device including a buffer area and a cache area, the circuitry being configured to execute the set of instructions to:
 in response to a first read request for acquiring first data:
 acquire the first data from the second storage, 
 store the first data in the volatile memory device, and 
 store the first data in the first storage; 
   in response to a second read request for acquiring the first data:
 determine whether the first data is stored in the volatile memory device; 
 if the first data is not stored in the volatile memory device:
 acquire the first data from the first storage, and 
 store the first data in the volatile memory device.  
 
   
     
     
       28. The information processing apparatus of claim 27, wherein the circuitry is configured to execute the set of instructions to:
 receive the first read request; and   receive the second read request.    
     
     
       29. The information processing apparatus of claim 28, wherein the first read request is received before the second read request.  
     
     
       30. The information processing apparatus of claim 28, wherein the first and second read requests are received consecutively.  
     
     
       31. The information processing apparatus of claim 27, wherein the storing of the first data in the volatile memory device constitutes a completed response to the first read request.  
     
     
       32. The information processing apparatus of claim 27, wherein the first and second storages use different storage mediums.  
     
     
       33. The information processing apparatus of claim 27, wherein the second storage includes a magnetic storage device, and wherein the first storage includes a solid state storage device.  
     
     
       34. The information processing apparatus of claim 27, wherein the circuitry is further configured to execute the set of instructions to:
 determine whether the first data is stored in the volatile memory device or not; and   acquire the first data from the first storage after determining that the first data is not stored in the volatile memory device.    
     
     
       35. The information processing apparatus of claim 34, wherein the circuitry is further configured to execute the set of instructions to:
 determine whether the first data is stored in the first storage or not; and   acquire the first data from the second storage after determining that the first data is not stored in the volatile memory device or the first storage.    
     
     
       36. An information processing apparatus comprising a circuitry that interfaces with a first storage, a second storage, and a volatile memory device that stores a set of instructions, the volatile memory device including a buffer area and a cache area, the circuitry being configured to execute the set of instructions to:
 in response to a first read request for acquiring first data:
 acquire the first data from the second storage, 
 store the first data in the volatile memory device, and 
 store the first data in the first storage; 
   in response to a second read request for acquiring the first data:
 determine whether the first data is stored in the volatile memory device; 
 if the first data is not stored in the volatile memory device:
 acquire the first data from the first storage, and 
 store the first data in the volatile memory device; and 
 
   in response to a first write request:
 rewrite data in the cache area by data to be written and accumulate the rewritten data in the first storage, if data to be updated exists in the cache area and does not exist in the first storage, 
 invalidate data in the first storage, rewrite data in the cache area by data to be written and accumulate the rewritten data in the first storage, if data to be updated exists in the cache area and the first storage, 
 rewrite data in the first storage by data to be written if data to be updated does not exist in the cache area and exists in the first storage, and 
 store data to be written into the cache area and accumulate the stored data into the first storage, if data to be updated does not exist in the cache area or the first storage; and 
   store data existing in the cache area and not written yet into the second storage, into the second storage, and store data existing in the first storage and not written yet into the second storage, into the second storage through the cache area.    
     
     
       37. The information processing apparatus of claim 36, wherein the circuitry is configured to execute the set of instructions to:
 receive the first read request; and   receive the second read request.    
     
     
       38. The information processing apparatus of claim 37, wherein the first read request is received before the second read request.  
     
     
       39. The information processing apparatus of claim 37, wherein the first and second read requests are received consecutively.  
     
     
       40. The information processing apparatus of claim 36, wherein the storing of the first data in the volatile memory device constitutes a completed response to the first read request.  
     
     
       41. The information processing apparatus of claim 36, wherein the first and second storages use different storage mediums.  
     
     
       42. The information processing apparatus of claim 36, wherein the second storage includes a magnetic storage device, and wherein the first storage includes a solid state storage device.  
     
     
       43. The information processing apparatus of claim 36, wherein the circuitry is further configured to execute the set of instructions to:
 determine whether the first data is stored in the volatile memory device or not; and   acquire the first data from the first storage after determining that the first data is not stored in the volatile memory device.    
     
     
       44. The information processing apparatus of claim 36, wherein the circuitry is further configured to execute the set of instructions to:
 determine whether the first data is stored in the first storage or not; and   acquire the first data from the second storage after determining that the first data is not stored in the volatile memory device or the first storage.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.