IP Library Granted Patent US 10,684,960
Granted Patent B2
US 10,684,960 · App. 15/830,021 · Granted Jun 16, 2020

Managing cache memory in a network element based on costs associated with fetching missing cache entries

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 10,684,960
App. No.
15/830,021
Granted
Jun 16, 2020
Kind
B2
Abstract

A network element includes a data structure, a cache memory and circuitry. The data structure is configured to store multiple rules specifying processing of packets received from a communication network. The cache memory is configured to cache multiple rules including a subset of the rules stored in the data structure. Each rule that is cached in the cache memory has a respective cost value corresponding to a cost of retrieving the rule from the data structure. The circuitry is configured to receive one or more packets from the communication network, to process the received packets in accordance with one or more of the rules, by retrieving the rules from the cache memory when available, or from the data structure otherwise, to select a rule to be evicted from the cache memory, based on one or more respective cost values of the rules currently cached, and to evict the selected rule.

Claims (30)

1. A network element, comprising:

a data structure, configured to store multiple rules specifying processing of packets received from a communication network;

a cache memory, configured to cache multiple rules comprising a subset of the rules stored in the data structure, wherein each rule that is cached in the cache memory has a respective cost value that is a function of an actual number of memory-access operations required to perform a lookup operation of the respective rule in the data structure; and

circuitry, configured to:

receive one or more packets from the communication network;

process the received packets in accordance with one or more of the rules, by retrieving the rules from the cache memory when available, or by performing a lookup operation in the data structure otherwise;

select a rule to be evicted from the cache memory, based on one or more respective cost values of the rules currently cached; and

evict the selected rule.

2. The network element according to claim 1 , wherein the circuitry is configured to retrieve a rule from the data structure, to cache the retrieved rule in the cache memory, and to store a respective cost value in association with the rule cached.

3. The network element according to claim 1 , wherein the cost value comprises two or more cost levels corresponding to a quantized version of the actual number of memory-access operations.

4. The network element according to claim 1 , wherein the cost value of a given rule comprises a latency incurred in retrieving the given rule from the data structure.

5. The network element according to claim 1 , wherein the circuitry is configured to select from the cache memory multiple candidate rules for which the respective cost values fall within a predefined range of cost values, and to select the rule to be evicted from among the candidate rules.

6. The network element according to claim 1 , wherein the circuitry is configured to select from the cache memory multiple candidate rules, independently of the cost values, and to select the rule to be evicted, from among the candidate rules, based on the respective cost values of the candidate rules.

7. The network element according to claim 1 , wherein the circuitry is configured to select the rule to be evicted randomly, with a predefined probability.

8. The network element according to claim 1 , wherein the circuitry is configured to assign to the rules currently cached respective eviction attributes, to select from the cache memory multiple candidate rules based on the assigned eviction attributes, to calculate for the candidate rules respective combined costs as a function of the respective cost values and eviction attributes, and to select the rule to be evicted based on the combined costs.

9. The network element according to claim 1 , wherein the circuitry is configured to estimate the cost of retrieving a given rule from the data structure, and to determine the respective cost value based on the estimated cost.

10. A method, comprising:

in a network element, storing in a data structure multiple rules specifying processing of packets received from a communication network;

caching in a cache memory multiple rules comprising a subset of the rules stored in the data structure, wherein each rule that is cached in the cache memory has a respective cost value that is a function of an actual number of memory-access operations required to perform a lookup operation of the respective rule in the data structure;

receiving one or more packets from the communication network, and processing the received packets in accordance with one or more of the rules, by retrieving the rules from the cache memory when available, or by performing a lookup operation in the data structure otherwise;

selecting a rule to be evicted from the cache memory, based on one or more respective cost values of the rules currently cached; and

evicting the selected rule.

11. The method according to claim 10 , and comprising retrieving a rule from the data structure, caching the retrieved rule in the cache memory, and storing a respective cost value in association with the rule cached.

12. The method according to claim 10 , wherein the cost value comprises two or more cost levels corresponding to a quantized version of the actual number of memory-access operations.

13. The method according to claim 10 , wherein the cost value of a given rule comprises a latency incurred in retrieving the given rule from the data structure.

14. The method according to claim 10 , wherein selecting the rule to be evicted comprises selecting from the cache memory multiple candidate rules for which the respective cost values fall within a predefined range of cost values, and selecting the rule to be evicted from among the candidate rules.

15. The method according to claim 10 , wherein selecting the rule to be evicted comprises selecting from the cache memory multiple candidate rules, independently of the cost values, and selecting the rule to be evicted, from among the candidate rules, based on the respective cost values of the candidate rules.

16. The method according to claim 10 , wherein selecting the rule to be evicted comprises selecting the rule to be evicted randomly, with a predefined probability.

17. The method according to claim 10 , and comprising assigning to the rules currently cached respective eviction attributes, wherein selecting the rule to be evicted comprises selecting from the cache memory multiple candidate rules based on the assigned eviction attributes, calculating for the candidate rules respective combined costs as a function of the respective cost values and eviction attributes, and selecting the rule to be evicted based on the combined costs.

18. The method according to claim 10 , and comprising estimating the cost of retrieving a given rule from the data structure, and determining the respective cost value based on the estimated cost.

Assignments (2)
MERGER Recorded Dec 15, 2021
From: MELLANOX TECHNOLOGIES TLV LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 058517/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2017
From: LEVY, GIL; KRAVCHIK, FIMA
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 044284/0516 →