base 3 computer issues?
Bits
Posts: 414
I keep having a dream and in this dream I make a 3 base computer. This something I need to explore so here goes...
Logic gates in base 3 sounds easy enough.
Do they make a base 3 computer? Ill Google it while you read this.
Would the speeds be impressive or what and matrix coding so fun.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3base computer digital birth record begins now...
Logic gates in base 3 sounds easy enough.
Do they make a base 3 computer? Ill Google it while you read this.
Would the speeds be impressive or what and matrix coding so fun.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3base computer digital birth record begins now...
Comments
Not at the CPU level, but most uC pins can be considered to be 'Base-3' like, with H.L.Z easily covered.
Some flash memories also have Multi-bit cells, some do this by flipping the fet, and reading a charge bubble at opposite ends of along gate line, and some vary the charge, and use a Flash ADC readout.
As you can guess, none of this gymnastics favours raw speed, and is done to pack more into a finite space, so suits memories more than a CPU.
There was a single-bit CPU once, (with 16 opcodes), but the next step tended to be to 4 bits, then 8, etc.
There are certainly legitimate reasons other than efficiency to consider it. For example, each trit can represent "yes", "no", or "don't care" (i.e. 0, 1, and *).
-Phil
Wikipedia: http://en.wikipedia.org/wiki/Ternary_computer
Via that article, the only practical ternary computer ever built was Setun at Moscow State University. Apparently the Russians have traditionally had a bit of interest in base 3 computers.
So what you are saying is that the base 3 computer would become more like a woman? Yes, no and maybe...Just kidding.
Kwinn,
I was thinking about a computer that was +5,0,-5 volts for a prototype, but better than that would be a construct a quantum computer as in 0,1 and both at the same time = Qbits!
I think that would be yes, no, and FINE!
To Heater's female computer...the input might be wrong but the output would always be correct!
Male computers would be YES, NO and YES, DEAR when viewed internally or YOU'RE NOT LISTENING when viewed externally.
On a binary 5V computer, it's easy to define "1" as "2.5V or more", and "0" as "below 1.4V" and everything in between as 'illegal'...
It's generally 'easy' to drive the signal to the correct voltage because the 'target' is so 'broad'.
On a Ternary computer, you'd need to define a third area in the middle, probably with 'illegal' areas too.
And then design electronics that manages to drive the output of a pin to the middle voltage and keep it stable, fast.
There's also the input pins to consider. They also need to have a finer resolution, probably using somesort of comparator network. Messy. And it adds delays in the signal path.
Internally you have the option of using Ternary levels, or double up the internal traces and use two traces for each logic path. (00 = 0 01=1 10=2)
Going for ternary will be slower. Going for a conversion back and forth may be faster but eats die area.
I believe some even tried a decimal machine once, but can't remember specifics.
On a similar note, BCD computers are used in finance where binary (or other non-base-10 representations) are inappropriate for the numbers used.
A long time ago Intel released a analog Neural net chip never got traction, way before it's time like Fuzzy logic. Both could be replicated in FPGA's today.
Well, the balanced design remove alot of the uncertainities about voltagelevels,but...
It would mean a much more elaborate power supply, and I guess it would make the chip innards a bitweird, too.
BCD systems are EVIL!
(It's a misconception that the 'D' stands for 'Decimal'. In reality, BCD means 'Binary Coded Destruction' as the whole point is to destroy the understandng of Binary math.)
Ternary would require more complex gates, but not necessarily as complex as comparators. NPN/PNP transistors could be used in a form of emitter coupled logic to provide gates with ternary inputs and outputs. The emitter-base voltage of the transistors would provide the natural voltage limits. Same idea would work for fets if diodes were used between logic gates.
Some of the early microcontroller chips had BCD oriented instructions. I think the 8080/Z80 and 6800 did, but I am not sure. Never had any use for BCD or EBCDIC.
@SLRM
Some BCD computers were used in finance at one time but if there are any in use now they are very rare exceptions. Most financial calculations are done in fixed point integer on PC's or mainframes. Not sure how spreadsheets handle them but I suspect if the cells are formatted as currency they are also using fixed point integer.
@Bits
I can see how ternary gates could be built using available parts so it would be possible to build or simulate a ternary computer . What would the truth table look like for the basic AND, OR, XOR, and NOT gates ?
Base 3 = R G B
The terminology for the base 3 optical computer will need to be created, you wanna take that one, bits?, being you have the dreams and all.
Its all about the bits.
But I was wondering - there are encoding schemes where 3 values of equal status are possible (3 wires per signal, obviously) and I thought of using phase of a carrier as the logic level. With 0, 120 and 240 degree phases it is possible to switch between any two without crossing the third (so long as you shift the phase in the right direction). With such a scheme a delay element can be a gate (rotating the 3 values)!
It all sounds a bit fanciful and arcane till you realize this can work in the optical domain with lasers!
You could use 2 bits of data and 2 signal wires to encode 3 states. Of course that could have 4 states so one state would have to be considered illegal. This is probably the simplest way to build ternary systems with current technology, but the technology is not really well suited to true ternary systems. Perhaps when optical computing becomes a reality ternary computing will be more practical. At present it seems to be a bit like fitting a square peg in a round hole.
Funny that you mention discrete components. That or emulation is what I was thinking of suggesting to Bits if she decided to pursue ternary computing. The first computer I worked on (Collins 8400) was built using discrete components on boards approximately 4 x 4 inches. It required 3 or more boards for each bit of a register so the computer required a lot of space and power.With today's smd components both size and power requirements would be much smaller.
I met a guy that was doing research on this in the late eighties. I haven't seen him since, but he should be done by now
Bits is building this by hand, I guess we'll all have to build our own.
If bits can set up the logic gates, and we can set up the communications using phased carrier, what other functions need to be implemented?
Do we have to use lasers? It think it could be simpler to implement a proof of concept with electronic signals, before getting fancy.
Perhaps 3-way current-steering logic would be appropriate - think of ECL as 2-way current-steering, so its a generalization using 3 wires for each signal.
And what kind of gates are useful anyway? Obviously you'd want to build add/sub/compare but would you treat the 3 values as true/false/unknown for conditionals? Or false/true/true?
/1 = 0
/* = *
0 & * = 0
1 & * = 1
0 | * = 0
1 | * = 1
We already use three-state logic to some extent, where * could represent a floating state. In that case, the rules might be different, where a * input on AND when the other input is 1 entails either a * output or a randomly value.
Still another interpretation is to treat * as 0.5 and use fuzzy-logic rules for the combinators, rounding the outputs to the nearest 0, 0.5, or 1.
-Phil