2
$\begingroup$

I was investigating why computers use binary instead of ternary and, from what I understand, found it's for precision. We want to avoid getting the wrong answer when computing math, and if we were to look at a bit at the wrong time in, for example, a base-10 system we might accidentally catch it switching states and accept the output before it's done switching states.

Please let me know if I've misunderstood this. I know there's a lot going on under the hood in computer hardware.

Assuming I understood correctly though, would it be feasible to redesign computers to be able to switch "languages" in some components in real-time in favour of speed/size instead of accuracy? It's well-known that 8 bits in base-10 can store 390,625 times more data than in binary, so there are obviously massive implications if possible.

To clarify: my question is about the feasibility of designing a computer which could switch between the two languages in real-time based on user-defined required output.

Edit: As clarified above, I am not asking about the benefits of binary over ternary. I am asking about the benefits of using them together, in real-time, and if that could even be possible. Thanks.

$\endgroup$
  • 3
    $\begingroup$ Possible duplicate of Ternary processing instead of Binary $\endgroup$ – Evil Nov 15 '16 at 0:53
  • $\begingroup$ This is not a duplicate. I am asking about switching in real-time to an arbitrary base in the interests of temporary performance boosts in specific scenarios. The accepted answer in your linked question does not address my question; it seems to describe the benefits of binary. $\endgroup$ – Vaysym Nov 15 '16 at 2:05
  • $\begingroup$ If you say it isn't it, sorry. So you want to emulate ternary system by software at real time? So there are no boosts, your ternary (or arbitrary base) is on the top of binary. Arithmetic in hardware is optimized, while operating at different base will block this benefits. Or are you asking about hardware with sime base and the computation goes to appropriate device? In that case you will get translate to a different base and switch back to your primary device. $\endgroup$ – Evil Nov 15 '16 at 3:35
  • $\begingroup$ I'm not talking about emulation. I'm talking about fundamentally changing the hardware. Have a look at this video: youtu.be/1sWCBgGALXE?t=2m44s. I was thinking that it might be possible to switch the way bits send and receive data in real-time. To switch languages for larger capacity at the cost of accuracy. A signal would be sent which would prompt all affected bits to use a different base and the OS would interpret the signals from those bits using the new base. In the linked video, this guy says "we need computers to be exact", but accuracy isn't imperative for some things, right? $\endgroup$ – Vaysym Nov 15 '16 at 4:21
  • 2
    $\begingroup$ Whether it can be done is a question of electronics (I suspect the answer is no, at least not practically); whether it's desirable is covered by the other question. $\endgroup$ – David Richerby Nov 15 '16 at 8:47
3
$\begingroup$

Current computers use electronic parts which can easily distinguish between two states, by stating that high voltage = 0 and low voltage = 1, or vice versa. The hardware that is needed to combine two inputs x and y and produce an output equal to NAND (x, y) is very, very simple and any other logic can be produced very easily from this.

Your task in proposing ternary computers: Suggest how with current electronic parts, three states can be represented. Then suggest what would be a primitive operation that combines two ternary inputs and produces an output; what that operation would be, and how you would implement it. Then suggest how you could for example add two integer numbers that are made of 40 trits (I think that's the name, I might be wrong).

Of course your suggestion must not represent a trit using two binary states, because using two binary states you could easily represent four values with the same effort, which would surely be more efficient. So you might represent 0 = low voltage, 1 = medium voltage, 2 = high voltage. Have fun doing that reliably. (One problem that you have is that using low and high only, you can change states with force and therefore quickly. If you needed to change a state from high to medium voltage, you'd have to be careful not to overshoot to low voltage, so this would likely be slower).

Now it seems you not only want to implement ternary arithmetic, but you want to switch the hardware on the fly between binary and ternary. That's not running before you can walk, that's running before you even figured out that crawling might be a possibility.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.