[HN Gopher] Base 3 Computing Beats Binary
       ___________________________________________________________________
        
       Base 3 Computing Beats Binary
        
       Author : Tomte
       Score  : 124 points
       Date   : 2024-08-09 14:01 UTC (9 hours ago)
        
 (HTM) web link (www.quantamagazine.org)
 (TXT) w3m dump (www.quantamagazine.org)
        
       | Rygian wrote:
       | > Surprisingly, if you allow a base to be any real number, and
       | not just an integer, then the most efficient computational base
       | is the irrational number e.
       | 
       | Now I'm left with an even more interesting question. Why e? The
       | wikipedia page has some further discussion, hinting that the
       | relative efficiency of different bases is a function of the ratio
       | of their natural logarithms.
        
         | jetrink wrote:
         | The "area" that you want to minimize is the number of digits,
         | d, times the base, b.                   A = d * b
         | 
         | d is roughly equal to the log of the number represented, N,
         | base b.                   d ~= ln(N)/ln(b)
         | 
         | Substituting,                   A ~= b * ln(N) / ln(b)
         | 
         | Take the derivative of the area with respect to b and find
         | where the derivative is zero to find the minimum. Using the
         | quotient rule,                   dA/db = ln(N) * (ln(b)*1 -
         | b/b) / ln(b)^2              0 = ln(N) * (ln(b) - 1) / ln(b)^2
         | 0 = ln(b) - 1              ln(b) = 1              b = e
         | 
         | I hope I got that right. Doing math on the internet is always
         | dangerous.
        
           | klyrs wrote:
           | > Doing math on the internet is always dangerous.
           | 
           | Only if you see correctness as a thing to be avoided. In my
           | experience, being Wrong On The Internet is the fastest way to
           | get something proofread.
        
           | l- wrote:
           | Although the cost function has a multiplication of a base
           | times the floor of the log of the value with respect to that
           | base plus one, area is a misleading analogy to describe the
           | applicability as any geometric dimensional value has to taken
           | with respect to a basis. For a visual, (directional) linear
           | scaling is more in line so to say.
        
         | vitus wrote:
         | A related point is comparing x^y vs y^x, for 1 < x < y.
         | 
         | It can be easily shown that the "radix economy" described in
         | the article is identical to this formulation by simply taking
         | the logarithm of both expressions (base 10 as described in the
         | article, but it doesn't really matter, as it's just a scaling
         | factor; this doesn't change the inequality since log x is
         | monotonically increasing for x > 0): y log x vs x log y. Or, if
         | you want to rearrange the terms slightly to group the
         | variables, y / log y vs x / log x. (This doesn't change the
         | direction of the inequality, as when restricted to x > 1, log x
         | is always positive.) If you minimize x / log x for x > 1, then
         | you find that this minimum value (i.e. best value per digit) is
         | achieved at x=e.
         | 
         | (Choosing the base = e for calculation purposes: take a
         | derivative and set to zero -- you get (ln x - 1) / (ln x)^2 = 0
         | => ln x - 1 = 0 => ln x = 1 => x = e.)
         | 
         | For some intuition:
         | 
         | For small x and y, you have that x^y > y^x (consider, for
         | instance, x=1.1 and y=2 -- 1.1^2 = 1.21, vs 2^1.1 is about
         | 2.14). But when x and y get large enough, you find the exact
         | opposite (3^4 = 81 is larger than 4^3 = 64).
         | 
         | You might notice that this gets really close for x=2 and y=3 --
         | 2^3 = 8, which is just barely smaller than 3^2 = 9. And you get
         | equality in some weird cases (x=2, y=4 -- 2^4 = 4^2 = 16 is the
         | only one that looks nice; if you consider 3, its pairing is
         | roughly 2.47805).
         | 
         | It turns out that what really matters is proximity to e (in a
         | weird sense that's related to the Lambert W function). You can
         | try comparing e^x to x^e, or if you want, just graph e^x - x^e
         | and observe that's greater than 0 for x != e.
         | 
         | https://www.wolframalpha.com/input?i=min+e%5Ex-x%5Ee
        
       | taylodl wrote:
       | _> Why didn't ternary computing catch on? The primary reason was
       | convention. Even though Soviet scientists were building ternary
       | devices, the rest of the world focused on developing hardware and
       | software based on switching circuits -- the foundation of binary
       | computing. Binary was easier to implement._
       | 
       | That's not the way I've heard the story. Ternary isn't just
       | on/off, voltage yes/no like binary - you need to know the
       | _charge_ of the voltage: is it positive or negative? Essentially
       | then your circuits are - /0/+ instead of (0/+) like it is for
       | binary. Such ternary circuits resisted miniaturization. At a
       | certain point the - and + circuits cross and arc and create a
       | fire. The binary circuits kept getting miniaturized.
       | 
       | The story I've heard that goes along with this is that's how the
       | US ultimately won the space race: the US bet on binary computing
       | and the Soviets bet on ternary computing. The Soviets lost.
        
         | ComplexSystems wrote:
         | This doesn't make sense to me. You don't have to use negative
         | voltages to encode ternary. You can just use three different
         | positive voltages, if you like. 0V = 0, +3V = 1, +6V = 2.
        
           | kuroguro wrote:
           | That's my understanding as well. Voltages are relative, you
           | are free to choose a "ground" and work with negatives or not
           | if you want.
        
             | bee_rider wrote:
             | Practically it is convenient I think if your ground is
             | third little round prong on the power cord.
             | 
             | I wonder if this is why they suggested a negative voltage.
             | Even though voltages are secretly relative under the hood,
             | it seems like it could simplify things to have two
             | directionally different voltages.
        
               | IWeldMelons wrote:
               | Many reasons. For example, using negative voltage will
               | reduce DC component in the wires, that will improve
               | reliability over long lines, as now all you need is to
               | sense the polarity of the signal, not the level. You'd
               | also need high power reference voltage (for "1") wire
               | going all over the board, which will be nasty polluted
               | with uncorrelated switching noise, will sag in
               | uncorellated way with respect to the "2" (Vcc wire) etc.
        
               | taylodl wrote:
               | Well, this is stuff I read 40 years ago about tech nearly
               | 30 years prior!
        
               | bee_rider wrote:
               | They might not have had the third prong back then :)
        
           | RegnisGnaw wrote:
           | Except in the analog world its not so clear, you can't just
           | say +3V=1. What if its 3.7V? or 4.5V? Early tools weren't
           | that accurate either so you needed more range to deal with
           | it.
        
             | AnotherGoodName wrote:
             | It should be stated as ranges for clarity. It's never an
             | absolute voltage (quantum mechanics itself won't round that
             | nicely). Although this is also true of binary. >x volts = 1
             | otherwise 0 volt n binary. Same thing in ternary just with
             | 3 ranges.
        
             | rtkwe wrote:
             | Yeah at some point you have to deal with the transition
             | between the clean conceptual world of digit computing and
             | deal with the fact a circuit can't instantly transition
             | between 0v and 3.3v/5v/whatever level your signal operates
             | at.
        
           | jsheard wrote:
           | Indeed that's how nearly all NAND flash works nowadays, early
           | SLC media was binary with each cell set to a low or high
           | voltage, but as density increased they started using more
           | voltages inbetween to encode multiple bits per cell. The
           | current densest NAND uses 16 different positive voltage
           | states to encode 4 bits per cell.
        
             | breck wrote:
             | > The current densest NAND uses 16 different positive
             | voltage states to encode 4 bits per cell.
             | 
             | Wait, what?! I did not know this. Is there a link where I
             | can learn more?
        
               | p1mrx wrote:
               | https://en.wikipedia.org/wiki/Multi-level_cell
        
               | breck wrote:
               | Very interesting. I would have thought the overhead from
               | the memory controller would negate all savings, but I
               | know very little about modern cell design.
        
               | marcosdumay wrote:
               | > overhead from the memory controller
               | 
               | If you want to do it in a single step, you need 8
               | analogic comparators at the output of the memory, and one
               | level of "and" and "or" gates to solve each bit.
               | 
               | Most ADCs use a single comparator + OpAmp and convert the
               | value in 3 steps. But that would make your memory slower.
               | 
               | Either way, the task of converting it does not fall over
               | the controller.
        
               | jsheard wrote:
               | https://www.anandtech.com/show/5067/understanding-tlc-
               | nand
               | 
               | That's an older article from when TLC (3bit) NAND
               | launched, but the principles are the same for QLC (4bit).
               | 
               | Nowadays SLC and MLC are barely used because TLC is good
               | enough for nearly all purposes.
        
               | breck wrote:
               | > Nowadays SLC and MLC are barely used because TLC is
               | good enough for nearly all purposes.
               | 
               | This is very interesting. Thank you.
        
               | AlotOfReading wrote:
               | Most "SLC" and "MLC" that's sold is actually TLC/QLC
               | hardware that's only using a subset of the voltage levels
               | available. It ends up being significantly cheaper due to
               | the economies of scale in manufacturing.
        
               | jsheard wrote:
               | Yep, if you ever come accross the term "pSLC" (Pseudo-
               | SLC) that means the underlying hardware is capable of
               | running in MLC/TLC/QLC mode, but the controller firmware
               | has been configured to only use the lowest and highest
               | voltage state in each cell.
               | 
               | Some SSD controllers will also reassign regions of flash
               | to different modes on the fly, the drives unused capacity
               | can be used internally as a very fast pSLC write cache,
               | and then as the drive fills up those cells incrementally
               | get switched over to the native TLC/QLC mode.
        
               | Iulioh wrote:
               | Does this mean that in some cases damaged QCL "sectors"
               | could be still used as a SCL?
        
             | entropicdrifter wrote:
             | So each cell is a nibble. That's cool
        
           | jerf wrote:
           | The main problem is that if you are minimizing the voltage to
           | the minimum that can be safely distinguished for binary, you
           | must, by necessity, be introducing twice that voltage to
           | introduce another level. You can't just cut your already-
           | minimized voltage in half to introduce another level; you
           | already minimized the voltage for binary.
           | 
           | 50 years ago this may not have been such a problem, but now
           | that we care a lot, _lot_ more about the power consumption of
           | our computing, and a lot of that power consumption is based
           | on voltage (and IIRC often super-linearly), so a tech that
           | requires us to introduce additional voltage levels
           | pervasively to our chips is basically disqualified from the
           | very start. You 're not sticking one of these in your server
           | farm, phone, or laptop anytime soon.
        
           | AnotherGoodName wrote:
           | Voltages are always measure relative to each other. In ops
           | example -3V to +3V has 6V difference just as 0V to 6V does
           | and the arcing is the same.
           | 
           | Op didn't specify any particular voltage but you should get
           | the example. You need more voltage between the highest and
           | lower states to differentiate the signals compared to binary.
           | It can work well but only in circuits where there's already
           | very low leakage (flash mentioned as another reply is a great
           | example).
        
             | XorNot wrote:
             | While true, being negative in a semiconductor system is
             | very relevant though because any P-N junction is a diode.
             | So your ability to propagate current (and thus downstream
             | voltages) does depend on the voltages all pointing the
             | right direction.
             | 
             | note: I am aware that strictly speaking a CPU isn't
             | transistors, but it _is_ a lot of variously doped silicon
             | still.
        
           | IWeldMelons wrote:
           | Yes, but then you have to use a lot more complex electronics
           | and production tolerances, as now you'd need to either
           | distribute voltage reference for intermediate level all over
           | the board, which essentially makes it exactly same system as
           | with negative voltage, but with the third wire becoming
           | ground; the same concept but worse implementation, or make
           | circuits able able to discriminate between two different
           | levels, this will be both difficult in terms of implementing
           | the circuit, and will also lead to enormous energy waste, as
           | part of your transistors will have to be half open (jinda
           | similar similar to ECL logic, but worse).
        
         | meindnoch wrote:
         | Complete fabrication, with blatant disregard for physics and
         | electronics.
         | 
         | Many modern CPUs use different voltage levels for certain
         | components, and everything works fine.
        
           | phkahler wrote:
           | >> Many modern CPUs use different voltage levels for certain
           | components, and everything works fine.
           | 
           | But none of them use more than 2 states. If you've got a
           | circuit at 0.9V or one at 2.5V they both have a single
           | threshold (determined by device physics) that determines the
           | binary 1 or 0 state and voltages tend toward 0 or that upper
           | supply voltage. There is no analog or level-based behavior. A
           | transistor is either on or off - anything in the middle has
           | resistance and leads to extra power dissipation.
        
             | perching_aix wrote:
             | Isn't high speed signalling full of examples for multi
             | level (as in, more-than-two level) signals? PCI-E's gen 6
             | and the various wireless standards come to mind.
        
               | p_l wrote:
               | In limited, specialized domains where big chunky
               | (comparatively) transceivers let you abuse "actually
               | analog" nature of the medium for higher speeds.
               | 
               | Not for internal logic.
        
               | kbolino wrote:
               | At least as things stand now, these signals are only used
               | when absolutely necessary, and no real work is done on
               | them directly. Transmitting many bits in parallel was the
               | original way of doing this, and would still be preferred
               | if feasible, but timing issues arise at modern speeds
               | over long distances (10s of cm). So the signals on one
               | board, which are still binary and parallel, are
               | multiplexed into a multi-level serial signal before
               | transmission, transmitted over the serial data lines, and
               | then received and demultiplexed on the other board from
               | multi-level serial back into binary parallel signals. All
               | computation (logic and arithmetic) operates on the binary
               | signals, not the multi-level signals.
        
               | sva_ wrote:
               | > various wireless standards
               | 
               | Electromagnetic waves do not interact with one another,
               | so it is difficult to build a transistor with it. There's
               | some research into optical transistors but doesn't seem
               | to work well yet.
        
             | tossandthrow wrote:
             | Another comment suggest that NAND chips use 8 different
             | voltages / states to encode 3 bits just in voltage states.
        
               | phkahler wrote:
               | For data storage, not computation.
        
             | lsaferite wrote:
             | As mentioned by another comment, NAND has multiple voltage
             | levels.                  - Single-level cell (SLC) flash:
             | One bit per cell, two possible voltage states        -
             | Multi-level cell (MLC) flash: Two bits per cell, four
             | possible voltage states        - Triple-level cell (TLC)
             | flash: Three bits per cell, eight possible voltage states
             | - Quad-level cell (QLC) flash: Four bits per cell, 16
             | possible voltage states
        
               | kbolino wrote:
               | NAND flash is so-named because of its physical
               | _resemblance_ to a NAND gate, but I don 't think it
               | actually functions as a NAND gate.
               | 
               | Put another way, is it possible to feed two 16-level
               | signals (X and Y) into a QLC and get a 16-level result
               | back out of it (Z), where Z = X NAND Y, and if so, is it
               | significantly faster, smaller, or less power-hungry than
               | 4 conventional NAND gates running in parallel? I don't
               | think so.
               | 
               | As it stands, NAND flash cells are only used for storage,
               | and that's because of their high information density, not
               | any computational benefits. Once the signals leave the
               | SSD, they've already been converted to binary.
        
               | creer wrote:
               | > is it significantly faster, smaller, or less power-
               | hungry than 4 conventional NAND gates running in
               | parallel?
               | 
               | It's not implemented any one of these several manners
               | just for the hell of it. Everything has tradeoffs (which
               | vary with each manufacturing node, architecture and
               | timing in the market price landscape). The engineering
               | and product management teams are not throwing darts. Most
               | of the time anyway.
               | 
               | Saying that it's still binary because you feed binary
               | into the chip and get binary back is moving the goal post
               | (imo). A multilevel subsystem in a larger one is still
               | multilevel, an analog one is still analog, an optical one
               | is still optical (see switching fabric recently.)
               | 
               | So anyway, the russian systems did explore what could be
               | done. The flash storage does answer some favorable
               | tradeoff. And so have countless university projects.
               | Including analog neural net attempts.
        
               | kbolino wrote:
               | The second half of that question is not relevant if the
               | answer to the first half of the question is "no" (it
               | wasn't rhetorical). QLC "NAND" is not a logic gate, it is
               | a storage mechanism. It does not compute anything.
               | 
               | Modern magnetic hard drives use all sorts of analog
               | tricks to increase information density but few would
               | seriously argue that this constitutes a fundamentally
               | different kind of computing.
               | 
               | Yes, QLC (etc.) is an innovation for data storage (with
               | tradeoffs). No, it is not a non-binary computer hiding in
               | plain sight.
        
               | creer wrote:
               | Fair enough. Common examples in storage and transmission.
               | Not so common in computing for now. The closest obvious
               | computing example, to my mind, is analog neural net
               | blocks meant to be integrated in digital (binary)
               | systems. Not ternary, old school (hah!) analog.
        
           | AlotOfReading wrote:
           | Not agreeing with the parent post, but the different domains
           | in modern electronics only work because they're (nominally)
           | isolated except for level crossing circuits.
        
         | keybored wrote:
         | I think this sentence from the Space Race Wikipedia is funny:
         | 
         | > The conclusion of Apollo 11 is regarded by many Americans as
         | ending the Space Race with an American victory.
        
           | HPsquared wrote:
           | "Winning the space race" is a rather woolly concept and
           | depends on your definitions. Although NASA did land
           | astronauts on the moon, the Soviets had firsts in most of the
           | main areas relevant today (first satellite, first astronaut,
           | first space station, first landing on another planet, etc
           | etc.).
           | 
           | https://en.m.wikipedia.org/wiki/Timeline_of_the_Space_Race
        
             | aleph_minus_one wrote:
             | It's easier to win the space race if you are allowed to
             | define your own winning criterion/criteria. :-)
        
               | bee_rider wrote:
               | The key is to pick a winning criteria that is
               | sufficiently meaningful looking and then really sell the
               | heck out of it.
               | 
               | There were lots of good arguments for the Soviet space
               | program having been ahead, lots of landmarks they hit
               | first. But, ya know, the dude standing on the moon
               | couldn't hear these arguments.
        
               | aleph_minus_one wrote:
               | > The key is to pick a winning criteria that is
               | sufficiently meaningful looking and then really sell the
               | heck out of it.
               | 
               | Exactly. :-)
        
               | pyxelperfect wrote:
               | 1st to anything is considered a significant metric, it's
               | simply picking the larger tasks and working your way down
               | to possibility to find effective goals.
        
               | taylodl wrote:
               | Don't disagree with you, but, so far, the US is the only
               | country to land people on the moon - and they first
               | pulled that feat off 55 years ago!
               | 
               | Of course, it's not clear whether they could pull that
               | feat off right now, today, but they _did_ pull it off and
               | nobody else has. Suddenly nobody remembered the Soviet
               | accomplishments of first satellite in space, first man in
               | space and so forth. All they remember and care about is
               | first man to the moon.
               | 
               | After all, America does a great job of marketing herself!
               | :)
        
               | leptons wrote:
               | America landing on the moon signaled the end of the
               | "space race". The soviets could have pushed more money
               | into it and landed one of their cosmonauts on the moon,
               | but they just gave up because to them "the race" was
               | lost, and not worth putting so much more money to come in
               | second-place. All their other "firsts" were like
               | trial/qualifying runs for the big race of landing on the
               | moon.
        
               | taylodl wrote:
               | That's pretty much the way I understand it. I'm sure the
               | Soviets could have landed a cosmonaut on the moon in the
               | early-to-mid 70s, but why bother? It would actually look
               | lame! Hey! We can put men on the moon, too!
               | 
               | There _is_ an effort to put the first woman on the moon,
               | but as far as I can tell, the US is the only country
               | concerned with that. Too bad, because that title has been
               | there for the taking for over 50 years now.
        
         | hoosieree wrote:
         | I always thought the information density advantage of ternary
         | disappeared once you put it in the real world:
         | 
         | - harder to discriminate values as you pack more in the same
         | dynamic range
         | 
         | - more susceptible to noise
         | 
         | - requires lower clock rates for (wired) transmission
         | 
         | - requires more complex protocols for (wireless) transmission
         | 
         | - representing 0 or 1 as switched states uses "no" power, but
         | getting a switch to be "halfway on" uses a lot of power
        
         | da_chicken wrote:
         | > At a certain point the - and + circuits cross and arc and
         | create a fire.
         | 
         | That's not unique to ternary circuits. That's just how voltage
         | differential of any kind works.
         | 
         | The trick is figuring out how many states you can reliably
         | support below the maximum voltage differential the material
         | supports. As we reach the physical limits of miniaturization,
         | "two states" is almost certainly not going to remain the
         | optimal choice.
        
           | ykonstant wrote:
           | I am extremely doubtful about your last claim; is there work
           | being done in that direction that you can point to? Don't get
           | me wrong, it would really be exciting if we could get actual
           | efficiencies by increasing the number of states, but all the
           | experts I have talked to so far are very pessimistic about
           | the possibility. The problems introduced by ternary circuits
           | seem to offset any claimed efficiency.
        
         | IWeldMelons wrote:
         | I think it is yet another "bears walking on redsqare" level of
         | claim (I mean about ternary systems). There was only one minor
         | ternary computer produced by USSR ("Setun"); it has never been
         | a big thing.
        
           | jasomill wrote:
           | SETUN itself was an electronically binary machine that used
           | bit pairs to encode ternary digits[1].
           | 
           | In support of your point, of the Soviet computers surveyed in
           | the cited article, six were pure binary, two used binary-
           | coded decimal numerics, and only SETUN was ternary[2].
           | 
           | [1] [Willis p.
           | 149]https://dl.acm.org/doi/pdf/10.1145/367149.1047530#page=19
           | 
           | [2] [Willis p.
           | 144]https://dl.acm.org/doi/pdf/10.1145/367149.1047530#page=14
           | 
           | [Willis] Willis H. Ware. 1960. Soviet Computer
           | Technology-1959. _Commun._ ACM 3, 3 (March 1960), 131-166.
           | DOI:https://doi.org/10.1145/367149.1047530
        
         | akira2501 wrote:
         | > At a certain point the - and + circuits cross and arc and
         | create a fire.
         | 
         | To do binary logic we do CMOS. The reason CMOS gets hot is
         | because the complementary transistors don't switch at the same
         | time. So, at a certain point, the Vss and Vdd circuits connect
         | and create a massive current drain.
         | 
         | > The binary circuits kept getting miniaturized.
         | 
         | Sure.. but they're not getting much faster.
        
       | cma wrote:
       | I have heard somewhere it is theoretically better because it is
       | much closer to e (2.718... natural logarithm base). Anyone have
       | an explanation that includes that as to why it is better?
        
         | vsuperpower2021 wrote:
         | No, it's better because it's closer to pi (3.14...). The reason
         | for this is that pi can be used to measure the area of a circle
         | and circles are the most divine shape.
        
         | ykonstant wrote:
         | Wikipedia has a nice article on this:
         | https://en.wikipedia.org/wiki/Non-integer_base_of_numeration
         | 
         | Edit: layer8 below has a much better link
        
           | layer8 wrote:
           | This one is more to the point I think:
           | https://en.wikipedia.org/wiki/Optimal_radix_choice
        
             | ykonstant wrote:
             | You are absolutely right, your link is the way to go.
        
       | actinium226 wrote:
       | > A system using ternary logic can give one of three answers.
       | Because of this, it requires only one query: "Is x less than,
       | equal to, or greater than y?"
       | 
       | So what does the answer to that query look like? I get a trit
       | which is -1 for x < y, 0 for x == y, and 1 for x > y? It would
       | make more sense for the query to be "Is x less than or equal to
       | y?" so that I can get back a true/false value and jump to the
       | next instruction as appropriate.
       | 
       | This of course raises a lot of questions as to how to program a
       | ternary computer.
        
         | dbdr wrote:
         | The 'if' construct (or equivalently, conditional jump) is
         | inherently tied to binary. On a ternary computer, the natural
         | conditional would have three branches, not two.
        
           | saulpw wrote:
           | In some ways this seems like it might be very useful. I can
           | easily see an if-statement with true/false/error cases, or
           | less-than/equal-to/greater-than cases.
        
       | danielvaughn wrote:
       | > A binary logic system can only answer "yes" or "no."
       | 
       | Maybe I'm missing something, but this sounds like a silly
       | argument for ternary. A ternary system seems like it would be
       | decidedly harder to build a computer on top of. Control flow, bit
       | masking, and a mountain of other useful things are all predicated
       | on boolean logic. At best it would be a waste of an extra bit (or
       | trit), and would also introduce ambiguity and complexity at the
       | lowest levels of the machine, where simplicity is paramount.
       | 
       | But again, maybe I'm missing something. I'd be super interested
       | to read about those soviet-era ternary systems the author
       | mentioned.
        
         | titchard wrote:
         | its been a while since I read some of this book and enjoying
         | it, and I remember it refering to 3bit computing in the soviet
         | era but it might be right up your street
         | https://mitpress.mit.edu/9780262534666/how-not-to-network-a-...
        
         | __tmk__ wrote:
         | I would think there wouldn't be much of a difference because
         | the smallest unit you can really work with on modern computers
         | is the byte. And whether you use 8 bits to encode a byte (with
         | 256 possible values) or 5 trits (with 243 possible values),
         | shouldn't really matter?
        
           | AnotherGoodName wrote:
           | 3 fewer lanes for the same computation. FWIW 8bits is the
           | addressable unit. Computers work with 64bits today, they
           | actually mask off computation to work with 8bits. A ternary
           | computer equivalent would have 31trits (the difference is
           | exponential - many more bits only adds a few trits). That
           | means 31 conductors for the signal and 31 adders in the alu
           | rather than 64. The whole cpu could be smaller with
           | everything packed closer together enabling lower power and
           | faster clock rates in general. Of course ternary computers
           | have more states and the voltage differences between highest
           | and lowest has to be higher to allow differentiation and then
           | this causes more leakage which is terrible. But the actual
           | bits vs trits itself really does matter.
        
             | moefh wrote:
             | > A ternary computer equivalent would have 31trits
             | 
             | I think you mean 41, not 31 (3^31 is about a factor of
             | 30000 away from 2^64).
             | 
             | The difference in the number of trits/bits is not
             | exponential, it's linear with a factor of log(2)/log(3) (so
             | about 0.63 trits for every bit, or conversely 1.58 bits for
             | every trit).
             | 
             | > ternary computers have more states and the voltage
             | differences between highest and lowest has to be higher to
             | allow differentiation and then this causes more leakage
             | which is terrible
             | 
             | Yes -- everything else being equal, with 3 states you'd
             | need _double_ the voltage between the lowest and highest
             | states when compared to 2 states.
             | 
             | Also, we spent the last 50 years or so optimizing building
             | MOSFETs (and their derivatives) for 2 states. Adding a new
             | constraint of having a separate stable state *between* two
             | voltage levels is another ball game entirely, especially at
             | GHz frequencies.
        
           | shakow wrote:
           | > because the smallest unit you can really work with on
           | modern computers is the byte
           | 
           | Absolutely not, look e.g. at all the SIMD programming where
           | bit manipulation is paramount.
        
         | bee_rider wrote:
         | Boolean logic is somewhat unintuitive already, I mean we have
         | whole college courses about it.
         | 
         | > At best it would be a waste of an extra bit (or trit), and
         | would also introduce ambiguity and complexity at the lowest
         | levels of the machine, where simplicity is paramount.
         | 
         | This seems backwards to me. It isn't a "waste" of a bit,
         | because it doesn't use bits, it is the addition of a third
         | state. It isn't ambiguous, it is just a new convention. If you
         | look at it through the lens of binary computing it seems more
         | confusing than if you start from scratch, I think.
         | 
         | It might be more complex, hardware-wise though.
        
           | mywittyname wrote:
           | > I mean we have whole college courses about it.
           | 
           | Doesn't this have more to do with the fact that it's not part
           | of the standard math curriculum taught at the high school
           | level? I'm no math wiz and discrete math was basically a free
           | A when I took it in college. The most difficult part for me
           | was memorizing the Latin (modus ponens, modus tollens - both
           | of which I still had to lookup because I forgot them beyond
           | mp, mt).
           | 
           | Being a college course doesn't imply that it's hard, just
           | that it's requisite knowledge that a student is not expected
           | to have upon entering university.
        
             | JohnMakin wrote:
             | I agree with you - I found the course to be a snooze fest
             | but I had delayed taking it til my ~3rd year of school.
        
         | andriamanitra wrote:
         | > Control flow, bit masking, and a mountain of other useful
         | things are all predicated on boolean logic. At best it would be
         | a waste of an extra bit, and would also introduce ambiguity and
         | complexity at the lowest levels of the machine, where
         | simplicity is paramount.
         | 
         | There is an even bigger mountain of useful things predicated on
         | ternary logic waiting to be discovered. "Tritmasks" would be
         | able to do so much more than bitmasks we are used to as there
         | would be one more state to assign a meaning to. I'm not sure if
         | the implementation complexity is something we can ever
         | overcome, but if we did I'm sure there would eventually be a
         | Hacker's Delight type of book filled with useful algorithms
         | that take advantage of ternary logic.
        
         | creer wrote:
         | I don't see anything fundamentally obvious about this (chip
         | design and arch background). If you look at chip photographs,
         | you see massive amounts of space dedicated to wiring compared
         | to the "logic cells" area, if you include the routing in
         | between the logic cell rows - if you want to look at it this
         | way for compute vs interconnect. Nicely regular, full custom
         | datapaths exist, but so do piles of standard cells. And massive
         | amount of space dedicated to storage-like functions (registers,
         | cache, prediction, renaming, whatever.) If you could 1) have
         | logic cells that "do more" and are larger, 2) less wiring
         | because denser usage of the same lines, 3) denser "memory"
         | areas - well that would be a LOT! So, not saying it's an
         | obvious win. It's not. But it's worth considering now and then.
         | At this level the speed of conversion between binary and multi-
         | level becomes critical also - but it's not so slow that it
         | obviously can't fit the need.
        
           | creer wrote:
           | Speaking of compute density, do people do multi-bit standard
           | cells these days? In their standard cell libraries?
           | 
           | One thing we were trying way back then was standard cells
           | that integrated one flip flop or latch and some logic
           | function into one cell. To trade a slightly larger cell (and
           | many more different cells) for less wiring in the routing
           | channel.
        
       | alberth wrote:
       | I've always wonder if our own human intelligence is limited by
       | the language we speak and the base number system we use.
       | 
       | E.g.
       | 
       | Tonal languages allows individuals to express way more than Latin
       | based languages.
       | 
       | Sumerians used a Base-60 numbering system, and were exceedingly
       | advanced in mathematics.
       | 
       | EDIT:
       | 
       | Why the downvotes?
        
         | Thomashuet wrote:
         | > Tonal languages allows individuals to express way more than
         | Latin based languages.
         | 
         | Do you have any evidence of this? I've never heard this claim
         | before.
        
         | vkazanov wrote:
         | Do you speak a tonal language?
         | 
         | Vietnamese is one example. Having tones attached to syllables
         | means that words and sentences are shorter. In fact, the
         | grammar is very logical and efficient compared to baroque
         | European ones, especially of the slavic/baltic flavour.
         | 
         | But. The same mechanism in Indo-European languages is used for
         | intonation. we express sarcasm, irony, etc this way be
         | essentially using a single sentence tone.
         | 
         | I have some good Vietnamese friends explaining how hard it is
         | for them to use (and hear) a sentence-wide tone. So, say, some
         | of the fluently speaking Russian Vietnamese always sound like
         | they are sarcastic.
         | 
         | Otoh, I always had problems ordering rice with pork in hanoi...
        
           | 4sak3n wrote:
           | > Vietnamese is one example. Having tones attached to
           | syllables means that words and sentences are shorter.
           | 
           | This does not entail that more can be expressed than other
           | languages. Please see my other reply which goes into
           | (admittedly only slightly) more detail.
        
         | 4sak3n wrote:
         | > Tonal languages allows individuals to express way more than
         | Latin based languages.
         | 
         | Not true. There was a study that showed that information
         | density is pretty consistent across all languages, regardless
         | of the average number of phonemes used in that language or the
         | strategies that are employed to encode structural information
         | like syntax. I can only assume you are refering to the density
         | with your statement based on the subject matter in that article
         | as well as the fact that, given enough time and words, any
         | language can represent anything any other language can
         | represent.
         | 
         | I apologise if my terms are not exact, it's been years since
         | I've studied linguistics. In addition, since I'm not going to
         | dig up a reference to that paper, my claim here is just
         | heresay. However the finding lines up with a pretty much all
         | linguistic theory I learned regarding language acquisition and
         | production as well as theory on how language production and
         | cognition are linked so I was confident in the paper's findings
         | even though a lot of the theory went over my head.
        
           | detourdog wrote:
           | Language density is one thing but what about legibility?
           | 
           | How achievable is literacy?
        
         | detourdog wrote:
         | You are the first here is one effort to free us with a new
         | language.
         | 
         | http://www.loglan.org/
         | 
         | Downvotes happen no reason needed.
        
           | rikroots wrote:
           | There's always Ithkuil - though I hear it's a bugger to
           | learn: https://en.wikipedia.org/wiki/Ithkuil
        
         | lcnPylGDnU4H9OF wrote:
         | > Sumerians used a Base-60 numbering system, and were
         | exceedingly advanced in mathematics.
         | 
         | I've sort of thought 60 might be a nice base to work in. Some
         | mathematicians prefer base-12 because it works with a wide
         | number of factors and base-60 is just adding a factor of 5 to
         | base-12. The result would be a base with an even wider variety
         | of factors and, ideally, fewer instances of fractional amounts.
        
       | jerf wrote:
       | "In addition to its numerical efficiency, base 3 offers
       | computational advantages. It suggests a way to reduce the number
       | of queries needed to answer questions with more than two possible
       | answers. A binary logic system can only answer "yes" or "no.""
       | 
       | Yes... but nobody _uses_ binary systems. We use 64 bit systems
       | (and a number of other systems, but all larger than one bit),
       | which has abundantly more than enough space to represent
       | "greater than/less than/equal".
       | 
       | The main software issue with ternary computing is that with this,
       | the entire advantage goes up in smoke. It is quite hard to
       | articulate an actual advantage a multi-bit system would see since
       | we do not use 1-bit or 1-trit systems in real life. (If you've
       | got some particular small hardware thingy that could use it, by
       | all means go for it; it's no problem to use it in just one little
       | place and have a conventional binary interface.)
       | 
       | Taylodl's hardware issue with ternary circuits sounds like a
       | reasonable one as well. If you've already minimized the voltage
       | difference for your binary circuits to as small as it can
       | reasonably be, the addition of ternary hardware necessarily
       | entails doubling it the maximum voltage in the system.
       | 
       | Is this Quanta Magazine's "Brash And Stupid Claims About
       | Computing Week" or something?
       | https://news.ycombinator.com/item?id=41155021 The last paragraph
       | is outright crockery, that "trit-based security system" is well
       | known to be from a crackpot who appears to simply not comprehend
       | that our binary systems do not in fact explode the moment they
       | have to represent a "3", despite repeated attempts for people to
       | explain it to the guy.
       | 
       | Programmers and hardware designers are not in fact just total
       | idiots stuck in the mud about digital (vs analog) and binary (vs
       | ternary) representations. They are the way they are for good and
       | solid engineering reasons that aren't going anywhere, and there
       | is basically no space here for someone to displace these things.
       | It isn't just path dependence, these really are the best choices
       | based on current systems.
        
         | ykonstant wrote:
         | I loved the penultimate paragraph; gave me a hearty laugh and a
         | fun rabbit hole to waste time on :)
        
         | varjag wrote:
         | Ternary is one of several crackpotry schools that were
         | established in USSR. You'd have them write books on the
         | subjects, rant in tech magazines... there even was an SF short
         | story about evil alien robots defeated by ternary.
         | 
         | Another big thing was TRIZ: a theory that you can codify
         | invention by making a rulebook and arranging the rules in
         | different permutations. There were plenty of smaller things
         | too, especially in academia. It would typically start with one
         | researcher sticking to some bizarre idea, then growing his own
         | gang of grad students and adjuncts who all feed on that. Except
         | the theory would be borderline batshit and all the publications
         | are in-group, referring each other, and naturally a semester or
         | two worth of this sectarian stuff is getting dropped into the
         | undergrad curriculum.
        
           | homarp wrote:
           | TRIZ previously on HN
           | https://news.ycombinator.com/item?id=18045322 (and a few
           | others)
           | 
           | and https://en.m.wikipedia.org/wiki/Systematic_inventive_thin
           | kin...
           | 
           | then https://arxiv.org/abs/2403.13002 (AutoTRIZ: Artificial
           | Ideation with TRIZ and Large Language Models)
        
             | varjag wrote:
             | _This article contains content that is written like an
             | advertisement. (June 2020)_
        
           | marcosdumay wrote:
           | During most of the time USSR existed, computer electronics
           | were away from the optimum enough that ternary logic was
           | competitive with binary.
           | 
           | It was just at the late 80s that this changed.
        
             | varjag wrote:
             | I doubt it was competitive at any point. Setun had not
             | demonstrated any practical edge in its generation and noone
             | tried to reproduce it afterwards.
        
           | shrubble wrote:
           | TRIZ is not bizarre or strange. It is a series of concepts
           | and ideas which are meant to help you get unstuck when
           | working through a difficult engineering problem.
        
             | varjag wrote:
             | I know what it meant for but the evidence for its efficacy
             | is thin.
        
       | asimpletune wrote:
       | The benefits of ternary computing are best with demonstrated. A
       | simple example:
       | 
       | A waiter walks up to a table of two and asks "is everybody ready
       | to order?". One of them responds, "I'm not sure". Then the other
       | says, "Now we are".
       | 
       | (Edit: I didn't really ask a question, so it may not seem like a
       | riddle. To some people, when they imagine it, this scene makes
       | perfect sense, so it's not much of a riddle to them. To others,
       | it's sort of bizarre, and so the "question" - how is this
       | possible, or what happened - is obvious. Then you can consider
       | the answer. In any case, this is a very simple demonstration of
       | ternary logic, and much more complicated riddles exist that all
       | more or less build off of the same mechanism.)
        
         | tromp wrote:
         | > One of them responds, "I'm not sure".
         | 
         | In practice this answer is hardly different from saying Yes,
         | since it's understood that the person saying Yes is just
         | speaking for themselves and the waiter will wait for the other
         | person to confirm.
        
           | gklitz wrote:
           | Isn't that the entire point, that it means "I'm ready but I
           | don't know about the other person"? If the first person was
           | not ready they would say "no" because they know that they
           | can't possibly both be ready. Since the first person says
           | "I'm not sure" and not "no" the second person can infer that
           | the first person is ready, and since the second person is
           | ready they can answer yes for both of them.
        
           | asimpletune wrote:
           | This point is brought up a lot, but it doesn't account for
           | all the details. The second person says "now we are",
           | immediately after the first said "I don't know". The "in
           | practice" example explains the first statement, but not both
           | of them.
        
       | mrob wrote:
       | The concept of radix economy assumes that hardware complexity for
       | each logic element is proportional to the number of logic levels.
       | In practice this isn't true, and base 2 is best.
       | 
       | >Ternary circuits: why R=3 is not the Optimal Radix for
       | Computation
       | 
       | https://arxiv.org/abs/1908.06841
       | 
       | Previous HN discussion:
       | 
       | https://news.ycombinator.com/item?id=38979356
        
         | crdrost wrote:
         | I like this article but it does kind of seem like it gets to a
         | point of "well we know how to do binary stuff in hardware real
         | well, we don't know how to do ternary stuff that well and doing
         | it with binary components doesn't work great."
         | 
         | Also ternary gets a bit weird in some other ways. The practical
         | ternary systems that the Soviets invented used balanced
         | ternary, digits {-, o, +} so that 25 for example is +o-+,
         | 25 = 27 + 0*9 - 3 + 1.
         | 
         | If you think about what is most complicated about addition for
         | humans, it is that you have these carries that combine adjacent
         | numbers: and in the binary system you can prove that you relax
         | to a 50/50 state, the carry bit is 50% likely to be set, and
         | this relaxation happens in average by the 3rd bit or so, I
         | think? Whereas ternary full adders only have the carry trit set
         | 1/4 of the time (so  1/8  +,  1/8  -) and it takes a few more
         | trits for it to get there. (One of those nice scattered uses
         | for Markov chains in the back of my head, the relaxation goes
         | as the inverse of the second eigenvalue because the first
         | eigenvalue is 1 and it creates the steady state. I got my first
         | summer research job by knowing that factoid!) So you start to
         | wonder if there's something like speculative execution possible
         | then--half-adder-+ is definitely too simple for this but full
         | adder + chains all these bits together and for larger numbers
         | maybe it's not!
         | 
         | Similarly I think that binary proliferated in part because the
         | multiplication story for binary is so simple, it's just a few
         | bitshifts away. But for balanced ternary it's just inversions
         | and tritshifts too, so it has always felt like maybe it has
         | some real "teeth" there.
        
           | dgoldstein0 wrote:
           | In terms of implementing adders, the standard solution for
           | binary logic adders is carry lookahead adders. Perhaps an
           | equivalent could be built in ternary logic?
           | 
           | https://en.m.wikipedia.org/wiki/Carry-lookahead_adder
        
       | phkahler wrote:
       | The metric they use for "efficiency" seems rather arbitrary and
       | looks like a theoretical mathematicians toy idea. Unfortunately
       | real computers have to be constructed from real physical devices,
       | which have their own measures of efficiency. These don't match.
        
       | weinzierl wrote:
       | Has there ever been any real hardware that was ternary based?
        
         | EnergyAmy wrote:
         | There were some good attempts at it back in the day:
         | 
         | https://en.wikipedia.org/wiki/Setun
        
       | Retr0id wrote:
       | *in theory
        
       | dragontamer wrote:
       | No discussion of tristate logic?
       | 
       | Tristate logic is how computer busses have been made for about
       | the last half century.
       | 
       | I'd hardly call USB unpopular ...
        
         | xpe wrote:
         | Good point.
         | 
         | Claim: Three-state logic can be advantageous in a digital
         | system with a shared bus. The third state, Hi-Z, effectively
         | disconnects a device from the bus. It allows multiple devices
         | to share a single line efficiently.
         | 
         | Does the above claim overlook anything fundamental about where
         | tristate logic shines?
         | 
         | There are alternative ways to design buses, but my EE-fu is not
         | particularly current (pun intended). If others want to weigh
         | in, please go ahead... e.g. open drain, multiplexing, TDMA,
         | etc.
        
           | dragontamer wrote:
           | I2C remains open collector today.
           | 
           | The issue is that open collector is slow. It's hard to make a
           | bus function above 1MHz and it won't go much beyond that.
           | Sufficient for your typical temperature/ADC/whatever
           | peripheral even today but 1Mhz is not very fast.
           | 
           | 10kOhm pull-up will pull the bus back up to 3.3V or whatever
           | your I2C operates at.
           | 
           | Let's say each device on the bus adds 15pF of capacitance.
           | 
           | At 6 devices, we are at 10kOhm * 6 * 15pF * 2.2 rise time ==
           | 2,000,000 ps rise time, aka 2us rise time aka 500kHz or
           | somewhere in that neighborhood. (2.2 * RC constant gives the
           | 80% rise time of a resistor-capacitor system. Capacitances in
           | parallel add together. One 10kOhm pull-up resistor).
           | 
           | -------
           | 
           | TriState buffers fix that by allowing a far greater drive of
           | current into the bus.
           | 
           | Current is the easiest way to fight back against fan-out *
           | capacitance. Every chip will add parasitic capacitance and it
           | actually adds up to real issues in practice.
        
         | akira2501 wrote:
         | The third state there is indeterminate and a read during that
         | period is equally likely to produce a 0 or a 1.
         | 
         | Logic /levels/ are what matters, not bus state.
         | 
         | You can even see this in how it's implemented. You typically
         | have an OUT line, and an OUT_ENABLE line. This is really just 2
         | bits.
        
           | dragontamer wrote:
           | Electricity has no 'Logic Levels' to it. It's all voltages
           | and currents.
           | 
           | If DeviceA tries to set a line to 5V while DeviceB tries to
           | set the same line to 0V, it doesn't matter what you think is
           | going on in abstract computer land. There is likely some
           | magic smoke getting let out somewhere.
           | 
           | ------
           | 
           | EEs paper over these details by defining lines to be
           | OpenCollector (ex: 8051 chips) where high voltage 5V is
           | driven high by a 10kOhm pull-up resistor but otherwise no one
           | trying to push currents (8051 has only uA of current push
           | supported).
           | 
           | But pull-down is strong. 8051 had IIRC 2mA of pulldown,
           | sufficient to 'Beat' the 10kOhm resistor (which is pushing
           | maybe 20uA).
           | 
           | --------
           | 
           | TriState logic allows for greater currents to push onto the
           | line. You can now push 2mA or 10mA of current to drive the
           | line to 5V which leads to faster communication.
           | 
           | Just with TriState, because of the greater currents involved,
           | you must be aware of the fire hazard and try not to have a 5V
           | drive at the same time as someone else's 0V.
           | 
           | ------
           | 
           | EEs will pretend that these voltages and currents are 0 or 1
           | for the computer programmers. But there is actually a lot
           | going on here.
           | 
           | This is why TTL vs CMOS vs RTL vs Diode Logic vs whatever is
           | a thing. EEs are calculation the currents and voltages
           | necessary to build up the 0 vs 1 abstraction. But it only
           | works within the specs of electricity / logic chosen. TTL has
           | different specs than RTL has different specs than CMOS.
        
             | akira2501 wrote:
             | > Electricity has no 'Logic Levels' to it.
             | 
             | Yes, but transceivers do.
             | 
             | > This is why TTL vs CMOS vs RTL vs Diode Logic vs whatever
             | is a thing.
             | 
             | Yes, and they all have /different/ logic levels.
             | 
             | > the specs of electricity / logic chosen
             | 
             | Yes, what one might call the "logic levels."
        
               | dragontamer wrote:
               | The most important difference between TTL and CMOS is the
               | currents involved.
               | 
               | I don't exactly remember the specification of TTL, but
               | let's say it was around 1mA or at least in that
               | magnitude.
               | 
               | If you had a Billion transistors (such as I dunno... A
               | 1-Gbit chip), then that's a billion * 1mA or about a
               | Mega-Amp of current.
               | 
               | It's physically impossible to run TTL current specs to
               | build a computer today. That's why we switched to CMOS
               | which has ~femtoamps of current instead.
               | 
               | --------------
               | 
               | When every chip draws 1mA or so just to figure out on vs
               | off, it's very difficult to build an efficient system.
               | 
               | ---------
               | 
               | 5V isn't sufficient to define on vs off in TTL logic.
               | Only if that 5V signal also had enough current to turn on
               | a BJT do you actually get an 'On' value.
               | 
               | And once we start thinking currents AND Voltages, life
               | gets a bit more complex.
        
               | akira2501 wrote:
               | > The most important difference between TTL and CMOS is
               | the currents involved.
               | 
               | I've never heard that before. It's always been volts,
               | it's defined in volts, every chart you find is going to
               | specify them in volts.
               | 
               | > specification of TTL, but let's say it was around 1mA
               | 
               | Different families of TTL have different "drive
               | strengths" and different "pin current capacity." Drive
               | parameters are not universal to a family.
               | 
               | > It's physically impossible to run TTL current specs to
               | build a computer today. That's why we switched to CMOS
               | which has ~femtoamps of current instead.
               | 
               | CMOS uses complementary switching. It's in the name. Once
               | the pair is stable nothing other than leakage current
               | flows. You can create complimentary arrangements of
               | transistors from any given family.
               | 
               | If you want to then express the output of CMOS over a
               | large line with a lot of capacitance, you'll probably
               | just use a buffer driver sized for that line, so the
               | actual current in your CMOS arrangement is entirely
               | irrelevant.
               | 
               | > Only if that 5V signal also had enough current to turn
               | on a BJT do you actually get an 'On' value.
               | 
               | Yea, then if you strap a Schottky diode into that BJT,
               | you get something which needs far less current yet still
               | works on the same voltage levels. So we tend to think of
               | the voltage as the logic level and the drive current as
               | an incidental property of the construction technique.
               | 
               | > And once we start thinking currents AND Voltages, life
               | gets a bit more complex.
               | 
               | Yea, this is why the logic levels are an acceptable
               | /range/ of voltages, so that we don't actually have to
               | address this complexity. The whole point is to create a
               | digital circuit anyways.
               | 
               | In any case, tri-stating a bus does not imply you have a
               | third logic level, whether or not you want to consider
               | that a potential or a current. They imply that you are
               | neither pulling up or down your line. So if you read that
               | line the value you get will be /indeterminate/, if you
               | read it successively, the value may change apparently at
               | random.
               | 
               | This has been a very long and mostly unnecessary detour
               | of misunderstandings around the original point.
        
       | m3kw9 wrote:
       | So it's memory efficient but you'd need a new type of
       | "transistor" to support this
        
       | IWeldMelons wrote:
       | Iam feeling extremely uncomfortable seeing people in this thread
       | being absolutely unfamiliar wrt basic electronics and basic CS
       | fundamentals.
       | 
       | Ternary system has very limited Energy efficiency benefit
       | compared to binary - roughly 1.5 more efficient and a lot more
       | difficult to trasmit over differential lines. Today the latter is
       | a big concern.
        
         | BuyMyBitcoins wrote:
         | I would like to become more familiar with such things, but my
         | CS education was lacking in this regard. It was almost entirely
         | geared towards programming, and none of these things come up in
         | my career.
         | 
         | I suspect this is widespread.
        
       | joshu wrote:
       | except we have no space efficient transistor equivalent. what
       | would that even look like?
        
       | glii wrote:
       | Base-4 (in the form of PAM-4) is already used for high speed data
       | transmission. But IMO given how "analog" digital signals become
       | at high speed, using anything but binary for compute logic seems
       | like a fruitless battle.
       | 
       | https://blog.samtec.com/post/understanding-nrz-and-pam4-sign...
        
       | kortex wrote:
       | Binary is a local maximum in terms of entropy vs complexity.
       | Going from one state per element to two states per element is an
       | increase from 0 to 1 bits: an [?]% increase. Going from two to
       | three states increases it to 1.585 bits per element, or a 59%
       | increase.
       | 
       | Cheeky math aside, getting signalling logic to work with ternary,
       | especially when clock rates go so high the signal starts to look
       | less like square wave pulses and almost more like a modulated
       | sine (due to slew), you now need much more sophisticated
       | decoders.
        
         | creer wrote:
         | Yes and / but you now have "long distance" cross-chip busses
         | where driving and receiving from that internal network is part
         | of the cost of doing business.
        
       | daft_pink wrote:
       | Soon scientists will decide that base 10 beats base 3 and those
       | ancient Egyptians were right the whole time.
        
       | dangirsh wrote:
       | Base e is optimal under a certain metric, and 3 is closest to e.
       | 
       | https://en.m.wikipedia.org/wiki/Non-integer_base_of_numerati...
        
       | paulsmith wrote:
       | > To see why, consider an important metric that tallies up how
       | much room a system will need to store data. You start with the
       | base of the number system, which is called the radix, and
       | multiply it by the number of digits needed to represent some
       | large number in that radix. For example, the number 100,000 in
       | base 10 requires six digits. Its "radix economy" is therefore 10
       | x 6 = 60. In base 2, the same number requires 17 digits, so its
       | radix economy is 2 x 17 = 34. And in base 3, it requires 11
       | digits, so its radix economy is 3 x 11 = 33. For large numbers,
       | base 3 has a lower radix economy than any other integer base.
       | 
       | I thought that was interesting so I made (well, Claude 3.5 Sonnet
       | made) a little visualization, plotting the radix efficiency of
       | different bases against a range of numbers:
       | 
       | https://paulsmith.github.io/radix-efficiency/radix_effciency...
        
         | Manabu-eo wrote:
         | Base 4 is surprisingly competitive, but of course never better
         | than base 2. Base 5 is the highest base that could stand at the
         | pareto frontier, but just once and then never more.
        
       | shoggouth wrote:
       | Thought I would link to the Wikipedia page for ternary
       | computers[0].
       | 
       | [0]: https://en.wikipedia.org/wiki/Ternary_computer
        
       | throwawaymaths wrote:
       | Not in the article but (pulling this out of my ass here) I wonder
       | if ternary logic is ever so slightly more quantum resistant since
       | modeling ternary systems using a "natural" spin-1 (-1, 0, 1)
       | system is way less accessible vs spin-1/2 systems which
       | "naturally" model binary operations
        
       | kerkeslager wrote:
       | This article reads as something trying to make the case for
       | ternary without knowing anything about it.
       | 
       | Being able to store 0-8 numbers in 2 trits instead of 0-7 numbers
       | in 3 bits is not a value added.
       | 
       | The comparison (</=/>) is the only real advantage they mentioned,
       | but the way that might provide an advantage is if it's a single
       | trit register within a primarily binary system. I.e. your
       | (binary) comparison instruction (comparing two binary numbers)
       | drops the result in the single-trit register, and then your
       | (binary) jump instructions jump to a (binary) location based on
       | that trit register. Point is, there's no benefit to having the
       | entire system be ternary just for one ternary value. This is a
       | semantic benefit, because the operation really does have 3
       | possible outcomes, but there are potential energy efficiency
       | downsides to this.
       | 
       | A bigger benefit might be representing unknowns or don't-cares--
       | notably numbers in this system are still binary, but some bits
       | are unknown or don't matter. In this case, you can actually make
       | some energy efficiency _gains_ , especially in the context of
       | don't cares, because you can simply jam whatever voltage is most
       | convenient into that "bit"--it doesn't even have to match a
       | voltage range. But I'm not entirely sure that it's accurate to
       | call those systems "ternary".
        
       | creer wrote:
       | Is you want more insight in what happens these days see also
       | crazy modulation schemes like XPIC (cross-polarization
       | interference cancelling) which is something like polarization-
       | division multiplexing, and countless phase and amplitude
       | transmission modulation schemes (MLT-3, up to 1024-QAM). Yes,
       | "computation" is not done in that medium (except, really, for the
       | complex demodulation process) but still in that field. Everyone
       | is pushing hard to use what physical substrate and ingenuity they
       | have on hand.
       | 
       | Binary computing if anything has a massive advantage in the
       | accumulation of technology underlying it. Hard to beat. But still
       | worth considering it now and then as it might be bringing you an
       | advantage in one function or another. Currently within a chip,
       | obviously storage density and transmission density - which
       | doesn't mean you shouldn't keep it in mind for other functions.
        
       ___________________________________________________________________
       (page generated 2024-08-09 23:01 UTC)