Asynchronous Transfer Mode (ATM) consists of a specification for packet format and network switching. Each ATM packet, or cell, is fifty-six bytes, forty of which are available for data. ATM networks have been praised for their promise to deliver high network bandwidth upon demand. It should be noted that these networks do not provide any form of reliability or flow control.
Active messaging has been implemented on an ATM network by using the Fore Systems SPARCstation interface and 140 Mb/sec TAXI fiber. The work was done at Cornell University primarily by Thorsten von Eicken, one of the pioneers of active messaging. Von Eicken and his colleagues achieved a maximum bandwidth of 5.5 MB/sec using the remote memory access primitives outlined in Figure 1.2. It should be noted, however, that this implementation was highly optimized. Through cooperation with Sun and Fore, the Cornell group patched SunOS and installed a device driver that allowed direct access to the network device's FIFOs. Transmitting a message consisted of formatting a cell, writing it to the card's FIFO, and trapping to the kernel. For comparison with less optimized strategies, the group wrote a traditional device driver and achieved 4.5 MB/sec. This result agreed quite well with Fore Systems' own API, which averaged around 4 MB/sec. It was found through exhaustive profiling that throughput was limited almost entirely by the trap to the kernel. This result is not surprising, given the small payload of ATM packets. To achieve anything close to maximum throughput would require a DMA card with an onboard processor that automated cell formatting and transmission. Also, software would be required that would allow the user to initiate these events without suffering the overhead of a trap to the kernel. Despite these difficulties, the performance achieved by the Cornell group is quite impressive, especially when compared with traditional twisted pair networks[15].