Design Article
C6000 vs. PowerPC, part 2: Multiprocessor systems
Robert Sgandurra, Pentek
12/27/2007 3:00 AM EST
System I/O Requirements:
The efficient use of the external memory interfaces just discussed is typically just as
important to system design as the raw processing power of the processor. Regardless of
whether the core is a C6000 or a PowerPC, some general guidelines apply to most
embedded applications requiring high throughput, real-time I/O.
- A direct path to each processor helps guarantee that data will not be stalled
because of routing the data through various intermediate resources.
- Similar to the previous point, paths that are shared by more that one processor
to access a multi channel I/O device can be problematic when one channel of
data may need to wait for another channel to complete its transfer before using
the same shared path. This can be especially difficult when data streams are
at different rates and the asynchronous nature of those streams make
scheduling data transfers non-deterministic.
- In some applications like very fast control loops, low latency in the control
and feedback paths is essential to maintain real-time performance.
- In some applications where data is particularly "bursty", a FIFO in the data
path, clocked by the data I/O device at one end, and clocked by the processor
at the other can buffer the data to provide the elasticity needed to keep the
data constantly flowing in or out of the processing core.
- In many applications, I/O-to-processor data rates of 200 to 300 Mbytes/sec, or more are needed to keep up with the data flow and maintain real-time performance.
Velocity Interface Mezzanine – VIM:
Velocity Interface Mezzanine or VIM is Pentek's answer to the high performance I/O
requirements of many embedded applications. The interface is an open standard and
design information and specifications are available at Pentek's web site. VIM provides
an I/O connection between processor nodes and I/O modules as shown in Figure 7.

Figure 7
The three components of VIM:
- A high-speed data-streaming path – Built around a 32-bit wide bi-directional
FIFO (Bi-FIFO). This path provides unrestricted data movement in or out of
the processing node. The FIFO also provides the elasticity to absorb the
possible difference between data rates on the processor side and the I/O
interface side. The interface supports full, half-full, and empty FIFO
interrupts, as well as programmable almost full and almost empty interrupts.
DMA based data movement between the I/O module and the processing core
can be initiated using these interrupts and the size of the transfer can be
programmed, minimizing, or in most cases removing the processor's direct
involvement, reducing CPU overhead. Depending on the processor node, this
Bi-FIFO can operate up to 100 MHz, providing a 400 Mbyte/sec data pipe.
- 32-bit read/write control and status interface – Viewed directly in the
processors memory map, this interface provides a dedicated path for setting up
board parameters, viewing board status, dynamically changing board settings
during operation, and moving data that doesn't require the high-speed Bi-
FIFO interface.
- Dual serial ports – Provide paths for serial data in addition to high speed parallel path supplied by the Bi-FIFOs.
Regardless of the processor node, C6000 or PowerPC, the VIM interface remains the same allowing the same I/O modules to be used with either processor. This hardware compatibility, along with standard I/O module software support libraries, provides a consistent development environment between both processors.
VIM sites are available on VME and CompactPCI processor boards. VIM modules are available in two form factors, VIM-2 and VIM-4. Figure 8 shows VIM-2s and a VIM-4 mounted on a VME processor board.

(Click to enlarge)
Figure 8
VIM-2 modules connect to two processor nodes and VIM-4 modules connect to all four processor nodes. All VIM baseboards can accommodate either configuration, a single VIM-4 module or dual VIM-2 modules. When two VIM-2 modules are used on the same processor board, two different module types can be used to provide multiple I/O functions on the same processor board. Again, it's important to remember that to supply the data I/O rates needed by either the C6000 or the PowerPC, each node must have it's own interface, so within a VIM-2 module there are two discrete VIM electrical interfaces, one for each processor, and similarly a VIM-4 module has four electrical interfaces. VIM modules come with their own connector specific front panels and when installed, become part of the VME front panel. Figure 9 shows two VIM-2 modules installed on a VME processor board.

Figure 9

