Compiler Optimizations for Network Processors

Mr. Xiaotong Zhuang
Thursday, January 19, 2006
1:30PM - CSB-232

Abstract


The dramatic growth of Internet applications has motivated the need for a new category of embedded processors called Network Processors (NPs). NPs have fast processing speed and specialized hardware support for network applications. In this talk, I will address my research on compiler optimizations for Intel's IXP network processor. Due to resource limitations, registers are extremely precious on this network processor. To exploit the independence among network packets, IXP is heavily multi-threaded. Register file is specially designed such that the two source operands of any instruction must come from different banks. To speedup packet processing, context switches are extremely lightweight i.e. only the PC is saved. This design raises two problems: 1) how to assign register banks to source operands to avoid unduly running out of registers; 2) how to assign registers across threads in order to maximize the utilization of hardware resources. For the first problem, we present three different approaches for performing register allocation as well as bank assignment. For the second problem, we found that even if registers are not protected across context switches, some registers can still be shared across threads as long as those registers are not used across context switch boundaries. This leads to big savings on the precious register resource, which in turn contributes to speedup as some memory accesses are converted into register references. In the development tools Intel used to ship, there was no support for active register allocation and the assembler used to quit when it cannot find enough registers. Some version of this work was later incorporated into Intel's newly developed IXP compiler.

Short Bio


Xiaotong Zhuang is a doctoral student in the Computer Science department of Georgia Institute of Technology. Xiaotong also holds an BE degree in EE from Shanghai Jiaotong Univervisty, and two MS degrees in CS from Shanghai Jiaotong University and Georgia Institute of Technology respectively. His main areas of interest are Compilers, Embedded Systems and Network Processors, Computer Security and Secure Architecture. He has a minor interest in Parallel and Distributed Systems and Computer Architecture. During his PhD study, he has conducted researches in many emerging topics such as power-aware computing, network processors, secure architectures. As a result of this endeavor, he has published over 20 papers in conferences and journals.