I'm of three minds as to whether this is a good thing or not!
To be, or maybe, or not to be! That is the ternary!
I'm sure this would be welcomed by all the non-binary people of this world!
The 5500FP is a ternary CPU implemented on an FPGA. It's not very fast, but it makes it easier to experiment with computers that don't use binary. Independent researcher Claudio Lorenzo La Rosa recently published 5500FP: A 24-Trit Balanced Ternary RISC Processor. The paper is quite technical, but it's only seven pages long. It …
On the one hand, it's slightly more complicated.
On the other hand, for some things, it's more efficient.
https://en.wikipedia.org/wiki/1.58-bit_large_language_model
On the gripping hand, it's interesting and different and fun.
;-)
https://scifi.stackexchange.com/questions/392/what-is-the-origin-of-the-phrase-on-the-gripping-hand
And the 'twist' being that mankind is making the contact, yet the 'aliens' are more advanced than we are (apart from one critical piece of technology).
And with that technology (or without the need for it) then the Moties would have been contacting (and wiping out) mankind several thousand years ago!
.
The other great thing from the Motie books is the introduction of 'Crazy Eddie'!
In traditional computers, BRA is often an assembly code mnemonic for Branch.
In base-3 computers, presumably it would be a container class for a pair* of trinary digits.
* or otherwise if one is to include MiguelC's Total Recall, or Liam's example.
It has occurred to me that modern NAND Flash encodes several different levels in to one cell, these could be the basis of a trit storage system.
As development progresses, you could increase the base of the system by going to Pentary {-2, -1, 0, +1, +2} and then Heptary {-3, -2, -1, 0, +1, +2, +3}.
<one quick search later> Someone appears to be looking in to: Pentary!
I should probably get my coat...
I can't remember any of the proofs, but apparently the most mathematically efficient system would be base-e (ie Euler's number) which is 2.718, so ternary is the closest system we could physically build.
At least, I can't think of a way you could have a number system with a non-integer base, but who knows what mathematicians can imagine.
Ah, that takes me back to labs at ... hmm, where was it ... oh yes, day release at college when I was an apprentice. IIRC every programme I built very quickly ran out of headroom and hit one or other of the supply rails, I don't think I ever got my integrators configured right.
the Turing Machine was a thought experiment involving "tokens" on an infinitely long rolls of paper tape, as I recall.
When you come to implement that in hardware, for at least seventy years that's involved binary signals - a high signal on a pin for one, a low signal for zero (other option is also available).
So there's your challenge: go out and find me a chip - any chip (RAM, CPU, Bus arbiter, clock) that operates on a ternary signal. Hell, I'll even accept a transistor - yes, I realise BJTs can operate as amplifiers within a limited voltage range, but FETs not so much and semi-conduction leads to heat.
the Turing Machine was a thought experiment involving "tokens" on an infinitely long rolls of paper tape, as I recall.
The tape merely has to be long enough, as all computations that halt have a finite number of steps. You can even do the CS theoretical equivalent of paging - if you're about to move off the end of the tape, suspend operation until you've spliced more tape on the end and then resume.
Common way to drive a shared bus. See, as just one example of likely hundreds, the 74373 tri-state latch (PDF).
M.
> When you come to implement that in hardware, for at least seventy years that's involved binary signals
I decided not to go there but I was going to mention the Harwell WITCH.
https://en.wikipedia.org/wiki/Harwell_computer
This, of course, used dekatrons.
https://en.wikipedia.org/wiki/Dekatron
These store a decimal value in each component: it's able to store 0-9, directly.
The Harvard Mark I had rows of decade switches for manual entry of constants, one constant per row, each row having 24 switches. Twenty four decimal digits of precision -- not bad for the 1940s! Operators would manually set the switches before a program run. There's a detail photo in the Wikipedia article on the Mark I.
A ternary computer is not capable of any computation that a binary computer is not. What it might be, with sufficient effort used to develop it, is more efficient, generally meaning faster, on some types of computations. That's essentially what we've been doing for the history of computers. Every instruction set is equally able to implement any program, but some make it easier to do by providing facilities to writers of compilers or assembly and some can run things more quickly.
ABSTRACT
"An alternative basis for development of a completely incompatible digital infrastructure is presented here. This minimizes the potential for leakage of information, particularly malware and other covert content from our existing digital infrastructure. This effort can be described as taking security through obscurity as a fundamental design principle. ..."
The NSA and other such TLAs have likely already been doing research into this area to compromise the supposed security-through-obscurity of these systems, as well as the earlier duodecimal systems.
Interesting question. This doesn't exactly answer the question, but it turned out to be an interesting article from the Annals of the History of Computing from 1984
https://cse.buffalo.edu/~rapaport/Papers/Papers.by.Others/bit.pdf
The only place I've found it explicitly stated that it's Binary DigIT has been Google's AI summary pulling up a couple of Reddit posts by people who are presumably not the great names of information theory.
From a purely theoretical point of view, the most information-dense number base would be "e" (2.78128etc.) --- but a non-integer number base presents some challenges. The integer "3", being closer to "e" than "2", is thereby closer to optimal for information density.
However, circuits that can distinguish between "nothing/0/False" and "saturation/1/True" have been and are cheap and easy. Circuits that can discriminate between "nothing", "saturation", and "midway-between" get more and more difficult as "saturation" gets closer and closer to "nothing". From an electrical point of view, if you can build a device with half a volt of imprecision, and try for 0V and 5V levels, a device that runs at 0.5V and 4.5V is good enough to sell; and it and can be scaled down to perhaps 1.1V total range while still discriminating between 0 and 1. But if you need three values and your circuit is imprecise to half a volt, then you can't go lower than 2V at the absolute minimum.
Over the years the precision of the devices has improved substantially. But rather than re-express everything in ternary logic, designers made the devices smaller/faster/more numerous.
If you store values at 0V, 1V, and 2V, you will also have to switch between 0V and 2V, which cost four times as much as switching between 0V and 1V in the same time frame. Changing one value to another costs 0 for the trits that stay the same (3 cases), 1 for the trits that move one step (0 to 1, 1 to 2, 2 to 1, or 1 to 0, 4 cases) and 4 for the two cases of 0→2 and 2→ 0. This gives an average of 12/9 = 4/3 per trit. For binary, the average is 1/2. Even if you need fewer trits (63%) than bits to represent the same number range, you get higher energy use: 0.63*4/3 = 0.84 versus the 0.5 for binary.
So, unless you can find a technology where switching between any trit value to any other trit value is about the same as switching between bits, you lose on energy. Additionally, circuits for addition etc. are more complex and have higher logic depth, so they are likely to be slower. Just look at the logic table for one-trit addition with carry and compare that to the logic table for one-bit addition with carry.
Ternary may make sense for long-term storage, though, assuming a trit takes no more than 50% more space than a bit. But if the computers use binary, you need to convert when storing and fetching data.
This is the fallacy of assuming independent variables. If in binary one digit needs to be changed the probability that the "next" digit in the calculation increases from 50% to 67% due to carried digits.
Model it fully and the amount of flipping stays essentially constant regardless of the base used.
"Circuits that can discriminate between "nothing", "saturation", and "midway-between" get more and more difficult as "saturation" gets closer and closer to "nothing"
Have you considered polarity? Full negative, nothing and full positive. That shouldn't be too difficult to implement.
Many logic simulators use more than three states:
Verilog based simulators have 4:
Low
High
High impedance
Not yet known (e.g. when propagation delays haven't yet filtered through that gate yet since the start of the simulation, or a device such as a flip-flop or latch could be in either state until it receives a set/reset input)
Some have many more - VHDL based simulators for example, have 9 states. As well as the above, they also have conflict states (a signal is driven by two conflicting outputs) and the idea of forced and weak signals (forced being a typical logic output driven by complimentary transistors, weak being where a pull-up/down resistor is driving an input.
This is true to some extent. But binary computers sit well with Boolean logic, transistors and 2D circuit boards. And we all know courtesy of decades of suffering inflicted upon us by MS that the moment you make something more complicated it becomes less resilient. There will be more examples of that as ever more simple tasks get digitised and fall over.
The two fields that could benefit from non-binary computing/analogue computing are real AI, not the guff currently being hyped, and random number generation, which could depend on the characteristics of charging, discharging and transitioning electronic components.
You can have much more fun with FPGAs, allowing CPUs and software to optimise themselves in tandem.
I'd much rather see a stable (no upgrades for 10 years and it still works), documented, WIMP OS, running on a stable chip that is in permanent production, on a stable mobo. Anything 64-bit would do. You could do everything most of us do on it (bar gaming), build in a raft of proper security from day 1 (without making it difficult to use), and ignore GAFA's endless scams (like AI) and proprietary junk. Tech has plateaued, we haven't had anything both new and useful since memory cards & BD/SSD drives. So-called development since then has been solely to maintain GAFA's income.
I recall writing a Matchbox Educable Noughts and Crosses Engine (MENACE) implementation, and a significant part of the effort was converting the board, as 9 digit ternary number (each position can be blank, nought or cross) in to decimal and back again.
I remember leaving it to play itself (yes, you entered 0 for the number of players, I had been watching "War Games") whilst I was at school, and then played it once I'd got home again. It's wasn't great, but better than random. I suspect I hadn't got the feedback quite right.
of pretty much bugger all, I vaguely recall reading that the most efficient base for encoding (presumably numbers) was e (=2.718…) So 3 being closer to e than 2 actual ternary system might store information more efficiently.
Presumably a ternary ALU was implemented in the FPGA although rather spoilt for choice in the trit·wise operations on multi-trit words.
Back when, I imagined tristate TTL buffers implemented a true/false/not·at·home (or out·to·lunch) ternary logic.
Very interesting!
Two points...
A) I took some classes with Professor Jones, graduated in 2001. It's interesting to see he has a fairly complete treatise on trinary logic.
B) In case anyone wondered what a balanced trinary computer is... it has the values represent -1, 0, and 1. It's entirely possible (and Douglas Jones' paper discusses this) having the 3 values be 0, 1, and 2 instead.
There's a saying that God has three answers to prayer: Yes, No, and Not Yet. That ties in very nicely to the new computer.
Although recent investigations have shown there is actually a fourth answer to prayer: God saying "You gotta be kidding Me!!". Unsure where this is stored.
I first heard of tri-state (in this sense) from my father in (IIRC) the late 1960s. He said G.E. had built one in the early 1960s. And when it got all working, it wasn't enough simpler or faster than binary. He also hinted that it was rumored that the Russians were working on trinary; if the Russkies thought it worth study, then the US "had" to get into it. But by the late 1960s, IBM had sucked all the big profit out of computers, so interest waned.