Using IXP2400/2800 Development Tools: A Hands-on Approach to Network Processor Software Design

Part IV: The C Programmer

Chapter List

Chapter 8: The Microengine Compiler Landscape
Chapter 9: Microengine C Compiler
Chapter 10: C Compiler: Autopartitioning Mode

One of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs.
Robert Firth

Overview

When your program has finished initialization, each of your 128 little threads go into an endless loop. Each thread continues to iterate its tasks on new sets of data. The sum total of all this parallelism is that packets are processed in parallel at maximum data rate. Precisely the goal!

This section discusses the high-level language tools. Your architect has partitioned the packet-forwarding design into high-level language stages and assembly-level language stages. If you are a C programmer, you are in the right chapter. Here you learn about the two modes of the C Compiler: autopartitioning and explicit partitioning. You can decide which mode you want to use for your design. Based on your decision, you can become expert in one or both modes by reading the following three chapters.

Your Task Assignment

As a C programmer, you probably want to write everything in C. In reality, you cannot afford to lose any cycles in some pieces of code, such as the MSF (media switch fabric) receive and transmit interface. Let the driver programmers tweak that code. You can do the packet processing and classification. Typically, microengines are assigned to perform packet processing tasks, and usually there is plenty of...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Integrated Development Environment (IDE)
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.