IP Library Granted Patent US 6,931,486
Granted Patent B2
US 6,931,486 · App. 10/005,764 · Granted Aug 16, 2005

Method and apparatus for coalescing two or more transacting requests

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,486
App. No.
10/005,764
Granted
Aug 16, 2005
Kind
B2
Abstract

A method of coalescing transfer requests, includes storing a transfer request on a pending list, determining that no previous transfer requests are being processed, combining at least two transfer requests as a combined data transfer and releasing the combined data transfer. The method may also include determining that the pending list is not empty before releasing the combined data transfer.

Claims (63)

1. A method of transferring data within a computer system, comprising:

completing a first data transfer;

determining that no data transfers are being processed;

using a computer for coalescing two or more transfer requests into a second data transfer; and

releasing the second data transfer for processing.

2. The method of claim 1 , further comprising:

determining there are pending transfer request to coalesce before releasing the second data transfer.

3. The method of claim 2 , further comprising:

storing pending transfer requests, and

determining that the number of pending transfer requests stored is not greater than a queue depth variable before storing a new transfer request.

4. The method of claim 2 , wherein a second transfer request is stored on a pending list, and

wherein the second transfer request is not addressed adjacent to the first transfer request address, and

wherein a third transfer request is coalesced with the first and second transfer requests into the second data transfer, the third transfer request being adjacent to the first and second transfer requests.

5. The method of claim 2 , wherein releasing comprises determining that the second data transfer is an optimun-size that corresponds to an address boundary of an input/output device.

6. The method of claim 5 , wherein the address boundary corresponds to a strip boundary corresponding to a redundant array of inexpensive disks (RAID) process.

7. The method of claim 6 , further comprising:

gathering performance statistics based on at least one of a number of optimum-size transfers and a largest number of pending requests; and

modifying the queue depth variable based on the gathered statistics.

8. A method of transferring data within a computer system, comprising:

receiving transfer requests;

releasing data transfers for processing;

using a computer system coalescing two or more transfer requests into an additional data transfer; and

releasing the additional data transfer for processing each time a first data transfer completes.

9. The method of wherein releasing the combined data transfer comprises determining that the additional data transfer is an optimum-size that corresponds to an address boundary of an input/output device.

10. The method of claim 8 , further comprising:

determining there are pending transfer requests, wherein the additional data transfer comprises two or more transfer requests.

11. The method of claim 10 , further comprising:

determining there are pending transfer requests to coalesce before releasing the additional data transfer.

12. An article comprising a machine-readable medium that stores machine-executable instructions for transferring data, the instructions causing a machine to:

release a first data transfer for processing;

complete a first data transfer;

determine that no data transfers are being processed;

combine two or more transfer requests into a second data transfer; and

release the second data transfer for processing.

13. The article of claim 12 , wherein instructions causing a machine to release comprises instructions causing a machine to determine that the second data transfer is an optimum-size that corresponds to an address boundary of an input/output device.

14. The article of claim 13 , wherein the address boundary corresponds to a strip boundary corresponding to a redundant array of inexpensive disks process.

15. The article of claim 13 , further comprising instructions causing a machine to:

store pending transfer requests; and

determine that the number of pending transfer requests stored is not greater than a queue depth variable before storing a new transfer request.

16. The article of claim 15 , further comprising instructions causing a machine to:

gather performance statistics corresponding based on at least one of a number of optimum-size transfers and a largest number of pending requests; and

modify the queue depth variable based on the gathered statistics.

17. An apparatus for coalescing transfer requests, comprising:

a memory that stores executable instructions; and

a processor that executes the instructions to:

release a first data transfer for processing;

complete a first data transfer;

determine that no data transfers are being processed;

combine two or more transfer requests into a second data transfer; and

release the a second data transfer for processing.

18. The apparatus of claim 17 , wherein the processor executes instructions to:

determine there are no pending transfer requests to coalesce before releasing the second data transfer.

19. The apparatus of claim 18 , wherein releasing comprises determining that the second data transfer is an optimum-size that corresponds to an address boundary of an input/output device.

20. The apparatus of claim 19 , wherein the address boundary corresponds to a strip boundary corresponding to a redundant array of inexpensive disks process.

21. The apparatus of claim 19 , wherein the processor executes instructions to:

store pending transfer requests; and

determine that a number of stored transfer requests is not greater than a queue depth variable before storing a new transfer request on the pending list.

22. The apparatus of claim 19 , wherein the processor executes instructions to:

gather performance statistics based on at least one of a number of optimum-size transfers and a largest number of pending requests; and

modify the queue depth variable based on the gathered statistics.

23. The apparatus of claim 22 , wherein the processor executes instructions to,

store a second transfer request on the pending list, wherein the second transfer request is not addressed adjacent to the first transfer request address; and

coalesce a third transfer request with the first arid second transfer requests into the second data transfer, the third transfer request being adjacent to the first end second transfer requests.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2001
From: CAVALLO, JOSEPH S.; IPPOLITO, STEPHEN J.
To: INTEL CORPORATION
Reel/Frame 012359/0046 →