Introduction
Streaming video, cloud services, and mobile data have fueled the continuing growth of global network traffic. To support this growth, the next generation of networking systems must provide faster line rates and process millions of packets every second. Packets arrive in a random order and each packet requires several memory transactions to process. In high-performance networking systems, the flow of packets demands hundreds of millions of memory transactions every second to look up routes from a forwarding table or to update statistics.