Quilted Dies of CPU & RAM
Dave Long
dave.long at bluewin.ch
Wed Nov 15 06:17:09 EST 2006
> Do you know how to implement a local-bitflip (linear, or slightly
> staggered registers) Gray code with the shallowest number of gates?
No. Two places I'd look:
1/ change ringing: since change ringers work in wetware, they seem to
be interested in easily-remembered algorithms and mostly-local changes.
Mapping permutation swaps to bitflips left as an exercise for the
interested reader...
2/ does it have to be a Gray code? One trick (used in a limited form
on the abacus to avoid carry prop) is to keep tallies in a larger space
than you're actually counting in. Counting with a one-to-one
correspondence means that the next representation is forced; counting
with a many-to-one means that there are several choices for the next
representation, yielding the opportunity to use one that is a small
number of changes away from the current value. (at the expense of some
extra gates on the decode side. There Ain't No Such Thing As A Free
Logic)
(Carlo Séquin, in making 3D Hilbert Curve models, has noted that
physical considerations of torque outweigh mathematical considerations
of symmetry. The mechanisms he uses to come up with a hilbert curve
that is well-"tied together" in three dimensions may be suitable for
preserving locality in higher dimensions -- or at least their
opposites, as he's trying to maximize the number of axes of interaction
for various volumes of the curve?)
> This is very old (1994-1996), but you might like
> http://leitl.org/oldcontent/ui22204/.html/txt/8uliw.txt
Interesting -- do you have any idea what you would do differently today?
-Dave
More information about the Kragen-discuss
mailing list