FPGA

Jared jared at hatwhite.com
Thu Aug 9 18:15:42 CDT 2007


Wow. I'm excited!

The emerging idea of putting tiny processors onto the memory chips,
and thus creating a micronetwork of decentralized microprocessors
which can be delegated to specialized memory microtasks IS TERNARY
in structure. I have been waiting for this for a long time.
I believe it heralds the beginning of Pattern-based computing
systems, which will eventually mature into full ternary hardware
and software, and carries a whole new way to interact with the
computer, as a learning, teaching, and data processing device.

First things first:

Since we're still on the subject of Field Programmable Gate Arrays,
here is a computer-tinkerists project to consider:

1. All standard ternary logic gates can be emulated by arranging a
subset of binary gates. Therefore, an entirely ternary design is
possible TODAY using an ordinary off-the-shelf FPGA.

2. Among other things, a ternary chip processes Analog-to-Digital
data more efficiently than a binary chip. It becomes significantly
more efficient with each "trit." To start: a lot of toys use 1 bit
D/A converters for sound. A one bit trinary converter has almost
twice the quality of a binary system. Here is more on this idea:

http://www.trinary.cc/Tutorial/Interface/Analog.htm

3. All modern programming languages are essentially binary
in structure, heavily relying on binary branching and counting
loops such as IF and FOR. Programmers are therefore increasingly
thinking in binary thought patterns, as an incremental
social phenomenon. This has long-term consequences on the
way we perceive our own future, as a culture, because programmers
are designing the computer systems which increasingly shape our
interactions with each other.

4. Electricity is itself ternary: A wire conducts in one direction,
or the other, or not at all. This is a ternary switch in its
most simple form. A native ternary chip is more efficient than
binary because all three states of electrical flow are used,
instead of only ON/OFF. It is silly to use binary-only algorithms
on a ternary chip, just as it is difficult to build a ternary chip
out of binary pieces. Both are possible, but waste effort.

5. Artificial intelligence algorithms and some sophisticated
search algorithms often exploit this efficient ternary design,
but none are doing it at the hardware level, AFAIK.

6. Some of the first computers built (in the 1950s and 1960s)
were ternary computers, and worked very well. When silicon
overtook the mechanical switches, designers opted for binary,
and we've been stuck with it ever since.

7. Ternary processing is more like the way your own brain
processes information. That is why AI keeps exploring ternary
algorithms. And I believe THIS is the most important reason to
experiment with this project.

Now for the project: Build a ternary CPU on a FPGA, and
use the inherent affinity for analog processing to perform
some advanced experiments in generating truly random
numbers. I believe it is possible to generate a continual
stream of purely random numbers with a ternary design. There
are some good uses for such a stream, including truly secure
encryption.

The question: WHY NOT DO THIS IN BINARY?

Well, you _can_ but you need to generate entropy with an
analog interface (like moving your mouse around, etc). So I respond: why 
not do it in ternary?

Here is a second justification: Donald Knuth in The Art of
Computer Programming, writes "Balanced ternary notation is
the most beautiful of all." Some calculations which are quite
difficult in binary (&tc), requiring several steps of data
movement, are incredibly elegant in ternary, sometimes
requiring a simple inversion of the "trits."

There is a third justification which goes like this: Because
of the latent necessity of designing algorithms which MUST
branch TRUE or FALSE because this is simply extending the
physical capability of the underlying chip, all programmers
naturally think and consider their options from within a
binary thinking process. This is an artificial and inefficient
extension of our natural ternary mind (which, being electrical,
utilizes all three states of the switch described earlier).

I personally want to demonstrate that a significant number of
difficult processing challenges are more easily managed by a
programmer who "thinks" in the native mode of electrical flow,
instead of thinking in a limited subset of that same flow.

I also want to demonstrate that a PATTERN-based access to
data is a thousandfold more efficient than the TREE-based
access which all binary systems utilize today. Tree-based
access is necessary because binary systems cannot "leap" into
undefined space. Everything must be carefully linked to
what has gone before, in the shape of a tree. Pattern-based
access can utilize the same switches for multiple layers of
information, and can thus "leap" into undefined space without
corrupting what is already there.

This idea is nearly inconceivable from within binary thought
processes, because it appears to be a form of DIVIDE-BY-ZEROing
data into place (What, you mean you want the data to be in a
continual state of crashing my computer?). In fact, it is
much more efficient, because layers and layers of data can
be built up with the same switches, as long as the switches
can be triggered by a time-based pattern event which originates
with a particular "seed" shape. Thus the "tree" still exists,
but moves into a third dimension, not just laterally like
ordinary binary databases and filesystems.

This is the actual reason I want to work on this project. I
think that a whole new way of thinking about computers and the
structure of our own mind is buried in the fact that some of
the first computers ever designed were ternary in structure.

Now, if that did not convince you, here is one of the most
interesting things you have ever seen, in the way of computers.
It is one of the oldest mechanical computers ever built,
and, it was ternary.








More information about the Kclug mailing list