comp.lang.ada
 help / color / mirror / Atom feed
* Ada Run-time for embedded systems
@ 1995-03-01 14:49 R.A.L Williams
  1995-03-02 15:14 ` Garlington KE
  0 siblings, 1 reply; 15+ messages in thread
From: R.A.L Williams @ 1995-03-01 14:49 UTC (permalink / raw)


In article <3iftrp$nik@butch.lmsc.lockheed.com> you wrote:
: R.A.L Williams (bill@valiant) wrote:
[snip]
: : A federated architecture is where a collection of intelligent sensors
: : and displays are coordinated by a central computer system (or
: : possibly not!).

: : A modular architecture is where 'relatively dumb' sensors and
: : displays have most of their processing performed by a central computer
: : system.

: I think I mentioned this before, but in the USAF avionics studies leading up
: to the F-22 aircraft (as well as the F-22 aircraft itself), "modular" and
: "federated" were not defined as shown above.

: A federated architecture means that each functional area has its own
: processing "black box." The flight controls might have one black box,
: the navigation system another, and so forth. Sensors and displays could be
: smart or dumb in this architecture.

Yes, this was what I had in mind but you've expressed it rather better.

: A modular architecture uses common, standardized processing elements (hardware
: and software) that are _not_ built for a single functional area. The flight
: controls, for example, could use the same type of module as the stores control. 
: Processing here could be either "centralized" or "distributed" (and in fact
: is often the latter). Again, sensors and displays could be smart or dumb,
: just that there would be an effort to use the standard modules in all
: systems.

OK, but you can extend this concept to gain a further reduction in life-cycle
costs and an increase in reliability. If you consider *all* the processing
functions of the platform to be resident in a single distributed system,
and allow `reconfiguration' across that system then the total number of
redundant units needed to achieve a reliability goal can be reduced. Imagine,
for example, that you calculate you need 60% redundant units of a particular
processor module, but the boxes in your federated architecture have only
two processor cards each, then you need to add two more cards, ie. 100% 
redundant units. OTOH, if you move all the processing to a larger system 
with 10 of that type of card, you can add 6 cards and achieve exactly the 
additional redundancy you need.

The catch is that to take advantage of this technique you have to:
1. make reconfiguration actually work
2. integrate the sw from a number of different boxes into a single system
hence my further points...
 
: : I believe the following changes will have to occur in 'embedded' 
: : applications:

: : (a) Systems must be written to cope with a combination of hot standby
: : techniques and reconfiguration techniques.
: : (b) Techniques for distributed applications will come to the fore.
: : The potential for reconfiguration means that IPC will be the primary
: : communication technique. Moreover, IPC routes will need to 'follow'
: : the applications.
: : (c) Systems will need to support 'multi-processing' as well as
: : 'multi-tasking'. Individual CPU's will need to be able to run several
: : *independent* applications, presumably in their own virtual machines.

: : I'd like to pose a few questions:

: : 1. Do we need to write an operating system to manage reconfiguration
: : etc. or do we rely on Ada run-time support (Annexes C, D and E of the
: : LRM) to provide the needed intercommunication?

: With Ada83, you have to build your own. With Ada95, there will probably still
: be some "custom" features required.

Yes, I'm pretty sure you're right.

: : 2. If we provide an operating system (in my view, we must) what's the
: : split between that and the Ada run-time? At one extreme we have the
: : current 'native' compilers where the Ada run-time has practically no
: : access to hardware, at the other we have current 'cross' compilers
: : where the run-time expects full and exclusive access to hardware.
: : What is the correct tradeoff between portability and efficiency?

: For us, the OS is built on top of the run-time and takes advantage of it.
: Note that our cross-compilers do not expect to have full and exclusive
: access to hardware, although there are constraints.

So how would I achieve my desired aim of multiple independent applications
on a single CPU? If I just merge two applications together, as two tasks
for example, then I've got a single application and I've made the task
of certification that much hardware because of the additional complexity
of the single application.

