← Back to Patent Explorer
US5987530A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for caching data and generating only one read request to read the requested data and additional data in universal serial bus system

Assignee: National Instruments Corp
•
Filing: 1997-07-10
•
Granted: 1999-11-16
•
Expires: 2017-07-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus and method is provided for caching data in a universal serial bus (USB) system. In one embodiment, the present invention employs a host computer coupled to an I/O device via a USB. The host computer includes a data cache for storing data retrieved from the I/O device. The data cache allows data to be returned to the host computer upon request without accessing the I/O device via a USB transaction. A cacheability look-up table and cache table are provided to ensure the integrity of data returned to the host computer. Requested data is returned from the I/O device if the cacheability look-up table indicates the requested data is noncacheable. Data is returned from the data cache if the cache table indicates the requested data is available in the cache as valid data. If the cache table indicates the requested data is not available in the cache as valid data, the requested data is returned from the I/O device along with data stored in predetermined I/O device addresses. The additional data is stored in the cache for subsequent access by the host computer. By returning data from the cache, the present invention reduces the response time and reduces the traffic over the USB between the host computer and I/O device.

Inventors

  • 👤 Andrew Thomson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 16:12
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0875

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 168 words
In a system including a host computer and I/O devices coupled to the host computer via a universal serial bus (USB), wherein said host computer generates requests to read data stored in the I/O devices, a method comprising the steps: the host computer generating first request to read a first data stored in an I/O device at a first address; the host computer generating a request on the USB to read the first data and additional data stored in the I/O device in response to generation of the first request; the I/O device returning the first and additional data stored in the I/O device to the host computer via the USB in response to generation of the request to read the first data and the additional data; providing the first data to the host computer after the I/O device returning the first and additional data, and; storing the additional data in a data cache in the host computer after the I/O device returning the first and additional data.
Claim 2
Dependent Claim 168 words
In a system including a host computer and I/O devices coupled to the host computer via a universal serial bus (USB), wherein said host computer generates requests to read data stored in the I/O devices, a method comprising the steps: the host computer generating first request to read a first data stored in an I/O device at a first address; the host computer generating a request on the USB to read the first data and additional data stored in the I/O device in response to generation of the first request; the I/O device returning the first and additional data stored in the I/O device to the host computer via the USB in response to generation of the request to read the first data and the additional data; providing the first data to the host computer after the I/O device returning the first and additional data, and; storing the additional data in a data cache in the host computer after the I/O device returning the first and additional data.
Claim 3
Dependent Claim 92 words
The method of claim 1, wherein the host computer generating the request to read the first and additional data comprises: the host computer constructing a first packet from the request to read the first and additional data stored in the I/O device, and; the host computer transmitting the first packet over the USB to an I/O device interface in data communication with the I/O device; wherein the I/O device returning the first and additional data to the host computer is performed in response to the I/O device interface receiving the first packet.
Claim 4
Dependent Claim 41 words
The method of claim 2 wherein the I/O device returning the first and additional data comprises: the I/O device interface generating a second packet containing the first and additional; the I/O device interface transmitting the second packet to the host computer.
Claim 5
Dependent Claim 19 words
The method of claim 3 wherein the first and additional data are stored in registers in the I/O device.
Claim 6
Dependent Claim 198 words
The method of claim 1 further comprising: the host computer creating a data structure including information indicating cacheability of data stored in the I/O device, wherein the cacheability information in the data structure is accessible using addresses of data stored in the I/O device; the host computer creating a cache table including information indicating availability and validity of data stored in the cache, wherein the availability and validity information in the cache table is accessible using addresses of data stored in the I/O device; the host computer accessing the data structure using the first address to determine cacheablity of the first data stored in the I/O device after the host computer generating the first request; the host computer accessing the cache table using the first address to determine whether the first data is available and valid in the data cache after the host computer generating the first request; wherein the host computer generating the request to read the first data and the additional data is performed in response to (1) the data structure indicating the first data is cacheable and (2) the cache table indicating the first data is not available in the data cache as valid data.
Claim 7
Dependent Claim 209 words
The method of claim 1 further comprising: the host computer creating a data structure including information indicating cacheability of data stored in the I/O device, wherein the cacheability information in the data structure is accessible using addresses of data stored in the I/O device; the host computer creating a cache table including information indicating availability and validity data stored in the cache is valid, wherein the availability and validity information in the cache table is accessible using addresses of data stored in the I/O device; the host computer generating a second request to read a second data stored in the I/O device at a second address after the host computer generating the first request; the host computer accessing the data structure using the second address to determine the cacheablity of the second data stored in the I/O device; the host computer accessing the cache table using the second address to determine whether the second data is available in the data cache as valid data after the host computer generating the first request; reading the second data from the data cache when (1) the data structure indicates the second data is cacheable and (2) the cache table indicates the second data is available as valid data in the data cache.
Claim 8
Dependent Claim 33 words
The method of claim 6 further comprising updating the cache table to indicate invalidity of the second data stored in the data cache after the second data is read from the data cache.
Claim 9
Dependent Claim 131 words
The method of claim 1 further comprising: the host computer creating a data structure including information indicating cacheability of data stored in the I/O device, wherein the cacheability information in the data structure is accessible using addresses of data stored in the I/O device; the host computer generating a second request to read a second data stored in the I/O device at a second address after the host computer generating the first request; the host computer accessing the data structure using the second address to determine whether the second data is cacheable after the host computer generating the first request; the I/O device returning the second data stored in the I/O device to the host computer via the USB in response to the data structure indicating the second data is uncacheable.
Claim 10
Dependent Claim 76 words
The method of claim 8 further comprising: the host computer creating a cache table including information indicating availability and validity data stored in the cache is valid, wherein the availability and validity information in the cache table is accessible using addresses of data stored in the I/O device; updating the cache table to indicate that all data stored in the data cache is invalid in response to the data structure indicating the second data is uncacheable.
Claim 11
Dependent Claim 96 words
The method of claim 9 further comprising: the host computer generating a request for reading data stored at predefined addresses in the I/O device in response to the data structure indicating the second data is uncacheable, wherein the data at predefined addresses includes the second data; the I/O device returning the data stored at the predefined addresses to the host computer via the USB in response to generation of the request to read data stored at predefined addresses; storing the data returned from the I/O device in the data cache subsequent to updating the cache table.
Claim 12
Dependent Claim 81 words
The method of claim 1 further comprising: the host computer generating one or more requests to write data to the I/O device; the host computer constructing a packet from the one or more requests to write data, wherein the requests to write data are stored in a queue, and; the host computer transmitting the packet over the USB to an I/O device interface in data communication with the I/O device before returning the first and additional data to the host computer.
Claim 13
Dependent Claim 28 words
The method of claim 5 further comprising the host computer updating the cache table to indicate availability and validity of the additional data stored in the data cache.
Claim 14
Dependent Claim 213 words
In a system including a host computer and I/O devices coupled to the host computer via a universal serial bus (USB), wherein the host computer generates requests for reading data stored in the I/O devices, a method comprising the steps: storing data read from the I/O device in a data cache; creating a data structure including information indicating cacheability of data stored in the I/O device, wherein cacheability information in the data structure is accessible using addresses of data stored in the I/O device; creating a cache table including information indicating availability and validity of data stored in the cache, wherein availability and validity information in the cache table is accessible using addresses of data stored in the I/O device; the host computer generating a request to read data stored in an I/O device at an address; accessing the data structure using the address to determine whether the requested data is cacheable; accessing the cache table using the address to determine whether the requested data is available in the data cache as valid data; reading the requested data from the data cache in response to (1) the data structure indicating the requested data is cacheable and (2) the cache table indicating the requested data is available in the data cache as valid data.
Claim 15
Dependent Claim 213 words
In a system including a host computer and I/O devices coupled to the host computer via a universal serial bus (USB), wherein the host computer generates requests for reading data stored in the I/O devices, a method comprising the steps: storing data read from the I/O device in a data cache; creating a data structure including information indicating cacheability of data stored in the I/O device, wherein cacheability information in the data structure is accessible using addresses of data stored in the I/O device; creating a cache table including information indicating availability and validity of data stored in the cache, wherein availability and validity information in the cache table is accessible using addresses of data stored in the I/O device; the host computer generating a request to read data stored in an I/O device at an address; accessing the data structure using the address to determine whether the requested data is cacheable; accessing the cache table using the address to determine whether the requested data is available in the data cache as valid data; reading the requested data from the data cache in response to (1) the data structure indicating the requested data is cacheable and (2) the cache table indicating the requested data is available in the data cache as valid data.
Claim 16
Dependent Claim 45 words
The method of claim 13 further comprising updating the cache table in response to reading the requested data from the data cache, wherein the cache table is updated to indicate that the requested data is no longer available in the data cache as valid data.
Claim 17
Dependent Claim 73 words
The method of claim 13 further comprising: reading data stored at predefined addresses in the I/O device when the cache table indicates that the requested data is unavailable in the data cache, wherein the data stored at the predefined addresses includes the requested data; storing data read from the I/O device in the data cache; updating the cache table to indicate the availability and validity of the data stored in the data cache.
Claim 18
Dependent Claim 42 words
The method of claim 13 further comprising: reading the requested data from the I/O device when the data structure indicates that the requested data is not cacheable; updating the cache table to indicate invalidity of all data stored in the data cache.
Claim 19
Dependent Claim 70 words
The method of claim 13 further comprising: reading data stored at predefined addresses in the I/O device when the data structure indicates that the requested data is not cacheable, wherein the data at the predefined addresses includes the requested data; storing all data read from the I/O device in the data cache; updating the cache table to indicate the availability and validity of the data stored in the data cache.
Claim 20
Dependent Claim 189 words
A universal serial bus system comprising: a universal serial bus (USB) for transmitting data between devices connected thereto; an I/O device coupled to the USB, the I/O device having addressable memory for storing data; a host computer coupled to the USB, wherein the host computer includes a memory, wherein the host computer is configured to generate (1) a first request on the USB to read a first data stored at a first address in the I/O device, and (2) a request on the USB to read the first data and additional data stored in the I/O device, wherein the request to read the first data and the additional data is generated in response to generation of the first request; wherein the I/O device is configured to return the requested first and additional data to the host computer via the USB in response to the host computer generating the request to read the first data and the additional data, and; wherein the host computer includes a cache in the memory for storing the returned additional data, wherein the returned additional data is avaible for subsequent access by the host computer.
Claim 21
Dependent Claim 189 words
A universal serial bus system comprising: a universal serial bus (USB) for transmitting data between devices connected thereto; an I/O device coupled to the USB, the I/O device having addressable memory for storing data; a host computer coupled to the USB, wherein the host computer includes a memory, wherein the host computer is configured to generate (1) a first request on the USB to read a first data stored at a first address in the I/O device, and (2) a request on the USB to read the first data and additional data stored in the I/O device, wherein the request to read the first data and the additional data is generated in response to generation of the first request; wherein the I/O device is configured to return the requested first and additional data to the host computer via the USB in response to the host computer generating the request to read the first data and the additional data, and; wherein the host computer includes a cache in the memory for storing the returned additional data, wherein the returned additional data is avaible for subsequent access by the host computer.
Claim 22
Dependent Claim 82 words
The system of claim 18: wherein the host computer is configured to construct a first packet from the request to read the first data and the additional data; wherein the host computer is configured to transmit the first packet over the USB to a I/O device interface in data communication with the I/O device; wherein the I/O device is configured to return the first and additional data to the host computer in response to the I/O device interface receiving the first packet.
Claim 23
Dependent Claim 137 words
The system of claim 18 further comprising: a data structure stored in memory of the host computer, wherein the data structure is configured to indicate cacheability of data stored in the I/O device, wherein the data structure is accessible using addresses of data stored in the I/O device; a cache table stored in memory of the host computer, wherein the cache table is configured to indicate availability and validity of data stored in the cache, wherein the cache table is accessible using addresses of data stored in the I/O device; wherein the host generates the request to read the first data and the additional data in response to the (1) the data structure indicating the first data is cacheable and (2) the cache table indicating the first data is not available as valid data in the cache.
Claim 24
Dependent Claim 30 words
The system of claim 20 wherein the host computer is configured to update the cache table to indicate availability and validity of the additional data stored in the data cache.
Claim 25
Dependent Claim 216 words
The system of claim 18 further comprising: a data structure stored in memory of the host computer, wherein the data structure is configured to indicate cacheability of data stored in the I/O device, wherein the data structure is accessible using addresses of data stored in the I/O device; a cache table stored in memory of the host computer, wherein the cache table is configured to indicate availability and validity of data stored in the cache, wherein the cache table is accessible using addresses of data stored in the I/O device; wherein the host computer is configured to generate a second request to read a second data stored in the I/O device at a second address; wherein the host computer is configured (1) to access the data structure using the second address to determine whether the second data is cacheable in the host computer cache, and (2) to access the cache table using the second address to determine whether the second data is available and valid in the host computer cache; wherein the host computer is configured to read the second data from the host computer cache in response to (1) the data structure indicating the second data is cacheable and (2) the cache table indicating the second data is available and valid in the data cache.
Claim 26
Independent Claim 39 words
The system of 22 wherein the host computer is configured to update the cache table to indicate invalidity of the second data stored in the data cache is invalid after the second data is read from the data cache.
Claim 27
Independent Claim 39 words
The system of 22 wherein the host computer is configured to update the cache table to indicate invalidity of the second data stored in the data cache is invalid after the second data is read from the data cache.
Claim 28
Dependent Claim 166 words
The system of claim 18 further comprising: a data structure stored in memory of the host computer, wherein the data structure is configured to indicate cacheability of data stored in the I/O device, wherein the data structure is accessible using addresses of data stored in the I/O device; a cache table stored in memory of the host computer, wherein the cache table is configured to indicate availability and validity of data stored in the cache, wherein the cache table is accessible using addresses of data stored in the I/O device; wherein the host computer is configured to generate a second request to read a second data stored in the I/O device at a second address; wherein the USB interface is configured to access the data structure using the second address to determine whether the second data is cacheable; wherein the I/O device is configured to return the second data to the host computer in response to the data structure indicating the second data to be uncacheable.
Claim 29
Dependent Claim 28 words
The system of claim 21 wherein host computer is configured to update the cache table to indicate availability and validity of the second additional data in the cache.
Claim 30
Dependent Claim 80 words
The system of claim 18: wherein the host computer is configured to construct a packet from requests to write data to the I/O device, wherein the write data requests are stored in a queue of memory of the host computer, and; wherein the host computer is configured to transmit the packet over the USB to an I/O device interface in data communication with the I/O device before the I/O device returns the first and additional data to the host computer.
Claim 31
Dependent Claim 41 words
The system at claim 18 wherein the first request is generated by a software application executing on the host computer and the request for the first data and the additional data is generated by a driver executing on the host computer.
Claim 32
Dependent Claim 18 words
The system of claim 18 wherein the I/O device includes registers for storing the first and additional data.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-11-15 2003-05-17 2003-11-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-11-15 2007-05-17 2007-11-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-11-15 2011-05-17 2011-11-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag