Non-volatile cache in disk drive emulation
First Claim
Patent Images
1. A method for disk drive emulation, comprising:
- receiving a request to write data to a storage medium of a hard drive, wherein the request contains write data comprising one or more blocks formatted based on a first block size while the storage medium comprises a plurality of blocks formatted based on a second block size larger than the first block size;
caching the write data in non-volatile memory on the hard drive;
upon determining that the write data does not align with a start or an end of a block in the storage medium, deferring writing the write data to the storage medium;
combining the write data with different write data received via additional write data requests; and
upon detecting that the write data aligns with both a start and an end of a block in the storage medium, writing the write data from the non-volatile memory to the storage medium.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for deferring media writes for emulation drives are provided. By deferring media writes using non-volatile storage, the performance penalty associated with RMW operations may be minimized. Deferring writes may allow the RMW operations to be done while the disk drive is idle. Further, deferring writes may also allow data blocks to be accumulated over time, allowing a full (4K) disk drive block size to be written with a simple write operation, thus making a RMW unnecessary.
-
Citations
17 Claims
-
1. A method for disk drive emulation, comprising:
-
receiving a request to write data to a storage medium of a hard drive, wherein the request contains write data comprising one or more blocks formatted based on a first block size while the storage medium comprises a plurality of blocks formatted based on a second block size larger than the first block size; caching the write data in non-volatile memory on the hard drive; upon determining that the write data does not align with a start or an end of a block in the storage medium, deferring writing the write data to the storage medium; combining the write data with different write data received via additional write data requests; and upon detecting that the write data aligns with both a start and an end of a block in the storage medium, writing the write data from the non-volatile memory to the storage medium. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A hard disk drive (HDD) controller configured to:
-
receive a request to write data to a storage medium of a hard drive, wherein the request contains write data comprising one or more blocks formatted based on a first block size while the storage medium comprises a plurality of blocks formatted based on a second block size larger than the first block size; cache the write data in non-volatile memory on the hard drive; upon determining that the write data does not align with a start or an end of a block in the storage medium, defer writing the write data to the storage medium; combine the write data with different write data received via additional write data requests; and upon detecting that the write data aligns with both a start and an end of a block in the storage medium, write the write data from the non-volatile memory to the storage medium. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A hard disk drive, comprising:
-
at least one long-term storage medium; one or more segments of non-volatile memory; and a controller configured to; receive a request to write data to a storage medium of a hard drive, wherein the request contains write data comprising one or more blocks formatted based on a first block size while the storage medium comprises a plurality of blocks formatted based on a second block size larger than the first block size; cache the write data in non-volatile memory on the hard drive; upon determining that the write data does not align with a start or an end of a block in the storage medium, defer writing the write data to the storage medium; combine the write data with different write data received via additional write data requests; and upon detecting that the write data aligns with both a start and an end of a block in the storage medium, write the write data from the non-volatile memory to the storage medium. - View Dependent Claims (14, 15, 16, 17)
-
Specification