AM79C976 Advanced Micro Devices, AM79C976 Datasheet - Page 286
![no-image](/images/manufacturer_photos/0/0/14/advanced_micro_devices_sml.jpg)
AM79C976
Manufacturer Part Number
AM79C976
Description
PCnet-PRO 10/100 Mbps PCI Ethernet Controller
Manufacturer
Advanced Micro Devices
Datasheet
1.AM79C976.pdf
(309 pages)
- Current page: 286 of 309
- Download datasheet (3Mb)
Look-Ahead Packet Processing
(LAPP) Concept
APPENDIX A: LOOK-AHEAD PACKET PROCESSING
Introduction
A driver for the Am79C976 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 control-
ler. 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 application stack. This means that the time be-
tween 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 Am79C976 con-
troller’s data transfers to its buffer space are such that
the system bus is needed by the Am79C976 controller
for approximately 4 percent of the time. This leaves 96
percent of the system bus bandwidth for the CPU to
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,
the descriptor for the controller and then write a
TDMD bit to CSR0.
APPENDIX A
perform some of the interframe operations in advance
of the completion of network receive activity, if possible.
The question then becomes: how much of the tasks
that need to be performed between reception of a
frame and transmission of the next frame can be per-
formed before the reception of the frame actually ends
at the network, and how can the CPU be instructed to
perform these tasks during 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 in-
creased.
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
perfor mance increase could be realized if the
Am79C976 controller could place the frame data di-
rectly into the application’s buffer space; (i.e., eliminate
the need for step 4.) In order to make this work, it is
necessary that the application buffer pointer be deter-
mined 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
Am79C976 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 it 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 Am79C976
controller’s buffer space into the application buffer
space before the frame data has completely arrived
from the network. 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.
A
-
1
Related parts for AM79C976
Image
Part Number
Description
Manufacturer
Datasheet
Request
R
![AM27S29DC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Advanced Micro Devices [4,096-Bit (512x8) Bipolar PROM]
Manufacturer:
Advanced Micro Devices
Datasheet:
![AM27S29APC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Advanced Micro Devices [4,096-Bit (512x8) Bipolar PROM]
Manufacturer:
Advanced Micro Devices
Datasheet:
![AM29BL802CB-70RZE](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Advanced Micro Devices [8 Megabit (512 K x 16-Bit) CMOS 3.0 Volt-only Burst Mode Flash Memory]
Manufacturer:
Advanced Micro Devices
Datasheet:
![M41000001Y](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
M41000001YAdvanced Micro Devices [32 Megabit (4 M x 8-Bit/2 M x 16-Bit) CMOS 3.0 Volt-only, Simultaneous Operation Flash Memory and 4 Mbit (512 K x 8-Bit/256 K x 16-Bit) Static RAM]
Manufacturer:
Advanced Micro Devices
Datasheet:
![AM95C94JC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Advanced Burst Error Processor
Manufacturer:
Advanced Micro Devices
![AM7992BPC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Serial interface adapter (SIA)
Manufacturer:
Advanced Micro Devices
Datasheet:
![AM9519ADC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Universal interrupt controller
Manufacturer:
Advanced Micro Devices
Datasheet:
![AM27C256-150DC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
256 kilobit CMOS EPROM
Manufacturer:
Advanced Micro Devices
Datasheet:
![AM9128-10PC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
2048 x 8 static RAM, 100ns
Manufacturer:
Advanced Micro Devices
Datasheet:
![P8284A](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Manufacturer:
Advanced Micro Devices
Datasheet:
![DM81LS98N](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Three-State Octal Buffers
Manufacturer:
Advanced Micro Devices
Datasheet:
![AM2966PC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
AM2966PCOctal Dynamic Memory Drivers with Three-State Outputs
Manufacturer:
Advanced Micro Devices
Datasheet:
![DM81LS97N](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Three-State Octal Buffers
Manufacturer:
Advanced Micro Devices
Datasheet:
![DM81LS96N](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
Three-State Octal Buffers
Manufacturer:
Advanced Micro Devices
Datasheet:
![PAL16L8-7PC](/images/manufacturer_photos/0/0/14/advanced_micro_devices_tmb.jpg)
Part Number:
Description:
TTL programmable array logic, 7ns
Manufacturer:
Advanced Micro Devices
Datasheet: