Could someone explain this IPC thing to me?
If Intel hasn't upped that for years now, is it even possible? The core count is something different, there was no push for that. But IPC... why not? People wold buy such CPU like crazy.
IPC stands for Instructions Per Clock, which essentially means "how fast a CPU is at [task X/set of tasks Y/an approximation of all possible tasks] if core count and clock speed are equalized across comparisons".
In other words, if you compare, say, a Core2Quad, a Kaby Lake i5, a Ryzen 3 and a Phenom x4 (all of which have 4 cores and threads), over-/underclock them all to the same frequency, and then benchmark them, you'll end up with a chart of their relative IPC. Of course, this is dependent on both the benchmarks used (as different architectures perform differently in different tasks - as an example, Ryzen overperforms in Cinebench and rendering tasks compared to some other tasks when compared to modern Intel archs) and the various idiosyncrasies of the architecture. Both cache, uncore clock speeds, RAM speed, interconnect speeds and a whole host of lower-level factors affect IPC. As an example, the IPC increase between Zen and Zen+ (Ryzen 1st and 2nd gen) comes mostly from lower cache latencies and better optimized inter-chip communication.
As such, IPC is
a) always an approximation, not to mention task-dependent, and really a summary of a lot of lower-level, difficult to identify performance parameters
b) still a reasonable term for speaking of the performance of an architecture regardless of core count and clock speed.
For example, AMD's FX-series CPUs had lots of cores and sometimes crazy clock speeds, yet were trounced by Intel due to the Core architecture's significantly superior IPC. Which is how a 3.5GHz 4c4t i5 could outperform a 8c8t FX in >90% of tasks. The cores and the clock speed don't matter if the cores are processing fewer
instructions per clock (cycle).
As for how/why Intel's IPC hasn't improved in years, it's due to their roadmap shakeup (going from the "tick-tock" release rythm (where one was an architecture refresh, the other a production process node improvement) to the current (yet not really followed)
"PAO" or "Process, Architecture, Optimization") and their ever expanding issues with getting their next-gen 10nm process node into volume production.
To clarify: Intel is currently using the 14nm node, either in 14nm+ or 14nm++ versions. The latter two are minor improvements upon the initial 14nm process node, which was launched alongside Broadwell in 2014 (mobile) and 2015 (desktop). As such, Broadwell was a "tick" (process shrink) (although Broadwell was also architecturally different from its predecessor, but never mind that right now). Skylake, following Broadwell, was a "tock", or an architecture improvement. Architecture improvement = IPC increase, at least most of the time.
Then came the issues. 10nm was supposed to launch in 2016. That didn't happen. Instead we got Kaby Lake, which is
identical to Skylake architecturally, but produced on an optimized process node (14nm+) which gives it higher clock speeds. Hence the jump in performance from the 6700k to the 7700k was tiny, due to there being only the few-hundred-MHz increase in clock speed to make it faster.
The 10nm issues and delays keep piling up. Currently, it's delayed to 2019, and some (SemiAccurate, among others) believe it won't even be ready by then. Intel has one or two gimped, barely-functional 10nm CPUs out now, which seems like an effort to calm irate investors demanding progress.
As such, Intel has launched Coffee Lake instead. Again, Coffee Lake is architecturally unchanged from Kaby Lake (and thus Skylake), at least in terms of IPC. Of course, Coffee Lake has more cores, is slightly more power efficient (but really not much), and clocks even higher. As such, Coffee Lake CPUs are faster, but their IPC is unchanged. The performance increase comes from small clock increases and a significant increase in cores and threads (i7 from 4/8 to 6/12, i5 from 4/4 to 6/6, and i3 from 2/4 to 4/4).
The reason for Intel doing this is likely that the next "process" step of their "PAO" cadence is yet to show up. As such, they're reiterating "O" (Optimization) steps to tread water until 10nm is ready. To recap, currently Broadwell/14nm was P(rocess), Skylake was A(rchitecture), and both KBL and CFL are O(ptimization). All the while, AMD is catching up, and improving both IPC and moving to smaller process nodes rapidly. If this keeps up, it won't be long until they catch up.