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

  1. Path: sparky!uunet!pmafire!news.dell.com!swrinde!cs.utexas.edu!sun-barr!news2me.EBay.Sun.COM!exodus.Eng.Sun.COM!flayout.Eng.Sun.COM!tremblay
  2. From: tremblay@flayout.Eng.Sun.COM (Marc Tremblay)
  3. Newsgroups: comp.arch
  4. Subject: Re: DEC Alpha architecture issues
  5. Date: 19 Nov 1992 18:52:35 GMT
  6. Organization: Sun Microsystems, Mt. View, Ca.
  7. Lines: 28
  8. Message-ID: <lgnojjINN627@exodus.Eng.Sun.COM>
  9. References: <1992Nov18.112407.2518@doug.cae.wisc.edu> <1992Nov18.191730.1044@meiko.com>
  10. NNTP-Posting-Host: flayout
  11.  
  12. In article <1992Nov18.191730.1044@meiko.com> richard@meiko.com (Richard Cownie) writes:
  13. >1. Conditional move instruction is certainly useful.  I was involved
  14. >   in writing a compiler for the Acorn RISC Machine (ARM), which has
  15. >   the unusual feature that all instructions are conditionally
  16. >   executed, with a 4-bit field to specify the condition (the most
  17. >   common condition being "always").  Any conditional branch over
  18. >   a short sequence of instructions was optimised into a short
  19. >   sequence of conditionally-executed instructions, which reduced
  20. >   the code size and saved flushing the pipeline (there was no smart
  21. >   branch prediction or delayed branches).
  22.  
  23. The last sentence is key here. If branches can be predicted with decent
  24. accuracy then it is hard to obtain benefits from conditional moves
  25. over using conditional branches. In cases where branches can be predicted,
  26. a good processor front-end can provide the correct instructions
  27. "most of the time" and basically eliminate branches ahead of time.
  28. If the branch is correctly predicted than the full scalarity of
  29. the processor is available for computation. With conditional moves,
  30. the general case is that half of the functional units are available
  31. since you have to duplicate each instruction (half for the setup
  32. and half for the conditional execution).
  33. For hard to predict branches (50% ~ 60%), with a small number of
  34. instructions to guard, then conditional moves may be useful only if the
  35. pipeline is designed to handle the forwarding of the data efficiently
  36. (not free, requires junk in the pipeline).
  37.  
  38. - Marc Tremblay.
  39. Sun Microsystems.
  40.