Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!purdue!mentor.cc.purdue.edu!l.cc.purdue.edu!cik From: cik@l.cc.purdue.edu (Herman Rubin) Newsgroups: comp.arch Subject: Re: Compiler Costs Summary: Nondeterminism is unavoidable, and in many cases should not be avoided even if possible. Message-ID: <2323@l.cc.purdue.edu> Date: 8 Jul 90 12:48:05 GMT References: <1797@apctrc.UUCP> <3300143@m.cs.uiuc.edu> Organization: Purdue University Statistics Department Lines: 37 In article <3300143@m.cs.uiuc.edu>, gillies@m.cs.uiuc.edu writes: > > It can be hard to find a speedup on CISC machines, since cacheing, > alignment, scoreboarding, and even paging effects may be hard to > predict. For instance, the Motorola 68020 Manual admits that you can > only hand-wave guesses at the execution time of an instruction stream > -- this forces the dedicated tuner to run hoardes of benchmarks. > > This is my greatest complaint about CISC architecture -- from an > optimization standpoint, I sneer religiously at nondeterministic > low-level hardware hacks in high-performance computer design (I don't > even like caches, scoreboards, or paging -- they're just fads). So the fact that a multiplication takes a variable length of time depending on the numbers is a flaw in the machine? I do not think so. There are even cleaer examples. I have algorithms for which a tool operation is finding the spacing between the 1's in a random bit stream. Of course this is non-deterministic. Also, it is even necessary to have planned exceptions, which in some cases are rather likely. There are certainly situations where a non-optimized CISC machine will beat an optimized RISC machine with the same basic components. I have argued for some operations on machines which are deterministic, even, but which will have hardware switches of essentially no cost, and would have conditional transfers in RISC, or even in current CISC. > Maybe it's because I think all future computers should run real-time > operating systems, and because I do research in real-time system > scheduling and optimization, that I hold these views. There are many situations which can not be done in real time. Also, the operating system should be a very minor part of the software, and do only what an operating system, and not user modules, must. -- Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907 Phone: (317)494-6054 hrubin@l.cc.purdue.edu (Internet, bitnet) {purdue,pur-ee}!l.cc!cik(UUCP)