The Dedicated Engine Opportunity

Intel Multi-core Processors with Ardence RTX

By Ardence

In a traditional, single-processor environment, processing power is a scarce resource because only one execution stream (thread of instructions) can be handled at a time.

A number of strategies have been developed to allow the computer system to make concurrent progress on more than one task - DMA channels, mathematical coprocessors, etc. In addition, processor hardware has been improved through techniques such as pipelining and wider instruction paths to increase the power of individual processors.

But with the advent of multiprocessor/multi-core systems, computers are no longer limited to a single thread of execution at any given time. This makes it possible, in many cases, to avoid the use of separate hardware - computers as well as buses and other communications resources - to offload tasks from the main processors, allowing them to be assigned the functions they do best.

The ability to assign a processor or processor core to a dedicated mission (set of tasks) in the system architecture:

  • leads to an elegant division of application functionality among processors that is consistent with modern software engineering concepts such as the Object-Oriented model;
  • eases debugging; and
  • allows tasks executing on this "engine" to receive more favorable treatment in the overall system than they would under the load-balancing algorithms provided by a general-purpose operating system such as Windows.
Examples of such a dedicated mission might be to act as a separate communications controller; real-time equipment control processor; dedicated data-acquisition and first-order reduction engine; patient vital signs monitor running concurrent with a hospital administrative network, etc.

The remaining processors or cores can be used for general- purpose tasks such as communicating with the human operator, logging data, and other operations that require the full UI power, spectrum of utilities, or other properties of a modern desktop or server OS.

Ardence's RTX deterministic control solution for Windows XP-based operating systems, adds the ability to allocate a processor or core in a multiprocessor system for use as a dedicated engine. Or, the system can revert to a shared-processor mode via a simple edit to a system initialization file. Although it is fully integrated with Windows, RTX's Real-Time Subsystem (RTSS) maintains sufficient independence that it is capable of continuing to operate following a Windows fatal exception (AKA "Blue Screen",) allowing mission-critical operations to be completed.

In a uni-processor environment, RTX still provides the unique advantage of allowing the application developer to be assured of explicit control over task execution priority, a feature not available under Windows itself.

Because RTX processes run in kernel mode (Ring 0), they need not depend on the non-deterministic and complex Windows driver model (WDM). Instead, they have direct access to hardware ports and mapped memory addresses, and explicit interrupt-handling capabilities. Win32 and RTX processes can communicate data and synchronize by means of shared memory and a variety of synchronization objects such as mutexes, events, and counting semaphores, etc. Testing of all processes can be performed initially under Win32, using the Visual Studio debugger - allowing problems such as stack overflows and invalid pointers to be corrected. Then, with no changes to source, the RTSS-targeted processes can be rebuilt for the RTX environment via simply selecting the appropriate configuration in the VS Configuration Manager.

Full evaluation versions of Ardence RTX 7.0 can be downloaded at no cost at: https://eval.ardence.com

Contact Information

Ardence, Inc.
266 2nd Avenue
Waltham, MA 02451
781.693.6345 Telephone
781.647.3999 Fax