Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!spool.mu.edu!sgiblab!sgigate.sgi.com!enews.sgi.com!wdl1!ds!ds.camb-lads.loral.com!jmcclain
From: jmcclain@photoplod.lads-camb.loral.com (John W.F. McClain)
Subject: LispM refs
Message-ID: <JMCCLAIN.94Sep26084046@photoplod.lads-camb.loral.com>
Sender: news@camb-labs.loral.com
Organization: Loral Advanced Distributed Simulation
Date: Mon, 26 Sep 1994 12:40:46 GMT
Lines: 223


A week or two ago someone maid a request for LispM refs.  Here is a
summary of what another request turned up.  Maybe this should go in
the FAQ?
================================================================

From: bosullvn@maths.tcd.ie (Bryan O'Sullivan)
Newsgroups: comp.arch,comp.lang.lisp
Subject: Summary of responses: Lisp Machine architecture and other h/w support

About a fortnight ago, I posted a request for information on the
architecture of the Lisp Machine, and any other hardware support for
Lisp that people might be aware of.  This posting consists of a
summary of the responses I received.  I'd like to thank the following
people for responding:

  Martin Cracauer  <cracauer@wavehh.hanse.de>
  Jeff Francis     <prufrock!jeff@relay.eunet.ch>
  Carl L. Gay      <cgay@skinner.cs.uoregon.edu>
  Guy Harris       <guy@auspex.com>
  Simon Leinen     <simon@lia.di.epfl.ch>
  John McClain     <pdp8@ai.mit.edu>
  Ralf Moeller     <moeller@informatik.uni-hamburg.de>
  thi              <ttn@eclu.psu.edu>

I found the article by Greenblatt et al. in "Interactive Programming
Environments" (see the bibliography below) to be quite a good overview
of the original MIT Lisp Machine.  Some other entries below also give
details of the Symbolics and Texas Instruments Lisp Machine efforts,
but I have not been able to find copies to read.

As far as support for Lisp in modern hardware architectures goes,
there is precious little to be found, since modern unspecialised RISC
machines are "fast enough", depending on your point of view.  More or
less alone among mainstream processors, the SPARC provides two
potentially useful features:

- Tagged arithmetic add and subtract instructions.  These instructions
  are called:
      TADDcc   (tagged add and modify icc)
      TSUBcc   (tagged subtract and modify icc)
      TADDccTV (tagged add and modify icc and trap on overflow)
      TSUBccTV (tagged subtract and modify icc and trap on overflow)
  These are used for adding and subtracting 30-bit fixnums, and check
  the operand types.  The trapping variants cause a TAG_OVERFLOW trap
  to occur on overflow.  These instructions are produced by (at least)
  the Carnegie Mellon and Lucid implementations of Common Lisp; CMU CL
  most often uses these instructions purely to do type checking.
  
- Register windows.  These are conceptually a Good Thing for a
  call-intensive dynamically-linked language.  However, since managing
  the register window pointer is privileged and register window
  overflows are handled in software (via a kernel trap) in versions of
  the SPARC architecture prior to V9, and are expensive as a result,
  they seem to be something of a loss.  However, SPARC V9 speeds
  register window overflow handling up considerably (by about an order
  of magnitude, I think).

Note that in a comparison between SPARC and MIPS implementations of
CMU CL, the SPARC's win in providing tagged arithmetic instructions
was more or less negated by MIPS' provision of a branch-on-equal
instruction.

Here is a brief BiBTeX bibliography, put together from the responses I
received.

@article{white:86,
  author = "John L. White and S. Kaplan",
  title = "Implementing Lisp on Standard Hardware",
  journal = "Sun Technology",
  number = 5,
  pages = "63--69"
}

@incollection{Greenblatt:84,
  AUTHOR = {R. D. Greenblatt and T. F. Knight and J. Holloway and D.
    A. Moon and D. L. Weinreb},
  TITLE = {The LISP Machine},
  YEAR = 1984,
  BOOKTITLE = {Interactive Programming Environments},
  EDITOR = {D. R. Barstow and H. E. Shrobe and E. Sandewall},
  PUBLISHER = {McGraw-Hill},
  ADDRESS = {New York},
  PAGES = {326-352},
  KEYWORDS = {}}

@Article{Steenkiste:87,
  author =       "P. Steenkiste and J. Hennessy",
  title =        "Tags and Type Checking in {LISP}: Hardware and
                 Software Approaches",
  journal =      "ACM SIGARCH, Journal Computer Architecture News",
  volume =       "15",
  number =       "5",
  pages =        "50--59",
  keywords =     "LISP",
  month =        oct,
  year =         "1987",
}

@article{moon:symbolics-architecture,
  AUTHOR = {David A. Moon},
  TITLE = {Symbolics Architecture},
  YEAR = {1987},
  JOURNAL = {IEEE Computer},
  PAGES = {43--52}}

@TechReport{Zippel84?,
  author =       "R. Zippel",
  title =        "{LISP} Machines: Texas Instruments and Symbolics",
  institution =  MITAI,
  address =      MITad,
  type =         "Report",
  keywords =     "LISP",
  year =         "1984?",
}

@TechReport{TI84,
  author =       "Texas Instruments",
  title =        "Explorer Technical Summary",
  institution =  "Texas Instruments TI",
  address =      "Austin, Texas",
  type =         "Report",
  keywords =     "LISP",
  year =         "1984",
}

@inproceedings{
  author = {Patrick H. Dussud},
  title = {{TICLOS}: An Implementation of {CLOS} for the {Explorer}
Family},
  organization = "OOPSLA-89",
  year = "1989",
  pages = {215--219}}

@BOOK{kn:kogge,
        AUTHOR  = "Kogge, Peter M.",
        TITLE   = "The Architecture of Symbolic Computers",
        PUBLISHER = {McGraw-Hill},
        YEAR    = 1991,
        SERIES  = "McGraw-Hill Series in Supercomputing and Parallel
                         Processing",
        ADDRESS = {New York},
        ISBN    = "0-07-035596-7",
        LOCCALL = "QA76.9.A73.K64 1991",
        MITCALL = "QA76.9.A73.K64 1991",
        KEYWORDS = "Computer Architecture,
                    Electronic digital computers -- Design and construction" }

@MANUAL{kn:3600tsum,
        TITLE   = "3600 Technical Summary",
        AUTHOR  = "Roads, Curtis B.",
        ORGANIZATION = "Symbolics, Inc.",
        ADDRESS = "Cambridge, MA",
        MONTH   = "February",
        YEAR    = 1983}

Bryan O'Sullivan                         email: bos@scrg.cs.tcd.ie
Student Computing Research Group                Life is uncertain.
Department of Computer Science                  Eat dessert first.
Trinity College, Dublin 2, Ireland                   -- Jim Blandy

===================================================================

Here are some other refs I have 

			-John McClain


A good article on the Symbolics 3600, should not be to hard to find.

@ARTICLE{kn:moon3600,
	AUTHOR 	= "Moon, David A.",
	TITLE  	= "{Symbolics Architecture}",
	JOURNAL = "IEEE Computer",
	YEAR 	= 1987,
	MONTH   = "January",
	PAGES	= "43--52",}

SPUR was one of the last LispM efforts.  Unlike most other LispMs it
was a RISC machine.  There are also a lot of Stanford Univ. Dept. of
Computer Science Tech. Reports on various aspects of SPUR.

@INPROCEEDINGS{kn:SPUR13th,
	AUTHOR 	= "Taylor, George S. and Hilfinger, Paul N. and 
		   Larus, James R. and Patterson, David A. and
		   Zorn, Benjamin G.",
	TITLE  	= "Evaluation of the SPUR Lisp Architecture",
	BOOKTITLE = "Proceedings 13th International Symposium on Computer
		     Architecture",
	YEAR 	= 1986,
	PAGES   = "444--452",
	PUBLISHER = "IEEE Computer Society Press",
	ADDRESS = "1730 Massachusetts Avenue, N.W. Washington DC 20036-1903",
	ISBN 	= "0-8186-0719-X",
	MITCALL = "TK7885.A1.S9886 1986"}

The Dorado did Lisp as well as Smalltalk.

@TECHREPORT{kn:DORADO,
	AUTHOR 	= "Kenneth A. Pier",
	TITLE  	= "A Retrospective on the Dorado, A High-Performance Personal
		   Computer",
	INSTITUTION = "Xerox Corporation Palo Alto Research Center",
	YEAR 	= "1983",
	NUMBER	= "ISL-83-1",
	ADDRESS = "3333 Coyote Hill Road, Palo Alto, California 94304",
	MONTH   = "August",
	KEYWORDS = "architecture, processor, memory, cache, instruction fetch,
		    emulation, input/output, microprogram, pipeline, 
		    retrospective" }





--

I am solely responsible for contents of this message.  It does not
necessarily reflect the opinions of Loral or its customers.

John W.F. McClain		    Loral Advanced Distributed Simulation
jmcclain@camb-lads.loral.com        50 Moulton Street
work (617) 441-2062       	    Cambridge, MA 02139
