The PMC-ATM OC-3 NIC is a high performance ATM network interface ideally suited for replacing aging technology products as well as providing a migration path to more contemporary interfaces such as Gigabit Ethernet. The design is implemented using a combination of a general purpose communications processor coupled with a high density CPLD. This combination enables the board to be register level compatible with legacy Integrated Device Technology IDT77211A hardware thus enabling operation with existing drivers and applications.
The PMC-ATM interfaces to the system at the PCI register level. The software interface closely reproduces that of the IDT77211A Nicstar™. The PMC-ATM architecture buffers Convergence Sub-layer Protocol Data Units (CS-PDU) in host memory rather than in on-board. It uses the PCI bus master capability to access the host memory to reduce host CPU utilization copying data. The PMC-ATM processor controls all AAL SAR and ATM layer run-time operations and performs all key data transfers between the host system and itself as a PCI bus master. The host device driver provides the PMC-ATM with buffer and control descriptors during run-time. When receiving cells, the PMC-ATM performs a table lookup using the connection number, in the cell header, to determine where to place the cell payload in the host memory. The ATM cell payloads received from the network are then placed directly into host memory to form CS-PDUs. When transmitting cells the CS-PDUs are queued in host memory by the host driver software. As the PMC-ATM segments CS-PDU buffers into ATM cell payloads, it appends the respective cell headers to create 53-byte ATM cells. The Header Error Check (HEC) byte is inserted as a place holder by the PMC-ATM. The cells are then transmitted to the PHY device as allocated by a scheduling table. The PHY device then calculates and replaces the HEC byte to form the complete 53-byte ATM cell.
The PMC-ATM also features a separate built in test interface that is implemented through an extension of the command set to the board as well as the inclusion of a separate PCI register to report results. The built in test module can be run at power on to guarantee the board is fully functional. Test coverage is very high and includes the ability to test all major data paths, actual data transmission and reception, bit error rates and data transfer rates.
Extensive software compatibility testing has been done with Linux and VxWorks. The testing included both unit level tests as well as system level tests featuring many different packet sizes, transmission rates, data formats, etc. Similarly the hardware has been validated with a significant number of foreign devices such as ATM switches and other types of ATM NICs.