Hash equation for MAC addresses that supports cache entry tagging and virtual address tables
First Claim
1. A method for calculating a cache line index into an address cache containing information used in the processing of network data units, comprising the steps of:
- organizing an address into a plurality of intermediate elements, wherein said organizing includes performing a bit wise shift on at least one portion of said address, and employing a result of said bit wise shift as at least one of said plurality of intermediate elements; and
folding said intermediate elements together with an exclusive-OR function, wherein a result of said folding includes said cache line index, and where in the folding includes encompassing a predetermined one of the intermediate elements in the calculation of each bit of the cache line index, wherein the predetermined one of the intermediate elements includes bits more likely to differ in value between any two addresses than bits in other ones of the intermediate elements, wherein the encompassing of the predetermined one of the intermediate elements in the calculation of each bit of the cache line index provides more uniform distribution of cache line index values, wherein only a subset of the intermediate elements are stored in a tag portion of a cache entry.
5 Assignments
0 Petitions
Accused Products
Abstract
A cache line index for an address cache entry is calculated by organizing an address such as a Media Access Control (“MAC”) address into a plurality of intermediate elements, barrel shifting the bits of at least one of the intermediate elements in accordance with predetermined criteria, and folding the intermediate address elements together with an exclusive-OR function. A Virtual Local Area Network (“VLAN”) index may also be included in cache line index calculation. The VLAN index enables segmentation of the cache into virtual tables. The tag portion of the cache entry includes a subset of the complete set of intermediate elements. The intermediate elements in the cache entry can be employed in conjunction with the cache line index to recover the original MAC address. Hence, the size of the tag portion of the address cache entry is reduced relative to the full MAC address without a reduction in the information content of the entry.
67 Citations
16 Claims
-
1. A method for calculating a cache line index into an address cache containing information used in the processing of network data units, comprising the steps of:
-
organizing an address into a plurality of intermediate elements, wherein said organizing includes performing a bit wise shift on at least one portion of said address, and employing a result of said bit wise shift as at least one of said plurality of intermediate elements; and
folding said intermediate elements together with an exclusive-OR function, wherein a result of said folding includes said cache line index, and where in the folding includes encompassing a predetermined one of the intermediate elements in the calculation of each bit of the cache line index, wherein the predetermined one of the intermediate elements includes bits more likely to differ in value between any two addresses than bits in other ones of the intermediate elements, wherein the encompassing of the predetermined one of the intermediate elements in the calculation of each bit of the cache line index provides more uniform distribution of cache line index values, wherein only a subset of the intermediate elements are stored in a tag portion of a cache entry. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for generating a cache line index associated with an address cache entry in an address cache from a Media Access Control address and a virtual local area network index value, comprising the steps of:
-
segmenting the Media Access Control address and virtual local area network index into a plurality of portions, said plurality of portions including a first portion, a second portion, a third portion and a fourth portion;
shifting the first portion by a first predetermined number of bits in a first predetermined direction to form a first intermediate element;
shifting the second portion by a second predetermined number of bits in a second direction to form a second intermediate element;
employing said third portion as a third intermediate element;
employing said fourth portion as a fourth intermediate element; and
performing a bit wise exclusive-OR operation on the first intermediate element, second intermediate element, third intermediate element and fourth intermediate element to produce a result, wherein the result includes the cache line index, and wherein the performing includes encompassing a predetermined one of the intermediate elements in the calculation of each bit of the cache line index, wherein the predetermined one of the intermediate elements includes bits more likely to differ in value between any two addresses than bits in other ones of the intermediate elements, wherein the encompassing of the predetermined one of the intermediate elements in the calculation of each bit of the cache line index provides more uniform distribution of information in the address cache, wherein only a subset of the intermediate elements are stored in a tag portion of the cache entry. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification