This is not a production question, just something that I've been thinking about.
When specing out CPUs I know the general rule is a faster clock speed will make a core run faster and the greater number of cores you have the more you can do in parallel. However what makes a "newer" CPU generally faster than an older CPU other than these two things?
*There is a noticeable difference between an older i5 and a newer i5 despite having the same number of cores and around the same GHz.
*My current dual core i5 running at 2.5 (I believe) GHz would surely blow a Pentium 4 out of the water, despite the Pentium running at > 3GHz. I'm sure I could blow a dual core server from 2004 out of the water as well just to make things fair core-wise. I have never done any formal benchmarking, these are just educated guesses.
What are some things to look for when specing out CPUs?