IXP2400/2800 Programming: The Complete Microengine Coding Guide

Chapter 7: Unordered Thread Execution

Overview

At this point, we have created a complete packet-processing application, but it s pretty slow. With the sample microengine assembly from Chapter 6, the microengine that processes packets is actually executing instructions for less than 10% of the time. The rest of the time is spent waiting for memory references, queue operations, and hashes. With the techniques described in this chapter, and the sample code on the CD, you can raise that utilization and increase packet throughput.

In this chapter, you ll learn how to make the packet-processing code run on multiple threads and multiple microengines. You get some performance benefit from these changes, but because you are still running with single-threaded receive code and single-threaded transmit code, the performance will not yet be as good as you might hope for. The higher performance will come in Chapter 11, when you add multithreaded receive and transmit code to this multi-threaded packet-processing code.

Two programming models exist for running the same series of packet-processing components on multiple threads. These programming models are called ordered thread execution and unordered thread execution. This chapter shows the unordered thread execution model of programming. In some previous Intel literature, the unordered thread execution model is called Pool of Threads. The models are exactly alike. In Chapter 3, we described the basics of both of these programming models. After reading this chapter and Chapter 9, you should understand these two models well enough to decide which model works best for your application.

Multiple Threads

The code in...

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: Thread Rolling Dies
Finish!
Privacy Policy

This is embarrasing...

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