Newsgroups: comp.parallel
From: ubd0@rzstud2.rz.uni-karlsruhe.de (Pascal Haeussler)
Subject: ToMoCo - The DreamMaschine
Organization: University of Karlsruhe, Germany
Date: Fri, 30 Jun 1995 12:56:19 GMT
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <3t0s9j$pc1@nz12.rz.uni-karlsruhe.de>

[ Article crossposted from t-netz.linux ]
[ Author was Pascal Haeussler ]
[ Posted on 28 Jun 1995 16:24:36 GMT ]

      ToMoCo Project Suggestion - Totally Modular Computer Project
      ============================================================


Introduction:
      While having some pints of beer a friend of mine and I spoke
      about PC's, Linux and all the related problems because of the
      standart architecure of a standart PC. 
      Todays PC-motherboards still use concepts developt for weaker 
      CPU's centuries ago. They are in fact something like a patch-
      work-carpet: One leg in the past (ISA, VGA, Real-Mode etc); one 
      in the future (PCI, Pentium etc).
      It was possible to develop a full Unix-OS called Linux on InterNet.
      Why should'nt it be impossible to develop a up-to-date computer via 
      InterNet ? Under the GNU-License ... available for everybody ??

The project:
      I'd like to start such a new project on InterNet called ToMoCo.
      The aim is to develop a Totally Modular Computer which basic 
      concepts will follow right after this. Everything posted in this 
      article is only done to interest hardware and software-gurus in 
      the project. Everybody who thinks he or she can offer some help
      is asked to do so. 

      The basic concepts have been developed by Pascal Haeussler and me
      in a lonely week. I think they are quite acceptable but there is 
      no doubt that there are still suggestions to be made. If you got 
      an idea ... mail it.

      All components and software which will be made for ToMoCo shall be
      free for everybody. I'd like it to be run under the GNU-license.

      Of course the electronic will be very complex and somehow hard
      reproduce. But if all plans and layouts are free it is possible
      that - like Linux - some companies will provide all parts needed 
      as kits.  

The basic concept:
      Today it is cheaper to use a processor than build up a very complex
      electronic circuit. That's why we would like to use processors where
      and for what ever it is possible. The advantage of processors is their
      programability. It is very easy to bring them up-to-date. Also all 
      parts using its own processor are intelligent enough to make the
      system absolutly transperent. On the other side there are of course
      the main cpus on which the OS and user-programms will run. Further on 
      we will call this cpus CALCULATING CPUs.

      Every part - we will call this in the future COMPONENT - is controlled 
      by a micro-processor. Our design makes it possible to use all
      available processors. So our computer is not linked to a single
      producer (hi..Intel!!) but can take advantage of a variety of
      companies. 

      Because of the high grade of processor usage this projects is as much
      hardware as a software task.

      There are very few general definitions which will not act as
      restrictions. The first defintion is the bus connection. I am
      not quite sure which plug to use right now. But this is left out
      for later discussion. Also there is the width of the bus. Our concept
      allows it to run a very wide bus e.g. 128 bit data or even more. I 
      thought of 15 possible components on one bus. Each component gets in
      the boot-up process its bus adress from bus-controler which will be 4
      bit value. The inner adress of the bus controler itself will always be 
      the 0hex. In addition the bus will provide information for all components
      about its width, frequency, software-version etc. 

      Each component - grafic adapters, harddisk-controler, cpu-cluster and
      last not least the bus - will exchange data by the means of a special
      language. There will be a variety of pre-defined words which are the 
      smallest group of commands that all should be implemented in the
      component of interest. But it is left to the developer to add more 
      commands to the OS by simply linking them in into the kernel.

      Especially the grafic adapter should be able to interpret a language 
      somewhat simular to the Display-Postscript of NeXTSTEP. 

      By the use of intelligent components which interpret a common language
      the system is transparent on a very low level.

      It is also possible to connect to buses. The second bus will get an
      outer adress and simply pipe commands and data from his system to the
      next. 

The cpu cluster:
      There is no fixed number of general-cpus in the ToMoCo. You are able
      to run several cpus in a cluster and to run several cluster
      components on one bus and several buses in one ToMoCo. The aim is to
      reach a multi-processor computer in the beginning. 

      A cpu cluster consists of an outer memory, a controler cpu and 
      calculating cpus. The controler cpu is responsible for bus i/o and
      for traffic between the calculating cpus and the outer memory. The
      outer memory is normal RAM ( PS/2 or any other SIMMs ) and divided
      in several pages. When one calculating cpu have access to a page in
      the outer memory the controler simply pipes all data from one end to
      other. If another calculating cpu demands the same page it will be set 
      to halt until the first releases the page. The controler cpu is
      accessible for the calculating cpus by the means of page 0hex. 

      The calculating cpus are equiped with their own - inner - memory 
      cosisting of EDO or Cache RAM. It should be quite fast and give the
      cpu the oportunity to run quite a while without any outer ram access.
      The inner memory is only accessible for the owning calculating 
      processor. 

The OS:
      I would suggest Linux. It will be quite a task to bring in the 
      multi-processor abilities but it is worth it. 

      It should be very simple to build in new routines for new components
      by adding a few things to the kernel. 

      In addition ... ToMoCo is worth being run under a Unix OS.     
   
The End:
      Well, that's all for now. If You are interested in any way feel free 
      to send email to:

		ubc6@rz.uni-karlsruhe.de	(F. Fischer)
      or
		ubd0@rz.uni-karlsruhe.de	(P. Haeussler)
      bye,
      		Frank Fischer

