IP Library Granted Patent US 7,587,549
Granted Patent B1
US 7,587,549 · App. 11/539,392 · Granted Sep 8, 2009

Buffer management method and system with access grant based on queue score

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 7,587,549
App. No.
11/539,392
Granted
Sep 8, 2009
Kind
B1
Abstract

A method includes assigning each of a plurality of disk write and disk read requests to respective ones of a plurality of queues. Each queue has an occupancy level and a weight. A score is assigned to each of the plurality of queues, based on the occupancy and weight of the respective queue. An operation type is selected to be granted a next disk access. The selection is from the group consisting of disk write, disk read, and processor request. One of the queues is selected based on the score assigned to each queue, if the selected operation type is disk write request or disk read request. The next disk access is granted to the selected operation type and, if the selected operation type is disk write or disk read, to the selected queue.

Claims (52)

1. A method comprising the steps of:

assigning each of a plurality of disk requests to respective ones of a plurality of queues, each queue having an occupancy level and a weight;

assigning a score to each of the plurality of queues, based on the occupancy and weight of the respective queue;

selecting an operation type to be granted to a next disk access, said selection being from the group consisting of disk write, disk read, and processor request;

selecting one of the queues based on the score assigned to each queue, if the selected operation type is disk write request or disk read request; and

granting the next disk access to the selected operation type and, if the selected operation type is disk write or disk read, to the selected queue.

2. The method of claim 1 , wherein, if a disk write request is assigned to one of the queues the respective score of that queue is determined by a function that increases as the occupancy level of the queue increases.

3. The method of claim 2 , wherein the function is based on a product of the occupancy level and the weight of the queue.

4. The method of claim 1 , wherein the queue selecting step selects a disk write request from among a first subset of the plurality of queues having a buffer occupancy of at least a predetermined threshold level, or from among a second subset of the plurality of queues for which a final packet of a data transfer satisfying the write request is stored in that queue.

5. The method of claim 1 , wherein, if a disk read request is assigned to one of the queues the respective score of that queue is determined by a function that decreases as the occupancy of the queue increases.

6. The method of claim 5 , wherein the function is based on a quotient of the weight divided by the queue occupancy.

7. The method of claim 1 , wherein the queue selecting step selects a disk read request from among a subset of the plurality of queues having a buffer occupancy less than a predetermined threshold level, and for which a final packet of a data transfer satisfying the read request is not yet stored in that queue.

8. The method of claim 1 , wherein the weight of a disk request queue depends on whether the disk request is associated with an audio transfer, a video transfer, or an audiovisual transfer.

9. The method of claim 1 , wherein the operation selecting step includes selecting from among a subset of the group consisting of disk write, disk read, and processor request operation types, for which subset the members thereof have a status of being eligible for being granted the next disk access.

10. The method of claim 9 , wherein the operation type selecting step includes selecting from among the operation types having the eligible status, using a round robin algorithm.

11. The method of claim 9 , wherein the operation type has the eligible status if at least one pending request has that operation type, and an eligibility value associated with that operation type is less than a threshold value.

12. The method of claim 11 , wherein the eligibility value of that operation type is increased each time that operation type is granted access to the disk.

13. The method of claim 12 , wherein the eligibility value of that operation type is increased by an amount based on a weight assigned to the operation type and a size of a data transfer associated with the request that is granted the disk access.

14. The method of claim 11 , wherein when the eligibility values associated with each of the operation types are greater than or equal to the threshold value, the eligibility values associated with each of the operation types having at least one pending request is reduced by a predetermined amount.

15. The method of claim 14 , wherein when the eligibility values associated with each of the operation types are greater than or equal to the threshold value, the eligibility values associated with each of the operation types having no pending request is reset to an initial value.

16. A system comprising:

a storage device;

a processor configured to manage access to the storage device;

means for assigning each of a plurality of disk requests to respective ones of a plurality of queues, each queue having an occupancy level and a weight;

means for assigning a score to each of the plurality of queues, based oil the occupancy and weight of the respective queue;

a disk access scheduler for selecting an operation type to be granted a next disk access, said selection being from the group consisting of disk write, disk read, and processor request;

means for selecting one of the queues based on the score assigned to each queue, if the selected operation type is disk write request or disk read request; and

means for granting the next disk access to the selected operation type and, if the selected operation type is disk write or disk read, to the selected queue.

17. The system of claim 16 , wherein, if a disk read request is assigned to one of the queues the respective score of that queue is determined by a function that decreases as the occupancy of the queue increases.

18. The system of claim 17 , wherein, if a disk write request is assigned to one of the queues the respective score of that queue is determined by a function that increases as the occupancy level of the queue increases.

19. A computer readable medium encoded with computer program code wherein, when the computer program code is processed by a processor, the processor performs a method comprising the steps of:

assigning each of a plurality of disk requests to respective ones of a plurality of queues, each queue having an occupancy level and a weight;

assigning a score to each of the plurality of queues, based on the occupancy and weight of the respective queue;

selecting an operation type to be granted to a next disk access, said selection being from the group consisting of disk write, disk read, and processor request;

selecting one of the queues based on the score assigned to each queue, if the selected operation type is disk write request or disk read request; and

granting the next disk access to the selected operation type and, if the selected operation type is disk write or disk read, to the selected queue.

20. The computer readable storage medium of claim 19 , wherein, if a disk read request is assigned to one of the queues the respective score of that queue is determined by a function that decreases as the occupancy of the queue increases.

21. A method comprising the steps of:

assigning each of a plurality of disk requests to respective ones of a plurality of queues, each queue having an occupancy level and a weight;

assigning a score to each of the plurality of queues, based on the occupancy and weight of the respective queue;

selecting an operation type to be granted to a next disk access, said selection being from the group consisting of disk write, disk read, and processor request;

selecting one of the queues based on the score assigned to each queue, if the selected operation type is disk write request or disk read request; and

granting the next disk access to the selected operation type and, if the selected operation type is disk write or disk read, to the selected queue,

wherein the queue selecting step selects a disk read request from among a subset of the plurality of queues having a buffer occupancy less than a predetermined threshold level, and for which a final packet of a data transfer satisfying the read request is not yet stored in that queue.

22. A method comprising the steps of:

assigning each of a plurality of disk requests to respective ones of a plurality of queues, each queue having an occupancy level and a weight;

assigning a score to each of the plurality of queues, based on the occupancy and weight of the respective queue;

selecting an eligible operation type to be granted to a next disk access, said selection being from the group consisting of disk write, disk read, and processor request, each operation type having an eligibility status and an eligibility value;

increasing the operation type eligibility value each time that operation type is granted access to the disk;

setting the operation type eligibility status if at least one pending request has that operation type, and the eligibility value associated with that operation type is less than a threshold value;

selecting one of the queues based on the score assigned to each queue, if the selected operation type is disk write request or disk read request; and

granting the next disk access to the selected operation type and, if the selected operation type is disk write or disk read, to the selected queue.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED AT REEL: 047195 FRAME: 0827. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Nov 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047924/0571 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047195/0827 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: AGERE SYSTEMS LLC
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035365/0634 →
CERTIFICATE OF CONVERSION Recorded Aug 29, 2014
From: AGERE SYSTEMS INC.
To: AGERE SYSTEMS LLC
Reel/Frame 033663/0948 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2009
From: ARULAMBALAM, AMBALAVANAR; CHEN, JIAN-GUO; HEINTZE, NEVIN C.; XU, QULAN GAO; ZHAO, JUN CHAO
To: AGERE SYSTEMS INC.
Reel/Frame 022195/0253 →