Make LispM code FREE (fwd)

David Gadbois gadbois@cyc.com
Thu, 2 Apr 1998 14:21:36 -0600


   Date: Thu, 02 Apr 1998 11:46:25 -0600
   From: "William A. Barnett-Lewis" <wlewis@mailbag.com>

   Hmm, so would the address space -loss- be too significant if one
   used a 24 bit array for the data and an 8 bit array for the tags?
   It would seem to me to be an acceptable compromise, since then it
   would fit into a 32 bit word. IIRC, the LMI K-machine was designed
   using that compromise.

Eight bits worth of tags is a lot.  Having a tag for some purpose is
justified if you wouldn't otherwise have to read a memory value and if
you need to distinguish how to interpret a value.  Two- or three-bit
tags are "free" (insofar as they do not reduce the maximum addressable
space) on byte-addressed 32-bit machines where the system keeps all
pointers word-aligned, and it is certainly possible to build a good
Lisp system with that few tags.

On the other hand, who is going to be running 4GB processes on a PC?
A reasonable limitation might be 1GB, which would allow for a couple
of extra tag bits.

Don't forget, the Symbolics guys were constrained to write an emulator
for the Ivory instruction set, and so they had to represent the 40-bit
words explicitly.  Without that constraint, the argument for 64-bit
processors is not so strong.

--David Gadbois