home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / arch / 9054 < prev    next >
Encoding:
Internet Message Format  |  1992-08-26  |  2.3 KB

  1. Path: sparky!uunet!dtix!darwin.sura.net!wupost!bcm!rice!cliffc
  2. From: cliffc@rice.edu (Cliff Click)
  3. Newsgroups: comp.arch
  4. Subject: Re: trapping speculative ops
  5. Message-ID: <CLIFFC.92Aug26084159@medea.rice.edu>
  6. Date: 26 Aug 92 14:41:59 GMT
  7. References: <l8gi9jINNaad@exodus.Eng.Sun.COM>
  8.     <1992Aug12.155317.27437@bcars64a.bnr.ca>
  9.     <l8j0qkINNikb@exodus.Eng.Sun.COM> <BtEzrK.Jso.2@cs.cmu.edu>
  10.     <GLEW.92Aug25180333@pdx007.intel.com>
  11. Sender: news@rice.edu (News)
  12. Organization: Center for Research on Parallel Computations
  13. Lines: 40
  14. In-Reply-To: glew@pdx007.intel.com's message of Wed, 26 Aug 1992 02:03:33 GMT
  15.  
  16. In article <GLEW.92Aug25180333@pdx007.intel.com> glew@pdx007.intel.com (Andy Glew) writes:
  17. >      ...what about traps while executing speculatively?
  18. >      1) Let the hardware do all the speculative execution. This puts it on
  19. >      the hardware's head to not trap until it knows it really should have.
  20. >      2) Allow compiled code a way to postpone consequences until it
  21. >      wants to know. 
  22. >      -- 
  23. >      Don        D.C.Lindsay     Carnegie Mellon Computer Science
  24. >  Andy Glew, glew@ichips.intel.com
  25.  
  26. Yes to (2)!
  27.  
  28. Let every register have some extra "trap" bits.
  29. A read of the register with it's trap bits set, causes the exception.
  30. A write to the register sets the trap bits according to the success of
  31. the operation.
  32.  
  33. With this design, exceptions are triggered at the START of some operation,
  34. instead of in the middle of it.
  35.  
  36. Pre-fetch for long-distance memory can be implemented with a simple LOAD.  
  37. If a page fault is required for the LOAD the fault is delayed until the 
  38. register is used.  If the pre-fetch is speculative, no page fault occurs.
  39.  
  40. Do you have a division with a zero-denominator guard test?  Schedule the 
  41. division as early as you like, and don't read the result register if the
  42. guard fails.
  43.  
  44. If you require precise interupts, arrange to use the results of every
  45. possibly-faulting operation before a second control path merges with
  46. your current control path.  Then the trap handler can back up the 
  47. instruction stream until it finds the instruction which wrote to the
  48. faulting register.  This gives precise interupts, but still allows some
  49. scheduling.
  50.  
  51. Cliff
  52. cliffc@cs.rice.edu
  53. --
  54. The Sparc ABI has the most brain-damaged calling convention I've ever seen.
  55. Cliff Click (cliffc@cs.rice.edu)  |  Disclaimer:  My lawyer made me say it.
  56.