United States Patent [w]
 RAID CONTROLLER SYSTEM UTILIZING FRONT END AND BACK END CACHING SYSTEMS INCLUDING COMMUNICATION PATH CONNECTING TWO CACHING SYSTEMS AND SYNCHRONIZING ALLOCATION OF BLOCKS IN CACHING SYSTEMS
 Inventor: Robert S. Mason, Jr., Holliston, Mass.  Assignee: EMC Corporation, Hopkinton, Mass.
 Appl. No.: 634,419
 Filed: Apr. 18, 1996
 Int. CI.6 G06F 13/20; G06F 13/14
 U.S. CI 395/872; 395/821; 711/113;
 Field of Search 395/821, 800,
395/872, 600, 427, 441, 445, 474; 711/114,
 References Cited
U.S. PATENT DOCUMENTS
4,445,174 4/1984 Fletcher 364/200
5,163,131 11/1992 Row et al 395/200
5,257,367 10/1993 Goodlander et al 395/600
5,355,453 10/1994 Row et al 395/200
5,396,596 3/1995 Hashemi et al 395/250
5,590,301 12/1996 Guenthner et al 395/412
5,673,394 9/1997 Fenwick et al 395/200.08
5,710,937 1/1998 Kasahara 395/800
D. A. Patterson, G. Gibson and R. H. Katz, "A Case for Redundant Arrays of Inexpensive Disks (RAID)," Proc. SIGMOD International Conf. on Management of Data, vol. 17, No. 3, Sep. 1988, pp. 109-116.
US005884098A [ii] Patent Number: 5,884,098  Date of Patent: Mar. 16, 1999
Primary Examiner—-Thomas C. Lee
Assistant Examiner—Rehana Perveen
Attorney, Agent, or Firm—-Wolf, Greenfield & Sacks, PC.
A disk drive array controller generally has a host I/O port configured for connection to a host computer and a plurality of disk I/O ports configured for connection to a corresponding plurality of disks forming a disk drive array. A controller constructed in accordance with various aspects of the present invention may include a host I/O processor in communication with the host I/O port and configured to perform I/O transactions with the host computer through the host I/O port; a cache memory; a front end caching subsystem in communication with the host I/O processor and configured to cache blocks of data comprising host I/O transactions in the cache memory; a disk array I/O processor configured to access host data in the cache memory and in communication with the plurality of disk drives, the disk array I/O processor processing host I/O transactions into disk I/O transactions; and a back end caching subsystem in communication with the disk array I/O processor, the back end caching subsystem configured to cache disk array metadata in the cache memory. Variations of this basic system are possible, and contemplated as within the scope of the present invention. The disk drive array controller may further include a communication path between the front end caching subsystem and the back end caching subsystem, whereby allocation of blocks in the caching subsystems are synchronized. The communication path may be, for example, a control store common to the front end caching subsystem and the back end caching subsystem, the control store holding a data structure through which caching and I/O transaction information are communicated between the front end caching subsystem and the back end caching subsystem.
19 Claims, 4 Drawing Sheets