Electrical computers and digital processing systems: memory – Storage accessing and control – Specific memory composition
Reexamination Certificate
2002-09-17
2003-05-20
Bragdon, Reginald G. (Department: 2188)
Electrical computers and digital processing systems: memory
Storage accessing and control
Specific memory composition
C711S135000
Reexamination Certificate
active
06567888
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention is directed to cached data storage systems.
2. Description of Related Art
Storage systems including storage devices such as disk drives, tape drives, etc., are used in many different types of computer or data processing systems to store data. Disk drives generally include one or more disks of a recording medium (e.g., a magnetic recording medium or an optical recording medium) on which information can be written for storage purposes, and from which stored information can be read. Large data storage systems may include on the order of one-hundred disk drives, with each disk drive including several disks. One such mass storage system is the SYMMETRIX line of disk arrays available from EMC Corporation of Hopkinton, Mass. The SYMMETRIX line of disk arrays is described in numerous publications from EMC Corporation, including the SYMMETRIX model 55XX product manual, P-N200-810-550, rev. F, February 1996.
In a data storage system, a host data processor typically is able to write data to and read data from particular storage locations in one or more of the data storage devices. To increase system performance, a cache may be interposed between the host data processor and the data storage device(s). In a cached system, when the host data processor writes data to a storage device, the data is stored temporarily in the cache before being destaged to the storage device in a manner that is asynchronous with and transparent to the host. Once the host data processor has written data to the cache, the host data processor can perform other tasks while the data storage system destages the data from the cache to the appropriate storage device(s). Because the host data processor can write data to the cache much faster than to the data storage devices, caching the data increases the data transfer efficiency of the system.
Similarly, in a cached system, when the host data processor reads data from a data storage device, it may actually read the data from the cache after the data has been transferred from the data storage device to the cache. When the host data processor requests a read from a data storage device, if the data is already in the cache, the host data processor can read the data immediately from the cache, increasing the performance of the system in performing such a read. When the data is not already in the cache, the data may first be transferred from the data storage device to the cache before the host data processor reads the data from cache.
Data commonly is stored in a data storage system in units called “logical volumes,” and these logical volumes typically are divided into so-called “logical blocks.” Accordingly, the host data processor accesses data in the storage system using a logical volume address (LVA) and a logical block address (LBA). In some intelligent storage systems, a mapping is performed between the LVA's provided by the host and the actual physical locations where the corresponding data is stored. Thus, in such intelligent systems, the actual physical locations at which the logical blocks and logical volumes of data are stored in the data storage devices generally are not visible to the host data processor. That is, the host data processor needs only to specify LVAs and LBAs, and the data storage system controls how the logical volumes of data are mapped to and stored by the data storage devices. Each physical storage device (e.g., a disk drive) in the storage system may store a single logical volume. Alternatively, it is possible in many systems to configure each physical storage device to store two or more logical volumes, or to configure two or more storage devices to store a single logical volume.
FIG.
1
. shows an exemplary prior art data storage system
101
. As shown, the data storage system
101
includes data flow controllers
104
a-b
, data storage devices
106
a-h
, and a memory
102
that is globally accessible to the data flow controllers. The globally accessible memory
102
includes a cache
116
and a directory
108
. Each of the data flow controllers
104
a-b
includes a direct memory access (DMA) machine, a bus interface device, and a processor (e.g., the DMA machine
109
, the bus interface device
111
, and the processor
107
shown in the data flow controller
104
a
). Each of the data storage devices
106
a-h
includes several storage locations (e.g., storage locations
110
,
112
, and
114
shown in the data storage device
106
a
). It should be understood that each data storage device
106
typically includes many more storage locations than are shown in
FIG. 1. A
data storage system such as that shown in
FIG. 1
also typically includes many additional data storage devices and data flow controllers to permit large quantities of data to be stored by the system.
Using the exemplary storage system shown in
FIG. 1
, a host data processor (not shown) can write data to and read data from the data storage devices
106
a-h
via the cache
116
and the data flow controllers
104
a-b
. Using buses
103
and
105
a-b
, the data flow controllers
104
a-b
can direct the transfer of data between the cache
116
and storage locations (e.g., the storage locations
110
,
112
and
114
) in the data storage devices
106
a-h.
Data can be transferred between the cache
116
and the data storage devices
106
a-h
in units of any size. Commonly, however, data is transferred between these devices in logical blocks. A logical block may include, for example, five hundred and twelve bytes of data. Typically, the cache
116
is divided into a number of units called “slots” (not shown), with each slot being divided into several sections. Each section of a slot typically will have storage space for a single logical block of data and will therefore be referred to herein as a block-sized section. Each slot may be divided into a sufficient number of sections to provide storage space for a logical track of data, which may, for example, correspond to the amount of storage space provided by a physical track of disk a drive serving as one of the data storage devices
106
a-h
. Each slot may, for example, be divided into one hundred and twelve block-sized sections to create storage space for a logical track of data that is one hundred and twelve logical blocks long. Each logical volume stored by the system typically is divided into several logical cylinders, with each logical cylinder being divided into several logical tracks. Each logical cylinder may, for example, correspond to a physical cylinder (described below) of a disk drive serving as one of the data storage devices
106
a-h
. Before a logical block of data is written to the cache
116
, a slot can be dynamically assigned to represent the logical track in which the logical block of data is included, and the logical block can be written to a block-sized section of the slot corresponding to the logical block's location within the logical track.
Each slot in the cache
116
may have a holder associated with it which contains information regarding the current contents of the slot. For example, the holder may contain information identifying: (1) the logical track that the slot is currently assigned to represent, and (2) the particular block-sized section(s) within the slot that contain logical blocks of data that have been written by the host data processor but that have not yet been destaged to one or more of the data storage devices
106
a-h
, i.e., those block-sized sections that currently contain logical blocks of write-pending data.
The directory
108
may contain a write-pending flag for each logical track of data stored by the system. For a write operation, after the host data processor (not shown) has transferred a logical block of data to a block-sized section of a slot of the cache
116
, the write-pending flag for the logical track that includes that logical block of data can be set in the directory
108
to indicate that data for the logical track is currently stored in the cache
116
and has yet to be destaged to th
Bragdon Reginald G.
EMC Corporation
Vital Pierre M.
Wolf Greenfield & Sacks P.C.
LandOfFree
Method and apparatus for efficiently destaging data from a... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for efficiently destaging data from a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for efficiently destaging data from a... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3033168