The next generation of mobile phones need high computational power to fulfil their primary tasks, multimedia applications and services. To achieve this goal, powerful processors with high clock frequencies are used. Although the processing power capabilities are increased, the capabilities in the electrical power supply are not. The results are powerful mobile devices with insufficient batteries. The formula: higher frequency is equivalent with a higher computational power is still valid, but for the price of a high power consumption. One solution is the usage of specialized and therefore more compact hardware, like ASICs, DSPs etc. On the other side this will greatly reduce the flexibility of the device and the application areas will be limited.
New technology approaches have to be found to reduce these dilemmas. This paper describes an ongoing study of a SoC design where the reconfigurable coprocessor XPP is embedded with a standard mobile phone processor. The target application for this system is a low-cost/power environment running a MPEG-4 encoder/decoder (Visual Profile: Simple@L1). The whole MPEG-4 encoding/decoding process is partitioned between the standard processor, which is controlling the system and executes control-intensive algorithms, and its XPP coprocessor, which executes the computational-intensive data-flow algorithms and sends the results back to the host processor or a shared memory bank.
Due to an increasing technology progress in the configurable hardware sector, which is currently dominated by FPGAs, new approaches like very fast re-configurable devices with ALU level granularity are on the rise. However, these coprocessor devices can not be programmed with conventional HW nor SW design approaches. To solve this dilemma, a combination is needed. This approach is described in this paper. Furthermore, an example how to program a re-configurable device is illustrated. This example consists of parts of an MPEG-4 decoder, which is running on the re-configurable processor platform XPP. The partitioning of these decoding algorithms into modules and the means of interaction between these modules is highlighted. In addition, the embedding of this algorithm in a XPP system is outlined.