Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!zaphod.mps.ohio-state.edu!swrinde!ucsd!ucbvax!galileo.berkeley.edu!jbuck From: jbuck@galileo.berkeley.edu (Joe Buck) Newsgroups: comp.arch Subject: Re: Smart I-cache? Message-ID: <39324@ucbvax.BERKELEY.EDU> Date: 1 Nov 90 22:08:37 GMT References: <2823@crdos1.crd.ge.COM> <1157@cameron.egr.duke.edu> Sender: usenet@ucbvax.BERKELEY.EDU Reply-To: jbuck@galileo.berkeley.edu (Joe Buck) Lines: 27 In article <1157@cameron.egr.duke.edu>, rfk@egr.duke.edu (Robert F. Krick) writes: |> Since the program flow information is extracted prior to execution, SPA |> cannot *improve* the performance for branches which have dynamically |> defined targets (i.e. jmp r2). With the notable exception of subroutine |> returns which SPA can handle without any loss in performance, the degradation |> associated with this class of branch instructions is insignificant ( << 1%), |> because these instructions are sufficiently rare in compiled code from |> languages such as FORTRAN and C. Object-oriented languages are becoming more popular; there are many more indirect branches (in C++, these are virtual function calls) in such languages. However, I have no statistics on what fraction of instructions in such programs are indirect branches, and this may vary widely from program to program. You'd do very poorly on Forth code, but I doubt that you care all that much. :-) > We have developed a working `proof of concept' prototype. In addition, > we have applied for patent protection in both the USA and Japan. Have you gotten it to the point where you can run the SPECmarks on it (meaning that you've finished Fortran and C compilers that can provide the scheduling information)? -- Joe Buck jbuck@galileo.berkeley.edu {uunet,ucbvax}!galileo.berkeley.edu!jbuck