English
Language : 

LAN91C111 Datasheet, PDF (84/125 Pages) SMSC Corporation – 10/100 Non-PCI Ethernet Single Chip MAC + PHY
LAN91C111
FIGURE 10-5:
DRIVE SEND AND ALLOCATE ROUTINES
DRIVER SEND
Choose B ank Sele ct
Register 2
C a ll A L L O C ATE
A L L O C ATE
Issue "Allocate M emory"
Command to MMU
Read Interrupt Status Register
Exit Driver Send
Ye s
Re ad A llocation Result
R e g is te r
W rite Allocated Packet into
Packet # Register
W rite Address Po inter Register
A llo c a tio n
Passed?
Copy Part of TX Data Packet
into RA M
W rite Source A ddress into
Proper Location
Copy Rem ain ing TX Da ta
Packet in to RA M
Enqueue Packet
No
S to re D a ta B u ffe r Po in te r
Clea r "Re ady fo r Packet" Flag
E nable A llocation Interrupt
S e t "R e a d y fo r Pa cke t" Fla g
Retu rn B u ffers to Upp er L aye r
R e tu r n
10.5 Memory Partitioning
Unlike other controllers, the LAN91C111 does not require a fixed memory partitioning between transmit and receive
resources. The MMU allocates and de-allocates memory upon different events. An additional mechanism allows the
CPU to prevent the receive process from starving the transmit memory allocation.
Memory is always requested by the side that needs to write into it, that is: the CPU for transmit or the MAC for receive.
The CPU can control the number of bytes it requests for transmit but it cannot determine the number of bytes the receive
process is going to demand. Furthermore, the receive process requests will be dependent on network traffic, in particular
on the arrival of broadcast and multicast packets that might not be for the node, and that are not subject to upper layer
software flow control.
 2011-2016 Microchip Technology Inc.
DS00002276A-page 85