Genera
P. T. Withington
ptw@pobox.com
Fri, 3 Apr 1998 12:27:50 -0500
On 4/3/98 10:31, Chris Bitmead wrote:
>> Most importantly, it carries the 8-bits of tag through the entire datapath
>and
>> memory interface. The microengine can do tag comparison and dispatch in
>parallel
>> with an operation, so for example an add instruction can assume that the
>operands
>> are both fixnums and start doing the addition at the same time that the tag
>> comparison hardware is comparing the tags. If there is a mismatch, that
>microcycle
>> causes the result not to be stored and a trap to be taken.
>
>I heard the Sparc architecture has some support for tagged
>designs. Is it comparable in that respect or not?
The SPARC only supports 2-bit tags and does so by stealing from the
32-bit word. In tagged mode, you only get 30-bit integers. The LispM
supports 8-bit tags and full 32-bit integers.
>> The chip also has hardware support for ephemeral garbage collection, an
>interface
>> to a co-processor, a way to do efficient burst mode transfers on the memory
>bus,
>> and a special limited mode (FEP mode) for running some much more stylized
>Lisp
>> code the load the virtual image, etc.
>
>How much of the GC is coded in hardware?
The hardware support for GC on the LispM consists of word-granularity
read barriers, page-granularity remembered sets, and invisible forwarding
pointers. The collector itself is all software.
The Open Genera emulator uses techniques similar to:
Title: Real-time Concurrent Collection on Stock Multiprocessors
Authors: Andrew Appel; John R. Ellis; Kai Li
Publisher:
Pub. Date: 07/88
Ident: ACM PLDI 88, SIGPLAN Notices 23, 7 (July 88), pp. 11-20