Real Time

Jim Lux jimlux at
Sun Mar 11 18:16:48 PST 2001

We've got a couple of papers in the works, one of which is being presented
in a few hours later tonight at the IEEE 2001 Aerospace Conference in Big
Sky, MT.

We're building a breadboard demonstration of a "general purpose DSP" based
orbiting scatterometer to be used to measure winds over the ocean. A
scatterometer is basically a time domain reflectometer or radar that
measures the backscatter (at Ku-band, 13.4 GHz) from the ocean's surface to
an accuracy of better than 0.1 dB. I hesitate to call it a radar, because
unlike a radar, we know where the target is, and how far away it is, so
there's not much "detection" or "ranging" involved.  More on the general
scatterometry program at  The unique (and
painful) thing about this is maintaining the accuracy of the backscatter
cross section measurement.

We're using a set of 3 space qualified hybrids from Astrium (formerly Matra
Marconi Space) which integrate a ADSP21020 clone, memory, and peripherals
into a space qualified rad tolerant package that is functionally much like a
SHARC.  The processors communicate by using a high speed (150 Mbps) serial
link called SpaceWire ( implemented
in an ASIC developed by Dornier Satelliten Systeme which provides 3 ports (+
a port to the processor) as well as "wormhole" routing.

The architecture is basically a master/slaves scheme, with a master DSP
controlling the transmit functions and also assigning one of many receiver
DSPs in a "round robin" sort of scheme to process the echoes (the processing
time for one echo is somewhat greater than the interpulse interval).   In
this breadboard, all the timing is done by the DSP directly without using
any "glue logic" in an external FPGA, including generating sampling clocks,
transmitter and receiver gates, etc. We've implemented a message passing
system to communicate between the processors with a C-language API based on
MPI-like framework (i.e. Send_Message, Receive Message, etc.) (Actually, I
edited the MPI include file to create the API definition..)

Spacewire is fast and low latency, but, especially with wormhole routing,
not deterministic in terms of timing, and furthermore, we need
submicrosecond timing accuracy to meet the echo range resolution
requirement. We have come up with a fairly simple (and clever, if <ahem> I
do say so myself) way to do this, which is the subject of another paper,
currently wending its way through JPL's document review process so that we
don't run afoul of ITAR. (It's not having to kill you, Eugene, that I worry
about, it's me going to prison....).  Any day now, we'll be able to release
all the details.

So.. it's not really a Beowulf (no OS, not really a commodity processor
(nothing for space is commodity..)), but, certainly, the techniques we are
using could be used, especially with the help of a bit of external timing
hardware to make up for the non-deterministic timing of the processors in
your basic PC.  DSP processors are really nice that way... the same sequence
of instructions will execute in the same length of time, every time.
Certainly, getting timing down to sub milliseconds is a real possibility
with PC hardware and Linux.

----- Original Message -----
From: <Eugene.Leitl at>
To: "Jim Lux" <James.P.Lux at>
Cc: "Greg Lindahl" <lindahl at>; <beowulf at>
Sent: Sunday, March 11, 2001 2:06 PM
Subject: Re: Real Time

> Jim Lux wrote:
> >
> > While not a beowulf, I am currently working on a very hard real time (<1
> > microsecond) system (a radar) using an MPI like interprocessor interface
> > between DSPs.  It is entirely possible to have hard real time systems
> > nondeterministic communications.
> Can you tell us more? (preferably, without having to kill us
> afterwards, of course).
> _______________________________________________
> Beowulf mailing list, Beowulf at
> To change your subscription (digest mode or unsubscribe) visit

More information about the Beowulf mailing list