home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / arch / 9317 < prev    next >
Encoding:
Text File  |  1992-09-09  |  3.0 KB  |  61 lines

  1. Newsgroups: comp.arch
  2. Path: sparky!uunet!metaflow!rschnapp
  3. From: rschnapp@metaflow.com (Russ Schnapp)
  4. Subject: Re: No Branch Delay Slot(s)...
  5. Message-ID: <BuC7Hz.HzB@metaflow.com>
  6. Sender: usenet@metaflow.com
  7. Nntp-Posting-Host: habu
  8. Organization: Metaflow Technologies Inc.
  9. References:  <1992Sep9.044231.12217@fcom.cc.utah.edu>
  10. Date: Thu, 10 Sep 1992 00:46:47 GMT
  11. Lines: 48
  12.  
  13. In article <1992Sep9.044231.12217@fcom.cc.utah.edu>, phil@news.ccutah.edu (Phillip Neiswanger) writes:
  14. |> If I remember correctly, the article states that the use of
  15. |> delayed branch slots could introduce incompatibilities from implementation
  16. |> to implementation.  This does not seem very intuitive to me.  Would anybody
  17. |> care to discuss how branch delay slots are going to affect future generation
  18. |> of RISC cpus as they enter the era of multiple(read >2) instruction issue
  19. |> implementations.
  20.  
  21. Delay slots came about because scalar processors with neither branch
  22. prediction nor branch target buffers are unable to issue the branch
  23. target in the clock following issue of the branch instruction.  In an
  24. attempt to make use of at least one clock of this bubble, you delay the
  25. execution of the branch, and issue the instruction following it.
  26.  
  27. The trouble is, if you take a look at typical MIPS or SPARC code, the
  28. delay slot is often filled with a NOP, or with a duplicated
  29. instruction.  In general, delay slots artificially constrain code
  30. generators (human or otherwise) and tend to dilute the code (i.e., with
  31. duplicate instructions or NOPs).  Bigger code means more instruction
  32. cache misses, more text page faults, and more text page TLB misses.
  33.  
  34. In a superscalar machine of order 2 (i.e., it can issue 2 instructions
  35. per clock), a single delay slot can be useful.  Still, you have to live
  36. with the above-named deficiencies.  Besides, what are you going to
  37. issue in the next clock, Sherlock?
  38.  
  39. When you get into more aggressive superscalar architectures (such as
  40. Metaflow's order-4 machine), a single delay slot instruction doesn't
  41. help you very much.  I suppose you might want *more* than 1 delay slot,
  42. but how many do you want to burden the instruction set with?
  43.  
  44. In any event, delay slots were an elegant solution in the days when
  45. pure, simple RISC architectures were the best solution to the
  46. performance problem.  These days, many folks are waking up to the
  47. realization that merely boosting the clock rate and the cache sizes
  48. will not get you where you want to go.  You need superscalar (or
  49. superpipelining, for those of that bent).  Then, to really make
  50. superscalar architectures work effectively, you need branch prediction,
  51. speculative execution, register renaming and out-of-order execution.  
  52.  
  53. (If you're interested in these concepts, go read Metaflow's article in
  54. the June '91 issue of IEEE Micro.)
  55. -- 
  56.  
  57. ...Russ Schnapp
  58. BIX: rschnapp           Email: uunet!metaflow!rschnapp or rschnapp@metaflow.com
  59. Metaflow Technologies   Voice: 619/452-6608x230;  FAX: 619/452-0401
  60. La Jolla, California    Unless otw specified, I`m speaking only for myself!
  61.