Hardware designers go to great lengths to increase performance. They make extensive efforts to ensure that standard processor designs are as flexible as possible, but even the best designs don't fit all applications. Custom and reconfigurable processors take standard designs and push the limits short of a full blown custom design. This is actually a great approach. Following the old 80/20 rule, 80% of the performance of many applications comes from only 20% of the code. Optimize that small section and you get significant benefits, especially in the embedded world.
Customized processors get the job done more efficiently, so it's often possible to reduce the speed of the processor and hence the amount of power it consumes. This is critical in portable applications. Alternatively, the processor may be able to do more, thereby providing more functionality in the final product. Of course, the original processor design often doesn't provide sufficient power to solve a particular problem, and boosting its performance with specialized hardware makes the solution practical.
But there are distinct differences between the three major reconfigurable architectures. The first is instruction-set extensions. This is the backbone of ARC International's (www.arc.com) configurable ARCtangent RISC/DSP processor. It's also showing up more in processors from ARM (www.arm.com) and MIPS Technologies (www.mips.com). The second is reconfigurable hardware like Triscend's (www.triscend.com) E5 and A5. In this case, the peripherals around a standard processor can be changed on the fly. Finally, there is Ubicom's (www.ubicom.com) new IP3023. Its hardware multi-threading lets programmers balance system performance to provide a more dynamic environment than Triscend's approach.
None of these is the best in all cases, but each is worth considering. This is especially true for dynamic applications, like multimedia devices or secure gateways, where performance is critical and processing loads can vary significantly over time. Unfortunately, choosing a configurable processor requires extensive knowledge and understanding of the application and the possible solutions. But then, whoever said our job was easy?