IP Library Granted Patent US 6,931,501
Granted Patent B1
US 6,931,501 · App. 10/045,128 · Granted Aug 16, 2005

Method and apparatus for merging contiguous like commands

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,931,501
App. No.
10/045,128
Granted
Aug 16, 2005
Kind
B1
Abstract

Methods and a system for combining commands for data transfers between a drive and memory. One exemplary method includes receiving multiple read or write commands in a queue. Then, a first command of the multiple read or write commands is processed. Next, the multiple read or write commands are combined. The combination includes identifying like commands each being associated with a file stored on a drive and ascertaining which of the files associated with the like commands are contiguous. Then, a combined command is created, where the combined command consolidates the identified like commands being associated with contiguous files. Next, the combined command is issued to the drive.

Claims (41)

1. A method for merging like commands for transfers between a storage medium and memory, comprising:

accumulating a plurality of commands in a queue while a first command is being processed by the storage medium, each of the plurality of commands including a first command data block (CDB) and a first scatter gather list (SGL), the first CDB configured to identify a location of a file on the storage medium, the first SGL configured to include data pointers identifying a location of data in the memory, the plurality of commands in the queue including contiguous commands and non-contiguous commands;

examining the plurality of commands in the queue while the first command is being processed, the examining further including:

checking if any of the plurality of commands are like commands through analysis of the first CDB, each of the like commands corresponding to a file stored on a storage medium; and

determining if any of the files on the storage medium are stored contiguously with respect to one another through analysis of the first CDB;

combining the like commands corresponding to contiguous files as a combined command, wherein the combined command having a second CDB and a second SGL derived from the first CDB and the first SGL; and

issuing the combined command to the storage medium upon completion of the processing of the first command.

2. The method as recited in claim 1 , wherein the storage medium is a hard drive.

3. The method as recited in claim 1 , further including:

providing a multithread environment, the multithread environment allowing multiple read and write commands to be processed concurrently.

4. The method as recited in claim 1 , wherein the combined command is transparent to the operating system.

5. A method for combining commands for data transfer between a drive and memory, comprising:

receiving multiple read or write commands in a queue, each read and write command includes a first command data block (CDB) and a first scatter gather list (SGL), the first CDB configured to identify a location of a file on the drive, the first SGL being configured to include data pointers identifying a location of data in the memory, the plurality of commands in the queue including contiguous commands and non-contiguous commands;

processing a first command of the multiple read or write commands;

examining the multiple read or write commands, the examining including, identifying like commands of the multiple read or write commands through analysis of the first CDB while processing the first command, each of the like commands being associated with a file stored on the drive; and

examining one of the first CDB and the first SGL to ascertain which of the files associated with the like commands are contiguous files;

creating a combined command having a second CDB and a second SGL which are derived from the first CDB and the first SGL, the combined command being configured to consolidate the identified like commands being associated with contiguous files; and

issuing the combined command to the drive.

6. The method as recited in claim 5 , further including:

providing a multithread environment, the multithread environment allowing multiple read and write commands to be processed concurrently.

7. The method as recited in claim 5 , wherein the queue has a capacity of 256 commands.

8. The method as recited in claim 5 , further including:

processing the combined command; and

generating one interrupt for the processed combined command.

9. An apparatus for merging like commands, comprising;

an operating system, the operating system generating read and write commands;

a storage media, the storage media being configured to process read and write commands, the read and write commands being associated with files stored on the storage media, each read and write command is associated with a first command data block (CDB) and a first scatter gather list (SGL), the first CDB being configured to identify the location of corresponding files on the storage media, the first SGL being configured to include data pointers identifying a location of data in the memory; and

a driver queue, the driver queue being configured to receive the read and write commands from the operating system, the read and write commands in the driver queue including contiguous commands and non-contiguous commands, the first CDB for the corresponding read and write commands indicating like commands associated with contiguous files on the storage media, the like commands and respective first CDB and first SGL associated with the like commands being consolidated into a single command having a second CDB and a second SGL which are derived from the first CDB and the first SGL, the single command being issued to the storage media.

10. The apparatus of claim 9 , wherein the storage media is a hard drive.

11. The apparatus of claim 9 , further including:

a multithread environment, the multithread environment allowing for multiple combined commands to be processed concurrently.

12. A computer readable media having program instructions for combining commands for data transfer between a drive and memory, comprising:

program instructions for receiving multiple read or write commands in a queue, each read and write command includes a first command data block (CDB) and a first scatter gather list (SGL), the first CDB configured to identify a location of a file on the drive, the first SGL being configured to include data pointers identifying a location of data in the memory, the read and write commands in the queue including contiguous commands and non-contiguous commands;

program instructions for processing a first command of the multiple read or write commands; program instructions for combining multiple read or write commands, the combining including:

program instructions for identifying like commands of the multiple read or write commands through analysis of the first CDB while processing the first command, each of the like commands being associated with a file stored on the drive, and

program instructions for examining one of the first CDB and the first SGL to ascertain which of the files associated with the like commands are contiguous files;

program instructions for creating a combined command having a second CDB and a second SGL, which are derived from the first CDB and the first SGL, the combined command being configured to consolidate the identified like commands being associated with contiguous files; and

program instructions for issuing the combined command to the drive.

13. The computer readable media as recited in claim 12 , further including:

program instructions for providing a multithread environment.

14. The computer readable media as recited in claim 12 , wherein the drive is a hard drive.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2012
From: HUPPER ISLAND LLC
To: RPX CORPORATION
Reel/Frame 028142/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2011
From: ADPT CORPORATION
To: HUPPER ISLAND LLC
Reel/Frame 026459/0871 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2001
From: NARAYANASWAMY, MANJUNATH; NAGSHAIN, MADHURESH
To: ADAPTEC, INC.
Reel/Frame 012496/0784 →