1. Technical Field
The present invention relates in general to the field of data processing systems. More particularly, the present invention relates to the field of multi-processor data processing systems. Still more particularly, the present invention relates to a system and method of remote media cache optimization.
2. Description of the Related Art
Many modern computer systems utilize a system interface to couple and control access to and from peripherals. An example of such a system interface is a small computer system interface (SCSI) bus or universal serial bus (USB). The SCSI and USB buses are particularly well-suited for coupling memory drives such as CD-ROM, DVD, tape, and hard disk drives. A feature common to SCSI and USB devices is a memory device that stores “sense data”. Sense data describe the state of the data stored on a storage medium or indicate the location of the read head in CD-ROM, DVD, tape, and hard disk drives.
Those with skill in this art will appreciate that many modern computer systems include multiple processing units. These multiple processing units are typically coupled to a system bus, which operates as an interconnect between the multiple processing units and the computer system's peripherals. A difficulty arises during consecutive accesses to a peripheral by two different processing units. A first access to a peripheral by a first processing unit results in a first set of sense data related to the first access. A second access to the peripheral by a second processing unit results in a second set of sense data related to the second access. After the second access, the first processing unit may query the peripheral for the first set of sense data. However, the peripheral will return instead the second set of sense data related to the second access. Therefore, there is a need for a system and method of controlling access to peripherals by multiple processing units.
The present invention provides a system and method of remote media cache optimization for use with multiple processing units. The present invention discloses a data processing system that includes multiple processing units, a storage device, and a storage device adapter for coupling the storage device to the multiple processing units. The data processing system also includes a cache coupled to the storage device. The cache includes a data partition for storing data retrieved from the storage device and multiple sense data partitions. Each of the multiple sense partitions correspond to a respective one of the multiple processing units. In response to the storage device receiving a first command from a first processing unit, the storage device issues a response to the command and the storage device adapter stores sense data corresponding to the first command in a first sense data partition.
The above-mentioned features, as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
Those with skill in this art will appreciate that data processing system 100 can include many additional components not specifically illustrated in
Sense data caches 202a-n store sense data related to commands issued from processing units 102a-n. For example, processing unit 102a may issue a data read command to USB DVD drive 112. The data read command enters cache 108 via virtual USB connection 106a. USB drive interface 110 passes the data read command to USB DVD drive 112. When the requested data is sent back from USB DVD drive 112, the requested data is cached in remote media cache 200. Sense data related to the data read command issued by processing unit 102a is stored in sense data cache 202a. This preferred embodiment allows processing unit 102a to retrieve the sense data associated with the data read command at a later time, even after a second processing unit 102b has issued a second data read command requesting different data and returned sense data related to that second data read command.
Then, the process proceeds to step 304, which depicts USB drive interface 110 determining whether the issued command from processing unit 102a is a request for sense data. If USB drive interface 110 determines that the issued command is a request for sense data, the process continues to step 306, which depicts cache 108 returning the requested sense data stored in sense data cache 202a to processing unit 102a. The process then returns to step 302 and proceeds in an iterative fashion.
If USB drive interface 110 determines that the issued command is not a request for sense data, the process proceeds to step 308, which illustrates USB drive interface 110 determining if the issued command is a read command. If the command is determined to not be a read command, the command (which may be a write or other command) is then sent to USB DVD drive 112, where the command is processed, as depicted in step 310. The process then proceeds to step 312, which illustrates USB drive interface 110 retrieving sense data related to the command. The process then continues to step 314, which illustrates USB drive interface 110 storing the retrieved sense data in sense data cache 202a. Then, the process proceeds to step 316, which depicts, USB drive interface 110 returning the USB DVD drive's 112 response to the issued command to processing unit 102a. The process then returns to step 302 and continues in an iterative fashion.
Returning to step 308, if the command is determined to be a read command, the process continues to step 318, which illustrates USB drive interface 110 determining if the requested data exists in the remote media cache 200. If the requested data is already stored in the remote media cache 200, the process continues to step 326, which depicts USB drive interface 110 retrieving the requested data from the cache and the sense data related to the requested data. The sense data is retrieved from the sense data cache 202a-n corresponding to the processing unit 102a-n that originally retrieved the requested data from USB DVD drive 112. This ensures that processing unit 102a will always have the most updated sense data with regard to any retrieved data. The process then proceeds to step 314, which illustrates USB drive interface 110 storing the sense data related to the requested data in sense data cache 202a. The process then proceeds to step 316, returns to step 302, and proceeds in an iterative fashion.
Returning to step 318, if USB drive interface 110 determines that the requested data does not exist in the remote data cache 200, the process proceeds to step 320, which illustrates USB drive interface 110 sending the read command to USB DVD drive 112. Then, USB drive interface 100 retrieves the sense data related to the read command from USB DVD drive 112, as depicted by step 322. Then, the process proceeds to step 324, which illustrates USB drive interface 110 storing the requested data and sense data in remote media cache 200. The process then continues to step 314, which depicts USB drive interface 110 storing the sense data related to the requested data in sense data cache 202a. The process then proceeds to step 316, returns to step 302, and proceeds in an iterative fashion.
Also, it should be understood that at least some aspects of the present invention may alternatively implemented in a computer-readable medium that stores a program product. Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., floppy diskette, hard disk drive, read/write CD-ROM, optical media), and communication media, such as computer and telephone networks including Ethernet. It should be understood, therefore in such signal-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.
While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.
Also, it should be understood that at least some aspects of the present invention may alternatively implemented in a computer-readable medium consisting of a program product, such as an emulated hardware environment. Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., floppy diskette, hard disk drive, read/write CD-ROM, optical media), and communication media, such as computer and telephone networks including Ethernet. It should be understood, therefore in such signal-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.
As disclosed, the present invention provides a system and method of remote media cache optimization for use with multiple processing units. The present invention discloses a data processing system that includes multiple processing units, a storage device, and a storage device adapter for coupling the storage device to the multiple processing units. The data processing system also includes a cache coupled to the storage device. The cache includes a data partition for storing data retrieved from the storage device and multiple sense data partitions. Each of the multiple sense partitions correspond to a respective one of the multiple processing units. In response to the storage device receiving a first command from a first processing unit, the storage device issues a response to the command and the storage device adapter stores sense data corresponding to the first command in a first sense data partition.
While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.