Firehose dump of SRAM write cache data to non-volatile memory using a supercap
First Claim
1. A method, in a data processing system, for firehose dumping modified data in a static random access memory of a hard disk drive to non-volatile memory of the hard disk drive during a power event, the method comprising:
- receiving an indication of the power event in the hard disk drive;
suspending command processing in the hard disk drive;
setting a token in the non-volatile storage indicating that a flash memory in the non-volatile memory contains the modified data;
copying a portion of a static random access memory cache table containing information on the modified data in the static random access memory to the flash memory;
copying the modified data from the static random access memory to the flash memory, wherein copying the modified data from the static random access memory to the flash memory further comprises;
initializing a cache block pointer to point to a first logical block address of the modified data in the static random access memory;
copying the modified data stored in the static random access memory that is associated with the first logical block address pointed to by the cache block pointer to the flash memory at an address that corresponds to an address where the modified data is stored in the static random access memory;
determining whether all cached logical block addresses have been copied from the static random access memory to corresponding locations in the flash memory;
responsive to all of the cached logical block addresses failing to have been copied from the static random access memory to the corresponding locations in the flash memory, incrementing the cache block pointer to the next logical block address in the static random access memory;
copying the modified data stored in the static random access memory that is associated with the next logical block address pointed to by the cache block pointer to the flash memory at an address that corresponds to an address where the modified data is stored in the static random access memory; and
repeating the incrementing and copying steps until all of the cached logical block addresses have been copied from the static random access memory to corresponding locations in the flash memory;
determining whether the power event that initiated the copy of the modified data in the static random access memory to the flash memory is still present; and
responsive to the power event that initiated the copy still being present, shutting down the hard disk drive.
1 Assignment
0 Petitions
Accused Products
Abstract
A mechanism is provided for firehose dumping modified data in a static random access memory of a hard disk drive to non-volatile memory of the hard disk drive during a power event. Responsive an indication of a power event in the hard disk drive, hard disk drive command processing is suspended. A token is set in the non-volatile storage indicating that flash memory in the non-volatile memory contains modified data. A portion of a static random access memory cache table containing information on the modified data in the static random access memory is copied to the flash memory. The modified data from the static random access memory is then copied to the flash memory. Responsive to a determination that the power event that initiated the copy of the modified data in the static random access memory to the flash memory is still present, the hard disk drive is shut down.
13 Citations
20 Claims
-
1. A method, in a data processing system, for firehose dumping modified data in a static random access memory of a hard disk drive to non-volatile memory of the hard disk drive during a power event, the method comprising:
-
receiving an indication of the power event in the hard disk drive; suspending command processing in the hard disk drive; setting a token in the non-volatile storage indicating that a flash memory in the non-volatile memory contains the modified data; copying a portion of a static random access memory cache table containing information on the modified data in the static random access memory to the flash memory; copying the modified data from the static random access memory to the flash memory, wherein copying the modified data from the static random access memory to the flash memory further comprises; initializing a cache block pointer to point to a first logical block address of the modified data in the static random access memory; copying the modified data stored in the static random access memory that is associated with the first logical block address pointed to by the cache block pointer to the flash memory at an address that corresponds to an address where the modified data is stored in the static random access memory; determining whether all cached logical block addresses have been copied from the static random access memory to corresponding locations in the flash memory; responsive to all of the cached logical block addresses failing to have been copied from the static random access memory to the corresponding locations in the flash memory, incrementing the cache block pointer to the next logical block address in the static random access memory; copying the modified data stored in the static random access memory that is associated with the next logical block address pointed to by the cache block pointer to the flash memory at an address that corresponds to an address where the modified data is stored in the static random access memory; and repeating the incrementing and copying steps until all of the cached logical block addresses have been copied from the static random access memory to corresponding locations in the flash memory; determining whether the power event that initiated the copy of the modified data in the static random access memory to the flash memory is still present; and responsive to the power event that initiated the copy still being present, shutting down the hard disk drive. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus, comprising:
-
a processor; and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to; receive an indication of the power event in the hard disk drive; suspend command processing in the hard disk drive; set a token in the non-volatile storage indicating that a flash memory in the non-volatile memory contains the modified data; copy a portion of a static random access memory cache table containing information on the modified data in the static random access memory to the flash memory; copy the modified data from the static random access memory to the flash memory, wherein the instructions to copy the modified data from the static random access memory to the flash memory further cause the processor to; initialize a cache block pointer to point to a first logical block address of the modified data in the static random access memory; copy the modified data stored in the static random access memory that is associated with the first logical block address pointed to by the cache block pointer to the flash memory at an address that corresponds to an address where the modified data is stored in the static random access memory; determine whether all cached logical block addresses have been copied from the static random access memory to corresponding locations in the flash memory; responsive to all of the cached logical block addresses failing to have been copied from the static random access memory to the corresponding locations in the flash memory, increment the cache block pointer to the next logical block address in the static random access memory; copy the modified data stored in the static random access memory that is associated with the next logical block address pointed to by the cache block pointer to the flash memory at an address that corresponds to an address where the modified data is stored in the static random access memory; and repeat the incrementing and copying steps until all of the cached logical block addresses have been copied from the static random access memory to corresponding locations in the flash memory; determine whether the power event that initiated the copy of the modified data in the static random access memory to the flash memory is still present; and responsive to the power event that initiated the copy still being present, shut down the hard disk drive. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer program product comprising a non-transitory computer readable storage medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
receive an indication of the power event in the hard disk drive; suspend command processing in the hard disk drive; set a token in the non-volatile storage indicating that a flash memory in the non-volatile memory contains the modified data; copy a portion of a static random access memory cache table containing information on the modified data in the static random access memory to the flash memory; copy the modified data from the static random access memory to the flash memory, wherein the computer readable program to copy the modified data from the static random access memory to the flash memory further causes the computing device to; initialize a cache block pointer to point to a first logical block address of the modified data in the static random access memory; copy the modified data stored in the static random access memory that is associated with the first logical block address pointed to by the cache block pointer to the flash memory at an address that corresponds to an address where the modified data is stored in the static random access memory; determine whether all cached logical block addresses have been copied from the static random access memory to corresponding locations in the flash memory; responsive to all of the cached logical block addresses failing to have been copied from the static random access memory to the corresponding locations in the flash memory, increment the cache block pointer to the next logical block address in the static random access memory; copy the modified data stored in the static random access memory that is associated with the next logical block address pointed to by the cache block pointer to the flash memory at an address that corresponds to an address where the modified data is stored in the static random access memory; and repeat the incrementing and copying steps until all of the cached logical block addresses have been copied from the static random access memory to corresponding locations in the flash memory; determine whether the power event that initiated the copy of the modified data in the static random access memory to the flash memory is still present; and responsive to the power event that initiated the copy still being present, shut down the hard disk drive. - View Dependent Claims (19, 20)
-
Specification