Virtuoso 4.2 IDE with as multiprocessor DSP support and multitasking network host server

Santa Clara 26 September 2000 Eonic Systems today unveiled its Virtuoso 4.2 Integrated Development Environment (IDE), for the design of multiprocessor embedded DSP networks, such a radar, sonar and high-end image processing. The Virtuoso 4.2 IDE includes the Virtuoso 4.2 RTOS, a project manager, a new multi-threaded asynchronous network host server, and a suite of graphical analysis and debugging tools, as well as plug-ins to TI's Code Composer Studio and ADI's Visual DSP.

The newest version of the Virtuoso RTOS offers a variety of features that are not available with any other RTOS, a single processor programming style for multiprocessor systems, both communicating sequential processes (CSP)and multithreading multitasking capabilities, static memory allocation, target channels that allow data to be sent and received at different data rates without buffers, and distributed, shared or pooled memory architectures. The Virtuoso IDE supports Jovian's Pegasus graphical DSP development environment.

"Eonic has developed its Virtuoso IDE with RTOS specifically to handle the heavy interrupt and data processing demands of DSP applications and to exploit as fully as possible the DSP architecture - particularly in applications with multiple processors. The Virtuoso RTOS also exploits the parallelism inherent in DSP architectures to achieve maximum hard real-time performance in the smallest possible amount of code.

Multithreaded, Asynchronous Network Server - Embedded networks such as industrial control systems, high speed inspections systems, radar and sonar frequently require a graphical interface to an operator. Although virtually all RTOSs offer some support for multiple processors, there has been no integrated solution that supports multitasking on the network host side. As a result only one application task may access the outside world at any time. For example, data may not be transferred from a TCP/IP or Ethernet network to the host at the same time that the keyboard is being used. The penalty for this situation is that data transfer rates between the systems processors and the network host server are severely restricted - usually to no more than a few hundred kilobytes per second.

Virtuoso 4.2 is the first RTOS ever to implement asynchronous multitasking on the network server. Virtuoso uses a communicating sequential process (CSP) multitasking model that allows direct communication between any target task and any network host server-based application. One side of the communication can be a Virtuoso target task that communicates using a channel, while the other side of the communication can be a host-based application that communicates using a file, a named pipe, a COM port or a TCP/IP socket. Network host server multitasking speeds up data transfers by several orders of magnitude. Virtuoso 4.2 has achieved data transfer rates between the network host server and application processors of 16 megabytes per second (MB/s) -- over 50 times faster than using a conventional, non-multitasking host/target communications protocol.

RTOS Achieves 100% Scalability By Combining CSP and Multithreading - Most real-time operating systems, such as pSOS, VxWorks and Windows implement multitasking using threads. Each task has its own thread and all threads that must communicate with each other must share the same memory space. The threads are synchronized using semaphores (to signal when data is ready) and mutexes (to lock and unlock resources which are in use). In single processor systems that do not require "hard" real-time operation, multithreading can be very fast and efficient. However, as processors are added to the system, memory accesses by multiple processors creates a bottleneck on the bus that degrades performance. In a system with a 200 MHz processor, the addition of even a second processor may actually reduce overall system performance. Shared memory has another drawback in that the engineer must individually design sub-applications and manage the memory for each processor in the system. In short, a separate program must be written for each of the system processors. These systems are not easily scalable to more or fewer processors. Moving tasks between processors or to a new processor is extremely difficult and can result in erroneous pointers, premature overwriting of data, or memory fragmentation. Taking advantage of a new DSP architecture that can do the same job with fewer processors requires the designer to rewrite the application from scratch. Thus, even though the application is implemented almost entirely in software, it is still not very re-usable if the hardware changes.

Virtuoso 4.2 solves the multiprocessor bottleneck and the scalability problem by combining the communicating sequential processor (CSP) multitasking model and the multithreading model in the same RTOS. In the CSP model. tasks (similar to threads) communicate directly through channels that serve as data-flow pipes. The channels exploit the multiple external buses or the direct link ports available on DSPs, so the DSPs communicate directly with each other without using the system bus.

CSP Target Channels Eliminate the Need for Data Buffers - In Virtuoso 4.2 all processors have access to each other's memory (distributed memory) and each task has its own dedicated memory space. Virtuoso 4.2 also offers "pooled" memory, a variant of distributed memory that treats all system memory as a huge single block of memory, thereby preventing fragmentation and optimizing memory usage.


Ad Emmen

[News on Advanced IT][Calendar][Analysis][IT in Medicine]