Part 2 examines the suitability of the C6000 and PowerPC for multi-processor systems.
Signal processing systems can be developed with or without an operating system.
Operating systems (OS) or specifically real time operating systems (RTOS) provide the
application developer with a variety of sophisticated features, but some of these features
do come with a cost.
Advantages of using an operating system:
- An OS dynamically schedules tasks, as the application requires. In large
systems where tasks can occur at indeterminate times, this can be a complex
process. OSs allow the user to prioritize each task based on the requirements
of the application. As each task is initiated, the OS can choose to run it, queue
it up behind another higher priority task, or suspend a lower priority task to
allow it to run.
- The OS allocates and de-allocates resources like memory, and handles system
level services like communication mechanisms and interrupt handling, as each
- Most OSs provide a software interface for host-to-target communications
during run time.
- Some OSs provide symmetrical multi-processing to share processing tasks
across multiple processors.
- In general, some of the major advantages of using an OS can be seen in large
multiprocessor systems where it can organize and optimize data flow and task
management, and in real-time systems where task scheduling can become
Advantages of not using an operating system:
- OSs typically introduce latency when the software needs to respond to
hardware interrupts. This is due to the time needed to switch tasks. While
many OSs are actually very good at performing in real-time applications,
latency can be a problem in closed loop control systems where the software
must very quickly respond to system changes and provide a response. In these
systems, a "bare metal" solution using no OS can very often provide superior
- OSs can cause the run-time code size to increase due to the additional
functions linked into the code by the OS.
- Some OSs require a run-time license to be purchased for each node that runs
the OS. This can introduce additional cost to the system.
C6000s and DSPs in general, have been successfully used in applications with and
without an OS. DSP programmers have been typically handling data flow and processing
without an OS in applications where data rates and the time it takes for processing tasks
are deterministic. In an application where data enters and leaves the processor at a
consistent rate, and the processing tasks can be performed within a known amount of
time, the application can very likely be written with interrupt driven code and may not
need an OS to schedule tasks. Conversely, in applications with multiple asynchronous
data streams that may have widely varying rates and where processing times can also
vary depending on the data set or external conditions, an OS can be extremely useful for
scheduling processing tasks to maintain real-time performance. The operating system
most commonly used on the C6000 is TI's DSP/BIOS:
- DSP/BIOS is a real time scalable kernel.
- It evolved from the SPOX operating system, which was the most popular
TMS320C40 OS in use.
- SPOX was originally sold for more than $10K, but DSP/BIOS is now
included free with TI's Code Composer Studio.
- DSP/BIOS has no run-time license fees.
- DSP/BIOS in it's present form, "DSP/BIOS II", is primarily a single
processor OS. Future versions may include multi-processor support.
The 7410 is most commonly used with an OS. The majority of G4s deployed are in
Apple computers that use Apple's MacOS. In embedded application the most common
OS is Wind River's VxWorks:
- VxWorks is a real time scalable kernel.
- It has been developed for many different processors and has been deployed in
huge volumes embedded in common appliances. It has even traveled to Mars
in the Pathfinder mission.
- VxWorks is typically a multi-thousand dollar solution.
- VxWorks requires run-time licenses for each node it is used on.
- VxWorks can support large applications with complex interprocessor
While many applications have been successfully written with VxWorks and this is a
common development environment, a number of other OSs exist for the PowerPC. Some
are based on Linux and these will undoubtedly gain in popularity, along with Linux.
Ports for the 7457, specifically the AltiVec support, and real time versions are now being
released. These are available for free on the Internet, as well as in commercial packages.