For example, what AMD is doing with its CPUs to obtain so many cores is instead of making a bunch of monolithic dies with either 2,4,6, or 8, etc. cores on them. They are making smaller dies, called chiplets, with a maximum 4 cores on them, and then just adding a bunch of them together into one package. So a 4 core processor might only use one chiplet, while an 8 core would use 2 of them. Anything in between, let's say a 6-core would be an 8-core with 2 out of the 8 disabled. This way if they get a partial failure on one of the chiplet dies, and only 2 cores out of the 4 are working perfectly, they don't have to throw the whole thing away, and they can continue to use those 2 good cores, and you'll get yourself a 6 core in a two-chiplet design. It's not only tremendously cost-effective, but it also lets them get higher performance out of the good cores, as the bad cores will be disabled, and they won't be receiving any power, while the good cores will get all of the power to themselves, thus achieving higher single-core performance, while staying within the same power limits.
Also node shrinks are now getting more efficient without requiring an actual node shrink. For example, Intel has been stuck on 14nm for 5 years now, so what it's been doing is improving the same 14nm node over and over again. The first improvement was called 14nm+, the next one was 14nm++, 14nm+++, etc. Slight improvements in packing transistors together better, etc. That's probably the way they're going to be working from now on, more improvements within the nodes from generation to generation, rather than an actual new node every generation.