Tag Bits vs. Spaces

Mark J. Dulcey mdulcey@host2-86.caiwireless.net
Thu, 21 May 1998 14:27:35 -0400 (EDT)


On Thu, 21 May 1998, David Gadbois wrote:

> I don't think it would be worthwhile to have a special parallel type
> extractor.  After all, a trip out to memory is a trip out to memory,
> If there is to be an extra load pipe, it would be better to make it
> generally available rather than restrict it to a special use.

If you're doing a real LispM-type design, where there are no type
declarations (and the mindset is that Type Declarations are Considered
Harmful) and all operations are potentially polymorphic, I think that
a special load pipe (and even a special IU just for the type checking)
would be justified; after all, you would be doing one of these type checks
with EVERY memory reference, so it wouldn't go to waste. And if you used a
BiBoP design, you might even want to store the tags in a special on-chip
cache.

However, since it doesn't seem likely that anybody will be producing
Lisp-specific silicon anytime soon, the point is moot. The question is how
to best do things on conventional processors. And even L2 cache accesses
are expensive these days; the off-chip buses just don't have enough
bandwidth. Even in the extreme case of on-module L2 caches like the
Pentium II, the cache runs at half the speed of the processor or less.

> BTW, a book that has lots of good information about Lisp
> implementation is "Topics in Advanced Language Implementation", Peter
> Lee, ed., MIT Press 1991, ISBN: 0262121514).  In particular, it has a
> paper that pretty much nails the tag bit issues to the floor.

I'll have to look for that. Around here, it should be easy to find; after
all, the MIT Press Bookstore is just across the river.


Mark J. Dulcey               mdulcey@bospo.caiwireless.net
Visit my home page:          http://www.ziplink.net/~mark/
Visit my house's home page:  http://www.ziplink.net/~mark/buttery/