Write buffering
First Claim
1. An apparatus for storing data, comprising:
- a hybrid storage device comprising;
an SRAM memory (static random access memory) configured to buffer write data from a host;
a non-volatile memory;
an SDRAM memory (synchronous dynamic random access memory) configured to communicate with a hard disk drive;
a DMA (direct memory access) controller configured to transfer data between the hard disk drive and the SRAM memory;
a flash interface controller configured to transfer data between the SRAM memory and the non-volatile memory;
wherein the hybrid storage device provides a write buffering scheme comprising the SRAM memory, the non-volatile memory and the SDRAM memory,wherein, if the non-volatile memory is not full, then the flash interface controller copies the write data from the SRAM memory to the non-volatile memory if a pre-defined threshold of unused cache lines is reached in the SRAM memory or if the write data in the SRAM memory is dirty prior to writing new write data to the SRAM memory;
wherein, if the non-volatile memory is full, then the DMA controller is configured to flush the write data from the SRAM memory to the hard disk drive if the pre-defined threshold of unused cache lines is reached in the SRAM memory or if the write data in the SRAM memory is dirty prior to writing new write data to the SRAM memory;
wherein the flash interface controller copies data from the non-volatile memory to the SDRAM memory when data is transferred from the non-volatile memory to the SDRAM memory;
wherein the non-volatile memory is slower than the SRAM memory;
wherein the non-volatile memory has a greater storage capacity than the SRAM memory;
wherein the non-volatile memory is slower than the SDRAM memory;
wherein the non-volatile memory has a greater storage capacity than the SDRAM memory; and
wherein the SDRAM memory is slower than the SRAM memory.
2 Assignments
0 Petitions
Accused Products
Abstract
A hybrid storage system is described having a mixture of different types of storage devices comprising rotational drives, flash devices, SDRAM, and SRAM. The rotational drives are used as the main storage, providing lowest cost per unit of storage memory. Flash memory is used as a higher-level cache for rotational drives. Methods for managing multiple levels of cache for this storage system is provided having a very fast Level 1 cache which consists of volatile memory (SRAM or SDRAM), and a non-volatile Level 2 cache using an array of flash devices. It describes a method of distributing the data across the rotational drives to make caching more efficient. It also describes efficient techniques for flushing data from L1 cache and L2 cache to the rotational drives, taking advantage of concurrent flash devices operations, concurrent rotational drive operations, and maximizing sequential access types in the rotational drives rather than random accesses which are relatively slower. Methods provided here may be extended for systems that have more than two cache levels.
305 Citations
15 Claims
-
1. An apparatus for storing data, comprising:
-
a hybrid storage device comprising; an SRAM memory (static random access memory) configured to buffer write data from a host; a non-volatile memory; an SDRAM memory (synchronous dynamic random access memory) configured to communicate with a hard disk drive; a DMA (direct memory access) controller configured to transfer data between the hard disk drive and the SRAM memory; a flash interface controller configured to transfer data between the SRAM memory and the non-volatile memory; wherein the hybrid storage device provides a write buffering scheme comprising the SRAM memory, the non-volatile memory and the SDRAM memory, wherein, if the non-volatile memory is not full, then the flash interface controller copies the write data from the SRAM memory to the non-volatile memory if a pre-defined threshold of unused cache lines is reached in the SRAM memory or if the write data in the SRAM memory is dirty prior to writing new write data to the SRAM memory; wherein, if the non-volatile memory is full, then the DMA controller is configured to flush the write data from the SRAM memory to the hard disk drive if the pre-defined threshold of unused cache lines is reached in the SRAM memory or if the write data in the SRAM memory is dirty prior to writing new write data to the SRAM memory; wherein the flash interface controller copies data from the non-volatile memory to the SDRAM memory when data is transferred from the non-volatile memory to the SDRAM memory; wherein the non-volatile memory is slower than the SRAM memory; wherein the non-volatile memory has a greater storage capacity than the SRAM memory; wherein the non-volatile memory is slower than the SDRAM memory; wherein the non-volatile memory has a greater storage capacity than the SDRAM memory; and wherein the SDRAM memory is slower than the SRAM memory. - View Dependent Claims (2, 3, 4, 13)
-
-
5. A method for storing data comprising:
-
buffering, in an SRAM memory (static random access memory), write data from a host; transferring, by a flash interface controller, data between the SRAM memory and a non-volatile memory; wherein said transferring comprises; if the non-volatile memory is not full, then copying, by the flash interface controller, the write data from the SRAM memory to the non-volatile memory if a pre-defined threshold of unused cache lines is reached in the SRAM memory or if the write data in the SRAM memory is dirty prior to writing new write data to the SRAM memory; if the non-volatile memory is full, then a DMA (Direct Memory Access) controller is configured to flush the write data from the SRAM memory to a hard disk drive if the pre-defined threshold of unused cache lines is reached in the SRAM memory or if the write data in the SRAM memory is dirty prior to writing new write data to the SRAM memory; wherein the flash interface controller copies data from the non-volatile memory to an SDRAM memory (synchronous dynamic random access memory) when data is transferred from the non-volatile memory to the SDRAM memory; wherein the non-volatile memory is slower than the SRAM memory; wherein the non-volatile memory has a greater storage capacity than the SRAM memory; wherein the non-volatile memory is slower than the SDRAM memory; wherein the non-volatile memory has a greater storage capacity than the SDRAM memory; and wherein the SDRAM memory is slower than the SRAM memory. - View Dependent Claims (6, 7, 8, 14)
-
-
9. An article of manufacture, comprising:
-
a non-transitory computer-readable medium having stored thereon instructions operable to permit an apparatus to; buffer, in an SRAM memory (static random access memory), write data from a host; transfer, by a flash interface controller, data between the SRAM memory and a non-volatile memory; wherein said transfer comprises; if the non-volatile memory is not full, then copying, by the flash interface controller, the write data from the SRAM memory to the non-volatile memory if a pre-defined threshold of unused cache lines is reached in the SRAM memory or if the write data in the SRAM memory is dirty prior to writing new write data to the SRAM memory; if the non-volatile memory is full, then a DMA (Direct Memory Access) controller is configured to flush the write data from the SRAM memory to a hard disk drive if the pre-defined threshold of unused cache lines is reached in the SRAM memory or if the write data in the SRAM memory is dirty prior to writing new write data to the SRAM memory; wherein the flash interface controller copies data from the non-volatile memory to an SDRAM memory (synchronous dynamic random access memory) when data is transferred from the non-volatile memory to the SDRAM memory; wherein the non-volatile memory is slower than the SRAM memory; wherein the non-volatile memory has a greater storage capacity than the SRAM memory; wherein the non-volatile memory is slower than the SDRAM memory; wherein the non-volatile memory has a greater storage capacity than the SDRAM memory; and wherein the SDRAM memory is slower than the SRAM memory. - View Dependent Claims (10, 11, 12, 15)
-
Specification