es are often created merely because some packets will require a different amount of processing than others. As they are paraded down the pipeline stages, they propagate these computational bubbles, which is a colloquial equivalent of unused or idle resources temporarily and/or locally (in time and space). Large-scale multiprocessing using some sort of computational symmetry is a third approach. This type of symmetric multiprocessor (SMP)-based parallel computing offers tremendous flexibility because it allows the allocation of packets and tasks to individual computing resources as well as determines the choice of software that will run on each of them. The downside of the SMP approach is that it becomes extremely difficult to optimize the allocation of the tasks to resources in real time. It also requires an elaborate fine-tuning of the runtime environment, which cannot be done every single time the application changes or the software is upgraded. This defeats the purpose of using network processors as a quicker way to the ever-evolving market for equipment vendors. Downloaded from Digital Engineering Library @ McGraw-Hill (www.digitalengineeringlibrary.com) Copyright © 2004 The McGraw-Hill Companies. All rights reserved. Any use is subject to the Terms of Use as given at the website. SYSTEMS ENGINEERING ISSUES 340 NETWORK PROCESSORS The simultaneous multithreading (SMT)¹ approach is an interesting approach that seems to be a nat- ural fit for the fast, heavy-load, and unpredictable network-processing field. It has not created net- work-processing products yet, although it marginally tried. It has created mainstream computing products as pushed by Intel and therefore deserves closer examination. Of course, SMT should not be confused with the basic fundamental premise of multithreading that is characteristic of network-processor offerings, which we have discussed throughout the book. Computer architects devised multithreading as a way to hide from an application some undesirable but unavoidable effects, such as me