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

  1. Newsgroups: comp.arch
  2. Path: sparky!uunet!email!mips.complang.tuwien.ac.at!anton
  3. From: anton@mips.complang.tuwien.ac.at (Anton Martin Ertl)
  4. Subject: Re: trapping speculative ops (LONG)
  5. Message-ID: <1992Sep10.080446.16268@email.tuwien.ac.at>
  6. Sender: news@email.tuwien.ac.at
  7. Nntp-Posting-Host: mips.complang.tuwien.ac.at
  8. Organization: Institut fuer Computersprachen, Technische Universitaet Wien
  9. References: <1992Aug31.224611.5196@odin.diku.dk> <1992Sep1.143155.636@bcars64a.bnr.ca> <1992Sep9.121701.13208@odin.diku.dk>
  10. Date: Thu, 10 Sep 1992 08:04:46 GMT
  11. Lines: 28
  12.  
  13. In article <1992Sep9.121701.13208@odin.diku.dk>, thorinn@diku.dk (Lars Henrik Mathiesen) writes:
  14. |> One would hope so. As a reality check, I looked at the 21064 data
  15. |> sheet (it was handy). As far as I can see, destination conflicts do
  16. |> stall the pipeline on that chip. Of course, currently, compilers have
  17. |> no reason to write the same register twice without intervening reads,
  18. |> so chip designers have no reason to build a preemption mechanism.
  19.  
  20. This is true in straight-line code, but generally a write to a
  21. register is only redundant if *all* possible execution paths that
  22. execute it write to the register another time before reading it.
  23.  
  24. |> I agree with the point raised by Anton Ertl, that trap bits on source
  25. |> operands should not unconditionally cause a trap, but should propagate
  26. |> to the result instead, because this allows the compiler to move a
  27. |> greater part of an expression.
  28.  
  29. This is an interesting idea, but how do we know which instruction
  30. caused the exception? Our solution is somewhat different. We check the
  31. trap bit of the original trap-noting instruction. This means of course
  32. that the compiler has to keep the trap bit alive, which restricts
  33. register allocation, if the trap bit is associated with the
  34. destination register. We did not discuss subroutines and interrupts,
  35. but most solutions discussed here would be applicable.
  36.  
  37. - anton
  38. -- 
  39. M. Anton Ertl                    Some things have to be seen to be believed
  40. anton@mips.complang.tuwien.ac.at Most things have to be believed to be seen
  41.