n the packet engines in network processors are expected to be multithreaded. The packet engines handle a packet, and whenever the execution thread stalls because something unforeseen occurs, such as a memory lookup or a longer calculation, the packet engine swaps the entire context and starts working on another packet that might have been kept aside temporarily. Meanwhile, the other packet is kept on hold pending the successful completion of the previous operation that caused the stall. A lack of adequate multithreading capabilities has been a major limitation of classical CISC/RISC processors in the network-processing field. SMT is an intriguing and highly promising field of computer architecture in this context. As we discussed pre- viously, it has been the subject of intense research and development as well as passionate debate. If the customer's organization must change software to reflect new functionality, techniques/ algorithms, and protocols (which is usually just a matter of time), the software must be massively 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 342 NETWORK PROCESSORS rewritten. This is a nontrivial task. If the organization has to develop new product platforms on a new NPU (as will be the case if the NPU vendor goes out of business), the prospect of having to rewrite software is daunting. This shows why large network equipment vendors (NEVs) have on many occa- sions been reluctant to adopt NPU chips from startups that might not be around in a couple of years. This makes it nearly impossible to maintain and upgrade the equipment. The intertwined nature of SO many seemingly unrelated problems could trigger a domino-like effect, if software development, which is their common denominator, is not addressed properly. Yet another angle of looking at the problem is the choice of programming language