From: mfb@mbunix.mitre.org (Michael F Brenner)
Subject: Re: Ada95/Mil-Std-1553 Problem (Long Post - Sorry About That)
Date: 1997/01/13
Date: 1997-01-13T00:00:00+00:00 [thread overview]
Message-ID: <5bdg7d$nhk@top.mitre.org> (raw)
In-Reply-To: 97011214115169@psavax.pwfl.com
My experience with 1553 indicates the following:
(a) The bit structures are easier to deal with in Ada-95 because
of the modular types.
(b) To be compatible with C or FORTRAN or JOVIAL at the other
end, let the high-order bit be always zero
(c) The hard part is the conversion from 1553A to 1553B which
requires a method of using the extra wire when no response
is received on the first wire, for extra reliability. It is
easier to design this in First, rather than add this in later.
(d) While everyone frowns on overlaying data using address
clauses, I have seen them used on 1553A or 1553B drivers on
MIPS, 80x86, and 680x0 CPUs in Ada, with no efficiency hit or
reliability problems. In all three compilers, there WAS an
efficiency hit for using an unchecked_conversion: it did a
copy operation for most or all accesses.
(e) Getting rid of the tag is a bigger problem than you indicate
because the machine-independent specification of how to represent
the tags is not in the Ada Standards, but in the CORBA standard.
Since not everyone on the other side will have access to CORBA,
you should not use tags, discriminants, or unconstrained elements
in the message data structures themselves. Instead, ACCESS EACH
ELEMENT through an object oriented interface (a get function and
a set procedure). This use of object oriented design forgives
many coding sins and deals with the foibles of many languages,
operating systems, message formats, and hardware protocols like
the 1553.
(f) You are absolutely right about avoiding dynamic allocations
because of unpredicatability of time, even in the fastest systems.
You are also right that a good approximation to the amount
of time your system will take is proportional to the number of
copies of the data you make. Therefore, at this first approximate
level, reducing the number of copies is indeed critical.
(g) But in these days of plummeting memory chip prices, and continued
blossoming of CPU speeds, we should not restrict ourselves to
slow, small-RAM hardware solutions. A MIPS R10000 chip today with
dual ported memory for the buffers is no more expensive than
the LSI-11, 680x0, or Spark chip solutions were last year. The
new desktop Pentium PRO 200MHz chips with PCI bus and memory
mapped I/O to dual ported memory can copy the buffer in zero time
or less (because of overlapping, pre-reading, hardware memory
protection, write-back cache larger than the size of the buffer,
and mapping registers). The translation lookaside buffers for
virtualizing the Spark, MIPS, TI, and Alpha chips, when combined
with 2 levels of cache can give statistical determinate memory
access of a single cycle, with the worst case only 8 cycles.
All of these brands of chips permit the addition of DMA
channels which can read and write memory in parallel. These are
just some of the more common brands of chips and there are
many more brands and many custom chips, ASICs, PALs, etc. Do not
limit yourself to fore-ordained hardware. Be flexible enough to
recognize that any Ada procedure or task can be replaced by a
chip. For example, they have RISK chip CPU boards that plug into
a PC, that you talk to through memory mapped RAM locations.
Sometimes the best software solution is improved hardware.
next prev parent reply other threads:[~1997-01-13 0:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-01-12 0:00 Ada95/Mil-Std-1553 Problem (Long Post - Sorry About That) Marin David Condic, 561.796.8997, M/S 731-93
1997-01-13 0:00 ` Amy Hartsough
1997-01-13 0:00 ` Michael F Brenner [this message]
1997-01-14 0:00 ` Brad Balfour
-- strict thread matches above, loose matches on Subject: below --
1997-01-14 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-01-15 0:00 ` Larry Kilgallen
1997-01-16 0:00 ` Richard Kenner
1997-01-20 0:00 Marin David Condic, 561.796.8997, M/S 731-93
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox