Multi-leveled cache management in a hybrid storage system
First Claim
1. A data storage apparatus, comprising:
- a first cache for storing data, wherein the first cache comprises volatile memory;
a second cache for storing data, the second cache being in communication with the first cache, wherein the second cache comprises non-volatile memory including a plurality of flash memory devices;
one or more host interface controllers for communicating between the first cache and one or more external host systems;
a first group of IO interface DMA controllers for communicating between the first cache and a plurality of external rotational disk drives; and
a first flash interface DMA controller for communicating between the second cache and the first cache;
wherein the data storage apparatus is configured to perform operations comprising;
storing data in the first cache;
storing data in the second cache; and
performing data transfers, wherein the data transfers include;
transferring data between the first cache and the second cache using the first flash interface DMA controller;
transferring data between the first cache and the one or more external host systems using the one or more host interface controllers; and
transferring data between the first cache and the plurality of external rotational disk drives using the first group of IO interface DMA controllers; and
wherein the first flash interface DMA controller includes including a plurality of flash interface engines and a plurality of flash buses, wherein each flash interface engine is coupled to the flash memory devices in the second cache via a corresponding flash bus, wherein the first flash interface DMA controller is configured to perform concurrent flash operations selected from a group comprising;
a first concurrent flash operation comprising a first flash operation associated with a first flash memory device performed concurrently with a second flash operation associated with a second flash memory device, different from the first flash memory device; and
a second concurrent flash operation comprising a first flash operation associated with a first flash memory device performed concurrently with a second flash operation also associated with the first flash memory device.
1 Assignment
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.
363 Citations
19 Claims
-
1. A data storage apparatus, comprising:
-
a first cache for storing data, wherein the first cache comprises volatile memory; a second cache for storing data, the second cache being in communication with the first cache, wherein the second cache comprises non-volatile memory including a plurality of flash memory devices; one or more host interface controllers for communicating between the first cache and one or more external host systems; a first group of IO interface DMA controllers for communicating between the first cache and a plurality of external rotational disk drives; and a first flash interface DMA controller for communicating between the second cache and the first cache; wherein the data storage apparatus is configured to perform operations comprising; storing data in the first cache; storing data in the second cache; and performing data transfers, wherein the data transfers include; transferring data between the first cache and the second cache using the first flash interface DMA controller; transferring data between the first cache and the one or more external host systems using the one or more host interface controllers; and transferring data between the first cache and the plurality of external rotational disk drives using the first group of IO interface DMA controllers; and wherein the first flash interface DMA controller includes including a plurality of flash interface engines and a plurality of flash buses, wherein each flash interface engine is coupled to the flash memory devices in the second cache via a corresponding flash bus, wherein the first flash interface DMA controller is configured to perform concurrent flash operations selected from a group comprising; a first concurrent flash operation comprising a first flash operation associated with a first flash memory device performed concurrently with a second flash operation associated with a second flash memory device, different from the first flash memory device; and a second concurrent flash operation comprising a first flash operation associated with a first flash memory device performed concurrently with a second flash operation also associated with the first flash memory device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus for storing data, wherein the apparatus comprises:
-
A central processing unit (CPU) for executing software application; a first cache for storing data, the first cache being in communication with the CPU; wherein the first cache comprises volatile memory; a second cache for storing data, the second cache being in communication with the first cache;
wherein the second cache comprises non-volatile memory;a first group of IO interface DMA controllers for communicating between the first cache and a plurality of external rotational disk drives; and a first flash interface DMA controller for communicating between the second cache and the first cache wherein the first flash interface DMA controller includes including a plurality of flash interface engines and a plurality of flash buses, wherein each flash interface engine is coupled to the flash memory devices in the second cache via a corresponding flash bus, wherein the first flash interface DMA controller is configured to perform concurrent flash operations selected from a group comprising; a first concurrent flash operation, comprising a first flash operation associated with a first flash memory device, performed concurrently with a second flash operation associated with a second flash memory device, different from the first flash memory device; and a second concurrent flash operation comprising a first flash operation associated with a first flash memory device performed concurrently with a second flash operation also associated with the first flash memory device. - View Dependent Claims (10, 11)
-
-
12. A method for storing data, the method comprising:
-
storing data in a first cache, wherein the first cache comprises volatile memory; storing data in a second cache, wherein the second cache comprises non-volatile memory including a plurality of flash memory devices; transferring data between the first cache and the second cache using a first flash interface DMA controller; transferring data between the first cache and one or more external hosts using one or more host interface controllers; and transferring data between the first cache and any of a plurality of external rotational disk drives using a first group of IO interface DMA controllers; wherein the first flash interface DMA controller includes including a plurality of flash interface engines and a plurality of flash buses, wherein each flash interface engine is coupled to the flash memory devices in the second cache via a corresponding flash bus, wherein the first flash interface DMA controller is configured to perform concurrent flash operations selected from a group comprising; a first concurrent flash operation comprising a first flash operation associated with a first flash memory device performed concurrently with a second flash operation associated with a second flash memory device, different from the first flash memory device; and a second concurrent flash operation comprising a first flash operation associated with a first flash memory device performed concurrently with a second flash operation also associated with the first flash memory device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
Specification