English
Language : 

PM3350 Datasheet, PDF (91/224 Pages) PMC-Sierra, Inc – 8-Port 10 Mbit/s Switch
ELAN 8X10
DATA SHEET
PMC-970109
ISSUE 3
PM3350 ELAN 8 X10
8 PORT ETHERNET SWITCH
The hash table consists of three types of data structures: an array referred to as the
hash pointer array of between 256 and 8,192 pointers, a set of 64-byte data structures
called hash buckets which hold information for locally reachable hosts on a per MAC
address basis, and a set of 16-byte forwarding tags which hold abbreviated information
for hosts reachable via external devices on a per-MAC address basis. (Note that the
forwarding tags are only 16 bytes in terms of formatted data, but are actually stored into
64-byte blocks of memory for simplicity.)
Each pointer in the hash array points to a linked-list of zero or more hash buckets
and/or forwarding tags. Each hash bucket or forwarding tag corresponds to a particular
MAC address; only one hash bucket or forwarding tag may be present for a given MAC
address in any device. (In addition, only one hash bucket may be present for a given
MAC address in a complete system; however, multiple forwarding tags may be present
in the various devices that point to this hash bucket.)
To access the hash bucket for a specific MAC address, the hash lookup engine in the
DMA Controller first creates a hash key and uses it to generate an index into the hash
pointer array. The hash key is obtained by dividing the 48-bit MAC address into three
16-bit blocks:
47
32 31
16 15
0
Block 2
Block 1
Block 0
The three blocks are logically XORed together to create a single 16-bit value, which is
then logically ANDed with a configurable 16-bit bitmask to obtain the index into the hash
pointer array. The purpose of the bitmask is to limit the range of the indices to the
actual size of the hash table. If there are 8,192 entries in the table, the bitmask should
be defined such that the 13 LSBs are set to '1', and the 3 MSBs are set to '0'.
The hash lookup engine uses the index to locate the corresponding pointer within the
hash pointer array, and reads the pointer to obtain the first element of the linked-list of
hash buckets and/or forwarding tags that must be searched. It then scans the linked-
list, comparing the complete 48-bit MAC address to be resolved with the MAC address
fields within the hash buckets or forwarding tags, until the required hash bucket or
forwarding tag is found (or no more entries are present in the linked-list). If a match is
found, then the search is declared successful, and the memory address of the hash
bucket or forwarding tag is passed to the Switch Processor. If the complete linked-list is
traversed without finding a match, then the search is considered to have failed (i.e., the
specified source or destination MAC address is not present in the address table), and
an indication is accordingly passed to the Switch Processor by the hardware.
Hash Pointer Array
The hash pointer array is simply a linear array of 4-byte elements; each element
contains a pointer to a linked list of hash buckets and/or forwarding tags.
PROPRIETARY AND CONFIDENTIAL TO PMC-SIERRA, INC., AND PMC-SIERRA, INC. CUSTOMERS ONLY
89