How efficient is the process mechanism in Poplog? The old
state-saving mechanism that Ray Dunn did c. 1970 would call the
storage allocator for space to hold a record of the current
computation, which would certainly turn over store quite
a bit. My reading of ref process leads me to believe that
a process is a (presumably expansible) data-structure holding
stack and locals that is not itself de-allocated when a process is
activated (though it may be cleared, to stop the garbage-collector
"seeing" effectively dead pointers).
This is quite important for a simulator for Scenix chips I
am writing. If a simulation of a particular chip has to be
stopped (because an I/O access requires the rest of the
world to catch up) should I repack a lot of local variables
of the simulator into the chip data-structure, or would it
be more efficient to give the chip a process in which it
runs, so that the local variables (which shadow the components
of the chip data-structure) are bundled into the process.
Robin.
|