The first microprocessor had 2300 transistors controlled by a 106 KHz clock.
Today, we have billions of transistors on a chip, running at close to 5 GHz.
That improvement in device technology has provided the resources for us to do a lot of things to enhance performance at a continually impressive annual rate.
In the early days, that improvement came from structures on the chip that got things done faster. When that got to be too hard (or costly), the simple fallback position was to use the doubling of the number of transistors to simply make the on-chip storage larger, ...until that got to be a little silly. So, we entered the age of more than one processor on a chip (multicore) and the preoccupation with parallelism. Unfortunately, multicore is not without its problems, energy constraints and bandwidth requirements being the most obvious.
With it has also come a lot of nonsense, "meganonsense for multicore" I call it, that further gets in the way. What I am going to try to do in this talk is show how the microprocessor evolved from the beginning to its current state, why the current state is problematic, and what we have to do differently moving forward if we want to continue to get more and more performance from our microprocessors.