Make LispM code FREE (fwd)
Thu, 2 Apr 1998 14:21:36 -0600
Date: Thu, 02 Apr 1998 11:46:25 -0600
From: "William A. Barnett-Lewis" <email@example.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.