Disk controller with volatile and non-volatile cache memories
First Claim
1. A disk controller coupled between a host computer and a disk drive, the disk controller comprising:
- a controller microprocessor;
a cache memory including;
at least one volatile memory module; and
at least one non-volatile memory module;
a cache memory control circuit coupled to said at least one non-volatile memory module and said at least one volatile memory module wherein in response to a write command received from the host computer, said controller microprocessor allocates a predetermined number of memory blocks in each of said at least one volatile and said at least one non-volatile memory modules for storage of write-data and upon completion of a write operation to said at least one non-volatile memory modules, said cache memory control circuit transfers the write-data from said at least one non-volatile memory module to said at least one volatile memory module.
2 Assignments
0 Petitions
Accused Products
Abstract
A disk storage subsystem includes both volatile and non-volatile portions of memory. In response to a write command from a host computer, the controller allocates a predetermined number of memory blocks in the non-volatile cache memory and allocates a corresponding number of blocks in the volatile memory. Host supplied write data is then stored in the allocated non-volatile memory blocks. The data may also be mirrored in additional non-volatile memory. Immediately thereafter the subsystem sends an acknowledge signal to the host. The subsystem then performs a DMA operation to copy the write-data from the non-volatile memory blocks to the volatile memory blocks. The write-data is then stored on a disk drive at which point the non-volatile memory may be de-allocated. Subsequent reads of the given data may be read from the volatile memory, reducing disk access time. In the event of a power failure, data stored in the non-volatile memory but not yet written to disk is preserved. In the event of a disk controller failure, the non-volatile memory modules may be transferred to a functioning disk controller for recovery.
542 Citations
23 Claims
-
1. A disk controller coupled between a host computer and a disk drive, the disk controller comprising:
-
a controller microprocessor; a cache memory including; at least one volatile memory module; and at least one non-volatile memory module; a cache memory control circuit coupled to said at least one non-volatile memory module and said at least one volatile memory module wherein in response to a write command received from the host computer, said controller microprocessor allocates a predetermined number of memory blocks in each of said at least one volatile and said at least one non-volatile memory modules for storage of write-data and upon completion of a write operation to said at least one non-volatile memory modules, said cache memory control circuit transfers the write-data from said at least one non-volatile memory module to said at least one volatile memory module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A disk storage subsystem comprising:
-
at least one disk drive; and a disk controller coupled to said disk drive and adapted to couple to a host computer, said disk controller comprising; a controller microprocessor; a cache memory including; a plurality of volatile memory modules which form a read-cache; a plurality of non-volatile memory modules which form a write-cache; and a cache memory control circuit coupled to said non-volatile memory module and said volatile memory module wherein in response a write command received from the host computer, said controller microprocessor allocates a predetermined number of memory blocks in each of said volatile and said non-volatile memory modules for storage of write data and upon completion of a write operation to said non-volatile memory modules, said cache memory control circuit transfers the write data from said non-volatile memory module to said volatile memory module. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method of transferring data to be written from a host computer to at least one disk drive within a disk storage subsystem including a host interface circuit, a disk interface circuit, a controller microprocessor, a cache memory, a cache memory management circuit and the at least one disk drive, the method comprising the steps of:
-
receiving in the disk storage subsystem a host write-to-disk command; allocating a predetermined number of memory blocks in a non-volatile memory module of the cache memory; allocating a predetermined number of memory blocks in a volatile memory module of the cache memory; storing the data to be written to the at least one disk drive in the allocated memory blocks of the non-volatile memory module of the cache memory; and initiating a DMA transfer by the cache memory management circuit, to copy the data to be written to the at least one disk drive from the allocated memory blocks of the non-volatile memory module to the allocated memory blocks of the volatile memory module of the cache memory. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A method of controlling a cache memory of a disk storage subsystem coupled to a host computer, the method comprising the steps of:
-
establishing a list of available memory blocks in a write-cache; in response to a write operation initiated by a host computer, allocating from the list of available memory blocks a predetermined number of memory blocks of the write-cache; allocating a like predetermined number of blocks in a read-cache; receiving write-data from the host computer; storing the write-data in the allocated memory blocks of the write-cache; indicating to the host computer that the write-data stored in the read-cache is valid and available for use; and
transferring the write-data from the allocated memory blocks of the write-cache to the allocated memory blocks of the read-cache. - View Dependent Claims (22, 23)
-
Specification