Claims Analysis
Total Claims: 40
Claim 1
Independent Claim
284 words
A cache driver operating in a computer having a RAM and connected to a network of remote computers, said cache driver comprising: means for creating a plurality of caches, each of said caches including data structures for identifying a plurality of data buckets located in the RAM of said computer; remote message means for communicating with cache drivers on any of said remote computers; means for creating a data structure for each of a plurality of I/O devices connected to said network for which data may be cached by said computer, each said data structure including a list of all computers on said network that permit caching with respect to the I/O device corresponding to said data structure; means for receiving a write instruction to one of said plurality of I/O devices from said computer and for writing data responsive to said instruction into a data bucket in one of the caches; means for invalidating all data buckets in the plurality of caches that have data blocks corresponding to addresses in said one of said plurality of I/O devices that overlap with the addresses in said one of said plurality of I/O devices for the data written in response to the write instruction; and means for using said remote message means to communicate with all computers in the list of computers in the data structure corresponding to said one of said I/O devices to invalidate all data buckets in any of said remote computers that have data blocks corresponding to addresses in said one of said plurality of I/O devices that overlap with the addresses in said one of said plurality of I/O devices for the data written in response to the write instruction.
Claim 2
Dependent Claim
284 words
A cache driver operating in a computer having a RAM and connected to a network of remote computers, said cache driver comprising: means for creating a plurality of caches, each of said caches including data structures for identifying a plurality of data buckets located in the RAM of said computer; remote message means for communicating with cache drivers on any of said remote computers; means for creating a data structure for each of a plurality of I/O devices connected to said network for which data may be cached by said computer, each said data structure including a list of all computers on said network that permit caching with respect to the I/O device corresponding to said data structure; means for receiving a write instruction to one of said plurality of I/O devices from said computer and for writing data responsive to said instruction into a data bucket in one of the caches; means for invalidating all data buckets in the plurality of caches that have data blocks corresponding to addresses in said one of said plurality of I/O devices that overlap with the addresses in said one of said plurality of I/O devices for the data written in response to the write instruction; and means for using said remote message means to communicate with all computers in the list of computers in the data structure corresponding to said one of said I/O devices to invalidate all data buckets in any of said remote computers that have data blocks corresponding to addresses in said one of said plurality of I/O devices that overlap with the addresses in said one of said plurality of I/O devices for the data written in response to the write instruction.
Claim 3
Dependent Claim
45 words
The cache driver of claim 1 wherein said plurality of caches includes a first cache having data structures for a first sized data buckets and a second cache having data structures for a second sized data buckets larger in size than said first sized buckets.
Claim 4
Dependent Claim
28 words
The cache driver of claim 1 further comprising means for invalidating all data buckets in the plurality of caches when a new computer is added to said network.
Claim 5
Dependent Claim
27 words
The cache driver of claim 1 wherein each of said caches include a plurality of queues in which the data structures for the data buckets are listed.
Claim 6
Dependent Claim
58 words
The cache driver of claim 4 wherein said plurality of queues include a least recently used queue, a free queue for available data buckets and an in-progress queue for data buckets that are in the midst of an instruction, such that a plurality of instructions may be in progress at one time with respect to different data buckets.
Claim 7
Dependent Claim
202 words
A caching system comprising: a plurality of computers, each having a memory; a network interconnecting said plurality of computers; a plurality of I/O devices connected to said network; and a plurality of cache drivers, each resident in one of said computers, for creating a cache in the memory of the computer in which the cache driver resides for caching data from selected ones of said I/O devices, each cache driver including: remote message means for communicating with cache drives on any of said computers; means for creating a data structure for each of the selected ones of said I/O devices, each said data structure including a list of all of said computers that permit caching with respect to the I/O device corresponding to said data structure; means for intercepting a write instruction to one of said plurality of I/O devices from the computer on which said cache driver resides; and means for using said remote message means to communicate individually with each computer in the list of computers in the data structure corresponding to said one of said I/O devices to invalidate, in the caches of each computer in the list, data corresponding to said one of said plurality of I/O devices.
Claim 8
Dependent Claim
202 words
A caching system comprising: a plurality of computers, each having a memory; a network interconnecting said plurality of computers; a plurality of I/O devices connected to said network; and a plurality of cache drivers, each resident in one of said computers, for creating a cache in the memory of the computer in which the cache driver resides for caching data from selected ones of said I/O devices, each cache driver including: remote message means for communicating with cache drives on any of said computers; means for creating a data structure for each of the selected ones of said I/O devices, each said data structure including a list of all of said computers that permit caching with respect to the I/O device corresponding to said data structure; means for intercepting a write instruction to one of said plurality of I/O devices from the computer on which said cache driver resides; and means for using said remote message means to communicate individually with each computer in the list of computers in the data structure corresponding to said one of said I/O devices to invalidate, in the caches of each computer in the list, data corresponding to said one of said plurality of I/O devices.
Claim 9
Dependent Claim
18 words
The caching system of claim 6 wherein said plurality of I/O devices comprises a plurality of disc drives.
Claim 10
Dependent Claim
57 words
The caching system of claim 6 wherein each of said cache drivers further includes means for intercepting a read instruction to one of said plurality of I/O devices from the computer on which said cache driver resides and for reading data from the cache when the read instruction relates to addresses corresponding to data in the cache.
Claim 11
Dependent Claim
38 words
The caching system of claim 8 wherein each of said cache drivers further includes means for writing data into the cache when the read instruction relates to addresses that do not correspond to any data in the cache.
Claim 12
Dependent Claim
47 words
The caching system of claim 6 wherein each of said cache drivers further includes means, responsive to said means for intercepting a write instruction, for intercepting a write complete instruction from said one of said I/O devices to activate said means for using said remote message means.
Claim 13
Dependent Claim
22 words
The caching system of claim 6 wherein said plurality of computers includes a plurality of computers running an Open VMS operating system.
Claim 14
Dependent Claim
21 words
The caching system of claim 6 wherein said plurality of computers includes a first plurality of computers interacting as a VAXcluster.
Claim 15
Dependent Claim
22 words
The caching system of claim 12 wherein said plurality of computers further includes a second plurality of computers interacting as a VMScluster.
Claim 16
Dependent Claim
32 words
The caching system of claim 6 wherein each of said cache drivers further comprises means for listening on said network for a request from a new computer to connect to said network.
Claim 17
Dependent Claim
39 words
The caching system of claim 14 wherein each of said cache drivers further comprises means for invalidating all data in the cache of the computer in which said cache driver resides when a new computer connects to said network.
Claim 18
Dependent Claim
47 words
The caching system of claim 6 wherein each of said cache drivers creates a plurality of caches in the memory of the computer in which said cache driver resides, each of said caches including a plurality of data buckets and data structures for identifying the data buckets.
Claim 19
Dependent Claim
48 words
The caching system of claim 16 wherein the plurality of caches created by each cache driver includes a first cache having data structures for first sized data buckets and a second cache having data structures for second sized data buckets larger in size than said first sized buckets.
Claim 20
Dependent Claim
26 words
The caching system of claim 16 wherein each cache includes a plurality of queues in which the data structures for identifying the data buckets are listed.
Claim 21
Dependent Claim
61 words
The caching system of claim 18 wherein said plurality of queues include a least recently used queue, a free queue for available data buckets and an in-progress queue for data buckets that are in the midst of an instruction, such that a plurality of instructions may be in progress on one computer at one time with respect to different data buckets.
Claim 22
Dependent Claim
185 words
A cache driver operating in a computer having a RAM and connected to a network of remote computers, said cache driver comprising: means for creating a cache having a plurality of data structures for identifying a plurality of data buckets located in the RAM of said computer; remote message means for communicating with cache drivers on any of said remote computers; means for creating a data structure for each of a plurality of I/O devices connected to said network for which data may be cached by said computer, each said data structure including a list of all computers on said network that permit caching with respect to the I/O device corresponding to said data structure; write intercept means for intercepting a write instruction to one of said plurality of I/O devices from said computer; and means for using said remote message means to communicate individually with each computer in the list of computers in the data structure corresponding to said one of said I/O devices to invalidate data in the RAM of said remote computers corresponding to said one of said plurality of I/O devices.
Claim 23
Dependent Claim
185 words
A cache driver operating in a computer having a RAM and connected to a network of remote computers, said cache driver comprising: means for creating a cache having a plurality of data structures for identifying a plurality of data buckets located in the RAM of said computer; remote message means for communicating with cache drivers on any of said remote computers; means for creating a data structure for each of a plurality of I/O devices connected to said network for which data may be cached by said computer, each said data structure including a list of all computers on said network that permit caching with respect to the I/O device corresponding to said data structure; write intercept means for intercepting a write instruction to one of said plurality of I/O devices from said computer; and means for using said remote message means to communicate individually with each computer in the list of computers in the data structure corresponding to said one of said I/O devices to invalidate data in the RAM of said remote computers corresponding to said one of said plurality of I/O devices.
Claim 24
Dependent Claim
26 words
The cache driver of claim 20 further comprising means for listening on said network for a request from a new computer to connect to said network.
Claim 25
Dependent Claim
25 words
The cache driver of claim 21 further comprising means for invalidating all data buckets in the RAM when a new computer connects to said network.
Claim 26
Dependent Claim
25 words
The cache driver of claim 20 wherein the cache includes a plurality of queues in which the data structures for the data buckets are listed.
Claim 27
Dependent Claim
58 words
The cache driver of claim 23 wherein said plurality of queues include a least recently used queue, a free queue for available data buckets and an in-progress queue for data buckets that are in the midst of an instruction, such that a plurality of instructions may be in progress at one time with respect to different data buckets.
Claim 28
Dependent Claim
41 words
The cache driver of claim 20 further comprising means, responsive to said means for intercepting a write instruction, for intercepting a write complete instruction from said one of said I/O devices to activate said means for using said remote message means.
Claim 29
Dependent Claim
30 words
The cache driver of claim 20 further comprising means responsive to said write intercept means, for writing data responsive to said write instruction into a data bucket in the RAM.
Claim 30
Independent Claim
141 words
A method for accelerating access to data on a network comprising the steps of: creating a cache in the RAM of a computer connected to the network; creating a data structure in the computer for each of a plurality of I/O devices connected to said network for which data may be cached by said computer, each said data structure including a list of all computers on said network that permit caching with respect to the I/O device corresponding to said data structure; intercepting a write instruction to one of said plurality of I/O devices from said computer; and communicating over the network individually with each computer in the list of computers in the data structure corresponding to said one of said I/O devices to invalidate data in caches on the network corresponding to said one of said plurality of I/O devices.
Claim 31
Independent Claim
141 words
A method for accelerating access to data on a network comprising the steps of: creating a cache in the RAM of a computer connected to the network; creating a data structure in the computer for each of a plurality of I/O devices connected to said network for which data may be cached by said computer, each said data structure including a list of all computers on said network that permit caching with respect to the I/O device corresponding to said data structure; intercepting a write instruction to one of said plurality of I/O devices from said computer; and communicating over the network individually with each computer in the list of computers in the data structure corresponding to said one of said I/O devices to invalidate data in caches on the network corresponding to said one of said plurality of I/O devices.
Claim 32
Dependent Claim
26 words
The method of claim 27 further comprising the step of listening on said network for a request from a new computer to connect to said network.
Claim 33
Dependent Claim
24 words
The method of claim 28 further comprising the step of invalidating all data in the cache when a new computer connects to said network.
Claim 34
Dependent Claim
22 words
The method of claim 27 further comprising the step of writing data into the cache in response to intercepting the write instruction.
Claim 35
Dependent Claim
25 words
The method of claim 27 further comprising the step of intercepting a read instruction to one of said plurality of I/O devices from said computer.
Claim 36
Dependent Claim
28 words
The method of claim 31 further comprising the step of reading data from the cache when the read instruction relates to addresses corresponding to data in the cache.
Claim 37
Dependent Claim
32 words
The method of claim 31 further comprising the step of writing data into the cache when the read instruction relates to addresses that do not correspond to any data in the cache.
Claim 38
Dependent Claim
31 words
The method of claim 27 further comprising the step of intercepting a write complete instruction from said one of said I/O devices before commencing said step of communicating over the network.
Claim 39
Dependent Claim
36 words
The method of claim 27 wherein the step of creating a cache in the RAM of a computer comprises creating a plurality of caches in the RAM, each having a different bucket size for storing data.
Claim 40
Dependent Claim
77 words
The method of claim 27 further comprising creating a plurality of queues each containing a list of data structures corresponding to data buckets of the cache, said plurality of queues including a least recently used queue, a free queue for available data buckets and an in-progress queue for data buckets that are in the midst of an instruction, such that a plurality of instructions may be in progress at one time with respect to different data buckets.