Freescale Semiconductor MPC5200B User Manual

Page 505

Advertising
background image

MPC5200B Users Guide, Rev. 1

14-40

Freescale Semiconductor

Initialization Sequence

The hash table algorithm used in the group and individual hash filtering operates as follows. The 48-bit destination address is mapped into
one of 64 bits which are represented by 64 bits stored in GADDR1,2 (group address hash match) or IADDR1,2 (individual address hash
match). This mapping is performed by passing the 48-bit address through the on-chip 32-bit CRC generator and selecting the 6 most
significant bits of the CRC-encoded result to generate a number between 0 and 63. The MSB of the CRC result selects GADDR1 (MSB = 1)
or GADDR2 (MSB = 0). The least significant 5 bits of the hash result select the bit within the selected register. If the CRC generator selects
a bit that is set in the hash table, the frame is accepted; otherwise, it is rejected.

For example, if eight group addresses are stored in the hash table and random group addresses are received, the hash table prevents roughly
56/64 (or 87.5%) of the group address frames from reaching memory. Those that do reach memory must be further filtered by the processor
to determine if they truely contain one of the eight desired addresses.

The effectiveness of the hash table declines as the number of addresses increases.

The hash table registers must be initialized by the user. The user may compute the hash for a particular address in software. The CRC32
polynomial to use in computing the hash is:

A table of example Destination Addresses and corresponding hash values is included below for reference.

Figure 14-3. Ethernet Address Recognition - microcode decisions

Receive Address

I/G Address

?

Exact Match

?

Hash Search

Group Table

Match

?

Hash Search

Individual Table

False

Match

?

False

False

True

True

True

NOTES:
FCE - field in R_CNTRL register (Flow Control Enable)

I/G - Individual/Group bit in Destination Address (least significant bit in first byte received in MAC frame)

Individual

Group

ar_em_b = 0
ar_hm_b = 1

True

ar_em_b = 0
ar_hm_b = 1

ar_em_b = 1
ar_hm_b = 1

ar_em_b = 1
ar_hm_b = 0

False

True

False

?

Pause Address

FCE

?

ar_em_b = 1
ar_hm_b = 0

ar_em_b = 1
ar_hm_b = 1

AR_EM_B - bit in RECV.AR_DONE register (address recognition exact match bar)
AR_HM_B - bit in RECV.AR_DONE register (address recognition hash match bar)

Recognition

X

32

X

26

X

23

X

22

X

16

X

12

X

11

X

10

X

8

X

7

X

5

X

4

X

2

X 1

+

+

+

+

+

+

+

+

+

+

+

+

+

+

Advertising