Device-managed host buffer
Abstract
A method and apparatus is provided to virtually increase the size of the memory cache of a peripheral device without additional cost. A portion of the memory space of a host computer is used as additional cache memory for the peripheral device. The peripheral device and the host computer may be interfaced with an interface that has a first-party direct memory access (FPDMA) mechanism, for example, IEEE 1394 or Serial ATA. FPDMA allows the peripheral device to access the memory space of the host computer under the control of the peripheral device. The host computer provides the peripheral device with the location of the additional cache memory. The peripheral device can transfer data to and from the additional cache memory via FPDMA. The peripheral device effectively manages the additional cache memory as part of the peripheral device's own cache.
Claims
exact text as granted — not AI-modified1 - 30 . (canceled)
31 . A method for virtually increasing a size of a cache of a peripheral device that is connectable to a second device, comprising:
querying the second device whether memory is available in a memory space of the second device; and allocating additional cache memory from the memory space of the second device for use by the peripheral device if memory is available in the memory space of the second device.
32 . The method of claim 31 , further comprising:
managing the additional cache memory via the peripheral device.
33 . The method of claim 32 , further comprising:
providing the peripheral device with a location of the additional cache memory assigned.
34 . The method of claim 32 , wherein managing the additional cache memory comprises:
evaluating whether data should be transferred from the cache of the peripheral device to the additional cache memory; and transferring data from the cache of the peripheral device to the additional cache memory if the data should be transferred.
35 . The method of claim 32 , wherein managing the additional cache memory further comprises:
if the second device requests data, evaluating whether the requested data is in the cache of the peripheral device; transferring the requested data to the second device if the requested data is in the cache of the peripheral device; and evaluating whether the requested data is in the additional cache memory if the requested data is not in the cache of the peripheral device.
36 . The method of claim 34 , wherein managing the additional cache memory further comprises:
transferring the requested data from the additional cache memory to the cache of the peripheral device via first-party direct memory access if the requested data is in the additional cache memory.
37 . The method of claim 32 , wherein managing the additional cache memory further comprises:
providing the second device with a location of data requested by the second device in the memory space of the second device if the requested data is in the additional cache memory.
38 . The method of claim 34 , wherein evaluating whether data should be transferred comprises:
evaluating whether the cache of the peripheral device is full if new data is to be stored in the cache of the peripheral device.
39 . The method of claim 34 , wherein transferring data from the cache of the peripheral device comprises:
indicating to the second device an address of the second device that will be written to; waiting to receive a signal from the second device indicating that the second device is ready to receive data at the indicated address; and sending the data to the indicated address upon receipt of the signal from the second device.
40 . The method of claim 34 , wherein transferring data from the cache is performed with a serial advanced technology attachment (ATA) protocol, wherein the serial ATA protocol includes a first-party direct memory access mechanism.
41 . The method of claim 35 , wherein evaluating whether the requested data is in the additional cache memory comprises:
searching a cache table that is stored in the memory of the peripheral device.
42 . The method of claim 35 , wherein evaluating whether the requested data is in the additional cache memory comprises:
retrieving a cache table from the second device; and searching the cache table for the requested data.
43 . The method of claim 36 , wherein transferring data from the additional cache memory is performed with a serial advanced technology attachment (ATA) protocol, wherein the serial ATA protocol includes a first-party direct memory access mechanism.
44 . The method of claim 31 , wherein the peripheral device is a hard disk drive, wherein querying the second device comprises querying a host computer whether memory is available in a memory space of the host computer; and wherein allocating additional cache memory comprises allocating additional cache memory from the memory space of the host computer for use by the hard disk drive if memory is available in the memory space of the host computer.
45 . A method for virtually increasing a size of a cache of a peripheral device that is connectable to a host computer, comprising:
querying the host computer whether memory is available in a memory space of the host computer; and allocating additional cache memory from the memory space of the host computer for use by the peripheral device if memory is available in the memory space of the host computer.
46 . The method of claim 45 , wherein the data storage device comprises a hard disc drive.
47 . The method of claim 45 , further comprising:
indicating to the host computer an address in the memory space of the host computer that will be read from if requested data is in the additional cache memory; waiting to receive a signal from the host computer indicating that the data at the indicated address is ready to be read; and reading the data from the indicated address upon receipt of the host signal.
48 . A peripheral device connectable to a second device having a memory space, the peripheral device comprising:
a cache memory; and a module that allocates additional cache memory from the memory space of the second device for use by the peripheral device.
49 . The device of claim 48 wherein the module further manages operation of the additional cache memory.
50 . The device of claim 48 wherein the module further stores a location of the additional cache memory.
51 . The device of claim 48 , wherein the module further evaluates whether data should be transferred from the cache of the peripheral device to the additional cache memory, and manages transfer of data from the cache of the peripheral device to the additional cache memory if the data should be transferred.
52 . The device of claim 51 , wherein the module further evaluates whether data requested by the host is in the cache of the peripheral device, transfers the requested data to the second device if the requested data is in the cache of the peripheral device, and evaluates whether the requested data is in the additional cache memory if the requested data is not in the cache of the peripheral device.
53 . The device of claim 52 , wherein the module transfers the requested data from the additional cache memory to the cache of the peripheral device via first-party direct memory access if the requested data is in the additional cache memory.
54 . The device of claim 51 , wherein the module evaluates whether the cache of the peripheral device is full if new data is to be stored in the cache of the peripheral device.
55 . The device of claim 51 , wherein the module indicates to the second device an address of the second device that will be written to, waits to receive a signal from the second device indicating that the second device is ready to receive data at the indicated address, and sends the data to the indicated address upon receipt of the signal.
56 . The device of claim 51 , wherein the data transferred from the cache is transferred via a serial advanced technology attachment (ATA) protocol, wherein the serial ATA protocol includes a first-party direct memory access mechanism.
57 . The device of claim 48 , wherein the module further provides the second device with a location of data requested by the second device if the requested data is in the additional cache memory.
58 . The device of claim 48 , wherein the module is adapted to search a cache table that is stored in the memory of the peripheral device.
59 . The device of claim 48 , wherein the peripheral device is a data storage device.
60 . The device of claim 48 , wherein the peripheral device is a hard disc drive.
61 . The device of claim 48 , wherein the second device is a host computer.Join the waitlist — get patent alerts
Track US2006112252A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.