Genera

reti@wilson.ai.mit.edu reti@wilson.ai.mit.edu
Fri, 3 Apr 1998 09:48 -0500


    Date: Fri, 3 Apr 1998 09:26 EST
    From: Chris Bitmead <chrisb@Ans.Com.Au>

    > It is an application under Unix.  There was talk of extending it to
    > taking over the whole machine, but that has (so far) never been done.
    > 
    > Genera, on which it is based, is an entire operating system which runs
    > on (among others) the Ivory chip architecture which Open Genera's emulator
    > emulates.

    To what extent is the Ivory chip specialized for running Lisp?
    What features does it have that make running Lisp fast?

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.

The tags are not only used to identify datatypes, but also for internal purposes,
i.e. the copying garbage collector has GC-FORWARD tags to serve as a placeholder
for an object whose contents have been moved but for which there might still be
references in virtual memory using the old addresses.

CDR-coding, headers for compound structures, locatives, logic-variables, and even
the instruction stream all use tag bits, and hence the tag checking hardware that
is on the chip.

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.

    -- 
    Chris Bitmead
    http://www.ans.com.au/~chrisb
    mailto:chrisb@ans.com.au