home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / arch / 11044 < prev    next >
Encoding:
Internet Message Format  |  1992-11-24  |  3.2 KB

  1. Path: sparky!uunet!elroy.jpl.nasa.gov!swrinde!news.dell.com!natinst.com!cs.utexas.edu!loyola!ross.COM!sparhawk!mitch
  2. From: mitch@ross.com (Mitch Alsup)
  3. Newsgroups: comp.arch
  4. Subject: short forward branch
  5. Summary: conditional move not necessary
  6. Message-ID: <1992Nov23.184856.20432@ross.COM>
  7. Date: 23 Nov 92 18:48:56 GMT
  8. Sender: news@ross.COM
  9. Distribution: usa
  10. Organization: ROSS Technology, Inc. Austin, Tx.
  11. Lines: 47
  12. Originator: mitch@sparhawk
  13. Nntp-Posting-Host: sparhawk
  14.  
  15. willmore@iastate.edu (David Willmore) writes:
  16. keiths@cae.wis> c.edu (Keith Scidmore) writes:
  17. > >1. The DEC Alpha includes a conditional move instruction that they claim
  18. > >   can be used to avoid using branches and the associated branch penalties.
  19. > >   I'm trying to evaluate the usefulness of this feature.  Can someone tell
  20. > >   me where I might find articles that discuss this or raw data that can be
  21. > >   used to calculate the advantages of such an instruction.  I'm not into
  22. > >   compilers, and I need to know what kinds of situations an optimizing
  23. > >   compiler could make use of this instruction.  Is it even practical?  Are
  24. > >   there any compiler writers out there with opinions on this?
  25. > You might try asking the HP people.  They were discussing the benefit of
  26. > their conditional execution 'branches'.  Other people to ask, if you're
  27. > brave enough, are the ARM people.  In their assembler, almost every inst.
  28. > is conditional.
  29.  
  30. If one checks Guri Sohi's litterature, they will find that many architects
  31. are rushing to find mechanisms to deal with these situations.  In particular,
  32. almost all of these situations manifest themselves in where a small number
  33. of instructions are skipped by a short forward branch.  Depending on the scale
  34. of the fetch machine, the target of the branch instruction may already be inbound
  35. from the instruction cache.  In these cases, there is no faster way to arrive
  36. at the target of the branch than simply to wait for these instruciton to 
  37. arrive.  THERE IS NO REASON TO DISRUPT THE FETCH MACHINE!  In onder to 
  38. effect the taking or not taking of the branch, one must be able to identify
  39. those instructions in the shadow of the branch.  When one determines the 
  40. outcome of the branch, then one can execute these instructions or discard
  41. them.  THERE IS NOT REASON TO BACK UP THE MACHINE DUT TO THE SHORT FORWARD
  42. BRANCH MISPREDICTION!
  43.  
  44. This means that branches are predicted accordint to three patterns; short forward
  45. branches are predicted to be not taken and execution canceled follwing branch
  46. determination, other branches are predicted and the machine is backed up on a
  47. misprediction.  The key payoff is that the short forward branches are manipulated
  48. ins such a way as to avoid disrupting the fetch machine.  The number of instructions
  49. under the short forward branch is implementation dependent as it should be!
  50.  
  51. The addition of conditional move/... instrucitons is a cluttering of instruciton
  52. sets and their decoders.
  53.  
  54. -------------------------------------------------------------------------------------
  55. Mitch Alsup        mitch@ross.com
  56. (512)-892-7802x231 ROSS Technology
  57. (512)-263-5086     Evenings
  58. Disclaimer:        I speak for myself.
  59. -------------------------------------------------------------------------------------
  60.