- Joined
- Sep 26, 2021
- Posts
- 6,534
- Main Camera
- Sony
Is it sufficient to do the needed modificiations on a per-core basis, or does this require global changes to the chip? E.g., would you need to increase the voltage across the entire chip to enable boosting on a single core?
I ask because I'm wondering if you could create one or two super-P-cores, capable of running at very high clocks, into the Pro and Max chips, without having to modify the chip as a whole. If so, this wouldn't be that costly.
Since most apps continue to be single-threaded (including CPU-demanding apps like Mathematica, Maya, and AutoCAD) (are there also significantly CPU-sensitive games?), even boosting just a single core can have significant practical value. How much you enable it could be device-dependent, providing further product differentiation. E.g., maybe moderate boost on the Pro Mini and Pro/Max MBP's, and high boost on the Studios.
And separately, what about boosting the all-core clocks on the GPU's--what considerations would apply there?
You can put different cores (or even parts of cores) in different clock/voltage domains. The problem is the communication between blocks in different clock domains. If I compute twice as fast, I have to queue up my communications to slower blocks (e.g. slower cores, RAM, GPUs, whatever). Messages sent to those other blocks have to wait somewhere. This is usually done using first-in-first-out buffers that hang on to messages until the slower recipient is ready to receive them. But these buffers might need to get pretty large. And you get into situations where a message gets stale before it’s even received. (“set memory location XXX to YYY. No, never mind that. Now set it to ZZZ!”). The trick isn’t so much making a core run faster, but making it so that speedy-core can communicate with slow-core.
The reason that happens is, of course, that even if you can speed up the core, that doesn’t mean you can speed up the RAM, or the GPU, or various other blocks.