Patent US5440720A successfully refreshed from Google Patents.
Patent US5598549A successfully refreshed from Google Patents.
US5598549A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver
Assignee: Taiwan Semiconductor Manufacturing Co TSMC Ltd
•
Filing: 1993-06-11
•
Granted: 1997-01-28
•
Expires: 2013-06-11
Abstract
Abstract A scalable software architecture, for optimal performance on a RAID level 1, 3, 4 and 5 disk array or tape array. The software architecture consists of a software device driver and one or more driver daemon processes to control I/O requests to the arrays. Implemented in a UNIX or NetWare operating environment, this architecture provides a transparent interface to the kernels I/O subsystem, physical device drivers and system applications. The array driver and I/O daemon can be run on a uni-processor or multi-processor system platform to optimize job control, error recovery, data recreation, parity generation and asynchronous writes.
Inventors
- 👤 Dale F. Rathunde
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-27 21:43
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/0614; G06F3/0619; G06F3/0628; G06F3/0655; G06F3/0656; G06F3/0668; G06F3/0671; G06F3/0683; G06F3/0689
Claims Analysis
Total Claims: 25
Claim 1
Independent Claim
222 words
An array storage system, comprising: a plurality of drives for storing data; a physical device driver corresponding to each one of said plurality of drives; a software array driver module for receiving a system I/O request and translating said system I/O request into one or more virtual I/O requests, said virtual I/O request being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received I/O request into a physical I/O request, said physical I/O request being provided to said drive corresponding to said one of said physical device drivers; a separate call-back module, different from said physical device drivers, for receiving physical I/O complete signals from said plurality of drives and translating said physical I/O complete signals into one or more virtual I/O complete signals corresponding to said one or more virtual I/O requests; and a separate virtual I/O daemon module, different from said software array driver module, for receiving said one or more virtual I/O complete signals from said call-back module and translating said received virtual I/O complete signals into a system I/O complete signal; wherein said one or more virtual I/O complete signals are communicated to said virtual I/O daemon module independently of said physical device drivers and said software array driver module.
Claim 2
Dependent Claim
222 words
An array storage system, comprising: a plurality of drives for storing data; a physical device driver corresponding to each one of said plurality of drives; a software array driver module for receiving a system I/O request and translating said system I/O request into one or more virtual I/O requests, said virtual I/O request being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received I/O request into a physical I/O request, said physical I/O request being provided to said drive corresponding to said one of said physical device drivers; a separate call-back module, different from said physical device drivers, for receiving physical I/O complete signals from said plurality of drives and translating said physical I/O complete signals into one or more virtual I/O complete signals corresponding to said one or more virtual I/O requests; and a separate virtual I/O daemon module, different from said software array driver module, for receiving said one or more virtual I/O complete signals from said call-back module and translating said received virtual I/O complete signals into a system I/O complete signal; wherein said one or more virtual I/O complete signals are communicated to said virtual I/O daemon module independently of said physical device drivers and said software array driver module.
Claim 3
Dependent Claim
43 words
The array storage system according to claim 1, wherein: said plurality of drives includes at least one drive for storing parity information; and virtual I/O requests directed to said parity drive are executed independently of virtual I/O requests directed to said data drives.
Claim 4
Dependent Claim
53 words
The array storage system according to claim 1, wherein: said plurality of drives includes at least one drive for storing parity information; and said virtual I/O daemon module generates said system I/O complete signal prior to receipt of virtual I/O complete signals corresponding to said virtual I/O requests directed to said parity drive.
Claim 5
Dependent Claim
54 words
The array storage system according to claim 1, wherein: said virtual I/O daemon module monitors the operational status of said drives and generates additional virtual I/O requests necessary to recreate data residing on a failed drive in response to a read I/O request, said additional virtual I/O requests being provided to said device driver.
Claim 6
Dependent Claim
41 words
The array system according to claim 4, wherein: said software array driver module and said virtual I/O daemon module include a hash table implementation to insure the integrity of data and parity during virtual I/O operations and array error recovery procedures.
Claim 7
Dependent Claim
43 words
The array system according to claim 5, wherein: each one of said virtual I/O requests accesses up to one cluster of data on one drive in said plurality of drives; and said hash table implementation determines a hash table entry for said cluster.
Claim 8
Dependent Claim
54 words
The array system according to claim 1, wherein: said array storage system is configured in accordance with RAID level 5; and said virtual I/O daemon module generates additional virtual I/O requests necessary to generate parity information in response to a write I/O request, said additional virtual I/O requests being provided to said device driver.
Claim 9
Dependent Claim
39 words
The array system according to claim 7, wherein: said virtual I/O daemon module generates said system I/O complete signal prior to receipt of virtual I/O complete signals corresponding to said additional virtual I/O requests necessary to generate parity information.
Claim 10
Dependent Claim
36 words
The array system according to claim 7, wherein: said software array driver module and said virtual I/O daemon module include a hash table implementation to insure the integrity of data and parity during virtual I/O operations.
Claim 11
Dependent Claim
43 words
The array system according to claim 9, wherein: each one of said virtual I/O requests accesses up to one cluster of data on one drive in said plurality of drives; and said hash table implementation determines a hash table entry for said cluster.
Claim 12
Dependent Claim
28 words
The array storage system according to claim 1, wherein: said array storage system includes a plurality of virtual I/O daemon modules capable of processing virtual jobs in parallel.
Claim 13
Dependent Claim
59 words
The array storage system according to claim 1, wherein: said array storage system is included within a multiprocessor computer system; and said array storage system includes a tunable number of virtual I/O daemon modules depending on the number of CPUs supported on the multiprocessor computer system, said virtual I/O daemon modules being capable of processing virtual jobs in parallel.
Claim 14
Dependent Claim
21 words
The data storage system according to claim 1, wherein: said plurality of data storage devices comprises a plurality of disk drives.
Claim 15
Dependent Claim
24 words
The data storage system according to claim 1, wherein: said plurality of data storage devices comprises a plurality of robotic media changer storage devices.
Claim 16
Dependent Claim
22 words
The data storage system according to claim 1, wherein: said plurality of data storage devices comprises a plurality of tape storage devices.
Claim 17
Dependent Claim
277 words
In a multiple processor data processing system that includes an I/O subsystem, a data storage system comprising: a plurality of disk drives; a physical device driver corresponding to each one of said plurality of disk drives; a software array driver module for receiving a system I/O request from the I/O subsystem and translating said system I/O request to one or more virtual I/O requests, said one or more virtual I/O requests being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received virtual I/O request into a physical I/O request, said physical I/O request being provided to said disk drive corresponding to said one of said physical device drivers; and a plurality of virtual I/O daemon modules for communicating with said physical device drivers and said software array driver module wherein: said software array driver module and said plurality of virtual I/O daemon modules being operative with each of a selected one of a plurality of data storage configurations defined in a group that includes a number of RAID levels;. at least one or said virtual I/O daemon modules generating parity, associated with data storage, in parallel with a virtual I/O request from the I/O subsystem that is being processed using said software array driver module; at least one of said plurality of virtual I/O daemon modules operating in parallel to a first virtual I/O request being processed by said software array driver module to determine an occurrence of an error related to said first virtual I/O request and for processing an error recovery procedure based on the determined error.
Claim 18
Dependent Claim
277 words
In a multiple processor data processing system that includes an I/O subsystem, a data storage system comprising: a plurality of disk drives; a physical device driver corresponding to each one of said plurality of disk drives; a software array driver module for receiving a system I/O request from the I/O subsystem and translating said system I/O request to one or more virtual I/O requests, said one or more virtual I/O requests being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received virtual I/O request into a physical I/O request, said physical I/O request being provided to said disk drive corresponding to said one of said physical device drivers; and a plurality of virtual I/O daemon modules for communicating with said physical device drivers and said software array driver module wherein: said software array driver module and said plurality of virtual I/O daemon modules being operative with each of a selected one of a plurality of data storage configurations defined in a group that includes a number of RAID levels;. at least one or said virtual I/O daemon modules generating parity, associated with data storage, in parallel with a virtual I/O request from the I/O subsystem that is being processed using said software array driver module; at least one of said plurality of virtual I/O daemon modules operating in parallel to a first virtual I/O request being processed by said software array driver module to determine an occurrence of an error related to said first virtual I/O request and for processing an error recovery procedure based on the determined error.
Claim 19
Dependent Claim
38 words
The data storage system according to claim 16, wherein: said plurality of virtual I/O daemon modules comprises a tunable number of virtual I/O daemons depending on the number of CPUs supported on the multiple processor data processing system.
Claim 20
Dependent Claim
36 words
The data storage system according to claim 16, wherein: said multiple processor data processing system employs a UNIX operating system; and said software array driver receives said system I/O request from a UNIX kernal I/O subsystem.
Claim 21
Dependent Claim
224 words
A data storage system comprising: a plurality of data storage devices; a physical device driver corresponding to each one of said data storage devices; a software array driver module for receiving a system I/O request and translating said system I/O request into one or more virtual I/O requests, said virtual I/O request being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received virtual I/O request into a physical I/O request, said physical I/O request being provided to said disk drive corresponding to said one of said physical device drivers; a separate call-back module, different from said physical device drivers, for receiving physical I/O complete signals from said plurality of disk drives and translating said physical I/O complete signals into one or more virtual I/O complete signals corresponding to said one or more virtual I/O requests; and a separate virtual I/O daemon module., different from said software array driver module, for receiving said one or more virtual I/O complete signals from said call-back module and translating said received virtual I/O complete signals into a system I/O complete signal; wherein said one or more virtual I/O complete signals are communicated to said virtual I/O daemon module independently of said physical device drivers and said software array driver module.
Claim 22
Dependent Claim
224 words
A data storage system comprising: a plurality of data storage devices; a physical device driver corresponding to each one of said data storage devices; a software array driver module for receiving a system I/O request and translating said system I/O request into one or more virtual I/O requests, said virtual I/O request being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received virtual I/O request into a physical I/O request, said physical I/O request being provided to said disk drive corresponding to said one of said physical device drivers; a separate call-back module, different from said physical device drivers, for receiving physical I/O complete signals from said plurality of disk drives and translating said physical I/O complete signals into one or more virtual I/O complete signals corresponding to said one or more virtual I/O requests; and a separate virtual I/O daemon module., different from said software array driver module, for receiving said one or more virtual I/O complete signals from said call-back module and translating said received virtual I/O complete signals into a system I/O complete signal; wherein said one or more virtual I/O complete signals are communicated to said virtual I/O daemon module independently of said physical device drivers and said software array driver module.
Claim 23
Dependent Claim
21 words
The data storage system according to claim 19, wherein: said plurality of data storage devices comprises a plurality of disk drives.
Claim 24
Dependent Claim
24 words
The data storage system according to claim 19, wherein: said plurality of data storage devices comprises a plurality of robotic media changer storage devices.
Claim 25
Dependent Claim
22 words
The data storage system according to claim 19, wherein: said plurality of data storage devices comprises a plurality of tape storage devices.
References Cited (Backward Citations)
US4084230A
Cited
US4627018A
Cited
US5396603A
Cited
US5440716A
Cited
US5124987A
Cited
US5179666A
Cited
US5301310A
Cited
US5345565A
Cited
US5301297A
Cited
US5333277A
Cited
US5410667A
Cited
US5408644A
Cited
US5418925A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2000-01-28 | 2000-07-29 | 2001-01-28 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2004-01-28 | 2004-07-29 | 2005-01-28 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2008-01-28 | 2008-07-29 | 2009-01-28 | $7700.00 | Window Closed / Lapsed |