logoalt Hacker News

tsimionesculast Wednesday at 12:10 PM2 repliesview on HN

> hardware always "executes both sides" of a branch at once

Unless you're talking about quantum hardware, that is very much not true. The whole point of transistors is to choose whether to power one part of a circuit or another.

Plus, even for hardware, the solution to all this is to modularize all the way down. One piece of hardware sets up the right state and powers up another piece of hardware - this type of logic doesn't stop at the OS level. For drawing on the screen, ultimately you reach a piece of hardware that lights up in one of three colors based on that state - but all the way there, it's the same kind of "function calls" (and even more indirection, such as communication protocols) on many levels.


Replies

MobiusHorizonslast Wednesday at 3:13 PM

At least in CMOS, the power supplied to the transistor is not being modulated as part of logic operations. Modern hardware does clock gating and power gating of modules for power saving, but that is not what the OP is talking about.

In hardware the equivalent of a ternary is a mux, which can be made from a lot of parallel instances of

   out0 = (a0 & cond) | (b0 & ~cond)
Or in other words, both branches must be computed and the correct value is chosen based on the condition.
show 1 reply
LegionMammal978last Wednesday at 3:04 PM

At least for classic textbook CPUs, it's common to run both sides of a decision in parallel while it's still being made, then finally use a transistor to select the desired result after the fact. No one wants the latency of powering everything up and down every cycle, except on the largest scales where power consumption makes a big difference.

show 1 reply