IP Library Granted Patent US 7,877,548
Granted Patent B2
US 7,877,548 · App. 12/022,493 · Granted Jan 25, 2011

Shared buffer having hardware-controlled buffer regions

Assignee: International Business Machines Corporation
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,877,548
App. No.
12/022,493
Granted
Jan 25, 2011
Kind
B2
Abstract

Buffer memories having hardware controlled buffer space regions in which the hardware controls the dimensions of the various buffer space regions to meet the demands of a particular system. The hardware monitors the usage of the buffer data regions over time and subsequently and automatically adjusts the dimensions of the buffer space regions based on the utilization of those buffer regions.

Claims (40)

1. A memory device, comprising:

a buffer memory having a plurality of addressable memory registers; the buffer memory capable of being partitioned into a plurality of buffer regions;

a counter having a plurality of storage registers, each storage register being associated with a respective buffer region of the buffer memory;

a logic network for writing and reading data into and out of the buffer memory, the logic network for partitioning the buffer memory into the plurality of buffer regions, wherein the logic network increments a value in a respective storage register associated with a respective buffer region each time that buffer region reaches a predetermined usage level; and

a timer for periodically sending a timing signal to the logic network, the period of the timing signal defining a timing window;

wherein in response to the timing signal, the logic network:

retrieves the respective values from the storage registers; whereby the respective value stored in each storage register indicates a number of times that the respective buffer region reaches the predetermined usage level within the timing window; and

re-partitions the buffer memory according to the respective value.

2. A method, comprising:

periodically sending a timing signal to a logic network, the period of the timing signal defining a timing window; wherein the logic network is configured for:

writing and reading data into and out of a buffer memory having a plurality of addressable memory registers;

partitioning the buffer memory into a plurality of buffer regions, each buffer region being associated with a respective storage register of a plurality of storage registers of a counter; and

incrementing a value in a respective storage register associated with a respective buffer region each time that buffer region reaches a predetermined usage level; and

responsive to the timing signal:

retrieving, by the logic network, the respective values from the storage registers; whereby the respective value stored in each storage register indicates a number of times that the respective buffer region reaches the predetermined usage level within the timing window; and

re-partitioning the buffer memory according to the respective value.

3. A method, comprising:

periodically sending a timing signal to a logic network, the period of the timing signal defining a timing window; wherein the logic network is configured for:

partitioning a buffer memory having a plurality of addressable memory registers into a plurality of buffer regions, each buffer region being associated with a respective storage register of a plurality of storage registers of a counter; and

writing and reading data from a plurality of unique data classes into/from the plurality of buffer regions such that each data class is uniquely written into and uniquely read from a different buffer region; and

incrementing a value in a respective storage register associated with a respective buffer region each time that buffer region reaches a predetermined usage level; and

responsive to the timing signal:

recalling, by the logic network, the respective values from the storage registers; whereby the respective value stored in each storage register indicates a number of times that the respective buffer region reaches the predetermined usage level within the timing window; and

re-partitioning the buffer memory according to the respective value having a highest value such that a more utilized buffer region is assigned more of the addressable memory registers.

4. A method according to claim 3 wherein the logic network assigns fewer addressable memory registers to a buffer region that is used relatively less often.

5. A method according to claim 3 wherein each buffer region is always assigned at least a minimum number of addressable memory registers.

6. A method according to claim 3 wherein the predetermined usage level is full.

7. A method according to claim 3 wherein when a least used buffer region is assigned a minimum number of addressable memory registers the logic network assigns a buffer region that is less often fully utilized but that has more than the minimum number of addressable memory registers.

8. A method according to claim 3 wherein the data classes represent virtual lanes.

9. A method according to claim 3 wherein the timing signal initiates clearing of the plurality of storage registers.

10. A method according to claim 3 wherein the buffer memory, the counter and the logic network are components of a memory device for storing data for and from a card adaptor configured for transmitting and receiving data from a network switch.

11. A method according to claim 10 wherein the logic network assigns a buffer region that is used less often fewer addressable memory registers.

12. A method according to claim 10 wherein each buffer region is always assigned at least a minimum number of addressable memory registers.

13. A method according to claim 10 wherein the predetermined usage level is full.

14. A method according to claim 10 wherein when a least used buffer region is assigned a minimum number of addressable memory registers the logic network assigns a buffer region that is less often fully utilized but that has more than the minimum number of addressable memory registers.

15. A method according to claim 10 wherein the data classes represent virtual lanes.

16. A method according to claim 10 wherein the timing signal initiates clearing of the plurality of storage registers.

17. A method according to claim 10 wherein the card adaptor is one of a host channel adaptor and a target channel adaptor.

18. A method according to claim 17 wherein the host channel adaptor is an Infiniband host channel adaptor.

19. A method according to claim 10 further including a central processing unit for sending data to and receiving data from the memory device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FACEBOOK, INC.
Reel/Frame 027991/0615 →
Continuity (2)
Continuation 1067742500 · Oct 2, 2003
Related Publication 20080140984A1 · Jun 12, 2008