elopment and amplifiers, are becoming available, and the SDR of applications with little or no knowledge of the under- design that does not take full advantage of these lying hardware. Management of memory is a tedious and flexible front-ends will handicap the final system error-prone process, and in a system running multiple performance. applications, memory management includes paging memory, distributed programming and data storage throughout different blocks of memory. An MMU allows 2.4a.2.2 Baseband processor engines the developer to "see" a contiguous set of memory, even though the underlying memory structure may be frag- The dividing line between baseband processing and other mented or too difficult to control in some other fashion types of processing, such as network stack processing, is (especially in a multitasking system that has been running arbitrary, but it can be constrained to be between the continuously for an extended period of time). Given the sampling process and the application. The application can generic nature of the applications that run on a GPP, an be included in this portion of processing, such as MMU is critical because it allows the easy blending of a VoCoder for a voice system or image processing in different applications with no special care needed on the a video system. In such instances, the level of signal developer's part. processing is such that it may be suitable for specialized signal processing hardware, especially in demanding applications such as video processing. Digital signal processors Four basic classes of programmable processors are DSPs are specialized processors that have become available today: GPPs, DSPs, FPGAs, and CCMs. a staple of modern signal processing systems. In large part, DSPs are similar to GPPs. They can be programmed General purpose processors with a high-level language such as C or C++ and they can GPPs are the target processors that probably come to run an OS. The key difference between DSPs and GPPs mind first to anyone writing a computer program.