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

  1. Path: sparky!uunet!olivea!decwrl!deccrl!news.crl.dec.com!rdg.dec.com!ryn.mro4.dec.com!ricks.enet.dec.com!akhiani
  2. From: akhiani@ricks.enet.dec.com (Homayoon Akhiani)
  3. Newsgroups: comp.arch
  4. Subject: Re: trapping speculative ops
  5. Message-ID: <1992Aug26.153528.7699@ryn.mro4.dec.com>
  6. Date: 26 Aug 92 15:35:28 GMT
  7. References: <l8gi9jINNaad@exodus.Eng.Sun.COM> <1992Aug12.155317.27437@bcars64a.bnr.ca> <l8j0qkINNikb@exodus.Eng.Sun.COM> <BtEzrK.Jso.2@cs.cmu.edu>
  8. Sender: news@ryn.mro4.dec.com (USENET News System)
  9. Reply-To: akhiani@ricks.enet.dec.com (Homayoon Akhiani)
  10. Organization: Digital Equipment Corporation
  11. Lines: 66
  12.  
  13.  
  14.  
  15. In article <BtEzrK.Jso.2@cs.cmu.edu>, lindsay+@cs.cmu.edu (Donald Lindsay) writes:
  16. |>From: lindsay+@cs.cmu.edu (Donald Lindsay)
  17. |>Newsgroups: comp.arch
  18. |>Subject: Re: trapping speculative ops
  19. |>
  20. ...........................
  21. |>
  22. |>But this is just a specific optimization. The broader question is,
  23. |>waht about traps while executing speculatively? There seem to be two
  24. |>answers:
  25. |>
  26. |>1) Let the hardware do all the speculative execution. This puts it on
  27. |>the hardware's head to not trap until it knows it really should have.
  28. |>
  29. |>2) Allow compiled code a way to postpone consequences until it
  30. |>wants to know. This covers e.g.
  31. |>
  32. |>    if( b != 0 ) c = a/b;
  33. |>
  34. |>and an assortment of other cases.
  35. |>
  36. |>The problem with (1) is that it makes for complex hardware. The
  37. |>problem with (2) is that instruction sets are generally not set
  38. |>up to allow such leeway.
  39. |>-- 
  40. |>Don        D.C.Lindsay     Carnegie Mellon Computer Science
  41. |>
  42.  
  43. I believe that there is a 3rd option:
  44.  3) Hardware has Trap Status and Control register
  45.     Using the control resgister, Software will disable all traps.
  46.     So when a exception rises, the hardware will not trap, it will update the
  47.     "Status Register" and follows the normal execution path.
  48.  
  49.     At a point that Software decided to use the result of the "Speculative"
  50.     flow, Software will read the "Status Register" and if the Status for 
  51.     the chosing flow had no trap in it, the bingo! 
  52.  
  53.     example:
  54.     
  55.         if(z)      c = a/b;  
  56.     else       c = a/d;    
  57.     (Note that since traps are disabled there is no need for if(b!=0))
  58.     
  59.     Can be executed as follow:
  60.     
  61.     tmp1 = a/b
  62.     tmp2 = a/d
  63.     if(z) {Check status on tmp1, if nothing bad then c = tmp1; 
  64.     else  {Check status on tmp2, if nothing bad then c = tmp2;      
  65.  
  66.     If we have 2 divider units, we can start both division at the same time.
  67.     Therefore, if z==1 then we simply ignore the result and traps on a/d 
  68.     calcaulation.
  69.  
  70.  
  71.  
  72. --
  73. -------------------------------------------------------------------------------
  74. Homayoon Akhiani                               "Turning Ideas into ... Reality"
  75. Digital Equipment Corporation                       
  76. 77 Reed Rd. Hudson, MA 01701            "All Rights Reserved. Copyright(c)1992"
  77. Email: akhiani@ricks.enet.dec.com     "The words are mine, and not my employer"
  78. -------------------------------------------------------------------------------
  79.