[comp.arch] RISC v. CISC --more misconcepti

aglew@urbsdc.Urbana.Gould.COM (11/02/88)

>There are many other operations which are cheap in hardware and expensive in
>software.  Maybe we should have a "competition" to see how many operations
>we can come up with for which silicon can do a quick, efficient, accurate job,
>but which are clumsy and expensive in software.
>
>I will toss in a few for starters.
>
>	Find the distance to the next one in a bit stream FAST.  It would
>be good to have an exception handler if one is not found.  I am considering
>algorithms not worth implementing if the operation is slow.
>
>Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907
>Phone: (317)494-6054
>hrubin@l.cc.purdue.edu (Internet, bitnet, UUCP)

Out of curiousity, would you care to explain exactly what you use the bit spacing
primitives for? I can guess, based on conversations with users and signal
processing experience, but I'd like an exact understanding.

Ditto the POP, bit population, count the number of set bits in a word,
operation.

aglew@urbsdc.Urbana.Gould.COM (11/06/88)

>/* Written 10:45 pm  Nov  2, 1988 by ok@quintus.uucp in urbsdc:comp.arch */
>...a generation of programmers has been brainwashed that Hardware Rules,
>and if some potentially useful operation is expensive it is their job
>to avoid it rather than have the hardware and compiler people get it
>right.  People are still avoiding procedure calls (and RISC designers
>are assuming that procedure calls are not deeply nested) because old
>designs made procedure calls expensive.
>
>...
>
>The bottom line is that architectures should _support_ the operations
>programmers find useful, but that some architects have shown that good
>enough support can be had by doing part of an operation in hardware,
>part in software.  Too bad about Whizzbang.
>/* End of text from urbsdc:comp.arch */

Bravo! I'm not sure about the frequency of use of multiply/divide, but
I heartily agree about procedure calls, and with the overall sentiment
that programmers should do what is best from the viewpoint of 
algorithmic efficiency, etc., and hardware should seek to support that.

Procedure calls are one of the few good ideas that Computer Science has
had. Building machines that are going to encourage people not to nest their
procedures deeply is criminal, if those machines are likely to be used
in SDI.

At Gould, we were always finding places where Berkeley and AT&T code
written for the VAX went to ridiculous lengths to avoid floating point
and integer multiply/divide. For instance, we had poor buffer cache behaviour,
using the %(2^n) algorithm.