home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / arch / 11621 < prev    next >
Encoding:
Text File  |  1992-12-13  |  4.1 KB  |  87 lines

  1. Newsgroups: comp.arch
  2. Path: sparky!uunet!usc!sdd.hp.com!hplabs!nsc!decwrl!adobe!usenet
  3. From: zstern@adobe.com (Zalman Stern)
  4. Subject: Re: User visible pipelines vs. user visible memory coherency.
  5. Message-ID: <1992Dec14.030757.14209@adobe.com>
  6. Sender: usenet@adobe.com (USENET NEWS)
  7. Organization: Adobe Systems Incorporated
  8. References: <1992Dec12.102403.1@zodiac.rutgers.edu>
  9. Date: Mon, 14 Dec 1992 03:07:57 GMT
  10. Lines: 75
  11.  
  12. In article <1992Dec12.102403.1@zodiac.rutgers.edu>  
  13. leichter@zodiac.rutgers.edu writes:
  14. > History repeats itself?  Many early RISC designs chose to expose timing  
  15. and
  16. > pipeline constraints to the software.  It was up to software not to access
  17. > data before it arrived, for example.
  18. > Successive generations of RISC designs have moved that responsibility back  
  19. to
  20. > hardware.  The original Stanford MIPS had no pipeline interlocks at all -  
  21. if
  22. > the software didn't play by ALL the rules, it got nonsense.  The first
  23. > generation of the commercial MIPS architecture cut the constraints down to
  24. > two:  You had to wait one extra cyle before trying to use the results of a
  25. > load or a multiply, if I remember right.  The second generation of  
  26. commercial
  27. > MIPS has even added hardware interlocks for those.
  28.  
  29. First off, even the Stanford MIPS project interlocked on cache misses for  
  30. loads. (Its not really possible to build a processor that works without  
  31. this.) Hence I consider the "no interlocks" line bogus. Secondly, the  
  32. commercial MIPS I ISA has a load delay slot and a branch delay slot.  
  33. (Multiply/divide is interlocked.) Good arguments for these are along the  
  34. lines that you will not build machines that execute dependent instructions  
  35. back to back in these cases and software (i.e. compilers) can easily handle  
  36. them. The load delay slot has an impact on code density though and hence was  
  37. removed.
  38.  
  39. > Delayed branches were a great idea for a while, but recent designs, such  
  40. as
  41. > Alpha, have eschewed them.
  42.  
  43. Without any real compelling arguments that I've heard. (Dick Sites saying  
  44. "Any architecture with a 25 year life span won't have delayed branches." is  
  45. not a compelling argument.) Note that such decisions depend a lot on other  
  46. elements of your architecture. (E.g. compare-and-branch instructions vs.  
  47. condition codes.) Delayed branches may be a win for one architecture but not  
  48. for another.
  49.  
  50. > The IBM RS/6000 design has NO "correctness" constraints - the RISC-style
  51. > optimizations are important for performance, but even without them the  
  52. program
  53. > runs.
  54.  
  55. There are correctness constraints for some of the privelleged instructions  
  56. on the original RS/6000. Delayed instructions are not a major cause of  
  57. program errors anyway though. On MIPS systems, the assembler takes care of  
  58. it all for you so it just doesn't matter.
  59.  
  60. > Now we are trying the same thing with memory consistency.  Ten years from  
  61. now,
  62. > will we be looking back at those funny experiments of the early '90's that
  63. > (a) made the machines such a bitch to program; and (b) didn't really help
  64. > beyond a generation or two of design anyway?
  65. >                             -- Jerry
  66.  
  67. As I said above, single delay slots do not make a machine "a bitch to  
  68. program." It comes down to a performance analysis. You win with delayed  
  69. branches unless you are going to throw a fair bit of hardware at instruction  
  70. prefetching, in which case delayed branches don't matter one way or the  
  71. other.
  72.  
  73. The issues for memory consistiency are quite different though. First of all,  
  74. we a generally talking about tens or hundreds of cycles instead of one or  
  75. two. Secondly it is more difficult to predict data access patterns in  
  76. concurrent code than pipeline stall behavior. (Note that software controlled  
  77. caching has been seriously studied as well and suffers similar problems.) 
  78.  
  79. One problem with software controlled memory synchronization is any barrier  
  80. instructions you insert eat instruction issue bandwidth. Hence its easy to  
  81. lose any gains you would get by having simpler/faster hardware.
  82. --
  83. Zalman Stern           zalman@adobe.com            (415) 962 3824
  84. Adobe Systems, 1585 Charleston Rd., POB 7900, Mountain View, CA 94039-7900
  85.   "Yeah. Ask 'em if they'll upgrade my shifters too." Bill Watterson
  86.