I'm not in the hardware industry, and am curious what the future might hold.
We've been stuck in the 3-5 Ghz range for a long time. I think we're scaling by adding cache, cores, and specialized instructions. Due to observations like Amdahl's Law, PC hobbyists aren't seeing great returns on new machines. We've had 8+ logical cores for a long time now.
The physical size of gates in the CPU is getting very difficult and costly for companies to shrink further. We are approaching a scale where more quantum effects are at play, and there is actually a "minimum scale" for transistors. So where can we go from here? What will the effects of these changes (or lack thereof) be on software development?
Now we're at 6-6.2 GHz in turbo mode. Can we go faster?Likely, but I don't see 12 GHz within forseable future. Instead, internal parallelism within a core have increased significantly. The bottleneck is cache reload and flushing from/to RAM. Highly optimized programs /may/ fit in cache (assuming they don't get swapped out due to task switching) but most don't since they use large frameworks and/or are interpreted or runs on Windows that since dawn of time always take 2-3% CPU.
But there's a lot of programs that are unable to utilize multiple cores, so even if there's 20 cores available, 19 are unused and the last one is limited.
Lower voltage allows for somewhat faster clock speeds, allowing faster execution. Microcode based instruction sets (x64) benefit the most from internal parallelism due to the ability to begin an instruction before the previous has completed, while ARM CPUs generally split the entire instructions into independent parts that all are executed simultaneously, but there's a limit on how much that can be parallelized given a certain RAM bus width. Increasing RAM bus width, expecially external RAM bus width is likely where the biggest gain is.