Cheap transistors, expensive wires
Turing Award winner Ivan Sutherland says that the economics of early computer hardware continues to influence our thinking even though new economics turns the old economics upside down.
Vacuum tubes, he explains, were the logic units of early computers. They were fragile, expensive, and hot. Wires, by contrast, were robust, cheap, and cool. So naturally the goal was to minimize the number of vacuum tubes.
Now logic is carried out in transistors. Compared to wires, transistors are tiny, cool, and fast. You want to minimize the length of wire in a chip.
Sutherland gave two examples of how we still implicitly think in terms of vacuum tubes. For one, many still tend to think that logic operators are the slowest part of executing programs. They are not. Moving data around takes more time than operating on the data. The time is spent in the wires, not in the transistors.
The other example he gave is synchronized chip designs. All memory fetches from a given component take the same amount of time, not due to physical limitations, but for reasons of convenience and tradition. Data from the near side of memory could be accessed sooner than data on the far side, but we synchronize chips so that all memory operations in a component take the same amount of time. It is possible to design chips with self-timed asynchronous operations; this is Sutherland’s current area of work. Computers made of such components are much harder to reason about, though they would be faster and use less memory than conventional designs.
This post is based on a dinner conversation, without taking notes, and written later. Sutherland is an expert in chip design and I certainly am not, so any inaccuracies are most likely due to my memory. Moving things into memory is problematic for humans as well as computer chips.