But then you could argue that the implementing transistor arrangement is a design and the actual movement of electrons that implements it is "building the software"
I realize that there is a certain conflict here, since I'm happy to program computers without understanding the physics of transistors, but your comment makes me nervous.
> With the above assumptions, this paper would conclude that only one operation in a transistor is "computing" anything
Why? A transistor is just an arbitrary boundary. You could as well draw a box around any combinatorial circuit and just call it a "computational element". It has inputs and outputs and a switching energy for each unit of computation it does.
This is just the process of breaking computation up into abstractions--"boxes".
Clearly we must do this, otherwise we'd have to reason about individual electrons.
In a way, it is the opposite. Code is what you execute. The transistors are the engines that do the execution. They are going to expect a chip they designed with 105B transistors to perform (speed/efficiency/whatever) in the same ballpark as a high=end GPU for their AI workloads.
It is like knowing the kind of engine a car has. Not all V8 gas engines produce the same power, but knowing that it is a V8 instead of an inline three cylinder does give you an idea of the expected performance characteristics.
That feels like an orthogonal issue. I mean, what if the best way to arrange the transistors turns out to be a one-instruction set computer? It's not obvious to me that adding more instructions is a better use of the transistors available in the surface area we've got to work with.
>That is like saying the programming behind an API is simplistic because the API only consists three functions.
Actually, that's pretty close to my argument. I'm not saying the mechanisms underlying a transistor are simple. I've taken (and struggled with) a microelectronics course. I have a good idea how complex they are.
I'm saying that the metrics for success are really simple because we have designed it to fit a very simple logical abstraction. If you want to make a better transistor, the process might be extremely complicated, but it couldn't be simpler to test what you have and see if it's correct.
On the other hand, it's simple to make food (I should, however, stop and point out that when Rhinehart is "making food", mostly what he's doing is mixing together other existing foods. Of course that is simple.) But it's orders of magnitude more complex to analyze the result of that food than doing the same for a transistor. Because now instead of plugging a black box we understand into another black box that we understand, you're plugging your invention into the human digestive system. Not only do you have to consider the interaction with human parts, you also have to consider dozens of species of gut bacteria. I don't think that is simple and I think anyone who claims that it is is quite confused.
Simulating even a single transistor used in modern chips is extremely complex if you care about physical effects involved in its operation. Yet a transistor is just a simple on/off switch in the context of computer architecture.
That's actually a pretty convincing point. If all we were able to understand was the flow of electrons in a transistor and not how they were connected, we wouldn't necessarily be able to conclusively claim that digital computers were indeed digital.
To be fair, the reason you wouldn't turn the transistors upside down is that you already know what software is and that this is not related to what software is. Similarly for the novel, though actually maybe that depends on the kind of insights you're looking for.
In particular, turning transistors upside down is a good way to discover that software is fairly orthogonal to hardware orientation, if you didn't already know that.
Not that anything prevents someone from claiming otherwise...
Do you think humans design these chips by hand, or do they perhaps use a computer to help them because it's a bit tricky to make sure the electrons don't accidentally tunnel from an adjacent transistor if you're placing a few billion of them on the circuit diagram by hand given the scale they're at now?
Or hardware engineers ranting about how software is bloated when you can achieve the same thing by arranging some transistors. For example, Steve Wozniak created a working breakout game using 44 transistors. This was 1974, back then each transistor costed enough money that companies paid a lot for low transistor solutions.
Today every computer has many billions of transistors.
reply