Modern personal computers as far as I understand have increased in power (measured informally by ability to compute “more demanding programs”) due to two “broad factors”:
decreased transistor size (thereby decreasing delay time between computations).
increased transistor quantity
It seems to me that the first factor should speed up any existing design (it simply allows a higher frequency of computations without a change in design), but it seems to me that the second factor generally requires a change in design in order to actually improve performance.
So I am trying to understand how increasing the number of transistors in a CPU can help you increase computations. I’ve looked online but couldn’t find a definitive answer.
My current understanding is that in order to leverage an increase in transistors to get increased performance, you need to employ various kinds of parallelism.
By increasing the word size of CPU’s from 1 bit to 2 bit to 64 bit, modern CPU’s can use bit-level parallelism to perform more computations in a single instruction.
By employing smart control architectures (i.e. in the control unit), a CPU can smartly handle multiple instructions that don’t require the same CPU components at the same time, thereby employing instruction-level parallelism
By splitting instructions into parts, a CPU can get parallelism through pipelining, by performing the first parts of instruction B before the last parts of instruction A are done.
These are various ways in which we can use more transistors to get more performance, and they all use the increased number of transistors in some way to perform the same computations that earlier computers did, but now they do it in parallel.
Is my understanding correct, that the primary/only channel through which increased transistor count results in increased performance is through parallelism? Or are there ways that we can use increased transistor count to improve performance that rely on other techniques than parallelism?