[comp.arch] real-time and apollo

apollo@ecf.UUCP (08/31/87)

    We were hoping to use Apollos for real-time data
acquisition and control for some of our experimental
work the reason being we already have 4 for our analytical
work and as a result would like to stay with the same
product.
    From what what I understand of real-time o/s's
neither Aegis nor Domain/IX is at all appropriate for 
such a task (no pun intended) what I was hoping though is that
someone out there is using Apollos for real-time work
and would be willing to post any suggestions,ideas,experiences
to the net as I'm quite sure others are contemplating doing
the same thing seeing that dn3000's and 4000's are so 
inexpensive. 
    A last question: does anyone know of any real-time 
executives (i.e. VxWorks, pSOS whatever) that have been 
ported to  Apollo?  

    Thanks in advance.
      
                         Vince Pugliese
                         University of Toronto
                         (416)667 7744
                         e-mail:apollo@ecf.toronto.edu

jensen@convex.UUCP (09/12/87)

The desire to do real time processing on an Apollo is interesting.
As a former employee of the company, I a bit familiar with the
architectural problems on the earlier product lines (DN 6xx, DN5xx,
DN4xx & DSP80).

First, Apollo has not written the interrupt handling code with
"real-time" responsiveness in mind.  The kernel of the operating
system is monolithic, so you have to use the user device driver
facility to access special devices.  There is some overhead associated
with this, which may preclude the responsiveness that you desire.
Although Apollo does have an assembler, it used to be hard to get
ahold of (unless Apollo has changed their distribution scheme).
Lastly, you have no control over anything like interrupt priorities,
thus, getting deterministic response to external events is going
to be hard.

As far as alternative O/S for Apollo systems, I am not aware of
any.  Apollo does not release for general consumption the specific
internal details of their boxes.  Thus you do not know how
memory addresses are allocated, how the memory mangement unit works,
how the display subsystem works, etc.  This is the major stumbling
block to bringing up a non-Aegis O/S.  It can be done, all of the
hardware peices are there to run something like Unix, but with
no documentation, it is near impossible.

Let me make a suggestion.  Since the 3000 (and, presumably, the 4000)
has an AT compatible bus, look into using one of the commercial
"turbo cards" that fit in that bus.  The turbo card can run a
fast "real time" monitor and the Apollo CPU only has to care about
communicating with the other processor.  You may have to hack some
signals on the card, but then again, you may not.  It may be worth
a look.

Good luck with what you want to do.

Bill Jensen
Convex Computer Corp.
{uiucdcs,ihnp4}!convex!jensen

ced@apollo.uucp (Carl Davidson) (09/18/87)

I would like to comment on some unintentionally misleading
statements in a recent article.

In article <63900008@convex> jensen@convex.UUCP writes:
>
>The desire to do real time processing on an Apollo is interesting.
>As a former employee of the company, I a bit familiar with the
>architectural problems on the earlier product lines (DN 6xx, DN5xx,
>DN4xx & DSP80).               
>

All of the product lines referred to (except the DN5XX) are no longer 
in production.  

>
>..................... you have to use the user device driver
>facility to access special devices.  There is some overhead associated
>with this, .....
>

It is true that Apollo does not provide users with the ability 
to perform surgery on the OS kernel.  Instead, we provide a facility
called General Purpose I/O (GPIO) which allows users to dynamically load 
and execute device drivers in user space at run time.  As Bill says,
there is a slight overhead involved in dispatching interrupts.
This overhead is so small, however, as to be unnoticeable (involves
only a few lines of very slick assembler in our kernel).

>
>Although Apollo does have an assembler, it used to be hard to get
>ahold of (unless Apollo has changed their distribution scheme).
>

This scheme has indeed changed. What counts, though, is that you 
probably won't need to use assembler to write a device driver
on an Apollo.  It can all be done quite easily in C, Pascal,  or 
even (*ugh*) Fortran (if you're a real glutton for punishment)!
On an Apollo, you can see your entire device driver, even the 
interrupt routine, run in the debugger during development.
Try that on any other workstation!

>
>....  Apollo does not release for general consumption the specific
>internal details of their boxes.  ......
>

Please see the Domain Series 3000/Series 4000 Hardware Architecture
Handbook, Order No. 7861, Rev. 02 for the triviature (is that a word?)
you seek.

>
>Let me make a suggestion. ... look into using one of the commercial
>"turbo cards" that fit in that bus. ... It may be worth a look.
>                                                               

Despite the fact that Bill's information is a bit dated, he makes
an outstanding suggestion!  Data acquisition and real-time performance
really [:-)] call for a real-time kernel like VRTX or iRMX to give you
the control over scheduling you need. No full-featured OS, even
Unix, can really be responsive enough for the most demanding cases
(yes, I know some folks have modified the Unix kernel for real-time,
but that is not the general case).

You should have no trouble finding an assortment of cards which will
fit the bill for your application.  When you are selecting one, you
should have a copy of Writing Device Drivers with GPIO Calls, Order 
No. 959, in hand.  It has all of the information on configurability 
that you need to select a compatible card.

>
>Good luck with what you want to do.
>

Amen!

**************************DISCLAIMER****************************
I AM SPEAKING ONLY FOR MYSELF. THE OPINIONS EXPRESSED HERE ARE
MINE ALONE AND SHOULD NOT BE CONSTRUED AS THOSE OF APOLLO COMPUTER
INC.  
**************************DISCLAIMER****************************
-- 
--Carl Davidson                         Progress: Being able to use $1 million
  Apollo Computer Inc.                            of computer equipment to put
  Chelmsford, MA                                  in your two cents worth.
  {wanginst,yale,mit-eddie}!apollo!ced