DM8108
8 port 10/100M Fast Ethernet Switching Controller
Preliminary 23
Version: DM8108-DS-P02
November 25, 1999
DM8108 DRAM Address Mapping
Memory Size
1M Byte
028000 – 0FFFFF
Queue & Buffers
Description
2M Byte
028000 – 1FFFFF
Receive Buffer
864KB ( 576 blocks)
1872KB (1248blocks) + unused
8KB
4KB
20KB
128KB
ACC Count
Reserved
TDR queue
Address Table
026000 – 027FFF
025000 – 025FFF
020000 – 024FFF
000000 – 01FFFF
027000 – 027FFF
025000 – 025FFF
020000 – 024FFF
000000 – 01FFFF
Address Table
The Address Table structure occupies 128K bytes of
memory and is controlled and initialized by the
DM8108. Following RESET, the DM8108 initializes
Field
Description
V
Valid – Indicates a valid entry; 0 – Not Valid, 1 – valid.
Address (47:0)
Source MAC address. Unicast address only
Port Number – indicates which of the 3-port in a DM8108 is associated with this source address.
0h – 1h: Port 0 –Port 1 (2 Ethernet ports); 2h: Expansion Port.
Reserved
Device #
Device number—indicate which device in the switching system is associated with this source address
4-bit Tag—used to identify the update sequence. If the entry-block(4-entry) pointed by a MAC address index are
all occupied, the entry that has oldest time stamp will be replaced.
the Address Table by invalidating the Valid bit of all
entries.
Port #
Time Stamp
Packet Forwarding
The following sections describe the procedures for
forwarding packets under different situations:
Forwarding a Uni-cast packet to a local Ethernet
port
The incoming packet is fed to the Rx FIFO and is
transferred to an empty block in the Receive Buffer
area of DRAM. The switching engine will claim the
block by setting the Empty List not empty. In case of
collision or FIFO overflow, transfer error etc. , the
engine has to reset the Empty List associated with the
block.
In parallel, an address recognition cycle will be
performed for both the destination and source address.
The DM8108 will use SA to learn a new or changed
address entry. The DA will point to an entry that
specifies the local port’s number.
At the end of reception of an error-free packet, the
packet information is written to the appropriate port’s
transmit descriptor. This information includes the
Byte Count, Receive block address which points to
the Write Pointer, and the Priority indication.
The Write Pointer of the outgoing port’s transmit
descriptor is incremented. The target port prepare for
transmission whenever the Write Pointer and the
Read pointer are not equal.
The engine resolves the priority issue and fills the Tx
FIFO before starting the transmission. If any Tx
FIFO under run situation happens, the MAC has to
force the packet “Bad” and inform the engine to retry.
At the end of the good transmit process, the target
port increments the Read Pointer. The Engine clears
the appropriate bit in the Empty List.