home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / sys / atari / st / 12498 < prev    next >
Encoding:
Internet Message Format  |  1992-08-18  |  11.5 KB

  1. Xref: sparky comp.sys.atari.st:12498 comp.sys.atari.st.tech:4463
  2. Newsgroups: comp.sys.atari.st,comp.sys.atari.st.tech
  3. Path: sparky!uunet!elroy.jpl.nasa.gov!hanauma.jpl.nasa.gov!hyc
  4. From: hyc@hanauma.jpl.nasa.gov (Howard Chu)
  5. Subject: Re: Utterly bizarre idea for Atari
  6. Message-ID: <1992Aug18.224051.6308@elroy.jpl.nasa.gov>
  7. Sender: news@elroy.jpl.nasa.gov (Usenet)
  8. Nntp-Posting-Host: hanauma.jpl.nasa.gov
  9. Organization: SAR Systems Development & Processing, JPL
  10. References: <1992Aug15.043618.17054@news.csuohio.edu>
  11. Date: Tue, 18 Aug 1992 22:40:51 GMT
  12. Lines: 197
  13.  
  14. In article <1992Aug15.043618.17054@news.csuohio.edu> max@madnick.cba.csuohio.edu (Max Polk) writes:
  15. >Here it is in a nutshell: a parallel processing Atari microcomputer
  16. >featuring a set of 68000 microprocessors, sold at low cost yet
  17. >featuring high technology.
  18.  
  19. In 1985 or so, a company called Alliant Computer Systems based in Littleton,
  20. Massachusetts, introduced their FX series of machines, with the FX/8 being the
  21. main product, 8 68020-clones in a single chassis. This mini-supercomputer was
  22. outfitted with special vector-processor hardware as well, and cost around a
  23. million bucks. Alliant went bankrupt this year, and FX/8s now cost around
  24. $30K or so second-hand.
  25.  
  26. It's an interesting idea, but it takes hard work to get it right. Alliant
  27. abandoned the Motorola family in favor of the Intel i860, (which I think was
  28. a mistake) but their operating system was a pretty mature product already.
  29. >                          *    *    *
  30.  
  31. >As I glanced at my JDR Microdevices catalog, I couldn't help but wonder
  32. >why.  Why is it that our thinking is so bound to a single microprocessor
  33. >running the whole show?  Why must a multitasking operating system be
  34. >bound to a single microprocessor doing EVERYTHING.  Isn't it obvious that
  35. >we are running into the very real limits of clock frequency and chip
  36. >size having to make the single microprocessor do more and more things
  37. >faster and faster?
  38.  
  39. Sure is. But still, it's very difficult to break up a problem into segments
  40. that can be run concurrently. If you can't partition your problem this way,
  41. then parallel multiprocessing doesn't gain you anything.
  42. >
  43. >The catalog I referred to lists the price of microprocessors you can
  44. >order: the Atari ST's Motorola 68000 costs $6.95, while the 68020
  45. >costs $189.95.  The IBM PC's Intel 8086 costs $5.95 while the 80486
  46. >that runs at 50 MHZ costs $1199.00.
  47.  
  48. Hm. The cost is certainly attractive, but I still wouldn't want to use
  49. anything less than a 68020 in a system I were to design today. A real
  50. 32 bit architecture, instead of the 16 bit data/24 bit addressing of the
  51. 68000, plus the support needed for virtual memory, exotic address spaces, etc.
  52. Just can't see developing a Real Computing System without it.
  53. >
  54. >Let's see: $189.95 / $6.95 is about 27, and $1199.00 / $5.95 is about
  55. >201.  Ignoring for a moment all of what you have grown to know and love
  56. >about operating systems and microcomputer architecture, consider this
  57. >possibility: couldn't you do more with 27 outstanding 68000's running
  58. >exactly one process each, in parallel, than you could with one 68020
  59. >running and switching between 27 processes, executing no more than one
  60. >instruction at a time (for roughly the same amount of money)?
  61.  
  62. If you had 27 things you wanted to do right away, all at once, this would
  63. be fantastic. In my day to day use, I seldom have more than 4 windows open
  64. on my X terminal, and I'm generally only actively using one or two of them.
  65. When I ftp a new distribution of the X window system, or GCC, or some other
  66. large package, I actually do compile them in parallel on our FX/8 or FX/800,
  67. using up to processors at once on the 8. It's wonderful. But it's not a
  68. common occurrence. (See my paper "GNU & You, Building a Better World" in
  69. the proceedings of the 9th Annual Sun User Group conference...)
  70. >
  71. >For that matter, couldn't you do more with 201 good 8086's running
  72. >exactly one process each, in parallel, than you could with one 80486
  73. >running 201 processes all at once (for roughly the same amount of
  74. >money)?
  75.  
  76. For roughly the same amount of money, you would have to scale back
  77. severely from 201 processors. It takes a tremendous amount of logic to
  78. synchronize a bus between a large number of processors.
  79. >
  80. >Consider what a great product Atari could have, flying into the twenty-
  81. >first century at low cost, if they could write an operating system that
  82. >is based upon the architecture of one microprocessor for each process
  83. >that can run.  It wouldn't be that hard, if my thinking is correct:
  84. >each process runs on its own microprocessor with its own memory,
  85. >totally protected, so as to achieve instances of deaf, blind, and mute
  86. >minicomputers all inside the same box.  (These computers inside of
  87. >computers will be referred to as DBMT's: Deaf, Blind, and Mute aTari's.)
  88.  
  89. This is called asymmetric multi-processing. Sun is taking this approach in
  90. Solaris 1.x, and going for symmetric multiprocessing in Solaris 2.0. The
  91. Alliant Concentrix operating system was fully symmetric. It's just fine to
  92. have one processor per Unix process, but if you have only one kernel "process,"
  93. then you get serious performance bottlenecks. 27 or 201 processors making
  94. system calls to a single OS process will be a major drag. You will find most
  95. of your processors waiting in spin loops for the OS processor to complete
  96. their service requests.
  97. >
  98. >The operating system would only wait for system calls to be issued from
  99. >the various DBMT's and then handle the requests.
  100. >
  101. >Each DBMT would be constructed on a single plug-in board and there
  102. >would be as many of them as you had slots to plug them into.  (This is
  103. >beginning to take on mainframe proportions!)
  104.  
  105. That's a good idea. I think Alliant painted themselves into a corner by
  106. only allowing a small fixed number of processors per system. (8 procs on
  107. an FX/80, up to 28 on an FX/2800.) Like the transputer approach, where there
  108. is no predetermined limit to the number of processors you can connect. But
  109. again, the control circuitry for this approach gets quite complex.
  110. >
  111. >The process that desired to run a program would issue a system call,
  112. >and could either wait or not for it to finish.  The operating system
  113. >would start the next idle DBMT.  Disk access and window graphics would
  114. >also be system calls, giving good separation from the operating system,
  115. >and excellent protection (no more crashes either).  Actually, the
  116. >protection would be perfect, leaving no possibilities whatsoever for
  117. >the user to tinker with system globals, keyboard vector interrupts,
  118. >vertical blanking interrupt routines, etc.
  119.  
  120. So you're implying absolutely no sharing of memory between processor nodes, eh?
  121. That means all communication between a node and the OS processor has to be by
  122. DMA transfer? That will also introduce a performance hit. Motorola's DMA
  123. controllers only operate at speeds of up to around 10 or 12 MHz, for transfer
  124. rates of about 4 or 5 MB/sec. That's not so terrible for older SCSI-1 block
  125. devices, but that imposes tremendous overhead for tty-style character-at-a-time
  126. I/O processing.
  127. >
  128. >Perhaps this parallel concept would be applied to the filesystem as
  129. >well.  Don't wait for a single head to reposition itself over and
  130. >over again while the programs are twiddling their thumbs -- use several
  131. >small drives or some such scheme to prevent the tremendous speed of
  132. >the parallel processors from bottlenecking at the disk drive.
  133.  
  134. Check out the literature on RAIDs - "Redundant Array of Inexpensive Disk."
  135. All the rage in current high-performance disk storage systems.
  136. >
  137. >The speed would be so tremendous that no single microprocessor computer
  138. >could ever compare, no matter how powerful or fast.  And yet, the
  139. >cost would be very low, since you are using the older 68000's and
  140. >a simple parallel processing scheme.
  141. >
  142. >Breaking a program down into several subprograms each on its own
  143. >DBMT with message passing between them through the operating system
  144. >would speed up any program.  So Atari could make the most effective
  145. >microcomputer on the market today.  Atari would supply the buyer with
  146. >tools to write parallel-processing programs in ordinary languages
  147. >to get things rolling.
  148.  
  149. This is a very hard problem. To be able to easily split a single program
  150. among different processors, you really want to have shared memory between
  151. those processors, which is something we've already excluded from this design.
  152. Aside from that, it takes a different mind-set to get out of writing programs
  153. in the start -> crunch -> stop model of linear computing. Current compiler
  154. technology just takes traditional code and tries to run loops in parallel.
  155. If you have a huge processing job but it just consists of a sequence of steps
  156. that run in series, you can't get any benefit. (What you do then, of course,
  157. is fire off multiple instances of the job on multiple processors... But if
  158. you only need to run it once, you can't win.)
  159. >
  160. >Atari would have been one of the firsts to jump beyond the single
  161. >microprocessor barrier for the average home computer, giving users
  162. >fantastic power for the software that will soon arise that needs more
  163. >than a single microprocessor can handle (even with a math coprocessor).
  164. >
  165. >Because each DBMT is just that, deaf, blind, and mute, it would not
  166. >have to worry about I/O devices, leaving only the microprocessor and
  167. >memory to be installed on each DBMT board.  Such a modular design
  168. >would be easier to construct and debug at the hardware level.
  169.  
  170. It's an interesting idea. Sounds much like a transputer network, but with
  171. no internodal communications. 
  172. >
  173. >It's about time that someone tries this out in one form or another
  174. >for reasonably-priced small computers, and Atari could pull it off.
  175. >If they did, it wouldn't be perfect, since no new ventures like this
  176. >are, but they could start things rolling and place their name in
  177. >history.
  178.  
  179. Actually, thinking about this a bit more, there's no reason to limit such
  180. a design to any specific model of processor. Ok, so we have a single bus
  181. master that's basically a request dispatcher. When "the system" is booted,
  182. this guy starts up, inits the I/O subsystems, and inits each processor
  183. module. The processor modules and I/O modules can be pretty interchangeable,
  184. basically a card that resides at a particular bus address, with a processor,
  185. memory, and if an I/O module, whatever I/O channels it requires.
  186.  
  187. Hm. With a 68020 or up as the central system, you can have up to 256
  188. 24-bit (i.e. 68000) nodes. (Assuming that you decode the function codes & such,
  189. giving a full 32 bit address space for the 68020 itself, and another 32 bits
  190. for the nodes... Maybe even more if you care to distinguish I/O nodes from
  191. processor nodes.)
  192.  
  193. Ok, now, in order to make each single node useful, they need to have a good
  194. amount of RAM. I guess 4M is good for most common tasks. But wouldn't it be
  195. silly to have, say, 16 nodes == 64M of RAM in your system, but you can't run
  196. a single program that wants 8M because your memory is in 4M chunks? I guess
  197. this tells me that you've really got to have a single memory pool, with
  198. shared access to all the processors.
  199.  
  200. Ah, this brings up another issue. So I can buy 27 68000s for the cost of one
  201. 68020. I probably can't afford to outfit all 27 of 'em with enough RAM for them
  202. all to do reasonable work, eh? I think it should be obvious from all this that,
  203. when you're designing a computer system, deciding on the processor is one of
  204. the easiest steps. Creating the memory system is the hard part, everything
  205. depends on its performance.
  206. -- 
  207.   -- Howard Chu @ Jet Propulsion Laboratory, Pasadena, CA
  208.  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  209.  ::To the owner of the blue Mazda, license 742-XLT, your headlights are on...::
  210.  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  211.