AM79C978 Advanced Micro Devices, AM79C978 Datasheet - Page 241

no-image

AM79C978

Manufacturer Part Number
AM79C978
Description
Single-Chip 1/10 Mbps PCI Home Networking Controller
Manufacturer
Advanced Micro Devices
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
AM79C978AKC
Manufacturer:
AMD
Quantity:
15
Part Number:
AM79C978AKC
Manufacturer:
AMD
Quantity:
8 000
Part Number:
AM79C978AKC/W
Manufacturer:
AMD
Quantity:
20 000
Part Number:
AM79C978AKCW
Manufacturer:
AMD
Quantity:
6 605
Look-Ahead Packet Processing
(LAPP) Concept
INTRODUCTION
A driver for the controller would normally require that
the CPU copy receive frame data from the controllers
buffer space to the applications buffer space after the
entire frame has been received by the controller. For
applications that use a ping-pong windowing style, the
traffic on the network will be halted until the current
frame has been completely processed by the entire ap-
plication stack. This means that the time between last
byte of a receive frame arriving at the client’s Ethernet
controller and the client’s transmission of the first byte
of the next outgoing frame will be separated by:
1. The time that it takes the client’s CPU interrupt pro-
2. Plus the time that it takes the client driver to pass
3. Plus the time that it takes the application to gener-
4. Plus the time that it takes the client driver to transfer
5. Plus the time that it takes the application to process
6. Plus the time that it takes the client driver to set up
The sum of these times can often be about the same
as the time taken to actually transmit the frames on the
wire, thereby, yielding a network utilization rate of less
than 50 percent.
An important thing to note is that the controller’s data
transfers to its buffer space are such that the system
bus is needed by the controller for approximately 4 per-
cent of the time. This leaves 96 percent of the system
bus bandwidth for the CPU to perform some of the in-
terframe operations in advance of the completion of
network receive activity, if possible. The question then
cedure to pass software control from the current
task to the driver,
the header data to the application and request an
application buffer,
ate the buffer pointer and then return the buffer
pointer to the driver,
all of the frame data from the controller’s buffer
space into the application’s buffer space and then
call the application again to process the complete
frame,
the frame and generate the next outgoing frame,
and
the descriptor for the controller and then write a
TDMD bit to CSR0.
APPENDIX B
Am79C978
becomes: how much of the tasks that need to be per-
formed between reception of a frame and transmission
of the next frame can be performed before the recep-
tion of the frame actually ends at the network, and how
can the CPU be instructed to perform these tasks dur-
ing the network reception time.
The answer depends upon exactly what is happening
in the driver and application code, but the steps that
can be performed at the same time as the receive data
are arriving include as much as the first three steps and
part of the fourth step shown in the sequence above.
By performing these steps before the entire frame has
arrived, the frame throughput can be substantially
increased.
A good increase in performance can be expected when
the first three steps are performed before the end of the
network receive operation. A much more significant
performance increase could be realized if the controller
could place the frame data directly into the applica-
tion’s buffer space; (i.e., eliminate the need for step 4.)
In order to make this work, it is necessary that the ap-
plication buffer pointer be determined before the frame
has completely arrived, then the buffer pointer in the
next descriptor for the receive frame would need to be
modified in order to direct the controller to write directly
to the application buffer. More details on this operation
will be given later.
An alternative modification to the existing system can
gain a smaller but still significant improvement in per-
formance. This alternative leaves step 4 unchanged in
that the CPU is still required to perform the copy oper-
ation, but is allows a large portion of the copy operation
to be done before the frame has been completely re-
ceived by the controller, i.e., the CPU can perform the
copy operation of the receive data from the controller’s
buffer space into the application buffer space before
the frame data has completely arrived from the net-
work. This allows the copy operation of step 4 to be
performed concurrently with the arrival of network data,
rather than sequentially, following the end of network
receive activity.
OUTLINE OF LAPP FLOW
This section gives a suggested outline for a driver that
utilizes the LAPP feature of the controller.
B-1

Related parts for AM79C978