IP Library Granted Patent US 8,006,065
Granted Patent B2
US 8,006,065 · App. 12/947,496 · Granted Aug 23, 2011

Method and system for combining page buffer list entries to optimize caching of translated addresses

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 8,006,065
App. No.
12/947,496
Granted
Aug 23, 2011
Kind
B2
Abstract

Certain aspects of a method and system for combining page buffer list entries (PBLEs) to optimize caching of translated addresses are disclosed. Aspects of a method may include encoding at least two page buffer list entries in a remote direct memory access (RDMA) memory map into at least two contiguous memory locations by utilizing a remainder of a physical address corresponding to the two page buffer list entries. The first memory location of the two contiguous memory locations may comprise a base address and a contiguous length of the first page buffer list entry. The second memory location of the two contiguous memory locations may comprise a virtual address and a contiguous length of the second page buffer list entry.

Claims (24)

1. A method for processing data, the method comprising:

determining a physical address of a packet segment based on encoding a plurality of page buffer list entries into at least two contiguous memory locations utilizing a remainder of said physical address.

2. The method according to claim 1 , comprising determining said remainder of said physical address based on dividing said first of said plurality of page buffer list entries by a maximum number of sequential blocks.

3. The method according to claim 2 , wherein a first memory location of said at least two contiguous memory locations comprises a base address and a contiguous length of said first of said plurality of page buffer list entries.

4. The method according to claim 3 , wherein a second memory location of said at least two contiguous memory locations comprises a virtual address and a contiguous length of a second of said plurality of page buffer list entries.

5. The method according to claim 2 , comprising calculating a remainder of a logical address of said packet segment by dividing said logical address by double of one of: a page size or a block size.

6. The method according to claim 5 , comprising adding said calculated remainder of said logical address to a first memory location of said at least two contiguous memory locations, if said calculated remainder of said logical address is less than said calculated remainder of said physical address.

7. The method according to claim 6 , comprising adding said calculated remainder of said logical address to a second memory location of said at least two contiguous memory locations, if said calculated remainder of said logical address is not less than said calculated remainder of said physical address.

8. The method according to claim 2 , wherein said maximum number of sequential blocks is less than a square root of one or both of: a page size and/or a block size.

9. The method according to claim 1 , comprising determining said physical address of said packet segment spanning a plurality of virtual pages based on a single lookup of said encoded plurality of page buffer list entries.

10. The method according to claim 1 , comprising determining said physical address of said packet segment based on determining an offset of a page in said packet segment and a length of said packet segment.

11. The method according to claim 1 , comprising encoding, by a RDMA enabled NIC (RNIC), said plurality of page buffer list entries into said at least two contiguous memory locations.

12. A system for processing data, the system comprising:

one or more circuits being operable to determine a physical address of a packet segment based on encoding a plurality of page buffer list entries into at least two contiguous memory locations utilizing a remainder of said physical address.

13. The system according to claim 12 , wherein said one or more circuits are operable to determine said remainder of said physical address based on dividing said first of said plurality of page buffer list entries by a maximum number of sequential blocks.

14. The system according to claim 13 , wherein a first memory location of said at least two contiguous memory locations comprises a base address and a contiguous length of said first of said plurality of page buffer list entries.

15. The system according to claim 14 , wherein a second memory location of said at least two contiguous memory locations comprises a virtual address and a contiguous length of a second of said plurality of page buffer list entries.

16. The system according to claim 13 , wherein said one or more circuits are operable to calculate a remainder of a logical address of said packet segment by dividing said logical address by double of one of: a page size or a block size.

17. The system according to claim 16 , wherein said one or more circuits are operable to add said calculated remainder of said logical address to a first memory location of said at least two contiguous memory locations, if said calculated remainder of said logical address is less than said calculated remainder of said physical address.

18. The system according to claim 17 , wherein said one or more circuits are operable to add said calculated remainder of said logical address to a second memory location of said at least two contiguous memory locations, if said calculated remainder of said logical address is not less than said calculated remainder of said physical address.

19. The system according to claim 13 , wherein said maximum number of sequential blocks is less than a square root of one or both of: a page size and/or a block size.

20. The system according to claim 12 , wherein said one or more circuits are operable to determine said physical address of said packet segment spanning a plurality of virtual pages based on a single lookup of said encoded plurality of page buffer list entries.

21. The system according to claim 12 , wherein said one or more circuits are operable to determine said physical address of said packet segment based on determining an offset of a page in said packet segment and a length of said packet segment.

22. The system according to claim 12 , wherein said one or more circuits comprises a RDMA enabled NIC (RNIC) that is operable to encode said plurality of page buffer list entries into said at least two contiguous memory locations.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →