ABAQ

  ABAQ


 Written by Perihelion, Ltd.



 Hardware Specification

 ----------------------


 The base machine outline specification is as follows:

 -----------------------------------------------------


 T800-20 Transputer 10MIPS, 1.5 Mflop

 Three 20Mhz links, buffered

 4Mbyte DRAM

 1 Mbyte dual-port video RAM

 Colour blitter

 True DMA SCSI port for 40M (minimum) hard disc

 Three internal expansion slots

 68000 Mega ST as I/O processor (plug in card connects fourth 20Mhz link)


 Screen Resolution and Use

 -------------------------


 The table below lists the screen resolutions and their probable typical

 use. All the following are at 60Hz with portrait orientation.


 Mode Resolution  Width          Description

 ---- ----------  -----          -----------


  0   1280 x 960  4 bits/pixel   4 bits/colour or monochrome 

                                 (Desk Top Publishing, engineering

                                 drawings)


  1   1024 x 768  8 bits/pixel   8 bits/colour

                                 (CAD, colour pictures, graphs)


  2    640 x 480  8 bits/pixel   8 bits/colour 2 screens

                                 (Animation)


  3    512 x 480  32 bits/pixel  24 bits colour, 1 overlay bit, 7 tag

                                 bits (True colour, smooth shading,

                                 3D modelling)


 The Blitter

 -----------


 The Perihelion blitter is based on work done by Dr Phil Willis of the 

 University of Bath. It provides meaningful operations with colour and 

 colour look-up tables (CLUTs) and implements very fast 2-D raster

 graphics operations, such as fast font drawing. It also provides a

 32-bit wide pipeline (with four tests on each of eight pixels

 concurrently), and is synchronised with blanking. Using the blitter,

 square area fill takes 128 megapixels per second, arbitrary two colour

 character drawing takes up to 64 megapixels per second, and full 2-D

 block copy takes 16 megapixels per second.


 Expansion Capability

 --------------------


 The Perihelion design provides for three expansion cards within the box.

 These can be memory cards, providing a maximum of 64Mbytes using 4M

 parts, or various versions of alternative graphics cards. The full

 transputer bus is brought out so any type of peripheral may be connected.


 The expansion sockets also bring out the transputer links and control

 signals. This means that cards containing extra transputers can be added,

 and the size of the cards allows for four transputers with up to 1Mbyte

 of RAM each on a single card. One workstation can therefore contain 13 

 processors.  Other link connections can be made outside the box to

 parallel processor farms of multiple processors. The link connections can

 also be made to fast peripherals such as a laser printer or disc server.


 The Transputer


 The T414 is a 32-bit processor that consists of a RISC style CPU,

 2K of fast on-chip RAM, an external memory interface and four serial

 links which may run at 5, 10 or 20 Mbits/second. The T800 is similar

 except that it also contains a floating point processor and 4K of RAM.


 The programmer's model consists of a three register evaluation stack, a

 workspace pointer and an instruction pointer.  A small number of

 instructions exist for loading and storing values on the stack and for

 altering the flow of control, the remainder operate on operands on the

 stack.


 The processor has microcoded support for processes at 2 priority levels.


 High priority processes may preempt low priority processes after any

 instruction and run until they give up the processor. High priority

 processes are essentially equivalent to interrupt routines on

 conventional processors.  Low priority processes are round-robin

 scheduled on a timesliced basis.  Timeslicing only occurs on particular

 instructions which are defined so that the minimum of state need be

 saved; process switching is therefore very fast.


 The transputer achieves inter-process communication through channels,

 which are single words of memory. Two processes that wish to communicate

 rendezvous at a channel and exchange data by copying from one buffer to

 another. As this is implemented by the microcode, the cost of copying

 lies only in the memory accesses for the data and not in instruction

 fetches. Communication is strictly one-to-one and channels may not be

 shared by more than one sender or receiver.  The inter-processor links

 are designed to behave exactly like channels, and are used with the same

 instructions.


 Parallel Programming

 --------------------


 The unique aspect of the Atari/Perihelion design is that is provides

 multiple processors within a single workstation.  The use of multiple

 processors means that is is possible to write application programs which

 make use of the possible parallelism inherent in such systems.


 Application programs can run under Helios using three programming

 philosophies.  The first of these is the traditional programming model.

 A program can be taken from another environment, such as Unix or a PC,

 and with little or no change converted to run under Helios. C and the

 Unix C library is provided, and such programs will run as a single

 process in the machine.


 Other programs, again probably from Unix, will run in several sections

 all of which may be run in different processes and connected by pipes.


 Helios encourages the use of many small programs which work together to

 create a final product. A common example is a pre-processor, a compiler

 front end, a compiler back end, an assembler and a linker. These can all

 be run together with intermediate connections made by pipes.


 Under other operating systems the different processes are timesliced on

 the one single processor.  Under Helios these different processes can be

 allocated to different processors, so that the individual parts actually

 run at the same time. 


 This type of "per-process" parallelism is easily understood, and many

 applications are already in this form. Examples include a word processor

 with background spooling and spelling checking or background jobs such

 as message systems or archiving. If an application is being altered then

 the use of extra processes should be kept in mind.


 The final way in which parallelism may be exploited is by the use of

 parallel algorithms. These tend to be hard to find for programmers used

 to the sequential nature of normal computers, but a look at the real

 world shows, of course, everything running in parallel.


 Applications using parallel algorithms will normally be written from

 scratch with such ideas in mind.  The benefit is that such programs will

 run much faster when the user provides more power in the form of more

 processors. Many examples of parallel algorithms exist, such as ray

 tracing, spreadsheet calculations, even computer chess!


 Helios Overview

 ---------------


 Helios is a true distributed operating system; there are no central

 services upon which the whole system relies.  This results in increased

 system reliability since the failure of any processor, or the

 partitioning of the network, will not cause unrelated parts of the

 system to fail (although they may continue at a somewhat reduced

 capacity).  The distributed nature of Helios is transparent both to the

 user at his terminal and to programs running within it which need never

 be aware of the exact location of any services.  This feature

 differentiates it from a network operating system where the distributed

 nature is more explicit.


 Helios is intended to be an open system architecture in which parts may

 be added, removed, modified or replaced transparently to suit specific

 purposes.  In many ways Helios is simply a set of conventions, or codes

 of practice, for the behaviour of programs.  It may be thought of as a

 "software backplane" providing an infrastructure for processes to locate

 and communicate with each other. 


 Finally, the emphasis throughout the development of Helios has been on

 finding practical solutions to the problems of distributed computing.


 For this reason many of its features are not new but have been derived

 from existing research systems.  The two most important influences have

 been the Cambridge Distributed Operating System and another system

 called Amoeba.


 fin


Comments

Popular posts from this blog

BOTTOM LIVE script

Fawlty Towers script for "A Touch of Class"