[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lisp machines vs. lisp on other boxes

    Date: Sat, 23 May 87 10:13 EDT
    From: Chris Lindblad <CJL@REAGAN.AI.MIT.EDU>

	Date: 22 May 87 13:37:38 PDT (Fri)
	From: spar!malcolm@decwrl.DEC.COM

		I have a hard time believing that a standard architecture machine will 
		be able to simultaneously provide the speed and environment that a lisp
		machine does. 
	This is precisely the RISC vs CISC issue.  Personally I would very much like
	to see the good parts of the Symbolics programming environment running on
	something like Sun's new RISC chip.  

    So would I, but I'm not holding my breath. Building a lisp system from scratch
    takes time...

Everything CJL says is exactly right.  I'd like to add some other points.

Regarding speed: I don't think the "RISC vs CISC issue" has much to do
with anything.  "RISC" is a funny term, as you can see if you read
Computer Architecture News: nobody can agree what it means.  It actually
tends to refer to a whole set of architecture ideas, many of which don't
have anything to do with each other.  For example, much of the Berkeley
RISC chip's performance is related to their "register window", which has
nothing especially to do with reduction of the instruction set, and it's
a feature that is in every MIT-derived Lisp Machine (CADR, LM-2, 36xx,
Explorer, Lambda).

Having certain hardware that's particuarly useful for Lisp does not, by
itself, spoil any of the performance gains that are claimed by
architectures that claim to be "RISC".  For example, the 3600
tag-checking and EGC hardware are very simple, very small, and don't
slow down the critical paths of the processor at all.  Note that the
Berkeley group themselves are working on something they describe as a
RISC machine specialized for Lisp.

The RISC architectures have some important good ideas, but it's not at
all easy to extract the general principles and apply them.  Most of the
published papers have had rather poor explanations of what's really
going on with the RISC architectures.  You have to study hard and look
behind the scenes to find out how to learn from these experiences.  I
can tell you that the people who designed the architecture of our new
chip spent a lot of time doing just that.

Regarding environment, here are two important points.  First, it's
important architectural support for type checking and array-bounds
checking and so on, so that objects can be shared (i.e. "single address
space") with sufficient firewalling, and sharing of objects is crucial
for a good environment.  Second, aside from the first point, the main
environment issues of Lisp machines have much less to do with the
architecture than the operating system.