IP Library Granted Patent US 7,793,071
Granted Patent B2
US 7,793,071 · App. 11/770,107 · Granted Sep 7, 2010

Method and system for reducing cache conflicts

Assignee: Intel 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,793,071
App. No.
11/770,107
Granted
Sep 7, 2010
Kind
B2
Abstract

Disclosed is a system and method for storing a plurality of data packets in a plurality of memory buffers in a cache memory for reducing cache conflicts. The method includes determining size of each of a plurality of data packets; storing a first data packet of the plurality of data packets starting from a first address in a first memory buffer of the plurality of memory buffers; determining an offset based on the size of the first data packet; and storing a second data packet in a second buffer starting from a second address based on the offset.

Claims (24)

1. A method for storing a plurality of data packets in a plurality of memory buffers for reducing cache conflicts, the method comprising:

determining size of each of the plurality of data packets;

storing a first data packet of the plurality of data packets starting from a first address in a first memory buffer of the plurality of memory buffers;

determining an offset based on the size of the first data packet; and

storing a second data packet in a second buffer starting from a second address based on the offset; wherein if the second buffer has a size greater than the offset plus the size of the second data packet, then the second data packet is stored in the second buffer starting at an address equal to the offset, and wherein if the second buffer has a size less than the offset plus the size of the second data packet but greater than the size of the second data packet, then the second data packet is stored in the second buffer so that the end of the second data packet coincides with the end of the second buffer.

2. The method of claim 1 , wherein size of each of the plurality of memory buffers is a fixed value.

3. The method of claim 1 , wherein the plurality of data packets is stored in a cache memory in a set-associative manner.

4. A system for reducing cache conflict, comprising:

a Local Area Network (LAN) controller for receiving a plurality of data packets; and

a plurality of memory buffers capable of storing the plurality of data packets; and

said LAN controller is configured to store the plurality of data packets in the cache memory by:

determining size of each of the plurality of data packets;

storing a first data packet of the plurality of data packets starting from a first address in a first memory buffer of the plurality of memory buffers;

determining an offset based on the size of the first data packet; and

storing a second data packet in a second buffer starting from a second address based on the offset; wherein if the second buffer has a size greater than the offset plus the size of the second data packet, then the second data packet is stored in the second buffer starting at an address equal to the offset, and wherein if the second buffer has a size less than the offset plus the size of the second data packet but greater than the size of the second data packet, then the second data packet is stored in the second buffer so that the end of the second data packet coincides with the end of the second buffer.

5. The system of claim 4 , wherein size of each of the plurality of memory buffers is a fixed value.

6. The system of claim 4 , wherein the plurality of data packets is stored in the plurality of memory buffers in a set-associative manner.

7. A computer program product embodied on a tangible computer readable storage medium for storing a plurality of data packets in a plurality of memory buffers in a cache memory for reducing cache conflict problem, the computer program product comprising a program module having instructions for:

determining size of each of the plurality of data packets;

storing a first data packet of the plurality of data packets starting from a first address in a first memory buffer of the plurality of memory buffers;

determining an offset based on the size of the first data packet; and

storing a second data packet in a second buffer starting from a second address based on the offset; wherein if the second buffer has a size greater than the offset plus the size of the second data packet, then the second data packet is stored in the second buffer starting at an address equal to the offset, and wherein if the second buffer has a size less than the offset plus the size of the second data packet but greater than the size of the second data packet, then the second data packet is stored in the second buffer so that the end of the second data packet coincides with the end of the second buffer.

8. The computer program product of claim 7 , wherein size of each of the plurality of memory buffers is a fixed value.

9. The computer program product of claim 7 , wherein the plurality of data packets is stored in the plurality of memory buffers in a set-associative manner.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2009
From: FRIEDMAN, BEN-ZION; FALIK, OHAD
To: INTEL CORPORATION
Reel/Frame 022066/0088 →
Continuity (1)
Related Publication 20090006765A1 · Jan 1, 2009