News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Article: DSPs and Embedded Linux: a great combination

Feb 20, 2001 — by Rick Lehrbaum — from the LinuxDevices Archive — views

Digital Signal Processors (DSPs) are at the core of multimedia, wireless, and broadband devices that require significant real-time processing such as digital cameras, cellular phones, MP3 players, VoIP phones, and DSL/cable modems. Many of these devices will be running embedded Linux for its flexibility, reliability, and ease of Internet connectivity.

Today, consumers are beginning to expect handheld devices to incorporate the latest multimedia functionality, matching what they are accustomed to on their desktop systems. Some embedded device manufacturers simply run their processors at higher and higher clock speeds, at the cost of reduced battery life. However, since DSPs execute multiple instructions per clock tick, they are able to deliver far more MIPS at lower clock speeds — resulting in increased battery life.

Multimedia is not the only place where DSPs excel. They are also well suited to voice processing, wireless communications, compression, and encryption tasks.

Many devices, therefore, will incorporate DSPs together with Linux, as manufacturers work to keep up with consumer demand for Internet-enabled mobile devices.

The Achilles heel of DSPs

Although DSPs are well suited to such compute-intensive tasks as the encoding and decoding of video streams, they slow to a crawl on code that contains many conditional branches or computations that cannot be executed in parallel.

To overcome this “Achilles heel” of DSPs, Texas Instruments (TI), a DSP market leader with chips in most cellular phones, digital cameras, and MP3 players, recently introduced a new type of processor that combines an ARM core and a DSP core within a single chip. These new dual-core processors offer the best of both worlds: a general purpose processor that runs Linux well; along with a DSP core, for parallel execution of real-time tasks. TI has their own real-time OS for their DSP core, called “DSP/BIOS II”, which supports hundreds of third-party algorithms.

Growing support for DSPs within Linux-based devices

There have recently been several announcements relating to the use of DSPs under embedded Linux . . .

  • RidgeRun announced that their DSPLinux distribution will support the first of TI's dual-core (ARM+DSP) processors: the DSC21, targeted at digital cameras. RidgeRun also launched the Open Multimedia Interface (OMI), an open source project that simplifies the challenges of adding DSP-based multimedia capabilities to Linux-based applications.

  • Red Hat announced a strategic investment in Cradle Technologies, a semiconductor firm that builds high-performance, parallel processing chips for cell phones, video cameras, PDAs, and streaming media servers. Red Hat also announced software support for Cradle's dual-core chips, based on a combination of embedded Linux and eCos.

  • Lineo announced the acquisition of Embedded Power, a developer of proprietary real-time operating systems for DSPs, an alternative to TI's BIOS II. Lineo plans to integrate Embedded Power's DSP RTOSes into their Embedix embedded Linux distribution and support.
These recent activities by RidgeRun, Red Hat, and Lineo are all aimed at further advancing the support of applications and devices involving DSPs and high-performance parallel processing with Linux.

Optimizing Linux support for DSPs

In any port of Linux to a new processor, there are a number of operating system functions that must be tailored to specific chip architectures and instruction sets, to maximize the efficiency of the processor. While simply porting Linux to new processors has become somewhat routine, much of the added value lies in optimizing Linux as well as in providing the proper development tools for specific chips.

Flash and RAM memory usage can be minimized by matching the compression algorithms with the processors' instruction sets. Such compression techniques may require new file systems to better correlate with the specific algorithms used, in order to further reduce processor and memory overhead. Also, battery life can be maximized by properly merging the power management tools of Linux with the various clock functions within the processors.

As demands increase for real-time video and wireless processes, fast Java compilations, and speedy communications through multiple channels, the optimal performance of new chips can only be achieved via specific enhancements that match the intricacies of each processor. In multi-processor environments, such performance enhancements are even more important, due to the complexity of managing tasks and memories between the processor cores.

Lately, there have been significant developments in the area of symmetric multiprocessing for Linux, primarily for high-end servers. Dual-core processors like TI's ARM+DSP chips create new demands for asymmetric multiprocessing, tailored to the capabilities of the different processor cores.

Development environments for dual-core components are especially complicated because they must simultaneously satisfy the needs of developing both high-level application software and low-level DSP code. With hardware development cycles often running behind those of the software, rich simulation and cross-compile environments are needed to enable software developers to begin their work ahead of hardware availability.

Linux is particularly well suited to providing such simulators, by allowing a desktop Linux PC to run an embedded version of Linux as an application, including Internet connectivity and peripheral support through USB and Ethernet ports and common bus structures. Such environments makes it much easier to write applications and kernel-level code.

OMI — an open API for DSPs in Linux

The Open Multimedia Interface (OMI) API was created to simplify the tasks of adding multimedia capabilities to both embedded and desktop Linux applications.

The goal of OMI is to minimize and simplify the media calls required to activate a media process from an application. OMI is meant to be highly adaptable and flexible, easily supporting new plug-ins for media extensions to better support such applications as gaming and voice.

In complex DSP environments, one of the principal goals of the simulation and development environments is to allow easy application development without the need to program actual DSP algorithms. The OMI project is a strong start in this direction, allowing a common set of multimedia calls to be transparently handled by the DSP.

RidgeRun is working to build widespread support for OMI within the Linux community as a foundation for future media applications, instead of the current ad hoc set of libraries for each media function. The GStreamer project, which forms the foundation on which OMI is built, supports a series of low-level media algorithms. Erik Walthinsen, the leader of the GStreamer project, recently joined RidgeRun as part of an effort to further broaden and enhance GStreamer support into the more encompassing OMI project.

The OMI project is now hosted at SourceForge: omi.sourceforge.net.

More to come

The rapid acceptance of DSPs and multi-processor architectures by the Linux community is another sign of the flexibility and strength that Linux offers. This recent flurry of activity with DSPs marks the beginning of what will likely become an integral part of Linux — the ability to easily support and control DSPs and multiple processors from a powerful, reliable, and adaptable kernel. New APIs such as OMI are needed to further expand this effort and ease the application development cycle.

RidgeRun's DSPLinux is targeted at tying Linux closely with the next generation of multi-processor cores from Texas Instruments, maximizing the use and effectiveness of each processor with the task at hand. Clearly, Red Hat and Lineo also understand the importance of DSPs to next generation, embedded Linux based products.

The integration of DSPs with Linux is still in its infancy, but these new development and acquisition activities demonstrate the industry interest in such capabilities. Exciting new products, technologies, and market opportunities are certain to emerge as the power of DSPs is increasingly combined with the flexibility and reliability of Linux.



Author's bio: Phil Verghese is Chief Technology Officer of RidgeRun Inc.. Phil has over 9 years of software development experience and holds a BA in Computer Science from Rutgers College. In his former position as principal software architect for the Hewlett-Packard LaserJet Core Software Lab, Phil designed and led the development of the object-oriented Windows printer drivers that ship with all HP LaserJets. He can be reached at [email protected].



 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.