Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!spool.mu.edu!news.nd.edu!mentor.cc.purdue.edu!pop.stat.purdue.edu!hrubin From: hrubin@pop.stat.purdue.edu (Herman Rubin) Newsgroups: comp.arch Subject: Re: Frequency of elementary functions (and other things) Message-ID: <12505@mentor.cc.purdue.edu> Date: 19 May 91 12:58:30 GMT Article-I.D.: mentor.12505 References: <9105171235.AA20139@ucbvax.Berkeley.EDU> <104811@sgi.sgi.com> <1991May19.080051.29716@lth.se> Sender: news@mentor.cc.purdue.edu Lines: 61 In article <1991May19.080051.29716@lth.se>, bengtl@maths.lth.se (Bengt Larsson) writes: > In article <12488@mentor.cc.purdue.edu> hrubin@pop.stat.purdue.edu (Herman Rubin) writes: > > > >The original thread, even cited, was the communication between integer and > >floating units. Even such simple things as multiplication by variable > >integers are very likely as common as exponentiation. > > Give some qualified reason for it being likely common. Other than having personally used it quite a bit, I cannot give you examples immediately. And again we have the "chicken and the egg" phenomenon; those who understand the weaknesses of the hardware will try to avoid running into the problems. The use of the index of a do loop for floating point operations internally is not unusual. Also, how would you know if it is being used? On some machines, converting an integer to floating is done by a normalized addition of 0. On the CRAYs, there is a very odd instruction used for the purpose, but the instruction may be used once for converting many integers to floating. It COULD be detected, but not that easily. > >Another situation > >is Boolean operations on both fixed-point and floating numbers; fixed point > >is not restricted to integers. > > In what algorithms? Many function programs use table lookup. This requires extracting the relevant bits from the floating point number, and frequently obtaining the difference. Consider the sheer number of operations required on hardware without the communications capabilities. Pipelining can reduce the effect of operation time, but not of number of sequential instructions required to do a simple task. Fixed point arithmetic is little used now because the hardware to support it reasonably well does not exist. It is worse than the floating problems before hardware floating arithmetic, especially if floating is automatically normalized. THAT feature of "modern" architectures is, in my opinion, a sheer horror. In the early FP computers, much function calculation was done in fixed point, to get increased accuracy at little cost. > >Also, the availability of hardware operations > >leads to their increased use; on a machine with no communication between the > >units, a knowledgeable programmer would avoid the need by using some other > >algorithm, for example. > > Apparently not, if the analysis of various (old) CISC machines count. > There were many operations which were very seldom used, even though > they existed. How do you expect users who do not even know of the existence of the operations to use them? There are many more algorithms than are in the philosophy of software, and especially hardware, designers. -- Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399 Phone: (317)494-6054 hrubin@l.cc.purdue.edu (Internet, bitnet) {purdue,pur-ee}!l.cc!hrubin(UUCP)