BTW, which cross compiler(s) are you using? Is there a prospect of Ada95
from the vendor?

: : 3. What happens about validation? As I understand it at present the
: : validation covers a specific compiler generating code to run on a 
: : specific model (or range of models) of target with a specific operating
: : system (or lack of). Presumably if there is a 'standard' embedded
: : reconfigurable operating system this will be easier, at the expense
: : of enduring a camel-like o/s.

: We don't believe a custom OS, the way we implement it, affects validation.
: We don not re-validate with our custom OS. Our customer has no problem with
: this.

OK, with your approach the OS is part of *your* application, not part of
the compiler target platform. I guess I need to think of a way of making
my 'ideal' architecture working with this technique.

: --------------------------------------------------------------------
: Ken Garlington                  GarlingtonKE@lfwc.lockheed.com
: F-22 Computer Resources         Lockheed Fort Worth Co.

: If LFWC or the F-22 program has any opinions, they aren't telling me.

Bill Williams
GEC-Marconi Research Centre.




^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: Ada Run-time for embedded systems
@ 1995-02-09 18:47 CONDIC
  1995-02-10  1:13 ` Robert I. Eachus
  0 siblings, 1 reply; 15+ messages in thread
From: CONDIC @ 1995-02-09 18:47 UTC (permalink / raw)


From: Marin David Condic, 407.796.8997, M/S 731-93
Subject: Re: Ada Run-time for embedded systems
Original_To:  PROFS%"SMTP@PWAGPDB"
Original_cc:  CONDIC



Garlington KE <l107353@CLIFFY.LFWC.LOCKHEED.COM> Writes:
>
>: I don't know how y'all would like to define what an "embedded"
>: system is, but I'd say that if it has a screen, QWERTY keyboard
>: and a mouse, we're _probably_ not talking about one.
>
>"Probably" is right! The Automated Target Handoff System in the AFTI/F-16
>aircraft has a screen (head-down display), an alpha-numeric keyboard (for
>sending messages to the target designator on the ground), and a mouse (a
>cursor slew on the stick). A user interface is _not_ a determinant of
>"embedded." Furthermore, "Embedded" and "Real-time" have nothing to do with
>each other.
>
O.K. I *did* include the "Probably" proviso for a good reason -
there's always exceptions.

I've worked on avionics which have had CRT displays for the pilot
and buttons which they could push to get behavior from the
system - I'd still call that "embedded" even though it
technically speaking has a screen and a keyboard. I think you're
missing my point:

Plugging a Sun/Unix workstation into an aircraft via a 1553 bus
does not seem to me to constitute an "embedded" system - even
though, as you observe, it might very well be considered a
"realtime" system.

I think my point was to observe that the word "embedded" and the
word "realtime" tend to get abused rather badly and this can
confuse the discussion - especially as it related to the original
theme of COTS on "embedded" machines. I'd still like to ask if
anyone has an effective definition of either term such that it
can exclude from the discussion IBM mainframe payroll programs.
(Of course, there are always us obstinate Philidelphia Lawyers
who'd argue the point just to be arguing something! ;-)

I personally think some of the attributes of an "embedded
computer" probably (and note my equivocation - PROBABLY) ought to
include the following:

    * It is physically contained within a machine or device.

    * The purpose of the machine or device is something other
      than computing.

    * The computer controls or influences or monitors the
      behavior of the machine or device.

    * The computer is dedicated to and specifically designed for the
      control/influence/monitoring of the machine or device.

    * The computer's software is dedicated to and specifically
      designed for the control/influence/monitoring of the
      machine or device.

    * Both the computer and it's software are optimized for their
      designed task. (Id est, neither contains stuff which isn't
      related to the task, except by accident.)

I don't know if anyone else would consider this list sufficient
or accurate, but if you'd accept these points as significant, it
makes it difficult to talk about IBM-PClones running MS-DOS being
"embedded" computers. It also reduces - if not eliminates - the
possibility of COTS being installed on an "embedded" machine.

Pax,
Marin

Marin David Condic, Senior Computer Engineer    ATT:        407.796.8997
M/S 731-93                                      Technet:    796.8997
Pratt & Whitney, GESP                           Internet:   CONDICMA@PWFL.COM
P.O. Box 109600                                 Internet:   MDCONDIC@AOL.COM
West Palm Beach, FL 33410-9600
===============================================================================
    "There are like two kinds of jobs: One is called 'Jobs,' which is
    for jobs that suck, and the other kind is called 'Careers,' which
    also suck, but for longer."

        --  Beavis & Butt-Head
===============================================================================



^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: Ada Run-time for embedded systems
@ 1995-02-07 16:08 CONDIC
  1995-02-08 15:32 ` Garlington KE
  1995-02-08 22:51 ` Chris Warack <sys mgr>
  0 siblings, 2 replies; 15+ messages in thread
From: CONDIC @ 1995-02-07 16:08 UTC (permalink / raw)


From: Marin David Condic, 407.796.8997, M/S 731-93
Subject: Re: Ada Run-time for embedded systems
Original_To:  PROFS%"SMTP@PWAGPDB"
Original_cc:  CONDIC



"Theodore E. Dennison" <dennison@ESCMAIL.MMC.ORL.COM> Writes:
>
>l107353@cliffy.lfwc.lockheed.com (Garlington KE) wrote:
>>
>> Actually, there's a lot of COTS being used in embedded systems these days;
>> it's just that "embedded" means more than those weaselly little processors
>> used in avionics like ICNIA (or like I still use today :). For example,
>> C3I workstations are often called "embedded" systems since they are part of
>> a larger system. Many of these environments use extensive COTS databases,
>> display managers, etc.
>>
>Gimme a break!
>
>Show me someone who refers to a workstation setup as an "embedded
>system" and I'll show you someone who is trying to pad his resume'.
>
I have to agree. While one might easily call a workstation based
application "realtime" it's hard to imagine it as being
"embedded". If you define "embedded" losely enough, you could
call a payroll application on an IBM mainframe a "realtime",
"embedded" system. After all, it's "embedded" in a factory system
which semi-automatically takes raw materials in at one end of the
building and squirts out widgets from the other end. And it
happens in "realtime" because paydays happen on the 1st and 15th.
And they're "hard" deadlines in that missing them could result in
a riot which would destroy the widget producing platform...

I don't know how y'all would like to define what an "embedded"
system is, but I'd say that if it has a screen, QWERTY keyboard
and a mouse, we're _probably_ not talking about one.

Pax,
Marin


Marin David Condic, Senior Computer Engineer    ATT:        407.796.8997
M/S 731-93                                      Technet:    796.8997
Pratt & Whitney, GESP                           Internet:   CONDICMA@PWFL.COM
P.O. Box 109600                                 Internet:   MDCONDIC@AOL.COM
West Palm Beach, FL 33410-9600
===============================================================================
    "I have traveled the length and breadth of this country and talked
    with the best people, and I can assure you that data processing is
    a fad that won't last out the year."

        --  The editor in charge of business books for Prentice
            Hall, 1957.
===============================================================================



^ permalink raw reply	[flat|nested] 15+ messages in thread
* Ada Run-time for embedded systems
@ 1995-02-01 15:22 R.A.L Williams
  0 siblings, 0 replies; 15+ messages in thread
From: R.A.L Williams @ 1995-02-01 15:22 UTC (permalink / raw)


In article <INFO-ADA%95012709113992@VM1.NODAK.EDU> Marin David Condic wrote:

: "R.A.L Williams" <BILL@VALIANT.BITNET> writes:
: >
: >Does anyone know anything about running multiple applications on
: >a single embedded processor or, more to the point, N applications
: >on M processors, where N > M and, if a processor fails, several
: >of the applications may get moved around.
: >
: I worked on a project very much like this called ICNIA when I was
: with Singer Electronics in New Jersey. TRW was the prime. This
: was a radio that was designed to run "radio applications"
: (Narrowband, TCAS, JTIDS, etc...) across multiple processors and
: be able to reconfigure itself in the event of hardware failures.

Yes, we did some work on ICNIA-like systems some years ago, only we
were concentrating on the problems of the radio front-end and the
subsequent signal processing.

: The only way we could make it work at the time (and I don't know
: that anything has changed) was to have a "custom operating
: system" which executed "applications" written in JOVIAL. (We were
: planning to migrate to Ada as soon as we could get a good
: compiler or the government quit believing that excuse.) I don't
: think there was any easy way of mapping this sort of thing to Ada
: tasks - we had to get right down to the bits and bytes of
: operating system writing in order to get the behavior we wanted.

Yes, I was coming to the same conclusion myself. The catch with Ada
is, of course, that for the compiler to be validated, the vendor has
to specify the target and operating system. If I cobble together my
own system, come to that, if I cobble together my own hardware, I
no longer have a validated compiler. Now, you and I understand the
practical limits within which this is acceptable, but can we convince
a pen-pusher (sorry, QA engineer/contract administrator :-)?

: >Assuming that the applications are COTS (Commercial Off The Shelf)
: >programs, as may increasingly become the case, what happens about
: >the Ada run-time? COTS software will probably be supplied by
: >multiple independent vendors, so I can't make the usual assumption
: >that 'application' = 'task' and then rely on the tasking system
: >to solve my problems. Basically, I'm assuming that COTS applications
: >will be non-cooperative.
: >
: I've never heard of COTS software applications for embedded
: computers. What exactly are you trying to do? Run Windows NT on a
: missile navigation system? ;-) Seriously, a little more info on
: what you're trying to do might help suggest a solution.

No, don't forget that if equipment vendors sell sensors, for example,
to a system integrator, they will probably be asked to supply support
software. You get a driver with the super-whizzy VGA card on your
PC don't you? I forsee (== have been told to work on the assumption that..)
avionics systems, both civil and military, will be going this way in future.

As to what I'm trying to do: the questions I'm asking are aimed at a
medium term research project to evolve 'modular avionics' solutions
for future products. So, at the moment I'm not actually trying to do
anything, I'm just trying to evaluate what problems I'm going to face
in the future.

It seems to me that the way to get 'modular anything' to work is by
imposing standards. Standards for interfaces between hardware modules,
standards for interface between software modules. The Ada run-time is
just (an important) one of those interfaces. If an operating system is
going to be an enabling technology for the modular approach then we
need to get a standard for that if possible. It's all very well to
say 'POSIX' and assume that everything's alright, but POSIX isn't
actually an operating system, its mostly a set of API's and a list
of utility programs/commands. 

I'm hoping that, by starting the debate now we, in the industry, may
know which way to go when development/production contracts start to
come out. At the moment, this is still research (ASAAC, A3P, EUCLID).


Thanks for your feedback Marin.

Bill Williams



^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: Ada Run-time for embedded systems
@ 1995-01-27 15:12 CONDIC
  1995-01-30 19:42 ` Garlington KE
  0 siblings, 1 reply; 15+ messages in thread
