Earlier quoted context omitted.
> We just expected single core performance to double forever every 2 years or so. I don't get that. Moore's law is about transistor size shrinking, but that has an obvious end — transistors can't be smaller than one atom across. I feel like "everyone" did know that, even in the 90s. Or, at least, it was mentioned in every explanation of Moore's law itself. > Low/no code drag-and-drop style programming tools would tak…
I’d argue that the larger problem is not that transistors can’t shrink forever, but that we stopped finding ways for additional transistors to usefully increase the speed of processors. For example, these techniques improve instructions per clock, at the cost of adding transistors: * pipelining (late 80’s early 90’s) MIPS R3000, Intel 486, Motorola 68040 * superscalarity (early 90’s) Pentium, DEC Alpha 21064, MIPS R8…
> Nobody seems to be building a higher IPC CPU with 2x transistors
I mean, there are designs like this, but they run into problems of cache invalidation and internal bus contention.
The way to get around this is to enforce rules about how much can be shared between cores, i.e. make the NUMA cores not present a UMA abstraction to the developer but rather be truly NUMA, with each core having its own partition of main memory.
But then you lose backward compatibility with... basically everything. (You could run Erlang pretty well, but that’s basically it.)