Information processing apparatus and driver
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-modifiedWhat is claimed is:
1. An information processing apparatus comprising:
a memory comprising a biffer 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 he read exists in the cache area,
read a first part of data not existing in the cache area front 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.
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 art 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 orate 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 intro-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 forth 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 riot 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 it 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 in the first storage the first data, and store the first data in the volatile memory device; 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;
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 to store data existing in the first storage and not written yet into the second storage, into the second storage through the cache area.
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; 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; 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 second storage.
36. The information processing apparatus of claim 27, wherein the circuitry is further configured to execute the set of instructions to:
receive a second write request to store second data for replacing the first data; store the second data in at least one of the volatile memory device and the first storage; store the second data in the second storage; and identify that the second write request has been completed.
37. The information processing apparatus of claim 36, wherein the circuitry, when operating under a first mode of write operation, identifies that the second write request has been completed after storing the second data in the first storage but before completing storing the second data in the second storage.
38. The information processing apparatus of claim 37, wherein the circuitry is further configured to execute the set of instructions to:
determine whether the first data is stored in at least one of the volatile memory device and the first storage; after determining that the first data is not stored in the volatile memory device and is not stored in the first storage:
store the second data in the volatile memory device,
after identifying that the second write request has been completed, store the second data in the first storage, and
replace the first data with the second data in the second storage.
39. The information processing apparatus of claim 38, wherein the circuitry is further configured to execute the set of instructions to:
after determining that the first data is stored in the volatile memory device:
before identifying that the second write request has been completed, replace the first data with the second data in the volatile memory device, and
store the second data in the first storage.
40. The information processing apparatus of claim 36, wherein the circuitry, when operating under a second mode of write operation, identifies that the second write request has been completed after storing the second data in the second storage.
41. The information processing apparatus of claim 40, wherein the circuitry is further configured to execute the set of instructions to:
determine whether the first data is stored in at least one of the volatile memory device and the first storage; after determining that the first data is stored in the volatile memory device and is not stored in the first storage:
replace the first data stored in the volatile memory device and in the second storage with the second data, and
after identifying that the second write request has been completed, replace the first data in the first storage with the second data.
42. The information processing apparatus of claim 41, wherein the circuitry is further configured to execute the set of instructions to:
after determining that the first data is stored in the first storage and is not stored in the volatile memory device, replace the first data stored in the second storage and in the first storage with the second data.
43. The information processing apparatus of claim 41, wherein the circuitry is further configured to execute the set of instructions to:
after determining that the first data is not stored in the first storage and not in the volatile memory device, replace the first data stored in the second storage with the second data.
44. The information processing apparatus of claim 40, wherein the circuitry is further configured to execute the set of instructions to:
receive a request to enter the second mode of write operation; wherein the second mode of write operation is performed after receiving the request.
45. The information processing apparatus of claim 36, wherein the circuitry is further configured to execute the set of instructions to:
receive an indication of system shutdown; after receiving the indication of system shutdown:
update the first data in the first and second storages based on the first data stored in the volatile memory device, and
store the second data in the first storage;
receive an indication of system activation; and after receiving the indication of system activation, storing the second data in the volatile memory device.
46. The information processing apparatus of claim 45, wherein the circuitry is further configured to execute the set of instructions to:
determine whether the second data stored in the first storage is consistent with the first data stored in the second storage; and if the second data stored in the first storage is determined to be consistent with the first data stored in the second storage, transfer the second data from the first storage to the volatile memory device.
47. The information processing apparatus of claim 46, wherein the determination of whether the second data stored in the first storage is consistent with the first data stored in the second storage comprises the circuitry being configured to execute the set of instructions to determine at least one of: a source of the first data stored in the second storage, and a number of times of power switches associated with the first and second storages.
48. The information processing apparatus of claim 27, wherein the first and second read requests are associated with a system boot.
49. The information processing apparatus of claim 48, wherein the circuitry is further configured to execute the set of instructions to:
determine that the first read request is associated with the system boot; after determining that the first read request is associated with the system boot, determine that the first data stored in the first storage is not to be updated until a write request is received to update the first data.
50. The information processing apparatus of claim 36, wherein the circuitry is further configured to execute the set of instructions to:
receive a third read request for third data; determine that at least part of the third data is not stored in the volatile memory device; acquire the at least part of the third data from a merge buffer; store the acquired at least part of the third data in the volatile memory device; and provide the third data, including the acquired at least part of the third data, stored in the volatile memory device as a response to the third read request.
51. The information processing apparatus of claim 50, wherein the data in the merge buffer is acquired from at least one of the first and second storages.
52. The information processing apparatus of claim 27, wherein the circuitry is further configured to execute the set of instructions to:
acquire a page size of the first storage; and allocate blocks to the first storage based on page boundaries in the first storage, data length of the blocks being set a multiple of the page size.
53. The information processing apparatus of claim 27, wherein data exchange between the volatile memory device and the first storage is controlled by a set associative method.
54. The information processing apparatus of claim 27, wherein the information processing apparatus further comprises the first storage.
55. An information processing apparatus that interfaces with a host system, the information processing apparatus comprising:
a first storage including a nonvolatile semiconductor memory device; a second storage including a hard disk drive; a volatile semiconductor memory device; and a circuitry that interfaces with the first storage, the second storage, and the memory, the circuitry being capable of:
receiving from the host system a first write request to write first data;
in response to receiving the first write request:
writing the first data in the volatile semiconductor memory device,
writing the first data in the first storage after writing the first data in the volatile semiconductor memory device, and
writing the first data in the second storage after writing the first data in the volatile semiconductor memory device;
receiving from the host system a first read request to read the first data after the receiving the first write request; and
in response to receiving the first read request:
determining whether the first data is stored in the first storage, and
reading the first data from the first storage, if the first data is stored in the first storage;
in response to a second write request to write second data:
rewriting data in the volatile semiconductor memory device by the second data to be written and accumulating the rewritten data in the first storage, if data to be updated exists in the volatile semiconductor memory device and does not exist in the first storage,
invalidating data in the first storage, rewriting data in the cache area by the second data to be written and accumulating the rewritten data in the first storage, if data to be updated exists in the volatile semiconductor memory device and the first storage,
rewriting data in the first storage by the second data to be written if data to be updated does not exist in the volatile semiconductor memory device and exists in the first storage, and
storing the second data to be written into the volatile semiconductor memory device and accumulating the stored data into the first storage, if data to be updated does not exist in the volatile semiconductor memory device or the first storage; and
storing data existing in the volatile semiconductor memory device and not written yet into the second storage, into the second storage, and storing data existing in the first storage and not written yet into the second storage, into the second storage through the volatile semiconductor memory device.
56. The information processing apparatus of claim 55, wherein the circuitry is capable of:
in response to receiving the first read request:
determining whether the first data is stored in the volatile semiconductor memory device, and
reading the first data from the volatile semiconductor memory device, if the first data is stored in the volatile semiconductor memory device.
57. The information processing apparatus of claim 55, wherein the writing of the first data in the first storage occurs in parallel to the writing of the first data in the second storage in a first mode of the information processing apparatus.
58. The information processing apparatus of claim 57, wherein the writing of the first data in the first storage is performed before the writing of the first data in the second storage in a second mode of the information processing apparatus.
59. The information processing apparatus of claim 58, wherein the information processing apparatus is capable of setting an operation mode of the information processing apparatus to either one of the first and second modes based on a parameter indicating either one of the first and second modes.
60. The information processing apparatus of claim 58, wherein the writing of the first data in the first storage is performed after the writing of the first data in the second storage.
61. The information processing apparatus of claim 55, wherein the circuitry is capable of:
notifying the host system that the first write request has been completed before a completion of the writing of the first data in the second storage.
62. The information processing apparatus of claim 55, wherein the circuitry is capable of:
notifying the host system that the first write request has been completed after receiving a notification of data writing operation from the second storage.
63. The information processing apparatus of claim 55,
wherein the volatile semiconductor memory stores a driver, and wherein the circuitry is capable of executing the driver.
64. The information processing apparatus of claim 63,
wherein the volatile semiconductor memory further stores an operating system, and wherein the driver operates under the operating system.
65. The information processing apparatus of claim 55, wherein the first storage includes a solid state drive including the nonvolatile semiconductor memory.
66. The information processing apparatus of claim 55, wherein the nonvolatile semiconductor memory includes a flash memory.
67. The information processing apparatus of claim 55, wherein the circuitry is capable of:
receiving from the host system a second read request to read second data; in response to receiving the second read request:
reading the second data from the second storage,
writing in the volatile semiconductor memory device the second data read from the second storage, and
writing the second data in the first storage;
receiving from the host system a third read request to read the second data after the receiving the second read request, and in response to receiving the third read request:
determining whether the second data is stored in the first storage; and
reading the second data from the first storage if the second data is stored in the first storage.
68. The information processing apparatus of claim 55, wherein the circuitry is capable of:
receiving from the host system a third write request to write third data for replacing the first data, and in response to receiving the third write request:
writing the third data in the volatile semiconductor memory,
invalidating the first data stored in the first storage, and
writing the third data in the first storage.
69. An information processing apparatus that interfaces with a host system, the information processing apparatus comprising:
a first storage including a solid state drive, the solid state drive including a nonvolatile semiconductor memory; a second storage including a hard disk drive, the first storage being configured to perform as a read cache for the second storage; a volatile semiconductor memory device; and a circuitry that interfaces with the first storage, the second storage, and the volatile semiconductor memory device, the circuitry being capable of:
receiving from the host system a first write request to write first data;
after receiving the write request, writing the first data in the first storage in units of first blocks each having a first predetermined size;
wherein the first predetermined size is greater than a size of a minimum unit of a write operation of at least one of the first and second storages;
in response to a second write request to write second data:
rewriting data in the volatile semiconductor memory device by the second data to be written and accumulating the rewritten data in the first storage, if data to be updated exists in the volatile semiconductor memory device and does not exist in the first storage,
invalidating data in the first storage, rewriting data in the cache area by the second data to be written and accumulating the rewritten data in the first storage, if data to be updated exists in the volatile semiconductor memory device and the first storage,
rewriting data in the first storage by the second data to be written if data to be updated does not exist in the volatile semiconductor memory device and exists in the first storage, and
storing the second data to be written into the volatile semiconductor memory device and accumulating the stored data into the first storage, if data to be updated does not exist in the volatile semiconductor memory device or the first storage; and
store data existing in the volatile semiconductor memory device and not written yet into the second storage, into the second storage, and storing data existing in the first storage and not written yet into the second storage, into the second storage through the volatile semiconductor memory device.
70. The information processing apparatus of claim 69, wherein the circuitry is capable of:
receiving from the host system a read request to read second data; and reading the second data from the first storage in units of second blocks each having a second predetermined size.
71. The information processing apparatus of claim 69, wherein the circuitry is capable of accessing the first storage using management information regarding data mapping on the first storage.
72. The information processing apparatus of claim 71, wherein the volatile semiconductor memory device stores the management information, and
wherein the circuitry is capable of:
reading the management information from the volatile semiconductor memory device; and
writing, in the first storage, the management information read from the volatile semiconductor memory device.
73. The information processing apparatus of claim 72, wherein the circuitry is capable of writing the management information in the first storage during a shutdown operation of the information processing apparatus.
74. The information processing apparatus of claim 72, wherein the circuitry is capable of writing the management information in the first storage after the circuitry receives a shutdown notice.
75. The information processing apparatus of claim 73, wherein, when the information processing apparatus is activated from the shutdown, the circuitry is capable of:
reading the management information from the first storage; and writing, in the volatile semiconductor memory device, the management information read from the first storage.
76. The information processing apparatus of claim 74, wherein, when the information processing apparatus is activated from the shutdown, the circuitry is capable of:
reading the management information from the first storage; and writing, in the volatile semiconductor memory device, the management information read from the first storage.
77. The information processing apparatus of claim 71, wherein the management information includes information indicating which portion of data stored in the first storage is valid.
78. The information processing apparatus of claim 71, wherein the management information includes information indicating which portion of data in the first storage is to be written to the second storage.
79. The information processing apparatus of claim 69, wherein the volatile semiconductor memory stores a set of instructions, and wherein the circuitry executes the set of instructions.
80. The information processing apparatus of claim 69, wherein the volatile semiconductor memory stores a driver, and wherein the circuitry is capable of executing the driver.
81. The information processing apparatus of claim 80, wherein the volatile semiconductor memory further stores an operating system, and wherein the driver operates under the operating system.
82. The information processing apparatus of claim 69, wherein the nonvolatile semiconductor memory is a flash memory.
83. The information processing apparatus of claim 69, wherein the first predetermined size is a greater than one kilo bytes.
84. The information processing apparatus of claim 69, wherein the first predetermined size is greater than a size of a sector.
85. A method to operate an information processing device that interfaces with a first storage, a second storage, and a volatile memory device, the method comprising:
in response to a first read request for acquiring first data:
acquiring the first data from the second storage,
storing in the first storage the first data, and
storing the first data in the volatile memory device;
in response to a second read request for acquiring the first data:
determining whether the first data is stored in the volatile memory device;
if the first data is not stored in the volatile memory device:
acquiring the first data from the first storage, and
storing the first data in the volatile memory device;
in response to a first write request to write data:
rewriting data in the volatile semiconductor memory device by the data to be written and accumulating the rewritten data in the first storage, if data to be updated exists in the volatile semiconductor memory device and does not exist in the first storage,
invalidating data in the first storage, rewriting data in the cache area by the data to be written and accumulating the rewritten data in the first storage, if data to be updated exists in the volatile semiconductor memory device and the first storage,
rewriting data in the first storage by the data to be written if data to be updated does not exist in the volatile semiconductor memory device and exists in the first storage, and
storing the data to be written into the volatile semiconductor memory device and accumulating the stored data into the first storage, if data to be updated does not exist in the volatile semiconductor memory device or the first storage; and
storing data existing in the volatile semiconductor memory device and not written yet into the second storage, into the second storage, and storing data existing in the first storage and not written yet into the second storage, into the second storage through the volatile semiconductor memory device.
86. The method of claim 85, further comprising:
receiving the first read request; and receiving the second read request.
87. The method of claim 86, wherein the first read request is received before the second read request.
88. The method of claim 86, wherein the first and second read requests are received consecutively.
89. The method of claim 85, wherein the storing of the first data in the volatile memory device constitutes a completed response to the first read request.
90. The method of claim 85, further comprising:
receiving a second write request to store second data for replacing the first data; storing the second data in at least one of the volatile memory device and the first storage; storing the second data in the second storage; and providing an indication that that the second write request has been completed.
91. The method of claim 90, wherein the indication that the second write request has been completed is provided after storing the second data in the first storage but before completing storing the second data in the second storage.
92. The method of claim 90, wherein the indication that the second write request has been completed is provided after storing the second data in the second storage.
93. A non-transitory computer readable medium that stores a set of instructions that, when executed by circuitry that interfaces with a first storage, a second storage, and a volatile memory device, causes the circuitry to perform a method of information processing, the method comprising:
in response to a first read request for acquiring first data:
acquiring the first data from the second storage,
storing in the first storage the first data, and
storing the first data in the volatile memory device;
in response to a second read request for acquiring the first data:
determining whether the first data is stored in the volatile memory device;
if the first data is not stored in the volatile memory device:
acquiring the first data from the first storage, and
storing the first data in the volatile memory device;
in response to a first write request to write data:
rewriting data in the volatile semiconductor memory device by the data to be written and accumulating the rewritten data in the first storage, if data to be updated exists in the volatile semiconductor memory device and does not exist in the first storage,
invalidating data in the first storage, rewriting data in the cache area by the data to be written and accumulating the rewritten data in the first storage, if data to be updated exists in the volatile semiconductor memory device and the first storage,
rewriting data in the first storage by the data to be written if data to be updated does not exist in the volatile semiconductor memory device and exists in the first storage, and
storing the data to be written into the volatile semiconductor memory device and accumulating the stored data into the first storage, if data to be updated does not exist in the volatile semiconductor memory device or the first storage; and
storing data existing in the volatile semiconductor memory device and not written yet into the second storage, into the second storage, and storing data existing in the first storage and not written yet into the second storage, into the second storage through the volatile semiconductor memory device.
94. The medium of claim 93, wherein the method further comprises:
receiving the first read request; and receiving the second read request.
95. The medium of claim 94, wherein the first read request is received before the second read request.
96. The medium of claim 94, wherein the first and second read requests are received consecutively.
97. The medium of claim 93, wherein the storing of the first data in the volatile memory device constitutes a completed response to the first read request.
98. The medium of claim 93, wherein the method further comprises:
receiving a second write request to store second data for replacing the first data; storing the second data in at least one of the volatile memory device and the first storage; storing the second data in the second storage; and providing an indication that that the second write request has been completed.
99. The medium of claim 98, wherein the indication that the second write request has been completed is provided after storing the second data in the first storage but before completing storing the second data in the second storage.
100. The medium of claim 98, wherein the indication that the second write request has been completed is provided after storing the second data in the second storage.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.