From: CONDIC @ 1995-01-27 15:12 UTC (permalink / raw)


From: Marin David Condic, 407.796.8997, M/S 731-93
Subject: Re: Ada Run-time for embedded systems
Original_To:  PROFS%"SMTP@PWAGPDB"
Original_cc:  CONDIC



"R.A.L Williams" <BILL@VALIANT.BITNET> writes:
>
>Does anyone know anything about running multiple applications on
>a single embedded processor or, more to the point, N applications
>on M processors, where N > M and, if a processor fails, several
>of the applications may get moved around.
>
I worked on a project very much like this called ICNIA when I was
with Singer Electronics in New Jersey. TRW was the prime. This
was a radio that was designed to run "radio applications"
(Narrowband, TCAS, JTIDS, etc...) across multiple processors and
be able to reconfigure itself in the event of hardware failures.

The only way we could make it work at the time (and I don't know
that anything has changed) was to have a "custom operating
system" which executed "applications" written in JOVIAL. (We were
planning to migrate to Ada as soon as we could get a good
compiler or the government quit believing that excuse.) I don't
think there was any easy way of mapping this sort of thing to Ada
tasks - we had to get right down to the bits and bytes of
operating system writing in order to get the behavior we wanted.

>
>Assuming that the applications are COTS (Commercial Off The Shelf)
>programs, as may increasingly become the case, what happens about
>the Ada run-time? COTS software will probably be supplied by
>multiple independent vendors, so I can't make the usual assumption
>that 'application' = 'task' and then rely on the tasking system
>to solve my problems. Basically, I'm assuming that COTS applications
>will be non-cooperative.
>
I've never heard of COTS software applications for embedded
computers. What exactly are you trying to do? Run Windows NT on a
missile navigation system? ;-) Seriously, a little more info on
what you're trying to do might help suggest a solution.

Pax,
Marin

Marin David Condic, Senior Computer Engineer    ATT:        407.796.8997
M/S 731-93                                      Technet:    796.8997
Pratt & Whitney, GESP                           Internet:   CONDICMA@PWFL.COM
P.O. Box 109600                                 Internet:   MDCONDIC@AOL.COM
West Palm Beach, FL 33410-9600
===============================================================================
    "There is no reason anyone would want a computer in their home."

        --  Ken Olson, president, chairman and founder of Digital
            Equipment Corp., 1977.
===============================================================================



^ permalink raw reply	[flat|nested] 15+ messages in thread
* Ada Run-time for embedded systems
@ 1995-01-26 13:51 R.A.L Williams
  1995-01-30 19:03 ` Theodore E. Dennison
  0 siblings, 1 reply; 15+ messages in thread
From: R.A.L Williams @ 1995-01-26 13:51 UTC (permalink / raw)


I've posted articles along these lines several times before but
perhaps someone will bite this time...

Does anyone know anything about running multiple applications on
a single embedded processor or, more to the point, N applications
on M processors, where N > M and, if a processor fails, several
of the applications may get moved around.

Assuming that the applications are COTS (Commercial Off The Shelf)
programs, as may increasingly become the case, what happens about
the Ada run-time? COTS software will probably be supplied by
multiple independent vendors, so I can't make the usual assumption
that 'application' = 'task' and then rely on the tasking system
to solve my problems. Basically, I'm assuming that COTS applications
will be non-cooperative.

Need there be a separate copy for each application or does anyone 
know of any commercially available compilers that support multiple, 
semi-independent applications with a single instance of the run-time?

If there are multiple copies, how do I cope with the links into
hardware that most existing run-times seem to require on embedded
systems? (Running a copy of the OS/360 VM environment is probably
not an option :-)

Any comments out there? 

Bill Williams




^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~1995-03-02 15:14 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1995-03-01 14:49 Ada Run-time for embedded systems R.A.L Williams
1995-03-02 15:14 ` Garlington KE
  -- strict thread matches above, loose matches on Subject: below --
1995-02-09 18:47 CONDIC
1995-02-10  1:13 ` Robert I. Eachus
1995-02-10 20:27   ` Garlington KE
1995-02-07 16:08 CONDIC
1995-02-08 15:32 ` Garlington KE
1995-02-08 22:51 ` Chris Warack <sys mgr>
1995-02-01 15:22 R.A.L Williams
1995-01-27 15:12 CONDIC
1995-01-30 19:42 ` Garlington KE
     [not found]   ` <3gtgk9$m2l@theopolis.orl.mmc.com>
     [not found]     ` <EACHUS.95Feb3183348@spectre.mitre.org>
     [not found]       ` <3h2rg8INNhhp@RA.DEPT.CS.YALE.EDU>
1995-02-06 16:04         ` Robert I. Eachus
1995-02-06 16:16       ` Garlington KE
1995-01-26 13:51 R.A.L Williams
1995-01-30 19:03 ` Theodore E. Dennison

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox